如何确定神经网络是否具有静态计算图?
数据挖掘
神经网络
张量流
喀拉斯
火炬
2021-10-03 20:06:35
1个回答
我相信目前最著名的库的实现将允许您实现遇到的任何网络。所以归结为品味和实用性方面。
至于根据您要创建的网络决定框架;如果网络具有在训练期间有条件地使用的分支或单独的控制流(数据传输或逻辑),那么 PyTorch可能更有用。否则,最好的起点可能是使用Keras - 一个基于 Tensorflow的高级 API 。
(非常)一般的经验法则是:
使用 Pytorch 进行实验,使用 Tensorflow 进行生产
现在对上述全面声明的警告:
- 两个图书馆都在努力覆盖“另一个”图书馆的优势:
最新版本的 Pytorch (v1.0) 提供了几种制作生产就绪代码的方法 - 因此编译它以提高性能以及使用 16 位浮点运算(与标准 32 位相对)的方法。他们还开始推出 C++ API。这些都是制作用于部署的全面产品的所有步骤。Tensorflow 引入了它的 Eager API,用于 Eager Execution,这意味着您可以像在 PyTorch 中一样构建动态图。这可以实现更快、更具交互性的原型设计。
- 您在开发过程中的经验可能更重要:
如果你是一个纯粹的 Python 开发者,PyTorch 会感觉更自然。如果你曾经是其他静态类型语言(如 C++ 和 Java)的普通软件工程师,Tensorflow 可能会觉得更符合逻辑。
概括
总的来说,Tensorflow 和(现在内置的)Keras 包装器是一个更成熟的库,拥有更大的社区和更长的历史,这意味着更多的在线支持。据我所知,PyTorch 周围有更高级别的 excitemnet。它在研究和较新的开源项目/课程中被非常积极地使用,这表明它可能成为主导力量。
其它你可能感兴趣的问题