# load Y domain data. Assumed to be a uint8 numpy array # of shape (n, sz, sz, nc) def get_y_data(): data_np = np.load(params.y_data_path) data_np = data_np.transpose((0, 3, 1, 2)) data_np = data_np / 255.0 return data_np y = get_y_data() for i in range(y.shape[1]): y[:, i:i + 1] -= params.mu[i] y[:, i:i + 1] /= params.sd[i] rp = np.random.permutation(y.shape[0])[:params.n_examples] y = y[rp] net_params = utils.NAMParams(nz=params.nz, ngf=params.nam_ngf, mu=params.mu, sd=params.sd, force_l2=False) opt_params = utils.OptParams(lr=params.lr, batch_size=params.batch_size, epochs=params.epochs, decay_epochs=params.decay_epochs, decay_rate=params.decay_rate, lr_ratio=params.lr_ratio) nm = opt_nam.NAMTrainer(netG, params.uncon_shape, net_params) nm.train_nam(y, opt_params)
try: from yaml import CLoader as Loader, CDumper as Dumper except ImportError: from yaml import Loader, Dumper with open(args.config, 'r') as f: params = yaml.load(f, Loader=Loader) rn = params['name'] train_path = params['train_path'] decay = params['glo']['decay'] total_epoch = params['glo']['total_epoch'] lr = params['glo']['learning_rate'] factor = params['glo']['factor'] nz = params['glo']['nz'] batch_size = params['glo']['batch_size'] do_bn = params['glo']['do_bn'] x = np.load(train_path) x = x.transpose((0, 3, 1, 2)) / 255.0 glo_params = utils.GLOParams(nz=nz, do_bn=do_bn, force_l2=False) glo_opt_params = utils.OptParams(lr=lr, factor=factor, batch_size=batch_size, epochs=total_epoch, decay_epochs=decay, decay_rate=0.5) nt = glo.GLOTrainer(x, glo_params, rn) nt.train_glo(glo_opt_params)