This folder contains an example of training a DCGAN to generate MNIST digits with the PyTorch C++ frontend.
The entire training code is contained in dcgan.cpp
.
You can find the commands to install argparse here.
To build the code, run the following commands from your terminal:
$ cd dcgan
$ mkdir build
$ cd build
$ cmake -DCMAKE_PREFIX_PATH=/path/to/libtorch ..
$ make
where /path/to/libtorch
should be the path to the unzipped LibTorch
distribution, which you can get from the PyTorch
homepage.
Execute the compiled binary to train the model:
$ ./dcgan
[ 1/30][200/938] D_loss: 0.4953 | G_loss: 4.0195
-> checkpoint 1
[ 1/30][400/938] D_loss: 0.3610 | G_loss: 4.8148
-> checkpoint 2
[ 1/30][600/938] D_loss: 0.4072 | G_loss: 4.36760
-> checkpoint 3
[ 1/30][800/938] D_loss: 0.4444 | G_loss: 4.0250
-> checkpoint 4
[ 2/30][200/938] D_loss: 0.3761 | G_loss: 3.8790
-> checkpoint 5
[ 2/30][400/938] D_loss: 0.3977 | G_loss: 3.3315
-> checkpoint 6
[ 2/30][600/938] D_loss: 0.3815 | G_loss: 3.5696
-> checkpoint 7
[ 2/30][800/938] D_loss: 0.4039 | G_loss: 3.2759
-> checkpoint 8
[ 3/30][200/938] D_loss: 0.4236 | G_loss: 4.5132
-> checkpoint 9
[ 3/30][400/938] D_loss: 0.3645 | G_loss: 3.9759
-> checkpoint 10
...
We can also specify the --epochs
to change the number of epochs to train as follows:
$ ./dcgan --epochs 10
Without specifying the --epochs
flag, the default number of epochs to train is 30.
The training script periodically generates image samples. Use the
display_samples.py
script situated in this folder to generate a plot image.
For example:
$ python display_samples.py -i dcgan-sample-10.pt
Saved out.png