【问题标题】:The call-stacktrace of TensorFlow source code?TensorFlow 源代码的调用堆栈跟踪?
【发布时间】:2016-08-30 03:14:46
【问题描述】:

我想研究TensorFlow很久了,所以想看一下它的源代码,但是刚开始。例如:

找不到更深层次的功能。

函数Shape在哪里计算?

【问题讨论】:

    标签: machine-learning nlp computer-vision tensorflow deep-learning


    【解决方案1】:

    您展示的代码片段是自动生成的一段代码,它将"Shape" 操作添加到图表中。 _op_def_lib.apply_op() 的参数中的字符串 "Shape" 确定节点的操作类型。标准操作类型在 C++ 源代码中注册,在 TensorFlow 源代码的tensorflow/core/ops/ 目录中。特别是,"Shape" 操作在tensorflow/core/ops/array_ops.cc 中注册。这些注册用于定义每个操作的输入、属性和输出的类型,Python 包装器是从这些注册生成的。

    当您第一次运行包含该节点的子图时(即在对 tf.Session.run() 的调用中),TensorFlow 将查找在特定设备上实现该操作的适当内核。 (例如,CPU 和 GPU 操作实现通常有单独的内核。)标准内核实现在 C++ 源代码中注册,在 TensorFlow 源代码的tensorflow/core/kernels/ 目录中。特别是,"Shape" 内核在tensorflow/core/kernels/shape_ops.cc 中注册。内核注册命名一个实现内核的类,它必须是tensorflow::OpKernel的子类,在这种情况下是tensorflow::ShapeOp类。子图第一次运行时调用构造函数,每次运行时调用Compute()方法。

    【讨论】:

    • 谢谢。请告诉我在我的本地机器上哪里可以找到这些 C++ 文件?再次感谢。我搜索了整个文件系统,都找不到。那么如何高效地阅读C++源代码呢?
    • 这取决于您如何配置 TensorFlow 安装。如果您从源代码安装,它们将位于您将TensorFlow git repository 克隆到的位置。如果您从 PIP 包安装,则源文件可能不在您的本地计算机上。
    猜你喜欢
    • 2020-10-25
    • 1970-01-01
    • 2011-08-07
    • 2014-05-29
    • 2011-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多