translator = Translator(tr_config) print('training started:') EPOCH_NUM = int(conf['epoch size']) BATCH_SIZE = int(conf['batch size']) PRINT_PER = int(conf['print period']) SAVE_PER = int(conf['save period']) data_so_far = 0 data_size = int(sum([len(x) for x in en_corpus.datas])) batch_index = 0 while data_so_far < EPOCH_NUM * data_size: try: x = en_corpus.next_batch(BATCH_SIZE) y = fa_corpus.next_batch(BATCH_SIZE) loss = translator.train_model(x, y) if batch_index % PRINT_PER == 0: assert en_corpus.indexes == fa_corpus.indexes assert en_corpus.div_index == fa_corpus.div_index print(batch_index, ': ', loss) if batch_index % SAVE_PER == SAVE_PER - 1: print('saving...') en_corpus.save_corpus_state() fa_corpus.save_corpus_state() translator.save_model() print('finished') batch_index += 1 data_so_far += x.shape[1] except KeyboardInterrupt: break print('finished')