config = DiscriminatorParams() config.weight_init_std = 0.001 config.weight_initializer = "Normal" config.use_weightnorm = False config.nonlinearity = "elu" config.optimizer = "Adam" config.learning_rate = 0.0001 config.momentum = 0.5 config.gradient_clipping = 10 config.weight_decay = 0 config.use_feature_matching = False config.use_minibatch_discrimination = False discriminator = Sequential(weight_initializer=config.weight_initializer, weight_init_std=config.weight_init_std) discriminator.add(gaussian_noise(std=0.3)) discriminator.add( Convolution2D(3, 32, ksize=4, stride=2, pad=1, use_weightnorm=config.use_weightnorm)) discriminator.add(BatchNormalization(32)) discriminator.add(Activation(config.nonlinearity)) discriminator.add( Convolution2D(32, 64, ksize=4, stride=2, pad=1,
config.num_experts = 128 config.weight_init_std = 0.05 config.weight_initializer = "Normal" config.use_weightnorm = True config.nonlinearity = "elu" config.optimizer = "Adam" config.learning_rate = 0.0002 config.momentum = 0.5 config.gradient_clipping = 10 config.weight_decay = 0 # feature extractor feature_extractor = Sequential(weight_initializer=config.weight_initializer, weight_init_std=config.weight_init_std) feature_extractor.add(Linear(config.ndim_input, 1000, use_weightnorm=config.use_weightnorm)) feature_extractor.add(Activation(config.nonlinearity)) feature_extractor.add(gaussian_noise(std=0.3)) feature_extractor.add(Linear(None, 500, use_weightnorm=config.use_weightnorm)) feature_extractor.add(Activation(config.nonlinearity)) feature_extractor.add(gaussian_noise(std=0.3)) feature_extractor.add(Linear(None, 250, use_weightnorm=config.use_weightnorm)) feature_extractor.add(Activation(config.nonlinearity)) feature_extractor.add(gaussian_noise(std=0.3)) feature_extractor.add(Linear(None, config.num_experts, use_weightnorm=config.use_weightnorm)) feature_extractor.add(tanh()) # experts experts = Sequential(weight_initializer=config.weight_initializer, weight_init_std=config.weight_init_std) experts.add(Linear(config.num_experts, config.num_experts, use_weightnorm=config.use_weightnorm)) # b b = Sequential(weight_initializer=config.weight_initializer, weight_init_std=config.weight_init_std)
# x = decoder(y, z) decoder = Sequential() decoder.add(Merge(num_inputs=2, out_size=1000, nobias=True)) decoder.add(Activation(config.nonlinearity)) # decoder.add(BatchNormalization(1000)) decoder.add(Linear(None, 1000)) decoder.add(Activation(config.nonlinearity)) # decoder.add(BatchNormalization(1000)) decoder.add(Linear(None, 1000)) decoder.add(Activation(config.nonlinearity)) # decoder.add(BatchNormalization(1000)) decoder.add(Linear(None, config.ndim_x)) decoder.add(tanh()) discriminator_z = Sequential() discriminator_z.add(gaussian_noise(std=0.3)) discriminator_z.add(Linear(config.ndim_z, 1000)) discriminator_z.add(Activation(config.nonlinearity)) # discriminator_z.add(BatchNormalization(1000)) discriminator_z.add(Linear(None, 1000)) discriminator_z.add(Activation(config.nonlinearity)) # discriminator_z.add(BatchNormalization(1000)) discriminator_z.add(Linear(None, 2)) discriminator_y = Sequential() discriminator_y.add(gaussian_noise(std=0.3)) discriminator_y.add(Linear(config.ndim_y, 1000)) discriminator_y.add(Activation(config.nonlinearity)) # discriminator_y.add(BatchNormalization(1000)) discriminator_y.add(Linear(None, 1000)) discriminator_y.add(Activation(config.nonlinearity))
config.gamma = 0.5 config.ndim_z = ndim_z config.ndim_h = ndim_h config.weight_std = 0.01 config.weight_initializer = "Normal" config.nonlinearity_d = "elu" config.nonlinearity_g = "elu" config.optimizer = "adam" config.learning_rate = 0.0001 config.momentum = 0.5 config.gradient_clipping = 1 config.weight_decay = 0 # Discriminator encoder = Sequential() encoder.add(gaussian_noise(std=0.3)) encoder.add(Convolution2D(3, 32, ksize=4, stride=2, pad=1)) encoder.add(BatchNormalization(32)) encoder.add(Activation(config.nonlinearity_d)) encoder.add(Convolution2D(32, 64, ksize=4, stride=2, pad=1)) encoder.add(BatchNormalization(64)) encoder.add(Activation(config.nonlinearity_d)) encoder.add(Convolution2D(64, 128, ksize=4, stride=2, pad=1)) encoder.add(BatchNormalization(128)) encoder.add(Activation(config.nonlinearity_d)) encoder.add(Convolution2D(128, 256, ksize=4, stride=2, pad=1)) encoder.add(BatchNormalization(256)) encoder.add(Activation(config.nonlinearity_d)) encoder.add(Linear(None, ndim_h)) projection_size = 6