2015-11-26 3 views
2

Есть ли у кого-нибудь минимальный пример использования SummaryWriter со скалярным_страном, чтобы увидеть (скажем) результат кросс-энтропии во время тренировочного прогона?В Tensorflow, как мне создать скалярное резюме?

Пример given in the documentation:

merged_summary_op = tf.merge_all_summaries() 
summary_writer = tf.train.SummaryWriter('/tmp/mnist_logs', sess.graph_def) 
total_step = 0 
while training: 
    total_step += 1 
    session.run(training_op) 
    if total_step % 100 == 0: 
     summary_str = session.run(merged_summary_op) 
     summary_writer.add_summary(summary_str, total_step) 

Возвращает ошибку: TypeError: не Fetch аргумент Ни один из None имеет неверный тип, должен быть строкой или Tensor. (Невозможно преобразовать NoneType в тензор или операцию.) Когда я запустил его.

Если я добавить:

tf.scalar_summary('cross entropy', cross_entropy) 

операция после моего расчета кросс энтропии, то вместо этого я получаю ошибку:

InvalidArgumentError: Вы должны кормить значение для тензора заполнителем «Placeholder_2» с DTYPE поплавка

что говорит о том, что мне нужно добавить feed_dict к

summary_str = session.run(merged_summary_op) 

вызов, но я не ясно, что это feed_dict должен содержать ....

+0

На этом веб-сайте у вас есть дополнительная помощь, если вы предоставляете MWE, см. Http://stackoverflow.com/help/mcve. –

ответ

2

Ошибка вероятно приходит от:

session.run(training_op) 

ли вы вставить пример кода в версии кода mnist, что требует feed_dict для подачи в учебных примерах? Проверьте обратную трассировку, которую он дал вам (и включите ее выше, если это не решит проблему).

+0

Я просмотрел пример mnist и увидел использование, о котором вы упоминали, и, как вы заметили, он использует feed_dict (для изображений), проблема в том, что должен содержать feed_dict для скаляров? – DrMcCleod

+0

Что такое 'training_op'? Это не из кода мниста? – dga

+0

«training_op» - это любая операция, которую вы определили для обучения, например, вызов tf.train.AdamOptimizer или «tf.train.GradientDescentOptimizer». Это, однако, не является источником ошибки, которая исходит из: session.run (merged_summary_op), для которой требуется файл feed_dict с некоторыми неизвестными значениями. – DrMcCleod

3

feed_dict должен содержать те же значения, что и для использования training_op. Он в основном определяет входные значения в вашей сети, для которых вы хотите рассчитать резюме.

Смежные вопросы