(args)
| 93 | |
| 94 | |
| 95 | def main(args): |
| 96 | #加载数据集 |
| 97 | dataset = torchvision.datasets.MNIST(root='data/',train=True,transform=config.transform, |
| 98 | download=True) |
| 99 | dataloader = DataLoader( |
| 100 | dataset=dataset, |
| 101 | batch_size=config.BATCH_SIZE, |
| 102 | shuffle=config.SHUFFLE, |
| 103 | drop_last=config.DROP_LAST, |
| 104 | |
| 105 | ) |
| 106 | #加载模型 |
| 107 | generator = Generator().to(config.DEVICE) |
| 108 | discriminator = Discriminator().to(config.DEVICE) |
| 109 | generator.apply(weights_init_normal) |
| 110 | discriminator.apply(weights_init_normal) |
| 111 | |
| 112 | #定义损失函数和优化器 |
| 113 | adversarial_loss = torch.nn.BCELoss() |
| 114 | optimizer_G = torch.optim.Adam(generator.parameters(),lr=config.LEARING_RATIO,betas=(config.BETA1,config.BETA2)) |
| 115 | optimizer_D = torch.optim.Adam(discriminator.parameters(),lr = config.LEARING_RATIO,betas=(config.BETA1,config.BETA2)) |
| 116 | |
| 117 | for epoch in range(config.NUM_EPOCHS): |
| 118 | train_fn(generator,discriminator,optimizer_G,optimizer_D,adversarial_loss,dataloader,epoch) |
| 119 | if epoch % 10 == 0: |
| 120 | saveImage(generator, epoch) |
| 121 | save_checkpoint(generator,optimizer_G,config.CHECKPOINT_GEN) |
| 122 | |
| 123 | |
| 124 | if __name__ == '__main__': |
no test coverage detected