os.makedirs('checkpoints_luong/encoder') if not os.path.exists('checkpoints_luong/decoder'): os.makedirs('checkpoints_luong/decoder') # Uncomment these lines for inference mode encoder_checkpoint = tf.train.latest_checkpoint('checkpoints_luong/encoder') decoder_checkpoint = tf.train.latest_checkpoint('checkpoints_luong/decoder') if encoder_checkpoint is not None and decoder_checkpoint is not None: encoder.load_weights(encoder_checkpoint) decoder.load_weights(decoder_checkpoint) if MODE == 'train': for e in range(NUM_EPOCHS): en_initial_states = encoder.init_states(BATCH_SIZE) encoder.save_weights( 'checkpoints_luong/encoder/encoder_{}.h5'.format(e + 1)) decoder.save_weights( 'checkpoints_luong/decoder/decoder_{}.h5'.format(e + 1)) for batch, (source_seq, target_seq_in, target_seq_out) in enumerate(dataset.take(-1)): loss = train_step(source_seq, target_seq_in, target_seq_out, en_initial_states) if batch % 100 == 0: print('Epoch {} Batch {} Loss {:.4f}'.format( e + 1, batch, loss.numpy())) try: predict() predict("How are you today ?")
reply = Dialog.id2sent(output_word_ids.numpy()[0]) reply = reply.replace("TSTEOSTST", " ]") reply = reply.replace("TSTSTARTTST", "[ ") return reply # 4. Run Model print("<<<< Start Training >>>>") for step in range(epoch): with writer.as_default(): tf.summary.trace_export( name="my_func_trace", step=0, profiler_outdir=logdir) total_loss = 0.0 num_batches = 0 for index, (X, Y, Y_shifted) in enumerate(data_set): batch_loss = train(X, Y_shifted, Y) total_loss += batch_loss num_batches += 1 total_loss = total_loss data_set = tf.data.Dataset.zip((data_X, data_Y, data_Y_shifted)) data_set = data_set.shuffle(buffer_size=len(dialog_x)).batch(batch_size, drop_remainder=True) print("Step: " + str(step) + ", Total Loss: " + str(total_loss)) print("--- Me: How are you doing, my dear?") print("--- Computer: " + predict("How are you doing, my dear?")) if step % save_interval == 0: encoder.save_weights('encoder_weights_saving') decoder.save_weights('decoder_weights_saving') print("Model weights saved ....")