计算图概念
p = x+y 的计算图
深度学习中所有框架都是基于计算图的
计算图和反向传播都是深度学习训练神经网络的重要核心概念。
计算图包括动态和静态
动态计算图;计算图随着代码执行而创建,可以多次创建多次运行,如Pytorch
静态计算图:先定义后运行 如TensorFlow
Pytorch每一次前向传导,到会创建一个新的计算图
前进传导
正向传递是评估由计算图表示的数学表达式的值的过程。 进行前向传递意味着我们将变量的值从左侧(输入)向前传递到输出所在的右侧。
动态计算图VS静态计算图
- 静态,则一旦创建不可以被修改
- 静态计算图不能使用特殊语句 ,如if,while,它必须专门再额外设计语法,导致计算图庞大,那就耗内存
- 动态,可以任意修改前向传播,并查看变量的值
- 动态,符合人的思考过程,可以随时调整前进的方向,并停下来反思!
- 动态图可以使我们在IPython和Jupyter notebook上随时查看和修改变量
- 调试难度:动态直接大方展示,静态扭扭捏捏。Pytorch中,代码报错的地方就是写错代码的地方,而TensorFlow先根据我们写的代码生成Graph对象,然后在session.run()时报错。