本周任务
1读取数据的集中方式
2模型构建:lenet,alexnet,vgg,resnet18,网络结构图,熟悉并掌握卷积,池化,全连接层,激活函数,dropout等构建网络所常用的代码块。
3关于模型调优,超参的选择,可以百度先看一下别人怎么调的,都改了什么东西,尽可能地得出一些自己的结论
4模型训练,将所有需要改动的超参写得集中一些,掌握模型的集中保存方式,以及模型Checkpoint, Earlystop, tensorboard, ReduceLROnPlateau
5模型预测。写预测函数,训练完成的模型进行测试。载入模型的几种方式,预测函数中分类的metrics
1 LeNet网络结构
它是由2层卷积层+3层全连接层构成的网络
创建LeNet网络,需要继承nn.Module类,并实现forward函数(完成前向传播)。接着完成结构初始化,nn.Module的子类函数必须在构造函数中执行父类的构造函数。super函数的作用可以避免直接使用父类函数名称,主要用于多重继承。
nn.Sequential()作为一个容器,将按照构造函数中传递的顺序添加到模块中。就是将一些函数组成一个小模块使用。
conv1:
output size = (input size-kernel size+2 * padding)/2 + 1
默认情况下,stride = 1,padding = 0
conv2:
fc1:
fc2:
fc3:
定义前向传播过程:
2 Alexnet 网络结构
它是由5层卷积层+3层全连接层组成。
conv1:
conv2:
conv3:
conv4:
conv5:
fc1:
fc2:
fc3:
3 VGG网络结构
这次我用的vgg11,它是由两个单卷积层,三个双卷积核卷积层,在加三个全连接层。
因为训练的mnist是28*28*1,所以在之前要对输入图像进行resize=224.变成224*224*1