执行tf.extract_image_patches
在哪里?我检查了我找不到的tensorflow库。执行tf.extract_image_patches
文件tensorflow/core/kernels/extract_image_patches_op.cc
不包含实现。
执行tf.extract_image_patches
在哪里?我检查了我找不到的tensorflow库。执行tf.extract_image_patches
文件tensorflow/core/kernels/extract_image_patches_op.cc
不包含实现。
这是一个有趣的问题。路径如下:
的Python tf.extract_image_patches
函数在所生成的文件tensorflow/python/ops/gen_array_ops.py
,这将调用"ExtractImagePatches"
天然运算实现。
对于CPU和GPU设备,此操作由中的ExtractImagePatchesOp
实现。主要电话是functor::ExtractImagePatchesForward
...
...它定义在core/kernels/extract_image_patches_op.h
。实际的逻辑被委托给输入张量的::extract_image_patches()
方法。张量的类型为TTypes<T, 4>::ConstTensor
,这是一个Eigen::TensorMap
core/framework/tensor_types.h
的类型定义。
在这一点上,人的失控tensorflow源基地,因为Eigen
是从第三方eigen library(GitHub mirror)。它的源代码有点non-trivially downloaded and linked张量流,但现在我们有兴趣在Eigen::TensorMap::extract_image_patches()
功能。
它在eigen/unsupported/Eigen/CXX11/src/Tensor/TensorBase.h
文件中定义和适用TensorImagePatchOp
...
...可以在eigen/unsupported/Eigen/CXX11/src/Tensor/TensorImagePatch.h
找到。最后,这个仿函数不会进一步委托它,即实际的实现。
注意Eigen
库的特定版本可以在不同的不同构建tensorflow,你应该在巴泽尔配置检查。