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

tf.numpy_function

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

Pythonの機能をラップしてTensorFlowオペアンプとしてそれを使用しています。

ノートPCで使用されます

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

Pythonの関数を考えるfunc TensorFlow機能の操作として、この機能をラップします。 func引数としてnumpyの配列を取得し、その出力としてnumpyの配列を返す必要があります。

次の例では、とTensorFlowグラフ作成np.sinh()グラフの動作とを:

def my_numpy_func(x):
  # x will be a numpy array with the contents of the input to the
  # tf.function
  return np.sinh(x)
@tf.function(input_signature=[tf.TensorSpec(None, tf.float32)])
def tf_function(input):
  y = tf.numpy_function(my_numpy_func, [input], tf.float32)
  return y * y
tf_function(tf.constant(1.))
<tf.Tensor: shape=(), dtype=float32, numpy=1.3810978>

比較tf.py_functiontf.py_functiontf.numpy_functionあることを除いて、非常に似ていtf.numpy_function numpyの配列を受け取り、そしてないtf.Tensor秒。あなたは関数が含まれているしたい場合はtf.Tensorsし、持っている機能で実行されたTensorFlow操作は、してください使用微分可能tf.py_function

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

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

  • 関数がnumpyの配列を取りますので、あなたはnumpy_functionて勾配を取ることはできません。あなたが微分可能である何かが必要な場合は、tf.py_functionの使用を検討してください。

  • 結果の関数は、ステートフルとみなされ、最適化されることはありません。

func 受け付けA Pythonの関数、 numpy.ndarray引数としてオブジェクトをとのリストを返しnumpy.ndarrayオブジェクト(または単一numpy.ndarray )。テンソルがあるので、この機能は多くの引数として受け入れなければならないinp 、これらの引数の型は、対応するマッチしますtf.Tensor中でオブジェクトをinp 。リターンはnumpy.ndarray sが定義された数と型と一致しなければなりませんTout 。重要な注意:入力と出力のnumpy.ndarray Sのfuncコピーであることが保証されていません。いくつかのケースではその基礎となるメモリは、対応するTensorFlowテンソルと共有されます。インプレース変更または保存func明示せずにPythonのデータ構造での入力または戻り値を(NP。)コピーは非決定的な影響を持つことができます。
inp リストtf.Tensorオブジェクト。
Tout tensorflowデータタイプまたは単一tensorflowデータタイプのリストまたはタプルだけ、何を示すがある場合func戻ります。
name 操作用(オプション)Aの名前。

シングルまたはのリストtf.Tensor func計算します。