ドキュメントによれば、tf.py_func
を使用して自分の操作を定義できます。 Numpy配列を受け取り、Numpy配列を返す必要があります。それは文書に明示的に書かれていませんが、私はそれがCPUデバイスに束縛されると結論づけますか?CPU操作のpy_func?
これをGPU上で動作する可能性がある他のopsと組み合わせると、TFは貪欲に多くの計算をGPUに移して、自動的にGPUとCPUの間でメモリを転送しますか?tf.py_func
op? (ちょうどTheanoのように)
tf.py_func
のようなGPU操作を定義するようなものはありますか?
貴重なフィードバックをありがとう。 'Defun'について:関数内で引数はどのような型ですか? whileループなどの命令的ロジックを実装することはできますか?それとも、テスト例のようにスカラーだけで動作するのでしょうか?そしてそれをGPUオペレーションにどのように変換しますか?場合によっては、CUDAコードを直接記述したいと考えています。 TheanoのようなシンプルなPythonインターフェイスがあるのですか、それともC++ APIを使用する必要がありますか? – Albert
Defunでは、TensorFlowグラフを複数のオブジェクトにグループ化できます。したがって、TFグラフ操作だけがそこで実行されることができます。 TFグラフは、制限付きwhileループ(副作用やブレーク/継続を許さない)など、いくつかのフロー制御をサポートしています。カスタムCUDAカーネルを作成するには、C APIを使用する必要があります。例は次のとおりです。https://github.com/MycChiu/fast-LayerNorm-TF –