[解決済み】TensorFlowでTensorオブジェクトの値を表示する方法は?
質問
TensorFlowで行列の乗算の入門的な例を使っています。
matrix1 = tf.constant([[3., 3.]])
matrix2 = tf.constant([[2.],[2.]])
product = tf.matmul(matrix1, matrix2)
商品を印刷すると、表示されているのは
Tensor
オブジェクトを作成します。
<tensorflow.python.framework.ops.Tensor object at 0x10470fcd0>
しかし、どうすれば
product
?
以下は参考にならない。
print product
Tensor("MatMul:0", shape=TensorShape([Dimension(1), Dimension(1)]), dtype=float32)
でグラフが実行されることは知っています。
Sessions
の出力を確認する方法はないのでしょうか?
Tensor
オブジェクトでグラフを実行することなく
session
?
解決方法は?
最も簡単な方法
<上
[A]
の実際の値を評価する方法です。
Tensor
オブジェクトに渡すことです。
Session.run()
メソッドを呼び出すか、あるいは
Tensor.eval()
を使用する場合、デフォルトのセッション(つまりは
with tf.Session():
ブロック、または下記参照)。一般に
[B]
の場合、セッションで何らかのコードを実行しなければ、テンソルの値を表示することはできません。
もし、プログラミングモデルを実験していて、テンソルを簡単に評価する方法が欲しい場合は
tf.InteractiveSession
を使用すると、プログラムの開始時にセッションを開き、そのセッションですべての
Tensor.eval()
(そして
Operation.run()
を呼び出すことができます。シェルやIPythonノートブックなどの対話的な環境では、この方が簡単です。
Session
オブジェクトをあらゆる場所に配置することができます。例えば、Jupyterノートブックでは以下のように動作します。
with tf.Session() as sess: print(product.eval())
このような小さな表現では馬鹿げていると思われるかもしれないが、Tensorflow 1.xの重要なアイデアの1つは次の通りである。
遅延実行
大きな式や複雑な式を作るのはとても簡単で、それを評価したいときに、バックエンド (バックエンドに接続するには
Session
は、より効率的に実行スケジュールを組むことができます(例えば、独立した部分を並列に実行したり、GPUを使用したりします)。
[A]: テンソルの値をPythonのプログラムに返さずに表示するためには
tf.print()
演算子を使用します。
Andrzejは別の回答で次のように提案しています。
. 公式ドキュメントによると
演算子を確実に実行させるために、ユーザーは生成されたopを
tf.compat.v1.Session
で指定することで、実行されるopの制御依存としてopを使用することができます。tf.compat.v1.control_dependencies([print_op]
) が、標準出力に出力される。
また、次のことにも注意してください。
Jupyterノートブックやcolabで。
tf.print
はノートブックのセル出力に印刷します。ノートブックカーネルのコンソールログには書き込まれません。
[B]: あなたは
かもしれない
が使えるようになる。
tf.get_static_value()
関数を使って、与えられたテンソルの定数値を得ることができる。
関連
-
[解決済み】 AttributeError("'str' object has no attribute 'read'")
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] 辞書を値で並べ替えるにはどうしたらいいですか?
-
[解決済み] リストの最後の要素を取得する方法
-
[解決済み] 辞書のリストを辞書の値でソートするにはどうしたらいいですか?
-
[解決済み] 改行やスペースを入れずに印刷する方法
-
[解決済み] Pythonでオブジェクトが属性を持つかどうかを知る方法
-
[解決済み] オブジェクトの種類を決定しますか?
-
[解決済み] Pythonで標準エラー出力するには?
-
[解決済み] print関数の出力をフラッシュする(pythonの出力をバッファリング解除する)にはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Pythonコンテナのための組み込み汎用関数操作
-
Python関数の高度な応用を解説
-
Python機械学習Githubが8.9Kstarsに達したモデルインタープリタLIME
-
Python百行で韓服サークルの画像クロールを実現する
-
pyCaret効率化乗算器 オープンソース ローコード Python機械学習ツール
-
PythonによるExcelファイルの一括操作の説明
-
Python LeNetネットワークの説明とpytorchでの実装
-
Pythonの@decoratorsについてまとめてみました。
-
Python 入出力と高次代入の基礎知識
-
[解決済み】「RuntimeError: dictionary changed size during iteration」エラーを回避する方法とは?