我试图确定如何gen_io_ops模块由巴泽尔从源代码构建TensorFlow时产生的。
在tensorflow /蟒/操作/ io_ops.py ,有这一段代码:
from tensorflow.python.ops.gen_io_ops
[...]
# used in the TextLineReader initialization
rr = gen_io_ops._text_line_reader_v2(...)
参照bazel-genfiles/tensorflow/python/ops/gen_io_ops.py
模块(和构建TensorFlow当由巴泽勒生成)。
该_text_line_reader_v2
是一个包装TextLineReaderV2
中定义tensorflow / tensorflow /型芯/核/ text_line_reader_op.cc 。
据我了解,构建步骤的优势如下:
1)为内核库text_line_reader_op
建在tensorflow / tensorflow /核心/粒/ BUILD
tf_kernel_library(
name = "text_line_reader_op",
prefix = "text_line_reader_op",
deps = IO_DEPS,)
其中tf_kernel_library
基本上查找text_line_reader_op.c文件并生成它。
2) :text_line_reader_op
内核库然后被用作由一个依赖io
中定义的库相同的文件 :
cc_library(
name = "io",
deps = [
":text_line_reader_op", ...
],
)
我想在io
库现在包含的定义TextLineReaderV2
内核。
从我从这得到答案 ,应该是在第三步 io
库用来生成Python包装是在bazel-genfiles/tensorflow/python/ops/gen_io_ops.py
模块。 该文件生成可以通过完成tf_op_gen_wrapper_py
在巴塞尔或规则tf.load_op_library()
方法,但他们都不参与。
是否有人知道这第三步是在构建过程中定义的?