Team Ai
Apppublic

GoodWin/Deep-Multi-scale

sourceHugging Faceupdated 5y agoView on Hugging Face
0likes
base_model.cpython-38.pyc55 linesDownload Raw Back to __pycache__
1U

2C2_��@s:ddlZddlZddlmZddlmZGdd�d�ZdS)�N)�OrderedDict�)�networksc@s�eZdZedd��Zdd�Zdd�Zdd�Zd	d3�Zd(dd
�Z	dd�Z4dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zd)dd �Zd!d"�Zd#d$�Zd*d&d'�ZdS)+�	BaseModelcCs|S�N�)�parserZis_trainrr�./home/lxm/ExpCodes/DFDNet/models/base_model.py�modify_commandline_optionssz$BaseModel.modify_commandline_optionscCsdS)Nrr��selfrrr	�nameszBaseModel.namecCs�||_|j|_|j|_|jr2t�d�|jd��nt�d�|_tj�|j	|j5�|_|jdkrfdtj
j_g|_g|_g|_g|_dS)Nzcuda:{}r�cpuZscale_widthT)�opt�gpu_ids�isTrain�torch�device�format�os�path�join�checkpoints_dirr
�save_dirZresize_or_crop�backends�cudnn�	benchmark�6loss_names�model_names�visual_names�image_paths)rrrrr	�7initializes(89zBaseModel.initializecCs10||_dSr)�input)rr"rrr	�	set_input szBaseModel.set_inputcCsdSrrrrrr	�forward#szBaseModel.forwardNcsD|jr�fdd�|jD�|_|jr(�jr4|��j�|��j�dS)Ncsg|]}t�|���qSr)rZ
get_scheduler)�.0�	optimizer�rrr	�11<listcomp>)sz#BaseModel.setup.<locals>.<listcomp>)r�12optimizers�13schedulersZcontinue_train�
load_networks�which_epoch�print_networks�verbose)rrrrr'r	�setup's14zBaseModel.setupcCs0|jD]$}t|t�rt|d|�}|��qdS)N�net)r�15isinstance�str�getattr�eval)rr
r0rrr	r4/s1617zBaseModel.evalc	Cs t���|��W5QRXdSr)r�no_gradr$rrrr	�test7s18zBaseModel.testcCs|jSr)r rrrr	�get_image_paths<szBaseModel.get_image_pathscCsdSrrrrrr	�optimize_parameters?szBaseModel.optimize_parameterscCs8|jD]}|��q|jdjdd}td|�dS)Nr�lrzlearning rate = %.7f)r*�stepr)�param_groups�print)rZ	schedulerr9rrr	�update_learning_rateCs1920zBaseModel.update_learning_ratecCs.t�}|jD]}t|t�rt||�||<q|Sr)rrr1r2r3)rZ21visual_retr
rrr	�get_current_visualsJs222324zBaseModel.get_current_visualscCs6t�}|jD]$}t|t�rtt|d|��||<q|S)NZloss_)rrr1r2�floatr3)rZ25errors_retr
rrr	�get_current_lossesRs262728zBaseModel.get_current_lossescCs�|jD]�}t|t�rd||f}tj�|j|�}t|d|�}t|j	�dkr~t29j��r~t30�
|j����|�|�|j	d�qt31�
|����|�qdS)N�
%s_net_%s.pthr0r)rr1r2rrrrr3�lenrr�cuda�is_available�save�moduler�32state_dict)rr,r
Z
save_filename�	save_pathr0rrr	�
save_networks[s3334zBaseModel.save_networksrcCs�||}|dt|�kr||jj�d�rT|dks6|dkrTt||�dkrT|�d�|��|jj�d�r�|dkr�|�d�|��n|�|t||�||d�dS)NrZInstanceNorm�running_mean�running_var�.�num_batches_tracked)rB�	__class__�__name__�35startswithr3�popr�*_BaseModel__patch_instance_norm_state_dict)rrGrF�keys�i�keyrrr	Z __patch_instance_norm_state_dicths���z*BaseModel.__patch_instance_norm_state_dictcCs�|jD]�}t|t�rd||f}tj�|j|�}t|d|�}t|tj	j36�rR|j}tj�|�s`qtj
|t|j�d�}t|d�r�|`|��}i}|��D]\}	}37|	|��kr�|38||	<q�|�|�|�|�qdS)NrAr0)�map_location�	_metadata)rr1r2rrrrr3r�nn�DataParallelrF�exists�loadr�hasattrrWrG�itemsrS�update�load_state_dict)rr,r
Z
load_filenameZ	load_pathr0rGZ39model_dictZnew_dict�k�vrrr	r+vs&4041424344zBaseModel.load_networkscCsF|jD]:}t|t�rt|d|�}d}|��D]}||��7}q.qdS)Nr0r)rr1r2r3�45parameters�numel)rr.r
r0Z46num_params�paramrrr	r-�s4748zBaseModel.print_networksFcCs:t|t�s|g}|D] }|dk	r|��D]49}||_q(qdSr)r1�listrb�
requires_grad)rZnetsrfr0rdrrr	�set_requires_grad�s50zBaseModel.set_requires_grad)N)r)F)rO�51__module__�__qualname__�staticmethodr52r
r!r#r$r/r4r6r7r8r=r>r@rIrRr+r-rgrrrr	rs&5354	
55#r)rr�collectionsr�rrrrrr	�<module>s