問題タブ [custom-operator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
799 参照

f# - 計算式でカスタム演算子を定義する方法

計算式にいくつかのカスタム演算子を定義したいのですが、うまくいきません

ところで、に変更member this.Map f s ...member this.Map (f, s) ...ても同じエラーが発生します。

0 投票する
3 に答える
1280 参照

c++ - カスタム op の CPU 実装が選択されているのはなぜですか?

カスタム TensorFlow op の書き方を学ぶために、新しい Op の追加のbチュートリアルに従い、すべての入力値にスカラーを追加する「add_b」op を作成しました。

add_b_op.cc:

add_b_op.cu.cc

CPU または GPU 実装が使用されているかどうかを区別できるように、意図的に CPU 実装にエラーを導入しました。

カスタム op を次のようにテストすると、次のようになります。

次の出力が得られます。

「デバイス配置ログ」は GPU で op が実行されていることを示しているように見えますが、出力は CPU 実装が使用されていることを示しています。

DEVICE_CPU実装、再コンパイル、および再テストの 2 つの REGISTER_KERNEL_BUILDER() 登録をコメント アウトすると、期待どおりの出力が得られ[ 13. 12. 11. 10. 9.]ますが、エラーが発生します。

このエラー メッセージはバグのように見えます。エラーには「エグゼキュータがカーネルを作成できませんでした」と表示されますが、GPU で op を実行するためにカーネルが作成されたようです。

GPU 実装ではなく CPU 実装が使用されているのはなぜですか?

これが重要な場合に備えて、私の開発セットアップの詳細を以下に示します。

  • NVIDIA GeForce GT 750M (CUDA Compute Capability 3.0) を内蔵した MacBook Pro を使用しています。
  • macOS シエラ バージョン 10.12.1 (16B2555)
  • cuda_8.0.47_mac、cudnn-8.0-osx-x64-v5.1
  • TensorFlow 0.11.0rc2 のインストール:export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/mac/gpu/tensorflow-0.11.0rc2-py2-none-any.whl

更新CPU または GPU の実装が選択されているかどうかは、入力のサイズに依存することがわかりました。このテスト スクリプトを使用すると、次のようになります。

..NUM_VALUESが 1310720 以下の場合、CPU 実装が使用されます。NUM_VALUESが 1310721 以上の場合、GPU 実装が使用されます。

(1310720 * double あたり 8 バイト = ) 10 MiB カットオフはありますか? もしそうなら、どうすればこれをオーバーライドできますか? AddB() op は十分に単純ですが、より複雑なカスタム操作の場合、10 MiB は GPU 実装を選択するにはしきい値が大きすぎる可能性があります。