web-dev-qa-db-ja.com

TensorFlowの印刷が印刷されない

私は強化学習アルゴリズムからいくつかのコードを理解しようとしています。そのためにテンソルの値を出力しようとしています。

簡単なコードを作成して、私が何を意味するかを示しました。

import tensorflow as tf
from keras import backend as K

x = K.abs(-2.0)
tf.Print(x,[x], 'x')

目標は、値「2」を印刷することです(-2の絶対値)。しかし、私は次のものだけを返します:

Using TensorFlow backend.

Process finished with exit code 0

何もないのですが、print( '...')ステートメントと同じように値「2」を出力するにはどうすればよいですか?

4
JorDik

Jupyter Notebookを使用している場合、これまでのtf.Print()は互換性がなく、 docs で説明されているように、出力をNotebookのサーバー出力に出力します。

Tensorflowのドキュメントでは、Tensorsの記述方法は次のとおりです。

TensorFlowプログラムを作成する場合、操作して渡す主なオブジェクトはtf.Tensorです。 tf.Tensorオブジェクトは、最終的に値を生成する部分的に定義された計算を表します。

したがって、それらをtf.Session()で初期化して値を取得する必要があります。値を出力するには、eval()

必要なコードは次のとおりです。

import tensorflow as tf
from keras import backend as K

x= K.abs(-2.0)
with tf.Session() as sess:
    init = tf.global_variables_initializer()
    sess.run(init)
    print(x.eval())

初期化子は実際にxを初期化するために重要です。

5

学習目的で、熱心な実行をオンにすると便利な場合があります。積極的実行が有効になっていると、TensorFlowはすぐに操作を実行します。次に、単にprintまたはtensorflow.print()を使用して、オブジェクトの値を出力できます。

import tensorflow as tf
from keras import backend as K

tf.compat.v1.enable_eager_execution() # enable eager execution

x = K.abs(-2.0)
tf.Print(x,[x], 'x')

詳細はこちらをご覧ください。 https://www.tensorflow.org/api_docs/python/tf/compat/v1/enable_eager_execution

0
Tim Chen

TF 2.0以降でテンソルを印刷するには

_my_sample = tf.constant([[3,5,2,6], [2,8,3,1], [7,2,8,3]])
_
  1. Session.run()を使用
    with tf.compat.v1.Session() as ses: print(ses.run(my_sample))

  2. Eval()を含む1行
    print(tf.keras.backend.eval(my_sample))

0
Anku5hk