2016-07-13 11 views
0

私はtensorflowでconv_opsのような演算を作成するには?

をやろうとしている私はC++とbazelに新たなんだと私はtensorflowで畳み込み演算にいくつかの変更をしたいので、私は私の最初のステップは、ちょうどOPSを作成することであると判断いいね。私は

を行っている何

私は// tensorflow /コア/カーネルからconv_ops.ccをコピーして、私のnew_conv_ops.ccにregistrated OPSの名前を変更します。重複を避けるために、ファイル内の関数の名前を変更しました。ここに私のBUILDがありますfile.

ご覧のとおり、私はconv_opsのdeps属性を// tensorflow/core/kernels/BUILDからコピーします。次に、私は "bazel build -c opt //tensorflow/core/user_ops:new_conv_ops.so"を使って新しいopをビルドします。

は私の問題は

ある何それから私は私がbounds_checkを削除しようとしましたし、次のdepsのために同じエラーを得た。このerror.

を得ました。それから、// tensorflow/core/user_opsの//テンソルフロー/コア/カーネルにhファイルを含めるにはいくつかの問題があることに気付きました。だから私はconv_opsのようなexcatcly新しいopを完璧に作成できますか?

答えて

0

TensorFlowにカスタム操作を追加する方法については、チュートリアルhereを参照してください。実際のコードexamplesを見ることもできます。

特定の問題に対処するには、tf_custom_op_libraryマクロがターゲットに必要な依存性のほとんどを追加することに注意してください。次のように書くことができます:

tf_custom_op_library(
    name="new_conv_ops.so", 
    srcs=["new_conv_ops.cc"] 
) 
+0

ありがとうございました!しかし、上記のようにBUILDファイルが単純に記述されていると、「このルールには次のファイルの依存関係宣言がありません」というエラーが表示され、BUILDファイルに含めるファイルが記述されています。私はいくつかの検索をオンラインで行い、// tensorflow/coreのBUILDファイルにuser_ops_op_libのcc_library定義を見つけました。ライブラリのdeps属性に必要なファイルを追加しましたが、動作しませんでした。ですから、おそらく私の.soファイルのBUILDに依存権を定義するべきだと思います。 –

+0

上記の実際のコード例も読んでいますが、tensorflow/core/kernelsなどのhファイルの依存関係には関係していません。もっと複雑な例があるのでしょうか?ちょうどop.hとop_kernel.h) –

+0

こんにちは、私は新しいopを追加している間、同様の問題に直面しています。この問題を解決できましたか?私はこのことについて助けを得てうれしいです。 –