自分のカスタムOp用にカーネルを実装し、/tensorflow/core/user_ops
にcustom_op.cc
というように入れました。オペラの中では、REGISTER_OP
とREGISTER_KERNEL_BUILDER
のようなものをすべて登録します。TensorFlowのカスタムOpをPythonでインポートするには?
次に、このOpのための勾配をPythonで実装しました。これをcustom_op_grad.py
と同じフォルダに入れました。私もここで登録しました(@ops.RegisterGradient
)。
:私は呼び出すことで、すべてのこの後の私のオペアンプを使用しようとすると
pip uninstall tensorflow
bazel clean
bazel build -c opt //tensorflow/tools/pip_package:build_pip_package
cp -r bazel-bin/tensorflow/tools/pip_package/build_pip_package.runfiles/__main__/* bazel-bin/tensorflow/tools/pip_package/build_pip_package.runfiles/
bazel-bin/tensorflow/tools/pip_package/build_pip_package /tmp/tensorflow_pkg
pip install /tmp/tensorflow_pkg/tensorflow-0.8.0-py2-none-any.whl
:その後
load("//tensorflow:tensorflow.bzl", "tf_custom_op_library")
tf_custom_op_library(
name = "custom_op.so",
srcs = ["custom_op.cc"],
)
py_library(
name = "custom_op_grad",
srcs = ["custom_op_grad.py"],
srcs_version = "PY2",
deps = [
":custom_op_grad",
"//tensorflow:tensorflow_py",
],
)
、私はTensorflowを再構築tf.user_ops.custom_op
モジュールはそれを持っていないと私に伝えます。
多分、追加する必要があるいくつかの手順がありますか?または、BUILD
ファイルで何か問題が起きていますか?