def lsgan_epoch_train(self): #training LSGAN epoch-wise save_file_gan_ex = self.gan_save_box.toPlainText() #####input save folder for single experiments rounds = self.epochs_gan_spinBox.value() bs = self.bs_gan_spinBox.value() kd = self.k_d_spinBox.value() kg = self.k_g_spinBox.value() n_interval = self.interval_spinBox.value() channel_n = self.channel_spinBox.value() z_dim = self.z_dim_spinBox.value() in_r = self.smooth_real_doubleSpinBox.value() ### in_f = self.smooth_fake_doubleSpinBox.value() ### save_file_gan = os.path.join('../lsgan_result/', str(save_file_gan_ex)) lr_g = self.optimizer_g_lr_spinBox.value() b_g = self.optimizer_g_b_spinBox.value() lr_d = self.optimizer_d_lr_spinBox.value() b_d = self.optimizer_d_b_spinBox.value() real_dim = (96, 96, channel_n) train_set = np.load(os.path.join('../npy/', str(self.file_raw))) ndis = self.display_spinBox.value() textg = self.gen_comboBox.currentText() if textg == 'gen1': gen = gan_g1(z_dim, channel_n) elif textg == 'gen2': gen = gan_g2(z_dim, channel_n) elif textg == 'gen3': gen = gan_g3(z_dim, channel_n) elif textg == 'gen4': gen = resnet_gen(z_dim, channel_n) elif textg == 'gen5': gen = gan_g5(z_dim, channel_n) textb = self.dis_comboBox.currentText() if textb == 'dis4': dis = wgan_d1(real_dim) elif textb == 'dis5': dis = wgan_d2(real_dim) elif textb == 'dis6': dis = resnet_dis_w(channel_n) optimizer_g = Adam(lr_g, b_g) optimizer_d = Adam(lr_d, b_d) if not os.path.exists('../lsgan_result'): # create folder to save the experiment result. os.mkdir('../lsgan_result') if not os.path.exists(save_file_gan): os.mkdir(save_file_gan) train6(X=train_set, G=gen, D=dis, nb_epochs=rounds, batch_size=bs, k_d=kd, k_g=kg, index_r=in_r, index_f=in_f, opt_g=optimizer_g, opt_d=optimizer_d, z_dim=z_dim, channel=channel_n, save_file=save_file_gan, n_i=n_interval, n=ndis)
def dcgan_loop_train(self): #training DCGAN loop-wise save_file_gan_ex = self.gan_save_box.toPlainText() #####input save folder for single experiments rounds = self.epochs_gan_spinBox.value() #training loops bs = self.bs_gan_spinBox.value() #batch size kd = self.k_d_spinBox.value() #training D kd times per loop kg = self.k_g_spinBox.value() #training G kg times per loop ndis = self.display_spinBox.value() #row/column of generated display images n_interval = self.interval_spinBox.value() #sacing interval channel_n = self.channel_spinBox.value() #image channel z_dim = self.z_dim_spinBox.value() #latent vector size in_r = self.smooth_real_doubleSpinBox.value() ###label somooth for real images in_f = self.smooth_fake_doubleSpinBox.value() ###label smooth for fake images save_file_gan = os.path.join('../dcgan_result/', str(save_file_gan_ex)) #saving path of the result lr_g = self.optimizer_g_lr_spinBox.value() b_g = self.optimizer_g_b_spinBox.value() lr_d = self.optimizer_d_lr_spinBox.value() b_d = self.optimizer_d_b_spinBox.value() real_dim = (96, 96, channel_n) #image size train_set = np.load(os.path.join('../npy/', str(self.file_raw))) #path of trained original image dataset textg = self.gen_comboBox.currentText() #select network if textg == 'gen1': gen = gan_g1(z_dim, channel_n) elif textg == 'gen2': gen = gan_g2(z_dim, channel_n) elif textg == 'gen3': gen = gan_g3(z_dim, channel_n) elif textg == 'gen4': gen = resnet_gen(z_dim, channel_n) elif textg == 'gen5': gen = gan_g5(z_dim, channel_n) textb = self.dis_comboBox.currentText() if textb == 'dis1': dis = dcgan_d1(real_dim) elif textb == 'dis2': dis = dcgan_d2(real_dim) elif textb == 'dis3': dis = resnet_dis(channel_n) optimizer_g = Adam(lr_g, b_g) optimizer_d = Adam(lr_d, b_d) if not os.path.exists('../dcgan_result'): # create folder to save the experiment result. os.mkdir('../dcgan_result') if not os.path.exists(save_file_gan): os.mkdir(save_file_gan) train(X = train_set, G = gen, D = dis, loops = rounds, batch_size = bs, k_d = kd, k_g = kg, index_r = in_r, index_f = in_f, opt_g= optimizer_g, opt_d= optimizer_d, z_dim= z_dim, channel= channel_n, save_file = save_file_gan, n_i= n_interval, n = ndis)