Как визуализировать тензорную сводку в Tenorboard

Я пытаюсь визуализировать тензорную сводку на тензорной доске. Однако я не вижу сводки тензора на доске. Вот мой код:

        out = tf.strided_slice(logits, begin=[self.args.uttWindowSize-1, 0], end=[-self.args.uttWindowSize+1, self.args.numClasses],
                               strides=[1, 1], name='softmax_truncated')
        tf.summary.tensor_summary('softmax_input', out)

где out - многомерный тензор. Я думаю, что с моим кодом что-то не так. Возможно я неправильно использовал функцию tensor_summary.


person Zhao    schedule 16.01.2017    source источник
comment
Скорее всего, это связано с stackoverflow.com/questions/42329059/   -  person Filippo Mazza    schedule 16.08.2017


Ответы (3)


Что вы делаете, так это создаете сводную операцию, но не вызываете ее и не пишете сводку (см. документация). Чтобы фактически создать сводку, вам необходимо сделать следующее:

# Create a summary operation
summary_op = tf.summary.tensor_summary('softmax_input', out)

# Create the summary
summary_str = sess.run(summary_op)

# Create a summary writer
writer = tf.train.SummaryWriter(...)

# Write the summary
writer.add_summary(summary_str)

Явное написание резюме (последние две строки) необходимо только в том случае, если у вас нет помощника более высокого уровня, такого как Супервайзер. В противном случае вы вызываете

sv.summary_computed(sess, summary_str)

и Супервайзер займется этим.

Для получения дополнительной информации см. Также: Как создать tf вручную. ()

person Michael Gygli    schedule 16.01.2017
comment
Как просмотреть сгенерированную сводку этого тензора. На Tensorboard, похоже, нет вкладки для тензорных сводок. - person Ashok; 31.03.2017
comment
@Ashok Ты понял, как это сделать? Я где-то читал, что это все еще в разработке. - person user3813674; 13.07.2017
comment
Я не думаю, что tenorboard поддерживает визуализацию значений тензора. - person Yuan Ma; 10.01.2018

Надеюсь, это обходной путь, который достигнет того, чего вы хотите. ..

Если вы хотите просмотреть значения тензора, вы можете преобразовать их с помощью as_string, а затем с помощью summary.text. Значения появятся на текстовой вкладке тензорной доски.

Не пробовал с 3D-тензорами, но вы можете нарезать фрагменты в соответствии с потребностями.

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

predictions = tf.argmax(reshaped_logits, 1)
txtPredictions = tf.Print(tf.as_string(predictions),[tf.as_string(predictions)], message='predictions', name='txtPredictions')
txtPredictions_op = tf.summary.text('predictions', txtPredictions)

введите описание изображения здесь

person Graham Monkman    schedule 11.05.2018

Не уверен, очевидно ли это, но вы можете использовать что-то вроде

def make_tensor_summary(tensor, name='defaultTensorName'):
    for i in range(tensor.get_shape()[0]:
        for j in range(tensor.get_shape()[1]:
            tf.summary.scalar(Name + str(i) + '_' + str(j), tensor[i, j])

в случае, если вы заранее знаете, что это тензор в форме матрицы.

person Patrick    schedule 01.08.2017