softmax = Softmax(dim_proj, pt_v_size) # ensemble the sequence-to-sequence model seq = SequenceToSequence(encoder=encoder, decoder=decoder, output=softmax, source_v_size=en_v_size, target_v_size=pt_v_size) # set optimizer optimizer = Adadelta() # set up the model seq.setup(batch_size=batch_size, optimizer=optimizer) time2 = time.time() print 'Initialization took %3.5f seconds. \n' % (time2 - time1) # perform the optimization seq.train(train_data, valid_data, n_epochs=n_epochs, n_train_samples=160975, n_valid_samples=1375, print_train_info=True, save_model=True, filepath='/home/gian/seq_to_seq.hp5y', keep_old_models=True) print 'Done!'
target_v_size=pt_v_size) # set optimizer optimizer = Adadelta() # set up the model seq.setup(batch_size=batch_size, optimizer=optimizer) time2 = time.time() print 'Initialization took %3.5f seconds. \n' % (time2 - time1) model_file = '/home/gian/%s_%shid_prj%s_en%s_pt%s_%s_batch%s.hp5y' % \ (gru1.__class__.__name__, len(encoder), dim_proj, en_v_size, pt_v_size, optimizer.__class__.__name__, batch_size) print model_file # perform the optimization seq.train(train_data, valid_data, n_epochs=n_epochs, n_train_samples=160975, n_valid_samples=1375, print_train_info=True, save_model=True, filepath=model_file, keep_old_models=True) print 'Done!'
# ensemble the sequence-to-sequence model seq = SequenceToSequence(encoder=encoder, decoder=decoder, source_v_size=en_v_size, target_v_size=pt_v_size, auto_setup=False) # set auto_setup to false to avoid initialization # (weights will be overwritten anyway) # load source and target language dictionaries sr_dict = load_dictionary('/home/gian/datasets/dict.sort.en', max_words=en_v_size) tr_dict = load_dictionary('/home/gian/datasets/dict.sort.pt', max_words=pt_v_size) # load the corpora and convert its words to their indexes (corpora must be already tokenized) sequences1 = load_and_convert_corpora('/home/gian/datasets/fapesp/fapesp-v2.tok.test-a.en', sr_dict) sequences2 = load_and_convert_corpora('/home/gian/datasets/fapesp/fapesp-v2.tok.test-a.pt', tr_dict) # prepare the data (add padding values to the end of each sequence so they have the same size) seq.load_weights('/home/gian/seq_to_seq.hp5y') seq.train(sequences1, sequences2, n_epochs=2, print_train_info=True) # # example = numpy.asarray(sequences1[0]) # seq.translate(example.reshape(1, example.shape[0])) print 'Done!'