您的位置:首页 > 编程语言 > C语言/C++

为什么 Python被Google选为TensorFlow的开发语言呢?使用 Python比C++语言进行机器学习有什么优势?

2017-11-28 18:08 986 查看
其实TensorFlow大部分内核并不是用Python编写的 :它是高度优化了C++和CUDA(Nvidia用于编程GPU的语言)的组合。 相反,通常它是使用了Eigen (高性能C ++和CUDA库)和NVidia的cuDNN (用于NVidia GPU的非常优化的DNN库,用于卷积等功能)。

TensorFlow的模型是程序员用“一种语言”(很可能是Python!)来表达。 这个模型,是写在TensorFlow结构中的,如:

h1 = tf.nn.relu(tf.matmul(l1, W1) + b1)

h2 = ...

当Python运行时,实际上并没有被执行。 相反,实际创建的是一个数据流图 ,表示采取特定输入,应用特定操作,将结果提供给其他操作的输入,等等。 该模型由快速C ++代码执行,并且在大多数情况下,操作之间的数据不会被复制回Python代码 。

然后,程序员通过拉扯节点来驱动这个模型的执行,通常用Python进行训练,有时在Python中,有时是在原始的C ++中:

sess.run(eval_results)

这一个Python程序(或C ++函数调用)使用C ++的进程内调用或分布式版本的RPC调用C ++ TensorFlow服务器来告诉它执行,然后复制结果。

所以说,我们再说一下这个问题:为什么TensorFlow选择Python作为表达和控制模型训练而且支持的非常好的语言?

答案很简单:Python可能是大量数据科学家和机器学习专家用的最舒适的语言,也是易于集成和控制C ++后端的语言,同时也是广泛使用与谷歌的公司内外和他们的开源产品。 鉴于使用TensorFlow的基本模型,Python的性能并不重要,这是一个很自然的契合。 NumPy也是一个巨大的加分,它可以很容易地在Python中进行预处理(也是高性能),然后将它们提供给TensorFlow,以获得真正CPU-heavy的东西。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: