Как проверить значения тензора Кераса, используя backend.print_tensor? - PullRequest
0 голосов
/ 19 мая 2019

Я хочу проверить некоторые значения моего тензора Кераса. Я пытался использовать backend.print_tensor.

Я изменил код пакета Keras и изменил код tf.Print -> tf.print.

x = Dozat(21)(x) # custom Lambda layer

x = backend.print_tensor(x)

print('x : ', x, '\n\n\n')

Это сообщение произошло.

ВНИМАНИЕ:
Печать (из tenorflow.python.ops.logging_ops) устарела и будет удалена после 2018-08-20.
Инструкция по обновлению:
Используйте tf.print вместо tf.Print. Обратите внимание, что tf.print возвращает оператор отсутствия вывода, который непосредственно печатает вывод. Вне функций defuns или eager этот оператор не будет выполняться, если он не указан непосредственно в session.run или не используется в качестве управляющей зависимости для других операторов. Это проблема только в графическом режиме. Ниже приведен пример того, как обеспечить выполнение tf.print в графическом режиме:

sess = tf.Session()
with sess.as_default():
    tensor = tf.range(10)
    print_op = tf.print(tensor)
    with tf.control_dependencies([print_op]):
      out = tf.add(tensor, tensor)
    sess.run(out)

1 Ответ

0 голосов
/ 19 мая 2019

Ваша переменная out определена внутри блока with, но вы пытаетесь запустить ее за пределами блока, в котором она определена.Попробуйте сделать отступ в sess.run(out) там, где он действителен.

sess = tf.Session()
with sess.as_default():
    tensor = tf.range(10)
    print_op = tf.print(tensor)
    with tf.control_dependencies([print_op]):
      out = tf.add(tensor, tensor)
      sess.run(out)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...