TensorFlow源代码的调用堆栈跟踪?

我一直想学习TensorFlow,因此我想阅读它的源代码,但在开始时遇到了困难。例如:

一个TensorFlow函数

我无法找到函数的更深层次。

函数Shape在哪里计算的?


回答:

你展示的代码片段是一个自动生成的代码片段,它向图中添加了一个"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()方法。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注