【软件工程】第三周作业
<!doctype html>【第3次作业】卷积神经网络
【第3次作业】卷积神经网络
【第一部分】视频学习心得及问题总结
总结
卷积神经网络比传统神经网络多了卷积计算层、激励层、池化层、全连接层,主要通过卷积和池化来挖掘图片信息。
卷积是两个变量在某范围内相乘后求和的结果。数字图像是一个二维的离散信号,对数字图像做卷积操作其实就是利用卷积核在图像上滑动,将图像点上的像素灰度值与对应的卷积核上的数值相乘,然后将所有相乘后的值相加作为卷积核中间像素对应的图像上像素的灰度值,并最终滑动完所有图像的过程。 我们经常能看到的,平滑,模糊,去燥,锐化,边缘提取等等工作,其实都可以通过卷积操作来完成。
池化是一种形式的降采样,更加关注是否存在某些特征而不是特征具体的位置;会不断地减小数据的空间大小,因此参数的数量和计算量也会下降;在一定程度上也控制了过拟合。通常卷积层之间都会周期性地插入池化层。
观看视频,也见识到残差神经网络的强大了。
组会的时候董老师问感觉怎么样,我回答”云里雾里“。未来还有很长的路要走啊(小学生式感叹)。
疑问
卷积计算过程不懂,我好菜啊!
目前卷积网络有没有什么良好的改进,使其具有较好的可解释性?
【第二部分】代码练习
MNIST 数据集分类
观察发现,含有相同参数的卷积神经网络效果要明显优于全连接网络。
CIFAR10 数据集分类
哇这训练速度有点慢,但还好不是慢得惊人。
所以……这道数据分类题到底说明了啥啊。
使用 VGG16 对 CIFAR10 分类
为啥会报错我惊了。
于是我尝试将self.features = self.make_layers(cfg)改成了self.features = self.make_layers(self.cfg),此处不再报错。
然而又有了新的错误。
大小不匹配?可是m1和m2是啥啊?难不成self.classifier = nn.Linear(2048, 10)这句不对?于是我就没能继续了。
在群里跟老师探讨了一下,self.features = self.make_layers(cfg)改成self.features = self.make_layers(),self.classifier = nn.Linear(2048, 10)改成self.classifier = nn.Linear(512, 10),这样就好了吗?
并不,到多轮训练就卡了。
人在电脑前,刚傻掉。