如何在tensorflow中编译自定义ops而不必在python中动态导入它们?

时间:2017-08-07 18:01:18

标签: python tensorflow bazel

我查看了tensorflow文档,他们似乎只提供了有关通过bazel规则编译自定义操作的信息:

load("//tensorflow:tensorflow.bzl", "tf_custom_op_library")

tf_custom_op_library(
    name = "zero_out.so",
    srcs = ["zero_out.cc"],
)

一旦bazel构建它,你会得到一个zero_out.so文件,你可以将其导入到python中,如下所示:

import tensorflow as tf
zero_out_module = tf.load_op_library('./zero_out.so')

无论如何,你可以在张量流的bazel构建期间链接custom_ops,这样你就不需要通过tf.load_op_library手动导入自定义操作了吗?

1 个答案:

答案 0 :(得分:0)

除了动态加载它们之外,没有官方支持的扩展点来引入你自己的操作。

如果您从源代码构建张量流并且愿意破解它,那么假装您的操作是核心操作并不难,但它不受支持。