Почему сводка по тестовой модели должна подавать данные в модель поезда?

Я строю модель LSTM для обучения с кратким изложением моей потери. Также я создаю тестовую модель с помощью tf.variable_scope('model', reuse = True).

with tf.variable_scope('model', reuse=None):
    training_model = MyModel(...., feedforward_only = False)
with tf.variable_scope('model', reuse = True):
    test_model = MyModel(...., feedforward_only = True)

Теперь я хотел бы просмотреть свои потери на тестовой модели, поэтому в моей функции step() я добавляю self.merged в свой список вывода:

if not forward_only:
    output_feed = [self.update,
            self.gradient_norm,
            self.loss,
            self.outputs,
            self.merged]
else:
    output_feed = [self.loss,
            self.outputs,
            self.merged]

Когда я передаю данные в тренировочную модель, я успешно получаю объединенную сводку и просматриваю потери на тензорной доске.

Но когда я пытаюсь передать данные в тестовую модель с помощью функции step(), возникает ошибка:

You must feed a value for placeholder tensor 'model/inputs/sequence_length' with dtype int32 and shape [?]

Я обнаружил, что на самом деле переменные, созданные get_variables(), используются совместно с моделью обучения, потому что они имеют одно и то же имя "model/variable_name". Но остальные переменные, включая все заполнители, используют разные имена. В обучающей модели это "модель / переменная_имя", а в тестовой модели "модель_1/ переменная_имя".

Поэтому я думаю, что, когда я передаю данные в тестовую модель, я фактически добавляю данные в "model_1/placeholder". И я думаю, что нет проблем.

На самом деле нет никаких проблем получить результаты теста, если я не добавлю self.merged в свой список результатов.

Однако когда я добавляю self.merged в список выходов, я получаю сообщение об ошибке, описанное выше. Это говорит о том, что я должен передать данные в модель /place_holder. вместо model_1/placeholder, который является place_holder тестовой модели.

Мне интересно, почему я должен вводить данные в свою модель обучения, когда я хочу передать данные в свою тестовую модель, чтобы получить сводку.

Или в моем коде что-то не так?

0 ответов

Другие вопросы по тегам