Skip to main content

软件框架

动态图与静态图的区别

静态图:

  1. 需要先构建好计算图,然后再往计算图传入数据
  2. 计算图构建好后不需要源代码也可以运行,编译好模型后可以存储到本地
  3. 静态图可以把卷积层和激活层合并,增加运算速度

动态图:

  1. 每一次迭代都要重新更新一个新的计算图

  2. 每一次运行都需要依赖源代码

  3. 动态图对于每一次更新结果都不一样的网络来说非常好用,方便记录所有生成的信息。(循环神经网络、递归神经网络、模块化网络)。也就是说,针对不同的问题使用的计算图也不一样

    循环神经网络:每一层只接受来自上一层的输出

    递归神经网络:每一层可以接受上一层的输出,也可以接受本层的输出

ONNX

ONNX 是一种通用的模型规范,可以实现模型在不同框架之间的切换使用。

框架使用注意事项

  1. TF 适合拿来做研究和生产(谷歌生态 + 硬件支持),但是它的代码更新太快,文档跟不上,同时也会遇到许多坑,不建议新手刚开始就学
  2. PyTorch 适合研究,复现论文
  3. 对于初学者而言,先学 python / keras,不要轻易碰 TF