このページは Cloud Translation API によって翻訳されました。
Switch to English

tf.py_function

TensorFlow 1つのバージョン GitHubの上のソースを表示

熱心にそれを実行しTensorFlowオペアンプにPythonの機能をラップします。

ノートPCで使用されます

ガイドで使用チュートリアルで使用されます

この機能は、Pythonの関数としてTensorFlowグラフで計算を表現することができます。特に、Python関数ラップfunc熱心な実行を有効にしてそれを実行一度微分TensorFlow操作で。その結果、 tf.py_functionパイソンを使用して制御フローを表現することができる(構築ifwhilefor代わりTensorFlow制御フローコンストラクト(OF等) tf.condtf.while_loop )。たとえば、あなたが使用する可能性がありますtf.py_functionログフーバー機能を実装します:

 def log_huber(x, m):
  if tf.abs(x) <= m:
    return x**2
  else:
    return m**2 * (1 - 2 * tf.math.log(m) + tf.math.log(x**2))

x = tf.compat.v1.placeholder(tf.float32)
m = tf.compat.v1.placeholder(tf.float32)

y = tf.py_function(func=log_huber, inp=[x, m], Tout=tf.float32)
dy_dx = tf.gradients(y, x)[0]

with tf.compat.v1.Session() as sess:
  # The session executes `log_huber` eagerly. Given the feed values below,
  # it will take the first branch, so `y` evaluates to 1.0 and
  # `dy_dx` evaluates to 2.0.
  y, dy_dx = sess.run([y, dy_dx], feed_dict={x: 1.0, m: 2.0})
 

また、使用することができますtf.py_functionつまり、あなたは、デバッグしたいというあなたのコードの部分を分離するPython関数でラップして挿入することができ、Pythonツールを使用して、実行時に、あなたのモデルをデバッグするpdbトレースポイントや必要に応じて書類を印刷し、それらを包みます関数tf.py_function

熱心実行に関する詳細については、 熱心なガイドを

tf.py_functionその精神において似ているtf.compat.v1.py_funcが、後者とは異なり、前者はあなたが包まれたPythonの関数でTensorFlow操作を使用することができます。しながら具体的には、 tf.compat.v1.py_func唯一のCPU上で実行され、入力としてnumpyの配列を取得し、出力としてnumpyの配列を返す関数をラップ、 tf.py_function入力としてテンソルを取るのGPUとラップ機能に配置することができ、TensorFlowを実行します自分の体での操作、および出力としてリターンテンソル。

同様tf.compat.v1.py_functf.py_function直列化および配布に関して、次の制限があります。

  • 関数の本体(つまり、 func )に連載されませんGraphDef 。あなたのモデルをシリアル化し、異なる環境の中でそれを復元する必要がある場合はそのため、あなたはこの機能を使用しないでください。

  • 操作呼び出しPythonプログラムと同じアドレス空間で実行する必要がありますtf.py_function()あなたは、分散TensorFlowを使用している場合は、実行する必要がありますtf.distribute.Server呼び出すプログラムと同じプロセスでtf.py_function() 、あなたが使用して(そのサーバーにデバイスに例えばを作成し、操作を固定しなければならないwith tf.device():

func リスト受け付けるA Python関数Tensor 、対応する一致要素タイプを有するオブジェクトtf.Tensor内のオブジェクトinpとのリストを返しTensorオブジェクト(または単一Tensor 、またはNoneの対応する値と一致する要素タイプを有する) Tout
inp リストTensorオブジェクト。
Tout tensorflowデータタイプまたは単一tensorflowデータタイプのリストまたはタプルだけ、何を示すがある場合func戻ります。 (戻り値がない場合、つまり、値が返されていない場合は空のリストNone )。
name 操作の名前(オプション)。

リストTensor又は単一Tensor func計算します。空のリストの場合func戻りなし。