TensorFlow Conv2D 实现?
TensorFlow Conv2D implementation?
我正在尝试查找实际 Conv2D 操作的实现位置,以便我可以评估内存访问模式。环顾四周,看起来 Conv2D 操作的执行通过 contract()
函数调用进入 Eigen。问题是,我似乎无法在 TensorFlow 或 Eigen 源中找到函数的定义或声明。
哪些函数主要负责在 TensorFlow 中执行 Conv2D 操作?我想看看它是如何瘫痪的,一般的内存访问模式是什么,以及原始计算是如何完成的。
此查询专门针对 CPU,因为我已经在一定程度上研究了 GPU 执行。
我认为 Conv2dCPU 是使用 Eigen 在这个文件中实现的conv ops Line 61 onwards
contract()
returns 一个抽象表达式,其计算在 TensorContraction.h 中实现。它本质上是 Eigen 矩阵-矩阵或矩阵-向量乘积之上的包装器。
经过一番搜索,我发现 CPU Conv2D 的实际实现在 deep_conv2d.cc。
我正在尝试查找实际 Conv2D 操作的实现位置,以便我可以评估内存访问模式。环顾四周,看起来 Conv2D 操作的执行通过 contract()
函数调用进入 Eigen。问题是,我似乎无法在 TensorFlow 或 Eigen 源中找到函数的定义或声明。
哪些函数主要负责在 TensorFlow 中执行 Conv2D 操作?我想看看它是如何瘫痪的,一般的内存访问模式是什么,以及原始计算是如何完成的。
此查询专门针对 CPU,因为我已经在一定程度上研究了 GPU 执行。
我认为 Conv2dCPU 是使用 Eigen 在这个文件中实现的conv ops Line 61 onwards
contract()
returns 一个抽象表达式,其计算在 TensorContraction.h 中实现。它本质上是 Eigen 矩阵-矩阵或矩阵-向量乘积之上的包装器。
经过一番搜索,我发现 CPU Conv2D 的实际实现在 deep_conv2d.cc。