1. 实现方式:符号式编程和命令式编程
- TensorFlow是纯符号式编程,通常是在计算流程完全定义好后才执行,因此效率更高,但是实现比较复杂;
- pytorch是纯命令式编程,实现方便,但是运行效率低
2. 图的定义:动态定义和静态定义
- 两个框架都是在张量上运算,但是存在很大差别。
- TensorFlow遵循”数据即代码,代码即数据“的概念,可以再运行之前静态的定义图,然后调用session来执行图。
- pytorch中图的定义是动态变化的,可以随时定义、更改和执行节点。因此pytorch更加灵活,方便调试。
3. 可视化:tensorboard
- TensorFlow最吸引人的地方之一就是TensorBoard,可以清晰地看出计算图、网络架构;
- pytorch没有类似TensorBoard的工具,但是pytorch可以导入TensorBoardx或者matplotlib之类的工具包用于数据可视化。