DISCR_HIDDEN_DIM = args.Ddim HALF_BATCH_SIZE = 128 MODEL_FILENAME = 'model.pkl' rng = check_random_state(0) lang1 = args.lang1 lang2 = args.lang2 dataDir = 'data/' + args.config + '/' print >> sys.stderr, 'Loading', lang1, 'embeddings...' we1 = WordEmbeddings() we1.load_from_word2vec(dataDir, lang1) we1.downsample_frequent_words() we1.vectors = normalize(we1.vectors).astype(theano.config.floatX) we_batches1 = we1.sample_batches(batch_size=HALF_BATCH_SIZE, random_state=rng) print >> sys.stderr, 'Loading', lang2, 'embeddings...' we2 = WordEmbeddings() we2.load_from_word2vec(dataDir, lang2) we2.downsample_frequent_words() we2.vectors = normalize(we2.vectors).astype(theano.config.floatX) we_batches2 = we2.sample_batches(batch_size=HALF_BATCH_SIZE, random_state=rng) assert we1.embedding_dim == we2.embedding_dim d = we1.embedding_dim discriminator = Discriminator(d, DISCR_NUM_HIDDEN_LAYERS, DISCR_HIDDEN_DIM, args.input_noise_param, args.hidden_noise_param)
else: accumulators[:] = ACCUMULATOR_EXPAVG * np.array([accuracy_val, loss_val, alt_accuracy_val, alt_loss_val, gen_loss_val, recon_gen_loss_val, adv_gen_loss_val, cos_gen_loss_val, float(skip_generator), float(skip_discriminator), preout_grad_norm_val]) + (1.0 - ACCUMULATOR_EXPAVG) * accumulators if batch_id % print_every_n == 0: print >> sys.stderr, 'batch: %s, acc: %s, loss: %s, alt acc: %s, alt loss: %s, gloss: %s, grloss: %s, galoss: %s, gcloss: %s, gskip: %s, dskip: %s, gn: %s' % tuple([batch_id] + accumulators.tolist()) def save_model(): params_vals = lasagne.layers.get_all_param_values([discriminator_0.l_out, discriminator_1.l_out, gen_l_out]) cPickle.dump(params_vals, open(MODEL_FILENAME, 'wb'), protocol=cPickle.HIGHEST_PROTOCOL) print >> sys.stderr, 'Loading Italian embeddings...' we_it = WordEmbeddings() we_it.load_from_word2vec('./it') we_it.downsample_frequent_words() skn_it = StandardScaler() we_it.vectors = skn_it.fit_transform(we_it.vectors).astype(theano.config.floatX) we_batches_it = we_it.sample_batches(batch_size=HALF_BATCH_SIZE, random_state=rng) print >> sys.stderr, 'Loading English embeddings...' we_en = WordEmbeddings() we_en.load_from_word2vec('./en') we_en.downsample_frequent_words() skn_en = StandardScaler() we_en.vectors = skn_en.fit_transform(we_en.vectors).astype(theano.config.floatX) we_batches_en = we_en.sample_batches(batch_size=HALF_BATCH_SIZE, random_state=rng) print >> sys.stderr, 'Ready to train.' print >> sys.stderr, 'Training...' for i in xrange(10000000): train_batch(i+1, 100)
def save_model(): params_vals = lasagne.layers.get_all_param_values( [discriminator_0.l_out, discriminator_1.l_out, gen_l_out]) cPickle.dump(params_vals, open(MODEL_FILENAME, 'wb'), protocol=cPickle.HIGHEST_PROTOCOL) print >> sys.stderr, 'Loading German embeddings...' we_it = WordEmbeddings() we_it.load_from_word2vec('./de') we_it.downsample_frequent_words() skn_it = StandardScaler() we_it.vectors = skn_it.fit_transform(we_it.vectors).astype( theano.config.floatX) we_batches_it = we_it.sample_batches(batch_size=HALF_BATCH_SIZE, random_state=rng) print >> sys.stderr, 'Loading English embeddings...' we_en = WordEmbeddings() we_en.load_from_word2vec('./en') we_en.downsample_frequent_words() skn_en = StandardScaler() we_en.vectors = skn_en.fit_transform(we_en.vectors).astype( theano.config.floatX) we_batches_en = we_en.sample_batches(batch_size=HALF_BATCH_SIZE, random_state=rng) print >> sys.stderr, 'Ready to train.'