模型模块包括两部分:模型创建与权值初始化;模型创建又包括构建网络层(卷积层、池化层、激活函数层等)和拼接网络层(LeNet、AlexNet、ResNet等);权值初始化有Xavier、Kaiming、均匀分布、正态分布等。
LeNet网络结构
运算示意图
nn.module
self._parameters = OrderedDict()
self._buffers = OrderedDict()
self._backward_hooks = OrderedDict()
self._forward_hooks = OrderedDict()
self._forward_pre_hooks = OrderedDict()
self._state_dict_hooks = OrderedDict()
self._load_state_dict_pre_hooks = OrderedDict()
self._modules = OrderedDict()
nn.module总结:
模型容器与AlexNet构建
Containers
nn.Sequential是nn.module的容器,用于按顺序包装一组网络层
Sequential的特性:
nn.ModuleList是nn.module的容器,用于包装一组网络层,以迭代方式调用网络层的主要方法:
nn.ModuleDict是nn.module的容器,用于包装一组网络层,以索引方式调用网络层主要方法:
nn.Sequential:顺序性,各网络层之间严格按照顺序执行,常用于block构建
nn.ModuleList:迭代性,常用于大量重复网构建,通过for循环实现重复构建
nn.ModuleDict:索引性,常用于可选择的网络层
AlexNet
AlexNet:2012年以高出第二名10多个百分点的准确率获得ImageNet分类任务冠军,开创了卷积神经网络的新时代
AlexNet特点如下:
参考文献:ImageNet Classification with Deep Convolutional Neural Networks