学习课程: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找到最大预测值。