o
    i                     @   s  d dl Z d dl mZ d dlZd dlZd dlmZ d dlmZm	Z	 d dl
mZ d dlZd dlmZ d dlmZ d dlmZ d d	lmZ d
d Zedkre Zejdeddd ejdeddd ejdeddd ejdeddd ejdeddd ejdeddd ejdddd ejdedd d ejd!ed"d#d ejd$eg d%d&d'd( ejd)edd*d ejd+edd,d e ZejZedurej edd e!d-d.d/Z"ned0d1ed2Z"e"#ej$ej%ej&ej'ej(ej)ej*ej+ej,ej-
 e".  e"/d3 ej0s*ej1d4d5 ed6d7d8d9Z2e2j34d: d;e2j5 Z6ej78e6s)e9ej7:e6 ndZ2e2dkrWee6d7d<d=gZ;ee6d7d<d=Z<ee6d>d?d@dAdBZ=ee6d>dCd@dDdBZ>e<e=e>gZ;e2dkrlej?ed-dEe2dFddGdHe;dIZ@nej?ed-dEdFddGdHdJZ@e@Ae" dS dS )K    N)ArgumentParser)	DDPPlugin)WandbLoggerTensorBoardLogger)ModelCheckpoint)BackboneRegistry)SpecsDataModule)SDERegistry)
ScoreModelc                 C   s:   i }| j D ]}dd |jD }tjdi |||j< q|S )Nc                 S   s   i | ]}|j tt|j d qS )N)destgetattrargs).0a r   W/home/ubuntu/.local/lib/python3.10/site-packages/solospeech/corrector/train-fastgeco.py
<dictcomp>   s    z'get_argparse_groups.<locals>.<dictcomp>r   )_action_groups_group_actionsargparse	Namespacetitle)parsergroupsgroup
group_dictr   r   r   get_argparse_groups   s
   
r   __main__z--batch_size   z1During training take at least N_min reverse steps)typedefaulthelpz--N_min   z--N_maxz0During training take at most N_max reverse stepsz--t_rsp_ming      ?z--t_rsp_maxz
--pre_ckptz	Load ckptz--nolog
store_truez+Turn off logging (for development purposes))actionr!   z--lrgh㈵>z#The learning rate (1e-4 by default)z--loss_typer    z!The type of loss function to use.z--stop_iteration_random)randomlastepochresidual_magr&   z10 means it is fix, 1 means random stop iterations)r   choicesr    r!   z--inference_Nzinference Nz--inference_startzinference startF)gpu)
batch_sizenum_workerskwargsncsnppbbed)backbonesdedata_module_clszcuda:0 )keyfastgecoTlogs)project	log_modelsave_dir.z./logs/z{epoch}-last)dirpath	save_lastfilename   pesqmaxz{epoch}-{pesq:.2f})r;   
save_top_kmonitormoder=   si_sdrz{epoch}-{si_sdr:.2f})find_unused_parameters
   r*   auto)strategyloggerlog_every_n_stepsnum_sanity_val_stepsacceleratordevices	callbacks)rH   rJ   rK   rL   rM   )Br   r   ospytorch_lightningplpytorch_lightning.pluginsr   pytorch_lightning.loggersr   r   pytorch_lightning.callbacksr   wandbfastgeco.backbones.sharedr   geco.data_moduler   	geco.sdesr	   fastgeco.modelr
   r   __name__r   add_argumentintfloatstr
parse_argsr   pre_ckptcheckpoint_fileload_from_checkpointdictmodeladd_paraN_minN_max	t_rsp_min	t_rsp_maxr+   	loss_typelrstop_iteration_randominference_Ninference_startcudatonologloginrI   
experimentlog_codeversion
savedir_ckpathisdirmakedirsjoinrN   checkpoint_callback_lastcheckpoint_callback_pesqcheckpoint_callback_si_sdrTrainertrainerfitr   r   r   r   <module>   s    



