CoolFace
Apppublic

huggan/FastGan

sourceHugging Faceupdated 4y agoView on Hugging Face
33likes
layers.cpython-39.pyc66 linesDownload Raw Back to __pycache__
1a

2�{]b3#�@s�ddlZddlmZddlmmZddlmZddlm	Z	Gdd�dej4�ZGdd�dej5�ZGdd	�d	ej6�Z
Gd7d�dej8�ZGdd
�d
ej9�ZGdd�dej10�ZGdd�dej11�ZGdd�dej12�ZGdd�dej13�ZGdd�dej14�ZdS)�N)�BatchNorm2d)�
spectral_normcs0eZdZ�fdd�Zejejd�dd�Z�ZS)�SpectralConv2dcs$t���ttj|i|���|_dS�N)�super�__init__r�nn�Conv2d�_conv��self�args�kwargs��	__class__��9H:\My Drive\Personal\HuggingFace\HugGAN\FastGan\layers.pyr15s16�zSpectralConv2d.__init__��input�returncCs17|�|�Sr�r18�rrrrr�forwardszSpectralConv2d.forward��__name__�19__module__�__qualname__r�torch�Tensorr�
__classcell__rrrrrsrcs0eZdZ�fdd�Zejejd�dd�Z�ZS)�SpectralConvTranspose2dcs$t���ttj|i|���|_dSr)rrrr�ConvTranspose2dr20rrrrrs21�z SpectralConvTranspose2d.__init__rcCs22|�|�SrrrrrrrszSpectralConvTranspose2d.forwardrrrrrr sr cs0eZdZ�fdd�Zejejd�dd�Z�ZS)�Noisecs$t���tjt�d�dd�|_dS)N�T)�
requires_grad)rrr�	Parameterr�zeros�_weight)rrrrr"s2324�zNoise.__init__rcCs2|j\}}}}tj|d|||jd�}|j||S)Nr#)�device)�shaper�randnr(r')rr�25batch_size�_�height�width�noiserrrr)sz
Noise.forwardrrrrrr" sr"cs8eZdZeed��fdd�Zejejd�dd�Z�ZS)�	InitLayer��in_channels�out_channelsc26sFt���t�t||dddddd�tj|dd�tjdd��|_dS)	N��r#rF�r2r3�kernel_size�stride�padding�bias��num_features��dim)rrr�27Sequentialr r�GLU�_layers�rr2r3rrrr1s28�29�zInitLayer.__init__rcCs30|�|�Sr�rArrrrrBszInitLayer.forward�	rrr�intrrrrrrrrrr0/s�r0cs<eZdZeed��fdd�Zejejejd�dd�Z�ZS)�SLEBlockr1c
sRt���t�tjdd�t||ddddd�t��t||ddddd�t���|_dS)Nr5��output_sizer#rFr6)	rrrr?�AdaptiveAvgPool2dr�SiLU�SigmoidrArBrrrrHs,3132���zSLEBlock.__init__)�low_dim�high_dimrcCs||�|�SrrC)rrLrMrrrrbszSLEBlock.forwardrDrrrrrFFs��rFcs8eZdZeed��fdd�Zejejd�dd�Z�ZS)�UpsampleBlockT1r1csRt���t�tjddd�t||dddddd�tj|dd	�tjdd33��|_dS�Nr4�nearest)�scale_factor�mode�r#�sameFr6r;r=)	rrrr?�Upsamplerrr@rArBrrrris34�35�zUpsampleBlockT1.__init__rcCs36|�|�SrrCrrrrr{szUpsampleBlockT1.forwardrDrrrrrNgs�rNcs8eZdZeed��fdd�Zejejd�dd�Z�ZS)�UpsampleBlockT2r1cs�t���t�tjddd�t||dddddd�t�t|dd	�tjdd37�t||dddddd�t�tj|dd	�tjdd38��	|_	dSrO)39rrrr?rUrr"rr@rArBrrrr�s440�41�42�zUpsampleBlockT2.__init__rcCs43|�|�SrrCrrrrr�szUpsampleBlockT2.forwardrDrrrrrVs�rVcs8eZdZeed��fdd�Zejejd�dd�Z�ZS)�DownsampleBlockT1r1c44s>t���t�t||ddddd�tj|d�tjdd��|_dS)	Nr5r4r#Fr6r;皙�����?��negative_slope)rrrr?rr�	LeakyReLUrArBrrrr�s45�4647�zDownsampleBlockT1.__init__rcCs48|�|�SrrCrrrrr�szDownsampleBlockT1.forwardrDrrrrrW�s�rWcs8eZdZeed��fdd�Zejejd�dd�Z�ZS)�DownsampleBlockT2r1c
s�t���t�t||ddddd�tj|d�tjdd�t||d	dd49dd�tj|d�tjdd��|_t�tjddd�t||ddddd�tj|d�tjdd��|_	dS)
Nr5r4r#Fr6r;rXrYrSrT)r7r8r)50rrrr?rrr[�	_layers_1�	AvgPool2d�	_layers_2rBrrrr�sN51�5253�5455���5657�zDownsampleBlockT2.__init__rcCs |�|�}|�|�}||dS)Nr4)r]r_)rr�t1�t2rrrr�s5859zDownsampleBlockT2.forwardrDrrrrr\�s�,r\cs8eZdZeed��fdd�Zejejd�dd�Z�ZS)�Decoderr1cs�t���dddddddd�|_t�tjdd�t||jdd	�t|jd|jdd	�t|jd|jdd	�t|jd|jdd	�t|jd|d60ddd
d�t���|_	dS)N��@� ��r5)rfrerdrc�iirGr1rSr#rTFr6)61rr�	_channelsrr?rIrNr�TanhrArBrrrr�s262�6364��zDecoder.__init__rcCs65|�|�SrrCrrrrrszDecoder.forwardrDrrrrrb�s�rb)r�torch.nnrZtorch.nn.functional�66functional�FZtorch.nn.modules.batchnormrZtorch.nn.utilsr�Modulerr r"r0rFrNrVrWr\rbrrrr�<module>s!$4