gpt4 book ai didi

python - TensorFlow,为什么选择 python 语言?

转载 作者:IT老高 更新时间:2023-10-28 11:34:23 26 4
gpt4 key购买 nike

我最近开始研究深度学习和其他 ML 技术,我开始寻找可以简化构建网络和训练它的过程的框架,然后我发现了 TensorFlow,在该领域几乎没有经验,对我来说,似乎如果使用深度学习,速度是制作大型 ML 系统的一个重要因素,那么为什么谷歌选择 Python 来制作 TensorFlow?把它放在一种可以编译而不是解释的语言上不是更好吗?

相对于 C++ 等语言进行机器学习,使用 Python 有哪些优势?

最佳答案

关于 TensorFlow,最重要的一点是,在大多数情况下,核心不是用 Python 编写的:它是用高度优化的 C++ 和 CUDA(Nvidia 的语言编程 GPU)。反过来,通过使用 Eigen 会发生大部分情况。 (高性能 C++ 和 CUDA 数值库)和 NVidia's cuDNN (一个非常优化的 DNN 库,用于 NVidia GPUs ,用于 convolutions 等功能)。

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

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

在 Python 运行时并未实际执行。相反,实际创建的是 dataflow graph这就是说接受特定的输入,应用特定的操作,将结果作为输入提供给其他操作,等等。 此模型由快速 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 的东西。

在表达模型时还存在很多复杂性,而这些模型在执行时并未使用 - 形状推断(例如,如果您执行 matmul(A, B),结果数据的形状是什么?)和自动gradient计算。事实证明,能够用 Python 表达这些内容很好,但我认为从长远来看,它们可能会转移到 C++ 后端,以便更轻松地添加其他语言。

(当然,希望在未来支持其他语言来创建和表达模型。使用其他几种语言运行推理已经非常简单——C++ 现在可以工作了,来自 Facebook 的某人贡献了 Go 绑定(bind)我们现在正在审查,等等)

关于python - TensorFlow,为什么选择 python 语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35677724/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com