Pytorch source code for https://arxiv.org/abs/1802.10151 originally written by the authors and forked from https://github.com/aalmah/augmented_cyclegan.
The code is originally based on https://github.com/junyanz/pytorch-CycleGAN-and-pix2pix, and written in Python 2 and requires Pytorch 0.3.
We have made some minimal adjustments to the code so that it runs in Python 3.6 using Pytorch 0.4. Other changes include catching or preventing runtime errors for situations such as: pairing samples randomly from each dataset even when they do not have the same length, catching errors when the batch size does not evenly divide the total number of items, adjusted the networks to work with images of larger size, ...etc.
git clone [email protected]:ElementAI/augmented_cyclegan.git
cd augmented_cycleganA Dockerfile is provided to setup the environment. In addition, a Makefile
allows easy building and running.
The default Makefile target is usage, and gives basic information on how to
use it:
make usage
# or simply:
makeTo run a basic Docker container:
make runiTo make changes to what volumes to mount, edit the VOLUMES_TO_MOUNT variable in Makefile.cfg.
The model runs by first loading the datasets from a npy file format.
Therefore, the first step is to convert your dataset of images into a numpy array format.
Assuming that each of the receipts datasets is in /mnt/projects/ripples/data/real_receipts and /mnt/projects/whiskey_bear/data/generated/generated_100k_2018may11":
make runi
python datasets/create_receipts_np.py --imgSize 128 --maxImages 2000This will generate .npy files inside datasets/receipts directory, with each file name (trainA, trainB, valA, valB) suffixed by the image size, here 128 (assuming square images). The default image size is 64 and the maximum size of the datasets is 2000.
From within Docker:
CUDA_VISIBLE_DEVICES=0 python edges2shoes_exp/train.py --dataroot datasets/receipts/ --name augcgan_model --niter 2000 --checkpoints_dir './checkpoints/receipts_512' --imgSize 512 --batchSize 2 --display_freq 500 --save_epoch_freq 1 --continue_train
This will run the model on images of size 512 and save the output in checkpoints/receipts_512.
For more details about all the command-line options, see edges2shoes_exp/options.py