{ "

StyleGAN 2 Model Training

\n

This is the training code for StyleGAN 2 model.

\n

_^_0_^_

\n

These are _^_1_^_ images generated after training for about 80K steps.

\n

Our implementation is a minimalistic StyleGAN 2 model training code. Only single GPU training is supported to keep the implementation simple. We managed to shrink it to keep it at less than 500 lines of code, including the training loop.

\n

Without DDP (distributed data parallel) and multi-gpu training it will not be possible to train the model for large resolutions (128+). If you want training code with fp16 and DDP take a look at lucidrains/stylegan2-pytorch.

\n

We trained this on CelebA-HQ dataset. You can find the download instruction in this discussion on fast.ai. Save the images inside _^_2_^_ folder.

\n": "

StyleGan 2 \u0d86\u0daf\u0dbb\u0dca\u0dc1 \u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4\u0dc0

\n

\u0dc3\u0db3\u0dc4\u0dcf\u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4 \u0d9a\u0dda\u0dad\u0dba \u0db8\u0dd9\u0dba\u0dba\u0dd2 StyleGan 2 \u0d86\u0d9a\u0dd8\u0dad\u0dd2\u0dba.

\n

_^_0_^_

\n

\u0db8\u0dda\u0dc0\u0dcf80K \u0db4\u0dd2\u0dba\u0dc0\u0dbb \u0dc3\u0db3\u0dc4\u0dcf \u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4\u0dc0\u0dd9\u0db1\u0dca \u0db4\u0dc3\u0dd4 \u0da2\u0db1\u0db1\u0dba \u0d9a\u0dbb\u0db1 \u0dbd\u0daf _^_1_^_ \u0dbb\u0dd6\u0db4 \u0dc0\u0dda.

\n

\u0d85\u0db4\u0d9c\u0dda\u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0dad\u0dca\u0db8\u0d9a \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0d85\u0dc0\u0db8 \u0dc0\u0dda StyleGAN 2 \u0d86\u0daf\u0dbb\u0dca\u0dc1 \u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4 \u0d9a\u0dda\u0dad\u0dba. \u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0dad\u0dca\u0db8\u0d9a \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0dc3\u0dbb\u0dbd \u0dbd\u0dd9\u0dc3 \u0dad\u0db6\u0dcf \u0d9c\u0dd0\u0db1\u0dd3\u0db8 \u0dc3\u0db3\u0dc4\u0dcf \u0dc3\u0dc4\u0dcf\u0dba \u0dc0\u0db1\u0dca\u0db1\u0dda \u0dad\u0db1\u0dd2 GPU \u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4\u0dc0\u0d9a\u0dca \u0db4\u0db8\u0dab\u0dd2. \u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4 \u0dbd\u0dd6\u0db4\u0dba \u0d87\u0dad\u0dd4\u0dc5\u0dd4\u0dc0 \u0d9a\u0dda\u0dad \u0db4\u0dda\u0dc5\u0dd2 500 \u0d9a\u0da7 \u0dc0\u0da9\u0dcf \u0d85\u0da9\u0dd4 \u0db8\u0da7\u0dca\u0da7\u0db8\u0d9a \u0dad\u0db6\u0dcf \u0d9c\u0dd0\u0db1\u0dd3\u0db8 \u0dc3\u0db3\u0dc4\u0dcf \u0d91\u0dba \u0dc4\u0dd0\u0d9a\u0dd2\u0dbd\u0dd3\u0db8\u0da7 \u0d85\u0db4\u0da7 \u0dc4\u0dd0\u0d9a\u0dd2 \u0dc0\u0dd2\u0dba.

\n

\u0da9\u0dd3\u0da9\u0dd3\u0db4\u0dd3(\u0db6\u0dd9\u0daf\u0dcf \u0dc4\u0dbb\u0dd2\u0db1 \u0dbd\u0daf \u0daf\u0dad\u0dca\u0dad \u0dc3\u0db8\u0dcf\u0db1\u0dca\u0dad\u0dbb\u0dc0) \u0dc3\u0dc4 \u0db6\u0dc4\u0dd4-gpu \u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4\u0dc0 \u0db1\u0ddc\u0db8\u0dd0\u0dad\u0dd2\u0dc0 \u0dc0\u0dd2\u0dc1\u0dcf\u0dbd \u0dc0\u0dd2\u0db7\u0dda\u0daf\u0db1 (128+) \u0dc3\u0db3\u0dc4\u0dcf \u0d86\u0d9a\u0dd8\u0dad\u0dd2\u0dba \u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0da7 \u0db1\u0ddc\u0dc4\u0dd0\u0d9a\u0dd2 \u0dc0\u0db1\u0dd4 \u0d87\u0dad. \u0d94\u0db6\u0da7 fp16 \u0dc3\u0dc4 DDP \u0dc3\u0db8\u0d9f \u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4 \u0d9a\u0dda\u0dad\u0dba \u0d85\u0dc0\u0dc1\u0dca\u0dba \u0db1\u0db8\u0dca \u0dbd\u0dd4\u0dc3\u0dd2\u0da9\u0dca\u0dbb\u0dba\u0dd2\u0dc0\u0dca/\u0dc3\u0dca\u0da7\u0dba\u0dd2\u0dbd\u0dd9\u0d9c\u0db1\u0dca2-\u0db4\u0dba\u0dd2\u0da7\u0ddd\u0da0\u0dca\u0daf\u0dd9\u0dc3 \u0db6\u0dbd\u0db1\u0dca\u0db1.

\n

\u0d85\u0db4\u0dd2\u0db8\u0dd9\u0dba \u0dc3\u0dd9\u0dbd\u0dd9\u0db6\u0dcf-\u0d91\u0da0\u0dca\u0d9a\u0dd2\u0dba\u0dd4 \u0daf\u0dad\u0dca\u0dad \u0d9a\u0da7\u0dca\u0da7\u0dbd\u0dba\u0db8\u0dad \u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4 \u0d9a\u0dc5\u0dd9\u0db8\u0dd4. fast.ai \u0dc4\u0dd2 \u0db8\u0dd9\u0db8 \u0dc3\u0dcf\u0d9a\u0da0\u0dca\u0da1\u0dcf\u0dc0\u0dda\u0daf\u0dd3\u0db6\u0dcf\u0d9c\u0dad \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0dda \u0d8b\u0db4\u0daf\u0dd9\u0dc3\u0dca \u0d94\u0db6\u0da7 \u0dc3\u0ddc\u0dba\u0dcf\u0d9c\u0dad \u0dc4\u0dd0\u0d9a\u0dd2\u0dba. _^_2_^_ \u0dc6\u0ddd\u0dbd\u0dca\u0da9\u0dbb\u0dba\u0dad\u0dd4\u0dc5 \u0db4\u0dd2\u0db1\u0dca\u0dad\u0dd6\u0dbb \u0dc3\u0dd4\u0dbb\u0d9a\u0dd2\u0db1\u0dca\u0db1.

\n", "

Configurations

\n": "

\u0dc0\u0dd2\u0db1\u0dca\u0dba\u0dcf\u0dc3\u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0dca

\n", "

Dataset

\n

This loads the training dataset and resize it to the give image size.

\n": "

\u0daf\u0dad\u0dca\u0dad\u0d9a\u0da7\u0dca\u0da7\u0dbd\u0dba

\n

\u0db8\u0dd9\u0dba\u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4 \u0daf\u0dad\u0dca\u0dad \u0d9a\u0da7\u0dca\u0da7\u0dbd\u0dba \u0db4\u0da7\u0dc0\u0db1 \u0d85\u0dad\u0dbb \u0d91\u0dba \u0dbd\u0db6\u0dcf \u0daf\u0dd9\u0db1 \u0dbb\u0dd6\u0db4\u0dba\u0dda \u0db4\u0dca\u0dbb\u0db8\u0dcf\u0dab\u0dba\u0da7 \u0dc0\u0dd9\u0db1\u0dc3\u0dca \u0d9a\u0dbb\u0dba\u0dd2.

\n", "

Train model

\n": "

\u0daf\u0dd4\u0db8\u0dca\u0dbb\u0dd2\u0dba\u0d86\u0d9a\u0dd8\u0dad\u0dd2\u0dba

\n", "

Generate images

\n

This generate images using the generator

\n": "

\u0dbb\u0dd6\u0db4\u0da2\u0db1\u0db1\u0dba \u0d9a\u0dbb\u0db1\u0dca\u0db1

\n

\u0db8\u0dd9\u0dba\u0d8b\u0dad\u0dca\u0db4\u0dcf\u0daf\u0d9a \u0dba\u0db1\u0dca\u0dad\u0dca\u0dbb\u0dba \u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dba\u0dd9\u0db1\u0dca \u0dbb\u0dd6\u0db4 \u0da2\u0db1\u0db1\u0dba \u0d9a\u0dbb\u0dba\u0dd2

\n", "

Generate noise

\n

This generates noise for each generator block

\n": "

\u0dc1\u0db6\u0dca\u0daf\u0dba\u0da2\u0db1\u0db1\u0dba \u0d9a\u0dbb\u0db1\u0dca\u0db1

\n

\u0db8\u0dd9\u0dba\u0d91\u0d9a\u0dca \u0d91\u0d9a\u0dca \u0d8b\u0dad\u0dca\u0db4\u0dcf\u0daf\u0d9a \u0d9a\u0ddc\u0da7\u0dc3\u0dc3\u0db3\u0dc4\u0dcf \u0dc1\u0db6\u0dca\u0daf\u0dba \u0da2\u0db1\u0db1\u0dba \u0d9a\u0dbb\u0dba\u0dd2

\n", "

Initialize

\n": "

\u0d86\u0dbb\u0db8\u0dca\u0db7\u0d9a\u0dbb\u0db1\u0dca\u0db1

\n", "

Lazy regularization

\n

Instead of calculating the regularization losses, the paper proposes lazy regularization where the regularization terms are calculated once in a while. This improves the training efficiency a lot.

\n": "

\u0d9a\u0db8\u0dca\u0db8\u0dd0\u0dbd\u0dd2\u0dc0\u0dd2\u0db0\u0dd2\u0db8\u0dad\u0dca \u0d9a\u0dd2\u0dbb\u0dd3\u0db8

\n

\u0db1\u0dd2\u0dba\u0dcf\u0db8\u0db1\u0dba\u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0dda \u0db4\u0dcf\u0da9\u0dd4 \u0d9c\u0dab\u0db1\u0dba \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0dc0\u0dd9\u0db1\u0dd4\u0dc0\u0da7, \u0d9a\u0da9\u0daf\u0dcf\u0dc3\u0dd2 \u0d9a\u0db8\u0dca\u0db8\u0dd0\u0dbd\u0dd2 \u0db1\u0dd2\u0dba\u0dcf\u0db8\u0db1\u0dba \u0dba\u0ddd\u0da2\u0db1\u0dcf \u0d9a\u0dbb\u0db1 \u0d85\u0dad\u0dbb \u0d91\u0dc4\u0dd2\u0daf\u0dd3 \u0dc0\u0dd2\u0db0\u0dd2\u0db8\u0dad\u0dca \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0dda \u0db1\u0dd2\u0dba\u0db8\u0dba\u0db1\u0dca \u0dc0\u0dbb\u0d9a\u0da7 \u0dc0\u0dbb\u0d9a\u0dca \u0d9c\u0dab\u0db1\u0dba \u0d9a\u0dbb\u0db1\u0dd4 \u0dbd\u0dd0\u0db6\u0dda. \u0db8\u0dd9\u0dba \u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4 \u0d9a\u0dcf\u0dbb\u0dca\u0dba\u0d9a\u0dca\u0dc2\u0db8\u0dad\u0dcf\u0dc0 \u0dc0\u0dd0\u0da9\u0dd2 \u0daf\u0dd2\u0dba\u0dd4\u0dab\u0dd4 \u0d9a\u0dbb\u0dba\u0dd2.

\n", "

Sample _^_0_^_

\n

This samples _^_1_^_ randomly and get _^_2_^_ from the mapping network.

\n

We also apply style mixing sometimes where we generate two latent variables _^_3_^_ and _^_4_^_ and get corresponding _^_5_^_ and _^_6_^_. Then we randomly sample a cross-over point and apply _^_7_^_ to the generator blocks before the cross-over point and _^_8_^_ to the blocks after.

\n": "

\u0db1\u0dd2\u0dba\u0dd0\u0daf\u0dd2\u0dba _^_0_^_

\n

\u0db8\u0dd9\u0db8\u0dc3\u0dcf\u0db8\u0dca\u0db4\u0dbd _^_1_^_ \u0d85\u0dc4\u0db9\u0dd4 \u0dbd\u0dd9\u0dc3 \u0dc3\u0dc4 \u0dc3\u0dd2\u0dad\u0dd2\u0dba\u0db8\u0dca\u0d9a\u0dbb\u0dab _^_2_^_ \u0da2\u0dcf\u0dbd\u0dba\u0dd9\u0db1\u0dca \u0dbd\u0db6\u0dcf \u0d9c\u0db1\u0dca\u0db1.

\n

\u0d92\u0dc0\u0d9c\u0dda\u0db8 \u0d85\u0db4\u0dd2 \u0d9c\u0dd4\u0db4\u0dca\u0dad \u0dc0\u0dd2\u0da0\u0dbd\u0dca\u0dba\u0dba\u0db1\u0dca \u0daf\u0dd9\u0d9a\u0d9a\u0dca \u0da2\u0db1\u0db1\u0dba _^_3_^_ _^_4_^_ _^_5_^_ \u0dc4\u0dcf \u0d85\u0db1\u0dd4\u0dbb\u0dd6\u0db4 \u0dbd\u0db6\u0dcf \u0d91\u0dc4\u0dd2\u0daf\u0dd3 \u0dc3\u0db8\u0dc4\u0dbb \u0dc0\u0dd2\u0da7 \u0dc1\u0ddb\u0dbd\u0dd2\u0dba \u0db8\u0dd2\u0dc1\u0dca\u0dbb \u0d85\u0daf\u0dcf\u0dc5 _^_6_^_\u0dc0\u0dda. \u0d89\u0db1\u0dca\u0db4\u0dc3\u0dd4 \u0d85\u0db4\u0dd2 \u0d85\u0dc4\u0db9\u0dd4 \u0dbd\u0dd9\u0dc3 \u0dc4\u0dbb\u0dc3\u0dca \u0d95\u0dc0\u0dbb\u0dca \u0dbd\u0d9a\u0dca\u0dc2\u0dca\u0dba\u0dba\u0d9a\u0dca \u0dc3\u0dcf\u0db8\u0dca\u0db4\u0dbd \u0d9a\u0dbb \u0dc4\u0dbb\u0dc3\u0dca \u0d95\u0dc0\u0dbb\u0dca _^_7_^_ \u0dbd\u0d9a\u0dca\u0dc2\u0dca\u0dba\u0dba\u0da7 \u0db4\u0dd9\u0dbb \u0d8b\u0dad\u0dca\u0db4\u0dcf\u0daf\u0d9a \u0d9a\u0dd4\u0da7\u0dca\u0da7\u0dd2 _^_8_^_ \u0dc0\u0dbd\u0da7 \u0dc3\u0dc4 \u0db4\u0dc3\u0dd4\u0dc0 \u0d9a\u0dd4\u0da7\u0dca\u0da7\u0dd2 \u0dc0\u0dbd\u0da7 \u0d85\u0daf\u0dcf\u0dc5 \u0dc0\u0dd9\u0db8\u0dd4.

\n", "

Train StyleGAN2

\n": "

\u0daf\u0dd4\u0db8\u0dca\u0dbb\u0dd2\u0dba\u0dc0\u0dd2\u0dbd\u0dcf\u0dbaGan2

\n", "

Training Step

\n": "

\u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4\u0db4\u0dd2\u0dba\u0dc0\u0dbb

\n", "

\n": "

\n", "

StyleGAN2 Discriminator

\n": "

Stylegan2 \u0dc0\u0dd9\u0db1\u0dc3\u0dca\u0d9a\u0db8\u0dca \u0d9a\u0dbb\u0db1\u0dca\u0db1\u0dcf

\n", "

StyleGAN2 Generator

\n": "

StyleGan2 \u0d8b\u0dad\u0dca\u0db4\u0dcf\u0daf\u0d9a \u0dba\u0db1\u0dca\u0dad\u0dca\u0dbb\u0dba

\n", "

Gradient Penalty Regularization Loss

\n": "

Gradient \u0daf\u0dab\u0dca\u0da9\u0db1 \u0db1\u0dd2\u0dba\u0dcf\u0db8\u0db1\u0dba \u0d85\u0d9e\u0dd4 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0da7

\n", "

Mapping network

\n": "

\u0da2\u0dcf\u0dbd \u0dc3\u0dd2\u0dad\u0dd2\u0dba\u0db8\u0dca\u0d9a\u0dbb\u0dab\u0dba

\n", "

Path length penalty

\n": "

\u0db8\u0dcf\u0dbb\u0dca\u0d9c\u0dba \u0daf\u0dd2\u0d9c \u0daf\u0dac\u0dd4\u0dc0\u0db8

\n", "

We trained this on CelebA-HQ dataset. You can find the download instruction in this discussion on fast.ai. Save the images inside _^_0_^_ folder.

\n": "

\u0d85\u0db4\u0dd2 \u0db8\u0dd9\u0dba \u0dc3\u0dd9\u0dbd\u0dd9\u0db6\u0dcf-\u0d91\u0da0\u0dca\u0d9a\u0dd2\u0dba\u0dd4 \u0daf\u0dad\u0dca\u0dad \u0d9a\u0da7\u0dca\u0da7\u0dbd\u0dba \u0db8\u0dad \u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4 \u0d9a\u0dc5\u0dd9\u0db8\u0dd4. fast.ai \u0dc4\u0dd2 \u0db8\u0dd9\u0db8 \u0dc3\u0dcf\u0d9a\u0da0\u0dca\u0da1\u0dcf\u0dc0\u0dda\u0daf\u0dd3\u0db6\u0dcf\u0d9c\u0dad \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0dda \u0d8b\u0db4\u0daf\u0dd9\u0dc3\u0dca \u0d94\u0db6\u0da7 \u0dc3\u0ddc\u0dba\u0dcf\u0d9c\u0dad \u0dc4\u0dd0\u0d9a\u0dd2\u0dba. _^_0_^_ \u0dc6\u0ddd\u0dbd\u0dca\u0da9\u0dbb\u0dba \u0dad\u0dd4\u0dc5 \u0db4\u0dd2\u0db1\u0dca\u0dad\u0dd6\u0dbb \u0dc3\u0dd4\u0dbb\u0d9a\u0dd2\u0db1\u0dca\u0db1.

\n", "

_^_0_^_ and _^_1_^_ for Adam optimizer

\n": "

_^_0_^_ \u0dc3\u0dc4 \u0d86\u0daf\u0db8\u0dca \u0db4\u0dca\u0dbb\u0dc1\u0dc3\u0dca\u0dad\u0d9a\u0dbb\u0dab\u0dba _^_1_^_ \u0dc3\u0db3\u0dc4\u0dcf

\n", "

_^_0_^_ of image resolution

\n": "

_^_0_^_ \u0dbb\u0dd6\u0db4 \u0dc0\u0dd2\u0db7\u0dda\u0daf\u0db1\u0dba\u0dda

\n", "

Accumulate gradients for _^_0_^_

\n": "

\u0dc3\u0db3\u0dc4\u0dcf\u0d85\u0db1\u0dd4\u0d9a\u0dca\u0dbb\u0db8\u0dd2\u0d9a \u0dc3\u0db8\u0dd4\u0da0\u0dca\u0da0\u0dba _^_0_^_

\n", "

Add gradient penalty

\n": "

\u0dc1\u0dca\u0dbb\u0dda\u0dab\u0dd2\u0dba\u0dda\u0daf penalty \u0dd4\u0dc0\u0db8 \u0d91\u0d9a\u0dad\u0dd4 \u0d9a\u0dbb\u0db1\u0dca\u0db1

\n", "

Add model hooks to monitor layer outputs

\n": "

\u0dc3\u0dca\u0dae\u0dbb\u0db4\u0dca\u0dbb\u0dad\u0dd2\u0daf\u0dcf\u0db1\u0dba\u0db1\u0dca \u0d85\u0db0\u0dd3\u0d9a\u0dca\u0dc2\u0dab\u0dba \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0dc3\u0db3\u0dc4\u0dcf \u0d86\u0daf\u0dbb\u0dca\u0dc1 \u0d9a\u0ddc\u0d9a\u0dd4 \u0d91\u0d9a\u0dca \u0d9a\u0dbb\u0db1\u0dca\u0db1

\n", "

Add noise tensors to the list

\n": "

\u0dbd\u0dd0\u0dba\u0dd2\u0dc3\u0dca\u0dad\u0dd4\u0dc0\u0da7\u0dc1\u0db6\u0dca\u0daf \u0d86\u0dad\u0dad\u0dd3\u0db1\u0dca \u0d91\u0d9a\u0dca \u0d9a\u0dbb\u0db1\u0dca\u0db1

\n", "

Add path length penalty

\n": "

\u0db8\u0dcf\u0dbb\u0dca\u0d9c\u0daf\u0dd2\u0d9c \u0daf penalty \u0dd4\u0dc0\u0db8 \u0d91\u0d9a\u0dad\u0dd4

\n", "

Batch size

\n": "

\u0d9a\u0dab\u0dca\u0da9\u0dcf\u0dba\u0db8\u0dca\u0db4\u0dca\u0dbb\u0db8\u0dcf\u0dab\u0dba

\n", "

Calculate and log gradient penalty

\n": "

\u0dc1\u0dca\u0dbb\u0dda\u0dab\u0dd2\u0dba\u0dda\u0daf penalty \u0dd4\u0dc0\u0db8 \u0d9c\u0dab\u0db1\u0dba \u0d9a\u0dbb \u0dbd\u0ddc\u0d9c\u0dca \u0d9a\u0dbb\u0db1\u0dca\u0db1

\n", "

Calculate gradients

\n": "

\u0d85\u0db1\u0dd4\u0d9a\u0dca\u0dbb\u0db8\u0dd2\u0d9a\u0d9c\u0dab\u0db1\u0dba \u0d9a\u0dbb\u0db1\u0dca\u0db1

\n", "

Calculate path length penalty

\n": "

\u0db8\u0dcf\u0dbb\u0dca\u0d9c\u0dba\u0daf\u0dd2\u0d9c \u0daf penalty \u0dd4\u0dc0\u0db8 \u0d9c\u0dab\u0db1\u0dba

\n", "

Clip gradients for stabilization

\n": "

\u0dc3\u0dca\u0dae\u0dcf\u0dba\u0dd3\u0d9a\u0dbb\u0dab\u0dba\u0dc3\u0db3\u0dc4\u0dcf \u0d9a\u0dca\u0dbd\u0dd2\u0db4\u0dca \u0d85\u0db1\u0dd4\u0d9a\u0dca\u0dbb\u0db8\u0dd2\u0d9a

\n", "

Compute gradients

\n": "

\u0d85\u0db1\u0dd4\u0d9a\u0dca\u0dbb\u0db8\u0dd2\u0d9a\u0d9c\u0dab\u0db1\u0dba

\n", "

Continuous cyclic loader

\n": "

\u0d85\u0d9b\u0dab\u0dca\u0da9 \u0da0\u0d9a\u0dca\u0dbb\u0dd3\u0dba \u0d9a\u0dcf\u0dbb\u0d9a\u0dba

\n", "

Convert to PyTorch tensor

\n": "

PyTorch\u0da7\u0dd9\u0db1\u0dca\u0dc3\u0dbb\u0dba \u0db6\u0dc0\u0da7 \u0db4\u0dbb\u0dd2\u0dc0\u0dbb\u0dca\u0dad\u0db1\u0dba \u0d9a\u0dbb\u0db1\u0dca\u0db1

\n", "

Create an experiment

\n": "

\u0d85\u0dad\u0dca\u0dc4\u0daf\u0dcf\u0db6\u0dd0\u0dbd\u0dd3\u0db8\u0d9a\u0dca \u0dc3\u0dcf\u0daf\u0db1\u0dca\u0db1

\n", "

Create configurations object

\n": "

\u0dc0\u0dd2\u0db1\u0dca\u0dba\u0dcf\u0dc3\u0dc0\u0dc3\u0dca\u0dad\u0dd4\u0dc0 \u0dc3\u0dcf\u0daf\u0db1\u0dca\u0db1

\n", "

Create data loader

\n": "

\u0daf\u0dad\u0dca\u0dad\u0db4\u0dd0\u0da7\u0dc0\u0dd4\u0db8 \u0dc3\u0dcf\u0daf\u0db1\u0dca\u0db1

\n", "

Create dataset

\n": "

\u0daf\u0dad\u0dca\u0dad\u0dc3\u0db8\u0dd4\u0daf\u0dcf\u0dba \u0dc3\u0dcf\u0daf\u0db1\u0dca\u0db1

\n", "

Create discriminator and generator

\n": "

\u0dc0\u0dd9\u0db1\u0dc3\u0dca\u0d9a\u0db8\u0dca\u0d9a\u0dbb\u0db1\u0dca\u0db1\u0dcf \u0dc3\u0dc4 \u0d8b\u0dad\u0dca\u0db4\u0dcf\u0daf\u0d9a \u0dba\u0db1\u0dca\u0dad\u0dca\u0dbb\u0dba \u0dc3\u0dcf\u0daf\u0db1\u0dca\u0db1

\n", "

Create mapping network

\n": "

\u0dc3\u0dd2\u0dad\u0dd2\u0dba\u0db8\u0dca\u0d9a\u0dbb\u0dab\u0da2\u0dcf\u0dbd\u0dba\u0d9a\u0dca \u0dc3\u0dcf\u0daf\u0db1\u0dca\u0db1

\n", "

Create optimizers

\n": "

\u0db4\u0dca\u0dbb\u0dc1\u0dc3\u0dca\u0dad\u0d9a\u0dbb\u0dab\u0dba\u0dc3\u0dcf\u0daf\u0db1\u0dca\u0db1

\n", "

Create path length penalty loss

\n": "

\u0db8\u0dcf\u0dbb\u0dca\u0d9c\u0daf\u0dd2\u0d9c \u0daf penalty \u0dd4\u0dc0\u0db8\u0dca \u0db1\u0dd0\u0dad\u0dd2\u0dc0\u0dd3\u0db8

\n", "

Data loader

\n": "

\u0daf\u0dad\u0dca\u0dad\u0d9a\u0dcf\u0dbb\u0d9a\u0dba

\n", "

Device to train the model on. _^_0_^_ picks up an available CUDA device or defaults to CPU.

\n": "

\u0d86\u0d9a\u0dd8\u0dad\u0dd2\u0dba\u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0dda \u0d8b\u0db4\u0d9a\u0dbb\u0dab\u0dba. _^_0_^_ \u0dbd\u0db6\u0dcf \u0d9c\u0dad \u0dc4\u0dd0\u0d9a\u0dd2 CUDA \u0d8b\u0db4\u0dcf\u0d82\u0d9c\u0dba\u0d9a\u0dca \u0d85\u0dc4\u0dd4\u0dbd\u0db1\u0dc0\u0dcf \u0dc4\u0ddd CPU \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0da7 \u0db4\u0dd9\u0dbb\u0db1\u0dd2\u0db8\u0dd2.

\n", "

Dimensionality of _^_0_^_ and _^_1_^_

\n": "

\u0db8\u0dcf\u0db1\u0dba\u0db1\u0dca\u0dc4\u0dd2 _^_0_^_ \u0dc3\u0dc4 _^_1_^_

\n", "

Discriminator and generator loss functions. We use Wasserstein loss

\n": "

\u0dc0\u0dd9\u0db1\u0dc3\u0dca\u0d9a\u0db8\u0dca\u0d9a\u0dbb\u0db1\u0dca\u0db1\u0dcf \u0dc3\u0dc4 \u0d8b\u0dad\u0dca\u0db4\u0dcf\u0daf\u0d9a \u0db1\u0dd0\u0dad\u0dd2\u0dc0\u0dd3\u0db8\u0dda \u0d9a\u0dcf\u0dbb\u0dca\u0dba\u0dba\u0db1\u0dca. \u0d85\u0db4\u0dd2 \u0dc0\u0ddc\u0dc3\u0dbb\u0dca\u0dc3\u0dca\u0da7\u0dba\u0dd2\u0db1\u0dca \u0db1\u0dd0\u0dad\u0dd2\u0dc0\u0dd3\u0db8 \u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dcf \u0d9a\u0dbb\u0db8\u0dd4

\n", "

Discriminator and generator losses

\n": "

\u0dc0\u0dd9\u0db1\u0dc3\u0dca\u0d9a\u0db8\u0dca\u0d9a\u0dbb\u0db1\u0dca\u0db1\u0dcf \u0dc3\u0dc4 \u0d8b\u0dad\u0dca\u0db4\u0dcf\u0daf\u0d9a \u0db4\u0dcf\u0da9\u0dd4

\n", "

Discriminator classification for generated images

\n": "

\u0da2\u0db1\u0db1\u0dba\u0d9a\u0dbb\u0db1 \u0dbd\u0daf \u0dbb\u0dd6\u0db4 \u0dc3\u0db3\u0dc4\u0dcf \u0dc0\u0dd9\u0db1\u0dc3\u0dca\u0d9a\u0db8\u0dca \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0dda \u0dc0\u0dbb\u0dca\u0d9c\u0dd3\u0d9a\u0dbb\u0dab\u0dba

\n", "

Discriminator classification for real images

\n": "

\u0dc3\u0dd0\u0db6\u0dd1\u0dbb\u0dd6\u0db4 \u0dc3\u0db3\u0dc4\u0dcf \u0dc0\u0dd9\u0db1\u0dc3\u0dca\u0d9a\u0db8\u0dca \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0dda \u0dc0\u0dbb\u0dca\u0d9c\u0dd3\u0d9a\u0dbb\u0dab\u0dba

\n", "

Expand _^_0_^_ and _^_1_^_ for the generator blocks and concatenate

\n": "

\u0d8b\u0dad\u0dca\u0db4\u0dcf\u0daf\u0d9a\u0d9a\u0dd4\u0da7\u0dca\u0da7\u0dd2 _^_0_^_ \u0dc3\u0dc4 \u0dc3\u0d82\u0dba\u0dd4\u0d9a\u0dca\u0dad \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 _^_1_^_ \u0dc3\u0db3\u0dc4\u0dcf \u0db4\u0dd4\u0dc5\u0dd4\u0dbd\u0dca \u0d9a\u0dbb\u0db1\u0dca\u0db1

\n", "

Expand _^_0_^_ for the generator blocks

\n": "

\u0d8b\u0dad\u0dca\u0db4\u0dcf\u0daf\u0d9a\u0d9a\u0ddc\u0da7\u0dc3\u0dca _^_0_^_ \u0dc3\u0db3\u0dc4\u0dcf \u0db4\u0dd4\u0dc5\u0dd4\u0dbd\u0dca \u0d9a\u0dbb\u0db1\u0dca\u0db1

\n", "

Flush tracker

\n": "

\u0dc6\u0dca\u0dbd\u0dc2\u0dca\u0da7\u0dca\u0dbb\u0dd0\u0d9a\u0dbb\u0dca

\n", "

Generate images

\n": "

\u0dbb\u0dd6\u0db4\u0da2\u0db1\u0db1\u0dba \u0d9a\u0dbb\u0db1\u0dca\u0db1

\n", "

Generate noise for each generator block

\n": "

\u0d91\u0d9a\u0dca\u0d91\u0d9a\u0dca \u0d8b\u0dad\u0dca\u0db4\u0dcf\u0daf\u0d9a \u0d9a\u0ddc\u0da7\u0dc3 \u0dc3\u0db3\u0dc4\u0dcf \u0dc1\u0db6\u0dca\u0daf\u0dba \u0da2\u0db1\u0db1\u0dba \u0d9a\u0dbb\u0db1\u0dca\u0db1

\n", "

Generate noise to add after the first convolution layer

\n": "

\u0db4\u0dc5\u0db8\u0dd4\u0d9a\u0dd0\u0da7\u0dd2 \u0d9c\u0dd0\u0dc3\u0dd4\u0dab\u0dd4 \u0dc3\u0dca\u0dae\u0dbb\u0dba\u0dd9\u0db1\u0dca \u0db4\u0dc3\u0dd4 \u0d91\u0d9a\u0dad\u0dd4 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0dc3\u0db3\u0dc4\u0dcf \u0dc1\u0db6\u0dca\u0daf\u0dba \u0da2\u0db1\u0db1\u0dba \u0d9a\u0dbb\u0db1\u0dca\u0db1

\n", "

Generate noise to add after the second convolution layer

\n": "

\u0daf\u0dd9\u0dc0\u0db1\u0d9a\u0dd0\u0da7\u0dd2 \u0d9c\u0dd0\u0dc3\u0dd4\u0dab\u0dd4 \u0dc3\u0dca\u0dae\u0dbb\u0dba\u0da7 \u0db4\u0dc3\u0dd4 \u0d91\u0d9a\u0dad\u0dd4 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0dc3\u0db3\u0dc4\u0dcf \u0dc1\u0db6\u0dca\u0daf\u0dba \u0da2\u0db1\u0db1\u0dba \u0d9a\u0dbb\u0db1\u0dca\u0db1

\n", "

Generator & Discriminator learning rate

\n": "

\u0d8b\u0dad\u0dca\u0db4\u0dcf\u0daf\u0d9a\u0dc3\u0dc4 \u0dc0\u0dd9\u0db1\u0dc3\u0dca\u0d9a\u0db8\u0dca \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0dda \u0d89\u0d9c\u0dd9\u0db1\u0dd4\u0db8\u0dca \u0d85\u0db1\u0dd4\u0db4\u0dcf\u0dad\u0dba

\n", "

Get _^_0_^_

\n": "

\u0dbd\u0db6\u0dcf\u0d9c\u0db1\u0dca\u0db1 _^_0_^_

\n", "

Get _^_0_^_ and _^_1_^_

\n": "

\u0dbd\u0db6\u0dcf _^_0_^_ \u0d9c\u0db1\u0dca\u0db1 _^_1_^_

\n", "

Get discriminator loss

\n": "

\u0dc0\u0dd9\u0db1\u0dc3\u0dca\u0d9a\u0db8\u0dca\u0d9a\u0dbb\u0db1\u0dca\u0db1\u0dcf\u0d9c\u0dda \u0db4\u0dcf\u0da9\u0dd4\u0dc0 \u0dbd\u0db6\u0dcf \u0d9c\u0db1\u0dca\u0db1

\n", "

Get generator loss

\n": "

\u0d8b\u0dad\u0dca\u0db4\u0dcf\u0daf\u0d9a\u0db1\u0dd0\u0dad\u0dd2\u0dc0\u0dd3\u0db8 \u0dbd\u0db6\u0dcf \u0d9c\u0db1\u0dca\u0db1

\n", "

Get noise

\n": "

\u0dc1\u0db6\u0dca\u0daf\u0dba\u0dbd\u0db6\u0dcf \u0d9c\u0db1\u0dca\u0db1

\n", "

Get number of generator blocks for creating style and noise inputs

\n": "

\u0dc1\u0ddb\u0dbd\u0dd2\u0dba\u0dc3\u0dc4 \u0dc1\u0db6\u0dca\u0daf \u0dba\u0dd9\u0daf\u0dc0\u0dd4\u0db8\u0dca \u0db1\u0dd2\u0dbb\u0dca\u0db8\u0dcf\u0dab\u0dba \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0dc3\u0db3\u0dc4\u0dcf \u0d8b\u0dad\u0dca\u0db4\u0dcf\u0daf\u0d9a \u0d9a\u0ddc\u0da7\u0dc3\u0dca \u0d9c\u0dab\u0db1 \u0dbd\u0db6\u0dcf \u0d9c\u0db1\u0dca\u0db1

\n", "

Get real images from the data loader

\n": "

\u0daf\u0dad\u0dca\u0dad\u0db4\u0dd0\u0da7\u0dc0\u0dd4\u0db8\u0dd9\u0db1\u0dca \u0dc3\u0dd0\u0db6\u0dd1 \u0dbb\u0dd6\u0db4 \u0dbd\u0db6\u0dcf \u0d9c\u0db1\u0dca\u0db1

\n", "

Get the paths of all _^_0_^_ files

\n": "

\u0dc3\u0dd2\u0dba\u0dbd\u0dd4\u0db8 _^_0_^_ \u0dbd\u0dd2\u0db4\u0dd2\u0d9c\u0ddc\u0db1\u0dd4 \u0dc0\u0dbd \u0db8\u0dcf\u0dbb\u0dca\u0d9c \u0dbd\u0db6\u0dcf \u0d9c\u0db1\u0dca\u0db1

\n", "

Get the the _^_0_^_-th image

\n": "

_^_0_^_-th \u0dbb\u0dd6\u0db4\u0dba \u0dbd\u0db6\u0dcf \u0d9c\u0db1\u0dca\u0db1

\n", "

Gradient penalty coefficient _^_0_^_

\n": "

\u0dc1\u0dca\u0dbb\u0dda\u0dab\u0dd2\u0dba\u0dda\u0daf\u0dab\u0dca\u0da9\u0db1 \u0dc3\u0d82\u0d9c\u0dd4\u0dab\u0d9a\u0dba _^_0_^_

\n", "

Height/width of the image

\n": "

\u0dbb\u0dd6\u0db4\u0dba\u0dda\u0d8b\u0dc3/\u0db4\u0dc5\u0dbd

\n", "

How often to log generated images

\n": "

\u0da2\u0db1\u0db1\u0dba\u0d9a\u0dbb\u0db1 \u0dbd\u0daf \u0db4\u0dd2\u0db1\u0dca\u0dad\u0dd6\u0dbb \u0dbd\u0ddc\u0d9c\u0dca \u0d9a\u0dbb\u0db1\u0dca\u0db1\u0dda \u0d9a\u0dd9\u0dc3\u0dda\u0daf?

\n", "

How often to save model checkpoints

\n": "

\u0d86\u0daf\u0dbb\u0dca\u0dc1\u0db8\u0dd4\u0dbb\u0db4\u0ddc\u0dbd\u0dc0\u0dbd\u0dca \u0dc3\u0dd4\u0dbb\u0dd0\u0d9a\u0dd3\u0db8\u0da7 \u0d9a\u0ddc\u0db4\u0db8\u0dab \u0dc0\u0dcf\u0dbb\u0dba\u0d9a\u0dca

\n", "

Ignore if _^_0_^_

\n": "

\u0db1\u0db8\u0dca\u0db1\u0ddc\u0dc3\u0dbd\u0d9a\u0dcf \u0dc4\u0dbb\u0dd2\u0db1\u0dca\u0db1 _^_0_^_

\n", "

Initialize

\n": "

\u0d86\u0dbb\u0db8\u0dca\u0db7\u0d9a\u0dbb\u0db1\u0dca\u0db1

\n", "

List to store noise

\n": "

\u0dc1\u0db6\u0dca\u0daf\u0dba\u0d9c\u0db6\u0da9\u0dcf \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0da7 \u0dbd\u0dd0\u0dba\u0dd2\u0dc3\u0dca\u0dad\u0dd4\u0dc0

\n", "

Log discriminator loss

\n": "

\u0dbd\u0ddc\u0d9c\u0dca\u0dc0\u0dd9\u0db1\u0dc3\u0dca\u0d9a\u0db8\u0dca \u0d9a\u0dbb\u0db1\u0dca\u0db1\u0dcf\u0d9c\u0dda \u0d85\u0dbd\u0dcf\u0db7\u0dba

\n", "

Log discriminator model parameters occasionally

\n": "

\u0dc0\u0dd2\u0da7\u0dd2\u0db1\u0dca\u0dc0\u0dd2\u0da7 \u0dbd\u0ddc\u0d9c\u0dca \u0dc0\u0dd9\u0db1\u0dc3\u0dca\u0d9a\u0db8\u0dca \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0dda \u0d86\u0d9a\u0dd8\u0dad\u0dd2 \u0db4\u0dbb\u0dcf\u0db8\u0dd2\u0dad\u0dd3\u0db1\u0dca

\n", "

Log generated images

\n": "

\u0dbd\u0ddc\u0d9c\u0dca\u0da2\u0db1\u0db1\u0dba \u0d9a\u0dbb\u0db1 \u0dbd\u0daf \u0dbb\u0dd6\u0db4

\n", "

Log generator loss

\n": "

\u0dbd\u0ddc\u0d9c\u0dca\u0d8b\u0dad\u0dca\u0db4\u0dcf\u0daf\u0d9a \u0db1\u0dd0\u0dad\u0dd2\u0dc0\u0dd3\u0db8

\n", "

Loop for _^_0_^_

\n": "

\u0dbd\u0dd6\u0db4\u0dca\u0dc3\u0db3\u0dc4\u0dcf _^_0_^_

\n", "

Mapping network learning rate (_^_0_^_ lower than the others)

\n": "

\u0da2\u0dcf\u0dbd\u0d89\u0d9c\u0dd9\u0db1\u0dd4\u0db8\u0dca \u0d85\u0db1\u0dd4\u0db4\u0dcf\u0dad\u0dba \u0dc3\u0dd2\u0dad\u0dd2\u0dba\u0db8\u0dca\u0d9c\u0dad \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 (\u0d85\u0db1\u0dd9\u0d9a\u0dca \u0d92\u0dc0\u0dcf\u0da7 \u0dc0\u0da9\u0dcf_^_0_^_ \u0d85\u0da9\u0dd4)

\n", "

Mix styles

\n": "

\u0db8\u0ddd\u0dc3\u0dca\u0dad\u0dbb\u0db8\u0dd2\u0dc1\u0dca\u0dbb \u0d9a\u0dbb\u0db1\u0dca\u0db1

\n", "

Multiply by coefficient and add gradient penalty

\n": "

\u0dc3\u0d82\u0d9c\u0dd4\u0dab\u0d9a\u0dba\u0db8\u0d9c\u0dd2\u0db1\u0dca \u0d9c\u0dd4\u0dab \u0d9a\u0dbb \u0dc1\u0dca\u0dbb\u0dda\u0dab\u0dd2\u0dba\u0dda \u0daf penalty \u0dd4\u0dc0\u0db8 \u0d91\u0d9a\u0dad\u0dd4 \u0d9a\u0dbb\u0db1\u0dca\u0db1

\n", "

Next block has _^_0_^_ resolution

\n": "

\u0d8a\u0dc5\u0d9f\u0dc0\u0dcf\u0dbb\u0dab\u0dba\u0da7 _^_0_^_ \u0dc0\u0dd2\u0db7\u0dda\u0daf\u0db1\u0dba\u0d9a\u0dca \u0d87\u0dad

\n", "

Noise resolution starts from _^_0_^_

\n": "

\u0dc1\u0db6\u0dca\u0daf\u0dc0\u0dd2\u0db7\u0dda\u0daf\u0db1\u0dba \u0d86\u0dbb\u0db8\u0dca\u0db7 \u0dc0\u0db1\u0dca\u0db1\u0dda _^_0_^_

\n", "

Number of blocks in the generator (calculated based on image resolution)

\n": "

\u0d8b\u0dad\u0dca\u0db4\u0dcf\u0daf\u0d9a\u0dba\u0db1\u0dca\u0dad\u0dca\u0dbb\u0dba\u0dda \u0db6\u0dca\u0dbd\u0ddc\u0d9a\u0dca \u0d9c\u0dab\u0db1 (\u0dbb\u0dd6\u0db4 \u0dc0\u0dd2\u0db7\u0dda\u0daf\u0db1\u0dba \u0db8\u0dad \u0db4\u0daf\u0db1\u0db8\u0dca\u0dc0 \u0d9c\u0dab\u0db1\u0dba \u0d9a\u0dbb\u0db1\u0dd4 \u0dbd\u0dd0\u0db6\u0dda)

\n", "

Number of images

\n": "

\u0dbb\u0dd6\u0db4\u0d9c\u0dab\u0db1

\n", "

Number of layers in the mapping network

\n": "

\u0dc3\u0dd2\u0dad\u0dd2\u0dba\u0db8\u0dca\u0d9a\u0dbb\u0dab\u0da2\u0dcf\u0dbd\u0dba\u0dda \u0dc3\u0dca\u0dae\u0dbb \u0d9c\u0dab\u0db1

\n", "

Number of steps to accumulate gradients on. Use this to increase the effective batch size.

\n": "

\u0db8\u0dad\u0db5\u0dbd\u0dba \u0d85\u0db1\u0dd4\u0d9a\u0dca\u0dbb\u0db8\u0dd2\u0d9a \u0dc3\u0db8\u0dd4\u0da0\u0dca\u0da0\u0dba \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0da7 \u0db4\u0dd2\u0dba\u0dc0\u0dbb \u0d9c\u0dab\u0db1. Effective \u0dbd\u0daf\u0dcf\u0dba\u0dd3 \u0d9a\u0dab\u0dca\u0da9\u0dcf\u0dba\u0db8\u0dca \u0db4\u0dca\u0dbb\u0db8\u0dcf\u0dab\u0dba \u0dc0\u0dd0\u0da9\u0dd2 \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0da7 \u0db8\u0dd9\u0dba \u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dcf \u0d9a\u0dbb\u0db1\u0dca\u0db1.

\n", "

Optimizers

\n": "

\u0db4\u0dca\u0dbb\u0dc1\u0dc3\u0dca\u0dad\u0d9a\u0dbb\u0dab\u0dba

\n", "

Path length penalty calculation interval

\n": "

\u0db8\u0dcf\u0dbb\u0dca\u0d9c\u0daf\u0dd2\u0d9c \u0daf penalty \u0dd4\u0dc0\u0db8\u0dca \u0d9c\u0dab\u0db1\u0dba \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0dda \u0db4\u0dbb\u0dad\u0dbb\u0dba

\n", "

Probability of mixing styles

\n": "

\u0db8\u0ddd\u0dc3\u0dca\u0dad\u0dbb\u0db8\u0dd2\u0dc1\u0dca\u0dbb \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0dda \u0dc3\u0db8\u0dca\u0db7\u0dcf\u0dc0\u0dd2\u0dad\u0dcf\u0dc0

\n", "

Random cross-over point

\n": "

\u0d85\u0dc4\u0db9\u0dd4\u0dc4\u0dbb\u0dc3\u0dca \u0d95\u0dc0\u0dbb\u0dca \u0dbd\u0d9a\u0dca\u0dc2\u0dca\u0dba\u0dba

\n", "

Reset gradients

\n": "

\u0d85\u0db1\u0dd4\u0d9a\u0dca\u0dbb\u0db8\u0dd2\u0d9a\u0dba\u0dc5\u0dd2 \u0db4\u0dd2\u0dc4\u0dd2\u0da7\u0dd4\u0dc0\u0db1\u0dca\u0db1

\n", "

Resize the image

\n": "

\u0dbb\u0dd6\u0db4\u0dba\u0dc0\u0dd9\u0db1\u0dc3\u0dca \u0d9a\u0dbb\u0db1\u0dca\u0db1

\n", "

Return images and _^_0_^_

\n": "

\u0d86\u0db4\u0dc3\u0dd4\u0db4\u0dd2\u0db1\u0dca\u0dad\u0dd6\u0dbb \u0dc3\u0dc4 _^_0_^_

\n", "

Return noise tensors

\n": "

\u0d86\u0db4\u0dc3\u0dd4\u0dc1\u0db6\u0dca\u0daf \u0d86\u0dad\u0dad\u0dd3\u0db1\u0dca

\n", "

Run the training loop

\n": "

\u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4\u0dbd\u0dd6\u0db4\u0dba \u0db0\u0dcf\u0dc0\u0db1\u0dba \u0d9a\u0dbb\u0db1\u0dca\u0db1

\n", "

Sample _^_0_^_ and _^_1_^_

\n": "

\u0db1\u0dd2\u0dba\u0dd0\u0daf\u0dd2\u0dba _^_0_^_ \u0dc3\u0dc4 _^_1_^_

\n", "

Sample images from generator

\n": "

\u0d8b\u0dad\u0dca\u0db4\u0dcf\u0daf\u0d9a\u0dba\u0db1\u0dca\u0dad\u0dca\u0dbb\u0dba\u0dd9\u0db1\u0dca \u0db1\u0dd2\u0dba\u0dd0\u0daf\u0dd2 \u0db4\u0dd2\u0db1\u0dca\u0dad\u0dd6\u0dbb

\n", "

Save model checkpoints

\n": "

\u0d86\u0daf\u0dbb\u0dca\u0dc1\u0db8\u0dd4\u0dbb\u0db4\u0ddc\u0dbd\u0dc0\u0dbd\u0dca \u0dc3\u0dd4\u0dbb\u0d9a\u0dd2\u0db1\u0dca\u0db1

\n", "

Set configurations and override some

\n": "

\u0dc0\u0dd2\u0db1\u0dca\u0dba\u0dcf\u0dc3\u0dba\u0db1\u0dca\u0dc3\u0d9a\u0dc3\u0db1\u0dca\u0db1 \u0dc3\u0dc4 \u0dc3\u0db8\u0dc4\u0dbb \u0d92\u0dc0\u0dcf \u0d85\u0db7\u0dd2\u0db6\u0dc0\u0dcf \u0dba\u0db1\u0dca\u0db1

\n", "

Set models for saving and loading

\n": "

\u0d89\u0dad\u0dd2\u0dbb\u0dd2\u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0dc3\u0dc4 \u0db4\u0dd0\u0da7\u0dc0\u0dd3\u0db8 \u0dc3\u0db3\u0dc4\u0dcf \u0d86\u0d9a\u0dd8\u0dad\u0dd2 \u0dc3\u0d9a\u0dc3\u0db1\u0dca\u0db1

\n", "

Set tracker configurations

\n": "

\u0da7\u0dca\u0dbb\u0dd0\u0d9a\u0dbb\u0dca\u0dc0\u0dd2\u0db1\u0dca\u0dba\u0dcf\u0dc3\u0dba\u0db1\u0dca \u0dc3\u0d9a\u0dc3\u0db1\u0dca\u0db1

\n", "

Skip calculating path length penalty during the initial phase of training

\n": "

\u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4\u0dc0\u0dda\u0d86\u0dbb\u0db8\u0dca\u0db7\u0d9a \u0d85\u0daf\u0dd2\u0dba\u0dbb\u0dda\u0daf\u0dd3 \u0db8\u0dcf\u0dbb\u0dca\u0d9c \u0daf\u0dd2\u0d9c \u0daf penalty \u0dd4\u0dc0\u0db8 \u0d9c\u0dab\u0db1\u0dba \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0db8\u0d9f \u0dc4\u0dbb\u0dd2\u0db1\u0dca\u0db1

\n", "

Start the experiment

\n": "

\u0d85\u0dad\u0dca\u0dc4\u0daf\u0dcf\u0db6\u0dd0\u0dbd\u0dd3\u0db8 \u0d86\u0dbb\u0db8\u0dca\u0db7 \u0d9a\u0dbb\u0db1\u0dca\u0db1

\n", "

Take a training step

\n": "

\u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4\u0db4\u0dd2\u0dba\u0dc0\u0dbb\u0d9a\u0dca \u0d9c\u0db1\u0dca\u0db1

\n", "

Take optimizer step

\n": "

\u0db4\u0dca\u0dbb\u0dc1\u0dc3\u0dca\u0dad\u0dd2\u0d9a\u0dbb\u0dab\u0db4\u0dd2\u0dba\u0dc0\u0dbb \u0d9c\u0db1\u0dca\u0db1

\n", "

The first block has only one _^_0_^_ convolution

\n": "

\u0db4\u0dc5\u0db8\u0dd4\u0d9a\u0ddc\u0da7\u0dc3 \u0d87\u0dad\u0dca\u0dad\u0dda \u0d91\u0d9a\u0dca _^_0_^_ \u0dc3\u0d82\u0dc0\u0dc4\u0db1\u0dba\u0d9a\u0dca \u0db4\u0db8\u0dab\u0dd2

\n", "

The interval at which to compute gradient penalty

\n": "

\u0d85\u0db1\u0dd4\u0d9a\u0dca\u0dbb\u0db8\u0dd2\u0d9a\u0daf penalty \u0dd4\u0dc0\u0db8 \u0d9c\u0dab\u0db1\u0dba \u0d9a\u0dc5 \u0dba\u0dd4\u0dad\u0dd4 \u0d9a\u0dcf\u0dbd \u0dc3\u0dd3\u0db8\u0dcf\u0dc0

\n", "

Total number of training steps

\n": "

\u0db8\u0dd4\u0dc5\u0dd4\u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4 \u0db4\u0dd2\u0dba\u0dc0\u0dbb \u0d9c\u0dab\u0db1

\n", "

Train the discriminator

\n": "

\u0dc0\u0dd9\u0db1\u0dc3\u0dca\u0d9a\u0db8\u0dca\u0d9a\u0dbb\u0db1\u0dca\u0db1\u0dcf \u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4 \u0d9a\u0dbb\u0db1\u0dca\u0db1

\n", "

Train the generator

\n": "

\u0d8b\u0dad\u0dca\u0db4\u0dcf\u0daf\u0d9a\u0dba\u0db1\u0dca\u0dad\u0dca\u0dbb\u0dba \u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4 \u0d9a\u0dbb\u0db1\u0dca\u0db1

\n", "

Training mode state for logging activations

\n": "

\u0dbd\u0ddc\u0d9c\u0dca\u0dc0\u0dd3\u0db8 \u0dc3\u0d9a\u0dca\u0dbb\u0dd2\u0dba \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0dc3\u0db3\u0dc4\u0dcf \u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4 \u0db8\u0dcf\u0daf\u0dd2\u0dbd\u0dd2\u0dba\u0dda \u0dad\u0dad\u0dca\u0dc0\u0dba

\n", "

Transformation

\n": "

\u0db4\u0dbb\u0dd2\u0dc0\u0dbb\u0dca\u0dad\u0db1\u0dba

\n", "

Update _^_0_^_. Set whether to log activation

\n": "

\u0dba\u0dcf\u0dc0\u0dad\u0dca\u0d9a\u0dcf\u0dbd\u0dd3\u0db1\u0d9a\u0dd2\u0dbb\u0dd3\u0db8 _^_0_^_. \u0dc3\u0d9a\u0dca\u0dbb\u0dd2\u0dba \u0d9a\u0dd2\u0dbb\u0dd3\u0db8 \u0dbd\u0ddc\u0d9c\u0dca \u0d9a\u0dc5 \u0dba\u0dd4\u0dad\u0dd4\u0daf \u0dba\u0db1\u0dca\u0db1 \u0dc3\u0d9a\u0dc3\u0db1\u0dca\u0db1

\n", "

We need to calculate gradients w.r.t. real images for gradient penalty

\n": "

\u0d85\u0db4\u0dd2\u0db5\u0dbd\u0dba \u0d85\u0db1\u0dd4\u0d9a\u0dca\u0dbb\u0db8\u0dd2\u0d9a \u0daf\u0dac\u0dd4\u0dc0\u0db8 \u0dc3\u0db3\u0dc4\u0dcf wr. \u0dc3\u0dd0\u0db6\u0dd1 \u0dbb\u0dd6\u0db4 \u0d9c\u0dab\u0db1\u0dba \u0d9a\u0dd2\u0dbb\u0dd3\u0db8\u0da7 \u0d85\u0dc0\u0dc1\u0dca\u0dba

\n", "

Whether to log model layer outputs

\n": "

\u0d86\u0daf\u0dbb\u0dca\u0dc1\u0dc3\u0dca\u0dae\u0dbb \u0db4\u0dca\u0dbb\u0dad\u0dd2\u0daf\u0dcf\u0db1\u0dba\u0db1\u0dca \u0dbd\u0ddc\u0d9c\u0dca \u0d9a\u0dc5 \u0dba\u0dd4\u0dad\u0dd4\u0daf \u0dba\u0db1\u0dca\u0db1

\n", "

Without mixing

\n": "

\u0db8\u0dd2\u0dc1\u0dca\u0dbb\u0db1\u0ddc\u0d9a\u0dbb

\n", "\n": "\n", "An annotated PyTorch implementation of StyleGAN2 model training code.": "StyleGan2 \u0d86\u0daf\u0dbb\u0dca\u0dc1 \u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4 \u0d9a\u0dda\u0dad\u0dba \u0dc0\u0dd2\u0dc0\u0dbb\u0dca\u0dae\u0db1\u0dba \u0d9a\u0dbb\u0db1 \u0dbd\u0daf PyTorch \u0d9a\u0dca\u0dbb\u0dd2\u0dba\u0dcf\u0dad\u0dca\u0db8\u0d9a \u0d9a\u0dd2\u0dbb\u0dd3\u0db8.", "StyleGAN 2 Model Training": "StyleGan 2 \u0d86\u0daf\u0dbb\u0dca\u0dc1 \u0db4\u0dd4\u0dc4\u0dd4\u0dab\u0dd4\u0dc0" }