TensorFlow与PyTorch:区别及函数习惯的对比

  TensorFlow与PyTorch的区别在网上有很多的分析,主要可以总结为以下几点:

动态与静态

  PyTorch是一个动态的框架,而TensorFlow是一个静态的框架。使用TensorFlow时,必须先搭建好网络的结构,然后使用预先留出的几个占位符作为样本输入和label输入,这就像是通过开了几个洞的木板进行交互,中途无法对计算的流程进行更改。
  TensorFlow必须运行会话才能得到运行的结果,而且网络必须努力构造以确保每个张量具有正确的维度,否则就会出现这样的错误:

  与之不同的是,PyTorch遵循动态的图像计算方法,不需要考虑张量尺寸的问题。另外,PyTorch能够自动求变量的导数,易于在编程中理解网络底层的原理。

模型可视化

  在模型可视化方面,TensorFlow因为具有模型可视化工具TensorBoard而具有绝对的优势。TensorBoard能够在训练中对数据进行实时分析,而PyTorch完全缺乏这一功能,当然,为了实现模型可视化,也可以将TensorBoardX应用到PyTorch中。

模型部署

  对于小规模的部署,TensorFlow与PyTorch都可以使用Flask框架。但是对于大规模的部署,使用TensorFlow Serving是一个更好的选择。

函数习惯的区别

1. 常量与变量

2. 获取张量的维度

3. reshape操作

4. 卷积操作

5. 池化操作

6. 全连接层

7. 激活函数

8. 优化器

9. 训练过程

10. dropout

参考资料

https://www.jianshu.com/p/6e42dae05d3b