CoolFace
Modelpublic

Aditya02/IndicF5

sourceHugging Facemitupdated 5mo agoView on Hugging Face
4likes425downloads
trainer.cpython-310.pyc86 linesDownload Raw Back to __pycache__
1o

23�gwB�@s�ddlmZddlZddlZddlZddlZddlZddlmZddl	m3Z4ddlmZddl
mZddlmZmZddlmZmZmZdd	lmZdd5lmZddlmZmZddlmZmZGd
d�d�ZdS)�)�annotationsN)�Accelerator)�DistributedDataParallelKwargs)�EMA)�AdamW)�LinearLR�SequentialLR)�6DataLoader�Dataset�SequentialSampler)�tqdm)�CFM)�DynamicBatchSampler�7collate_fn)�default�existsc@sreZdZdddddddddddd	d8ddde�e�dddd
fd0d!d"�Zed#d$��Zd1d%d&�Zd'd(�Zd2d3d.d/�Z	dS)4�Traineri Ni�N� �sample���?�wandbztest_e2-ttsZtest_runF�vocos��modelr
�batch_size_type�str�noise_scheduler�9str | None�duration_predictor�torch.nn.Module | None�logger�wandb_resume_id�log_samples�bool�accelerate_kwargs�dict�10ema_kwargs�
bnb_optimizer�
mel_spec_type�is_local_vocoder�local_vocoder_pathcCs�tdd�}|dkrtjjsd}td|���||_td|dkr!|nd|g|11d�|��|_||_|jdkr_t	|�rAdd||d�i}ndd|d�i}|jj12||||||||	|13||jj|d	�14d15�n|jdkrsdd
lm
}|d|��d�|_||_|jr�t|fddi|��|_|j�|jj�||_||_||_t|||16�|_t|d�|_||_||_|	|_|17|_||_||_ ||_!||_"||_#|
|_$|r�ddl%}|j&j'|�(�|d�|_)n	t*|�(�|d�|_)|j�+|j|j)�\|_|_)dS)NT)�find_unused_parametersrzUsing logger: )�log_with�kwargs_handlers�gradient_accumulation_steps�allow)�resume�name�id)r1r2)18�epochs�
learning_rate�num_warmup_updates�19batch_sizer�max_samples�grad_accumulation_steps�
max_grad_norm�gpusr)�project_name�init_kwargs�config�tensorboardr)�
SummaryWriterzruns/)�log_dirZinclude_online_modelFzckpts/test_e2-tts)�lr�),rr�api�api_key�printr#r�acceleratorr!r�
init_trackers�
num_processesZtorch.utils.tensorboardr@�writerr�is_mainr�	ema_model�to�devicer4r6�save_per_updatesr�last_per_steps�checkpoint_pathr7rr8r9r:�vocoder_namer*r+rr�bitsandbytes�optimZ	AdamW8bit�20parameters�	optimizerr�prepare)�selfrr4r5r6rOrQr7rr8r9r:rrr!Z
wandb_projectZwandb_run_namer"r#rPr%r'r(r)r*r+Z21ddp_kwargsr=r@�bnbrCrC�A/projects/data/ttsteam/repos/f5_hf/models/f5_tts/model/trainer.py�__init__sv22��23��24zTrainer.__init__cCs|jjS)N)rG�is_main_process)rXrCrCrZrK�szTrainer.is_maincCs�|j��|jrXt|j�|j���|j�|j���|j��|j	��|d�}t25j�|j
�s2t26�|j
�|rH|j�||j
�d��td|���dS|j�||j
�d|�d��dSdS)N)�model_state_dict�optimizer_state_dict�ema_model_state_dict�scheduler_state_dict�stepz/model_last.ptzSaved last checkpoint at step z/model_�.pt)rG�wait_for_everyonerKr&�unwrap_modelr�27state_dictrVrL�	scheduler�os�pathrrQ�makedirs�saverF)rXra�last�28checkpointrCrCrZ�save_checkpoint�s 29� �zTrainer.save_checkpointcCs�t|j�rtj�|j�rtdd�t�|j�D��sdS|j��dt�|j�vr+d}ntdd�t�|j�D�dd�d	�d30}t	d|j�d|���t31j|j�d|��d
dd�}dD]
}||dvrf|d|=qY|jrr|j
�|d�d|vr�dD]
}||dvr�|d|=qx|j�|j��|d�|j�|j��|d�|jr�|j�|d�ndd�|d��D�|d<|j�|j��|d�d}~t��|S)Ncss�|]}|�d�VqdS)rbN��endswith)�.0�filenamerCrCrZ�	<genexpr>�s�z*Trainer.load_checkpoint.<locals>.<genexpr>rz
model_last.ptcSsg|]	}|�d�r|�qS)rbrn)rp�frCrCrZ�32<listcomp>�sz+Trainer.load_checkpoint.<locals>.<listcomp>cSstd�ttj|���S)Nr)�int�join�filterr�isdigit)�xrCrCrZ�<lambda>�sz)Trainer.load_checkpoint.<locals>.<lambda>)�key�����zLoading checkpoint from: �/T�cpu)�weights_only�map_location)z(ema_model.mel_spec.mel_stft.mel_scale.fbz.ema_model.mel_spec.mel_stft.spectrogram.windowr_ra)zmel_spec.mel_stft.mel_scale.fbz$mel_spec.mel_stft.spectrogram.windowr]r^r`cSs&i|]\}}|dvr|�dd�|�qS))�inittedraz33ema_model.r)�replace)rp�k�vrCrCrZ�34<dictcomp>�s35�z+Trainer.load_checkpoint.<locals>.<dictcomp>)rrQrgrh�any�listdirrGrc�sortedrF�torch�loadrKrL�load_state_dictrdrrVrf�items�gc�collect)rXZlatest_checkpointrlr{rarCrCrZ�load_checkpoint�sT���36��37�38��3940�zTrainer.load_checkpoint��
train_datasetr41�resumable_with_seedruc,Cs<|jr/ddlm}m}m}m}||j|j|jd�}|j	�42|j�jj
}	|j�d�}43tj|44dd�t|�r=t��}|�|�nd}|jdkrRt|t|dd|jd|d�}n+|jd	krud45|j	_t|�}
t|
|j|j|d46d�}t|t|dd|d�}ntd
|j����|j|j	j}t d|�t!|�|j"|j#}||}t$|j%dd|d�}t$|j%dd|d�}t&|j%||g|gd�|_'|j	�(||j'�\}|_'|�)�}|}t|�r�t!|�}t*||�}||}|j	j+||d�}nd}t,||j"�D�]%}|j�-�t|��r||k�rt.|d|d�d|j"��d|j	j/||d�}nt.|d|d�d|j"��d|j	j/d�}|D�]�}|j	�0|j���|d}|d�1ddd�}|d}|j2d|j2ddk�rZ	Wd��q(|j3du�r{|j	j/�r{|j3||�4d�d �} |j	j5d!| �6�i|d"�|j||||j7d#�\}!}"}#|j	�8|!�|j9dk�r�|j	j:�r�|j	�;|j�<�|j9�|j%�=�|j'�=�|j%�>�Wd�n	1�s�wY|j?�r�|j@�A�|d7}|j	j/�r|j	j5|!�6�|j'�B�dd$�|d"�|jCd%k�r|jD�Ed&|!�6�|�|jD�Ed'|j'�B�d|�|jFtG|�|!�6�d(�||jH|j#dk�r�|�I|�|j�r�|j	j/�r�|d}$|dtJ|dtK��r:d)gnd)|dg}%t�L��x|j	�47|j�jM|dd|$��Nd�|%|$d|||d*�\}&}'|&�OtjP�}&|&dd�|$d�dd�f�1ddd��O|j	jQ�}(|dd�Nd�})|jd+k�r�|�R|(��S�}*|�R|)��S�}+n|jd,k�r�||(��Td��S�}*||)��Td��S�}+Wd�n	1�s�wYtU�V|48�d-|�d.�|*|	�tU�V|49�d-|�d/�|+|	�||jWdk�r�|jI|dd0��q(t tjX�Y�d1d2�t tjX�Z�d1d3�tjX�[�t\�]�q�|jI|dd0�|j	�^�dS)4Nr)�cfg_strength�load_vocoder�nfe_step�sway_sampling_coef)rR�is_local�50local_pathz/samplesT)�exist_okr)r�num_workers�51pin_memory�persistent_workersr7�shuffle�	generator�frameF)r8�random_seed�	drop_last)rr�r�r��
batch_samplerzAbatch_size_type must be either 'sample' or 'frame', but received zWarm Up steps are: g:�0�yE>r)�start_factor�52end_factor�total_iters)�53schedulers�54milestones)�num_batcheszEpoch rr}ra)�desc�unit�disable�initial�total)r�r�r��text�mel��mel_lengthsip��	durations)�lensz
duration loss)ra)r�r�r)�lossrBr?r�rB)rar�� )�condr��duration�stepsr�r�r�bigvganz/step_z_gen.wavz_ref.wav)rkge��AzGB allocatedzGB reserved)_r#�f5_tts.infer.utils_inferr�r�r�r�rRr*r+rGrdr�mel_spec�target_sample_raterQrgrirr��	Generator�manual_seedrr	rr7�even_batchesrrr8�55ValueErrorr6rIrF�lenr4r9rrVrrfrWr�ru�skip_first_batches�range�trainr�is_local_main_process�56accumulate�permute�shaper�get�log�itemr�backwardr:�sync_gradients�clip_grad_norm_rUra�	zero_gradrKrL�update�get_last_lrr!rJ�57add_scalar�set_postfixrrOrm�58isinstance�list�inference_moder�	unsqueezerM�float32rN�decoder~�squeeze�59torchaudiorjrP�cuda�memory_allocated�memory_reserved�empty_cacher�r��end_training),rXr�r�r�r�r�r�r��vocoderr�Zlog_samples_pathr�Ztrain_dataloader�samplerr��warmup_steps�total_stepsZdecay_stepsZwarmup_schedulerZdecay_scheduler�60start_step�global_stepZorig_epoch_stepZ
skipped_epochZ
skipped_batchZskipped_dataloader�epoch�progress_bar�batch�text_inputsr�r�Zdur_lossr�r��pred�
ref_audio_lenZ61infer_text�	generated�_Zgen_mel_specZref_mel_specZ	gen_audio�	ref_audiorCrCrZr��s�62�63 64��	�65�66�67�	�68�69�7071�7273$74(�7576�.���7778z
Trainer.train)rr
rrrrrr r!rr"rr#r$r%r&r'r&r(r$r)rr*r$r+r)F)r�N)r�r79r�ru)80�__name__�81__module__�__qualname__r&r[�propertyrKrmr�r�rCrCrCrZrs:�j82836r) �84__future__rr�rgr�r�r�85accelerater�accelerate.utilsrZema_pytorchr�torch.optimrZtorch.optim.lr_schedulerrr�torch.utils.datar	r86rr�f5_tts.modelr
Zf5_tts.model.datasetrr�f5_tts.model.utilsrrrrCrCrCrZ�<module>s"