epochs: 200
output_dir: output_dir

model:
  name: GANModel
  generator:
    name: ConditionalDeepConvGenerator
    latent_dim: 128
    output_nc: 1
    size: 28
    ngf: 64
    n_class: 10
  discriminator:
    name: NLayerDiscriminatorWithClassification
    ndf: 16
    n_layers: 3
    input_nc: 1
    norm_type: batch
    n_class: 10
    use_sigmoid: True
  gan_criterion:
    name: GANLoss
    gan_mode: vanilla

dataset:
  train:
    name: CommonVisionDataset
    dataset_name: MNIST
    num_workers: 4
    batch_size: 64
    return_label: True
    transforms:
      - name: Normalize
        mean: [127.5]
        std: [127.5]
        keys: [image]
    params:
      mode: train
  test:
    name: CommonVisionDataset
    dataset_name: MNIST
    num_workers: 0
    batch_size: 64
    return_label: True
    params:
      mode: train
    transforms:
      - name: Normalize
        mean: [127.5]
        std: [127.5]
        keys: [image]

lr_scheduler:
  name: LinearDecay
  learning_rate: 0.0002
  start_epoch: 100
  decay_epochs: 100
  # will get from real dataset
  iters_per_epoch: 1

optimizer:
  optimizer_G:
    name: Adam
    net_names:
      - netG
    beta1: 0.5
  optimizer_D:
    name: Adam
    net_names:
      - netD
    beta1: 0.5

log_config:
  interval: 100
  visiual_interval: 500

snapshot_config:
  interval: 5
