CNN的inductive bias
inductive bias是模型设计时的固有假设,或者说依据一定的假设相应地设计的模型。CNN的假设是:
1. Translation equivariance
2. Locality or shared computation
计算图
计算图是用来描述运算的有向无环图。使用节点表示数据,边表示运算。
Pytorch在前向传播时建立动态计算图存储数据和运算,反向传播时可以自动完成求导计算梯度。
节点的数据使用tensor结构,tensor包括如下属性:
requires_grad:Pytorch只对requires_grad属性设为True的节点计算梯度。自己定义的tensor的requires_grad属性默认为False。神经网络层中的权值w的tensor的requires_grad属性默认为True,若一个节点requires_grad被设置为True,那么所有依赖它计算的节点的requires_grad都为True。希望某些节点不更新时将相应节点的requires_grad属性设为False即可;
grad_fn:用于存储前向传播时获得该tensor使用的运算,以便在后续反向传播求导时使用;
grad:用于存储其反向求导得到的梯度;
is_leaf:为了节省内存,一轮反向传播后非叶子节点的梯度是会被释放;
参考:[PyTorch 学习笔记] 1.4 静态图与动态图机制 - 知乎
网络
1. 卷积
Pytroch实现torch.nn.