Я пытаюсь использовать пример LSTM, обученный согласно Tensorflow Пример LSTM. Этот пример позволяет получить недоумение на всей тестовой выборке. Но мне нужно использовать обученную модель для оценки (получения логарифмов) каждого предложения отдельно (для оценки гипотез вывода декодера STT). Я немного изменил reader и использовал код :
mtests=list()
with tf.name_scope("Test"):
for test_data_item in test_data:
test_input.append(PTBInput(config=eval_config, data=test_data_item, name="TestInput"))
with tf.variable_scope("Model", reuse=True, initializer=initializer):
for test_input_item in test_input:
mtests.append(PTBModel(is_training=False, config=eval_config,
input_=test_input_item))
sv = tf.train.Supervisor(logdir=FLAGS.model_dir)
with sv.managed_session() as session:
checkpoint=tf.train.latest_checkpoint(FLAGS.model_dir)
sv.saver.restore(session, checkpoint)
sys.stderr.write("model restored\n")
for mtest in mtests:
score, test_perplexity = run_epoch_test(session, mtest)
print(score)
Итак, используя этот код, я получаю баллы по каждому предложению независимо. Если я прохожу 5 предложений, все работает нормально. Но если я передаю в этот код 1 тыс. Предложений, он работает очень медленно и использует много памяти, потому что я создаю 1 тыс. Моделей mtest. Итак, не могли бы вы сказать мне другой способ достичь моей цели? Спасибо.