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

其实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的东西。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值