值得注意的是,当时的 PyTorch 在职位数量增长方面尤其亮眼,与 TensorFlow 之间的差距非常小。而且,除了领英之外,PyTorch 在所有求职网站上的职位增加量都超过了 TensorFlow。
tensorflow与pytorch调研
发展趋势:pytorch 获胜
2018:tensorflow碾压pytorch
2019:pytorch火力全开,tensorflow增长乏力
2020:pytorch在学术界,顶会独领风骚,职场上追赶tensorflow
上手时间:pytorch 获胜
Pytorch替代numpy,与 Python 语言的整合更紧密,易于上手,对新手友好。
编写 TensorFlow 代码时,它会被Python编译成图(graph),然后由 TensorFlow 执行引擎运行,新手难以理解这额外工序及一些概念。
创建图与调试:pytorch 获胜
PyTorch 图结构是动态图,内存使用很高效。图构建方式更容易理解,更容易调试,可以在任何地方设置断点。
TensorFlow 图结构是静态图,调试 TensorFlow有两个选择,一是从会话中请求你想检查的变量,二是学习使用 TensorFlow 调试器(tfdbg)
PS: TensorFlow2.0版本提供了使用 TensorFlow Fold 库实现动态图的方式,而 PyTorch 的动态图是内置的。
分布式训练:pytorch 获胜
在数据并行化方面,PyTorch 优化性能的方式是利用 Python 对异步执行的本地支持。
TensorFlow 时,你必须手动编写代码,并微调要在特定设备上运行的每个操作,以实现分布式训练。
可视化:TensorFlow 获胜
在训练过程的可视化方面,TensorFlow 更有优势。可视化能帮助开发者跟踪训练过程以及实现更方便的调试。TensorFlow 的可视化库名为 TensorBoard。PyTorch 开发者则使用 Visdom,但是 Visdom 提供的功能很简单且有限。
TensorBoard 的特性:
跟踪和可视化损失和准确度等指标
可视化计算图(操作和层)
查看权重、偏差或其它张量随时间变化的直方图
展示图像、文本和音频数据 分析
TensorFlow 程序
Visdom 的特性
处理回调
绘制图表和细节
管理环境
生产部署:TensorFlow 获胜
TensorFlow可以直接使用 TensorFlow serving 在 TensorFlow 中部署模型,这是一种使用了 REST Client API 的框架。
PyTorch 时,在最新的 1.0 稳定版中,生产部署要容易一些,但它没有提供任何用于在网络上直接部署模型的框架。你必须使用 Flask 或 Django 作为后端服务器。
职位需求:pytorch 获胜
2018,tensorflow需求人数是pytorch的3倍。
2019,tensorflow需求人数是pytorch的2倍。
TensorFlow 的优点:
简单的内置高级 API 使用 TensorBoard 可视化训练
通过 TensorFlow serving 容易实现生产部署
很容易的移动平台支持 开源
TensorFlow 的缺点:
静态图
调试方法
难以快速修改
2.0版本后,文档混乱
PyTorch 的优点:
类 Python 的代码,简单易上手
动态图
轻松快速的编辑
良好的文档和社区支持
开源
很多项目都使用 PyTorch
PyTorch 的缺点:
可视化需要第三方
生产部署需要 API 服务器
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删