1.nn.Sequential用法详解:nn.Sequential
总结:
nn.ModuleList 和 nn.Sequential的主要区别为:
1.1nn.Sequential内部实现了forward函数,而nn.ModuleList则没有实现内部forward函数
需要注意的是:虽然Sequential里面的模块自动前向传播,但整体还需要编写一个前向传播(整体网络会用到Sequential定义的层)
1.2nn.Sequential里面的模块按照顺序进行排列的。而nn.ModuleList 并没有定义一个网络,它只是将不同的模块储存在一起,这些模块之间并没有什么先后顺序可言
2.model.train()和model.eval()的作用:model.train()和model.eval()
3.BN层详解:BN
总结:数据 (N, C, H, W),N为min-batch sizes,C为特征图个数, H、W分别为特征图的高和宽。在CNN中我们可以把每个特征图看成是一个特征处理(一个神经元),因此在使用Batch Normalization,mini-batch size 的大小就是:N×H×W,于是对于每个特征图都只有一对可学习参数:γ、β。
即在CNN中BN层的前向传播参数量(理论参数量)为channel数*2.