執行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,你應該在巴澤爾配置檢查。