用 C++ 和 Python 编写的所有 Tensorflow 算法是不是都只是易于使用的 API?
Posted
技术标签:
【中文标题】用 C++ 和 Python 编写的所有 Tensorflow 算法是不是都只是易于使用的 API?【英文标题】:Are all the algorithms of Tensorflow written in C++ and Python only serve to be easy-to-use APIs?用 C++ 和 Python 编写的所有 Tensorflow 算法是否都只是易于使用的 API? 【发布时间】:2017-04-24 23:29:54 【问题描述】:我知道 Tensorflow 是用 C++ 引擎编写的,但是我在我的安装目录中没有找到任何 C++ 源代码(我是通过 pip 安装的)。当我检查 python 代码时,我感觉到 python 级别只是一个包装器,没有呈现算法的本质。例如tensorflow/python/ops/gradients.py
中,gradients()
函数调用python_grad_func()
计算梯度,这是DeFun
的类方法。
我的问题是,Tensorflow 的所有重要部分都是用 C++ 编写的,而 python 只是用作一些 API 吗?
【问题讨论】:
这听起来很可能,因为算法可以用最适合该问题的语言编写,然后您只需提供绑定以使用不同语言的库。根据我的经验,这是一种相当典型的做法 @Neo223:你知道如何从 Tensorflow 源代码中获取任何运算符的实际 c++ 实现/代码吗?有没有办法在tensorflow中获取后端c++代码? 【参考方案1】:这基本上是正确的,尽管在 Python 中实现了很多复杂的东西。我不会说 C++ 中的“算法”,而是说核心数据流执行引擎和大多数操作(例如 matmul 等)都在 C++ 中。许多管道以及一些功能(如定义函数的梯度)都在 Python 中。
有关为什么会这样的更多信息和讨论,请参阅this *** answer
【讨论】:
以上是关于用 C++ 和 Python 编写的所有 Tensorflow 算法是不是都只是易于使用的 API?的主要内容,如果未能解决你的问题,请参考以下文章