2017-12-28 4 views
0

TensorFlowのtf.py_func関数はTF演算を使用できないと思っていますが、基本的に純粋なpython/numpyであるべきですか?例えば、私のような何かを行うことができるようには見えません。正しいTensorflowのpy_func内でテンソルを定義する

def my_py_func(values): 
    return tf.greater(values, 1) 

答えて

2

は、tf.py_funcはnumpyの配列が設けられており、同様numpyの配列を返すことが期待されています。

通常、tf.greaterなどのTensorFlow操作はすぐに実行されず、代わりにグラフ内の記号テンソルにハンドルを返します。したがって、py_funcでこれらを使用することは意味をなさない。なぜなら、単にグラフに操作を追加するだけだからである。

ただし、TensorFlowのeager execution機能(blog post)により、TensorFlow操作がすぐに実行されます。

TensorFlow(バージョン1.5以降)の将来のリリースでは、代わりにtfe.py_funcを使用することができます。これにより、Python関数でTensorFlow操作を使用できるようになります。この機能は積極的に開発されているので、重要なのであれば、Githubの問題リストを参照してください。特に、tfe.py_funcにPython関数を提供してGPU上で操作を実行させることも可能であり、また微分可能です。

希望に役立ちます。

+0

これは意味があります。私はこれが、私が[投稿](https://stackoverflow.com/questions/48013711/using-op-inputs-when-defining-custom-gradients-in-tensorflow)の他の質問にも答えると思います。 _関数_。 py_funcを使用することは可能ですが、CPU上で動作します。私はtf.indentity()を使用してそれを達成することを望んでいましたが、tfeはまさに私が望むものです。 – Milad

関連する問題