CNN网络:MINST数据集的练习

学习课程:B站刘二大人

评价:简单易懂

主题:Pytorch相关课程

内容:CNN的架构与GoogleNet、ResidualNet的构建

数据集:MINST手写数字集

笔记:

1.首先是建立数据集,先要dataset,然后dataload,不多说。

2.然后是建立神经网络模型。用一个或几个类来完成这个任务。

CNN:最简单的模型,卷积加池化加relu最后全连接层就ok。在这个类里面,有一个初始化函数来定义这些神经网络的数据层,下面来一个前馈函数来操作数据前进方向。

GoogleNet :有4条通路通向最终的数据,最终会把4个通路上88个通道 的数据粘起来,这意味着数的宽高都一样,还应用了1×1的卷积核,有数据聚合和减少计算量的作用,他相当与把数据压缩又放大,减少通道量又增加,所以减少了数据量。可以把他设计成一个Inception模块。

ResidualNet:防止梯度爆炸,设计的一个加上x再relu的跳跃环节,有效缓解梯度爆炸。

应用3个网络对MINST数据集进行学习

                      LOSS       Accruacy

CNN              0.042      98.760%

googlenet       0.032     98.750%

residualnet     0.006      99.090%

residualnet的网络表现稍好一些能够突破到99%

3.损失函数为交叉熵函数,选取一个优化器。明显,损失函数是一个网络的灵魂,yolo算法里就应用了作者自己设计的损失函数。但是总之他是表征模型与真实模型的差距,恕我只能从字面上理解他,没法在数学上了解的更深。

4训练和测试函数

训练函数:

loss、先设为0,导入数据,清零梯度再引入模型,得到损失函数,反馈回去backward,更新梯度就ok

测试函数:不需要有梯度,argmax找到最大预测值。

猜你喜欢

转载自blog.csdn.net/qq_43720972/article/details/121642912