AlexNet学习

参考b站视频做的笔记啦,up主是个大佬。

数据集

ILSVRC,是imagenet的子集
有1000个类别

亮点

  1. 首次利用GPU进行网络加速
  2. 使用ReLU激活函数,而不是传统的Sigmoid激活函数(求导麻烦,梯度消失)
  3. LRN局部响应归一化。
  4. 在全连接的前两层使用Dropout随机失火神经元,来减少过拟合。

过拟合
在这里插入图片描述
根本原因:模型设计过于复杂,参数训练过多,训练数据少。
导致拟合的函数完美预测训练集,但对新数据的测试集的预测结果差。泛化能力差。
Dropout
可以理解为变相减少了训练参数,来减少过拟合。
在这里插入图片描述

AlexNet网络讲解

  1. 先回顾一下公式
    wide:宽
    Filter:过滤器(卷积核)
    stride:步长
    padding:填补 (P是两边padding的像素之和,可以不一样)如下
    在这里插入图片描述
    下图是整体的网络结构:
    在这里插入图片描述
    注意最后是1000,因为原作用的数据集有1000个类别,如何用在自己的5类的数据集,只需要将最后改成5就行

作者使用两块GPU进行并行运算,其实上下两部分是一模一样的。

Conv1
kernels=48*2
kernel_size=11
padding:[a,b]->[1,2]
stride:4
input_size:[224,224,3]. output_size:[55,55,96].
可以通过公式:55=(224-11+a+b)/4+1
a=1 b=2
意思是左1右2上1下2加零。
Maxpool1
图中没有,经过查阅得到
kernel_size=3
padding:0
stride:2
N=(55-3)/2+1=27
input_size:[55,55,96]. output_size:[27,27,96]
Conv2
在这里插入图片描述

kernels=128*2
kernel_size=5
padding:[2,2](查阅)
stride:1(查阅)
N=(27-5+4)/1+1=27
input_size:[27,27,96]. output_size:[27,27,256].
Maxpool2
图中没有,经过查阅得到
kernel_size=3
padding:0
stride:2
N=(27-3)/2+1=13
input_size:[27,27,256]. output_size:[13,13,256]
再往后见视频吧

花分类数据集

5个类
在这里插入图片描述
这是数据链接,点击后自动下载
花分类数据集
下载后的数据集是按类别划分的,但是我们还需要将其划分成训练集train和验证集val(9:1)
在这里插入图片描述
运行python脚本即可完成划分。

网络详细参数

在这里插入图片描述
代码中我们学到

  1. 如何换其他的数据集放到网络中
  2. 代码的是否使用GPU设置
  3. 初始化模型参数
  4. 通过设置参数来实现不同分类个数的调用
  5. net.train()  # Sets the module in training mode.我们希望只在训练过程中随机失活神经元
    
  6. 测试训练时间的函数
  7. 我的 AlexNet.pth为gpu训练出来的,现在我在cpu上预测的话,就要加 map_location=‘cpu’,具体看代码
  8. 学会了如何用自己数据集训练,首先按flower_data文件格式摆放好,用split_data划分,代码上的话只需要修改num_class改成你的类别
    俺在colab上的训练结果好低哈哈哈哈
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值