Hi, I was comparing the image preprocessing routines in the cycada code and the cyclegan code in the submodule for the SVHN to MNIST task. It seems that in the cyclegan code, the MNIST image is normalized with transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)).
In contrast, in the cycada directory the input image is normalized with transforms.Normalize((0.5,), (0.5,)), which I believe only normalizes the first channel of the image? I understand that they don't have to match since the ADDA part is separate from the cyclegan part, but is this difference intentional?
The two are equivalent when the mean/std is the same across all channels. This code also works when we only have a single channel model (ex LeNet for MNIST).
https://github.com/jhoffman/cycada_release/blob/0a50507e4cb3e1bd6ad0b29dba5d75065658ff48/cycada/data/data_loader.py#L86
https://github.com/jhoffman/pytorch-CycleGAN-and-pix2pix/blob/e484612d83449d05024a7d5fd2e012be53faad85/data/mnist_svhn_dataset.py#L37
Hi, I was comparing the image preprocessing routines in the cycada code and the cyclegan code in the submodule for the SVHN to MNIST task. It seems that in the cyclegan code, the MNIST image is normalized with
transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))
. In contrast, in the cycada directory the input image is normalized withtransforms.Normalize((0.5,), (0.5,))
, which I believe only normalizes the first channel of the image? I understand that they don't have to match since the ADDA part is separate from the cyclegan part, but is this difference intentional?