CoolFace
Modelpublic

scrapegoat/Neural-Audio-Codec

sourceHugging Faceupdated 2y agoView on Hugging Face
2likes
utils.cpython-39.pyc90 linesDownload Raw Back to __pycache__
1a

2�!Pf$!�@sFddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl3mmZddlm
ZddlZddlZddlZddlZddlZddlZe�d�ddlmZdd�Zd(dd�Zd	d4�Zdd�Zd
d�Zdd�Zd)dd�Zdd�Z dd�Z!Gdd�de"�Z#d*dd�Z$d+e%e%d�dd�Z&d,dd �Z'd-d#d$�Z(d.d&d'�Z)dS)/�N)�distributedZAggcCsFtjdd�\}}|j|dddd�}tj||d�|j��t��|S)N)�5�)�figsize�auto�lower�none)Zaspect�origin�
interpolation)�ax)�plt�subplotsZimshowZcolorbar�canvas�draw�close)�spectrogram�figrZim�r�>/scratch/buildlam/codeclm/jiahaopan/codec_final/utils/utils.py�plot_spectrograms6�7rFcCsP|dur4t�|�tj�|�t�|�tj�|�|rLdtjj_	t8�d�dS)z�9    Function that sets seed for pseudo-random number generators in:10    pytorch, numpy, python.random11    12    Args:13        seed: the integer value seed for global random state14    NTz�You have chosen to seed training. This will turn on the CUDNN deterministic setting, which can slow down your training considerably! You may see unexpected behavior when restarting from checkpoints.)�random�seed�np�torch�manual_seed�cuda�manual_seed_all�backends�cudnn�
deterministic�warnings�warn)rZcudnn_deterministicrrr�seed_everything"s151617r"cCs18t�dkS�Nr)�get_rankrrrr�19is_primary8sr%cCs t��sdSt��sdSt��Sr#)�dist�is_available�is_initializedr$rrrrr$<s20r$cCs6t|��}t�|�}Wd�n1s(0Y|S�N)�open�yaml�	full_load)�path�f�configrrr�load_yaml_configEs21(r0cCsT|�d�sJ�t|d��(}|�t�|��|��Wd�n1sF0YdS)Nz.yaml�w)�endswithr*�writer+�dumpr)r/r-r.rrr�save_config_to_yamlKsr5cCstj|t|d�|d�dS)Nr1)�indent)�jsonr4r*)�dr-r6rrr�save_dict_to_jsonRsr9cCst�t|d��S)N�r)r7�loadr*)r-rrr�load_dict_from_jsonVsr<cs�t�fdd�t��D��}t|d���}|�d�tj��|�d�tjj�	���|�d�|�t22tj��|�d�t
|���D]"\}}|�dt23|�t24|�f�q�|��Wd�n1s�0YdS)	Nc3s&|]}|�d�s|t�|�fVqdS)�_N)�25startswith�getattr)�.0�name��argsrr�	<genexpr>[�zwrite_args.<locals>.<genexpr>�az==> torch version: {}26z==> cudnn version: {}27z	==> Cmd:28z29==> args:30z	  %s: %s31)�dict�dirr*r3�formatr�__version__rr�version�str�sys�argv�sorted�itemsr)rCr-Z	args_dict�	args_file�k�vrrBr�32write_argsZs3334rTc@sNeZdZdd�Zdd�Zddd�Zdd	�Zd35d�Zdd
�Zdd�Z	dd�Z36dS)�LoggercCs�||_|j|_t�|_|jr�tj|jdd�tj�|jd�|_tj|jdd�tj�|jd�}t	||�tj�|jd�}tj�37|�s�tj|dd�ttj�|d�d�|_|j
r�|�d�tjj
j|d	�|_nd|_dS)38NT)�exist_ok�configszargs.txtZlogszlog.txtrFzusing tensorboard)�log_dir)rCrXZsave_dirr%�os�makedirsr-�join�39config_dirrT�existsr*�text_writer�tensorboard�log_infor�utilsZ
SummaryWriter�	tb_writer)�selfrC�	file_namerXrrr�__init__hs"4041zLogger.__init__cCs |jrt|tj�|jd��dS)Nzconfig.yaml)r%r5rYr-r[r\)rcr/rrr�save_config�szLogger.save_configTcCsb|js42|s^t|�|jr^t|�}t�d�}d�||�}|�d�sH|d7}|j�|�|j�	�dS)Nz%Y-%m-%d-%H-%Mz{}: {}�43)44r%�printrL�time�strftimerIr2r^r3�flush)rc�infoZ
check_primaryZtime_strrrrr`�s454647zLogger.log_infocKs&|jr"|jdur"|jjfi|��dS�zLog a scalar variable.N)r%rb�48add_scalar�rcZkargsrrrrn�s49zLogger.add_scalarcKs&|jr"|jdur"|jjfi|��dSrm)r%rb�add_scalarsrorrrrp�s50zLogger.add_scalarscKs&|jr"|jdur"|jjfi|��dSrm)r%rb�	add_imagerorrrrq�s51zLogger.add_imagecKs&|jr"|jdur"|jjfi|��dSrm)r%rb�52add_imagesrorrrrr�s53zLogger.add_imagescCs|jr|j��|j��dSr))r%r^rrb)rcrrrr�s54zLogger.closeN)T)�__name__�55__module__�__qualname__rerfr`rnrprqrrrrrrrrUgs56rU�c	Cs�tdd�|��D��dd}d|�d|d�d�S]$}||��|��7}||��7}q2d}d}|��D]$}||��|��7}||��7}qh||d	d	}d|�d|d�d�S)57Ncss|]}|��VqdSr))�numel)r@�prrrrD�rEz!cal_model_size.<locals>.<genexpr>g�@zModel size of z: z.3fz MBri)�sum�58parameters�nelement�element_size�buffers)	�modelrAZall_sizeZ59param_sizeZ	param_sum�param�buffer_sizeZ60buffer_sum�bufferrrr�cal_model_size�sr�)�obj_path�default_obj_pathcCsb|�dd�}t|�dkr"|�d�n|}|d}t�|�}t||�sXtd|�d|�d���t||�S)a� Extract an object from a given path.61    Args:62        obj_path: Path to an object to be extracted, including the object name.63            e.g.: `src.trainers.meta_trainer.MetaTrainer`64                  `src.models.ada_style_speech.AdaStyleSpeechModel`65        default_obj_path: Default object path.66    67    Returns:68        Extracted object.69    Raises:70        AttributeError: When the object does not have the given named attribute.71    72    �.�rzObject `z` cannot be loaded from `z`.)�rsplit�len�pop�	importlib�
import_module�hasattr�AttributeErrorr?)r�r�Z
obj_path_list�obj_name�73module_objrrr�load_obj�s7475r�cst|t�r&����fdd�|��D�St�|�r`t|t�s`t|�����fdd�t�|�D��St|t�r�t|�tur�t|�����fdd�|D��St|ttf�r�t|�����fdd�|D��St|t	j76�r�tt�
|������St|tj��r|������S|SdS)	z'Change the device of object recursivelyc	s"i|]\}}|t|������qSr��	to_device)r@rRrS��copy�device�dtype�non_blockingrr�77<dictcomp>�szto_device.<locals>.<dictcomp>csg|]}t|������qSrr��r@rSr�rr�78<listcomp>�s�zto_device.<locals>.<listcomp>csg|]}t|������qSrr�)r@�or�rrr��rEc3s|]}t|�����VqdSr)r�r�r�rrrD�rEzto_device.<locals>.<genexpr>N)�79isinstancerGrP�dataclasses�is_dataclass�type�astuple�tuple�listr�ndarrayr�r�80from_numpy�Tensor�to)�datar�r�r�r�rr�rr��s*81���� r��pthrcCsPtt�|�j�d|����}t|�|kr@dd�|d|�D�t�||�dS)Nz*.cSsg|]}t�|��qSr)rY�remove)r@�crrrr��rEz#save_checkpoint.<locals>.<listcomp>)rO�pathlib�Path�parent�globr�r�save)�filepath�obj�extZ
num_ckpt_keepZckptsrrr�save_checkpoint�sr��ckpt_cCs8tj�||d�}t�|�}t|�dkr,dSt|�dS)Nz????????.pthr�����)rYr-r[r�r�rO)Zcp_dir�prefix�patternZcp_listrrr�scan_checkpoint�s8283r�)F)N)rv)rv)NNFF)r�r)r�)*r�r�r�r�numpyrrr rYriZtorch.utils.tensorboardrar_rr&rMr+r7�rer��84matplotlibZuseZmatplotlib.pylabZpylabrrr"r%r$r0r5r9r<rT�objectrUr�rLr�r�r�r�rrrr�<module>sB8586	87
G888990