AlexNet
一.alexnet与lenet的区别
二.主要区别
(1)激活函数从sigmoid变成ReLu(缓解梯度消失)
(2)隐层全连接层后加入了丢弃层
(3)数据增强(图像的随机翻转)
三.详细图解
四.一些小问题
1.LRN没有什么用,在后续的网络中就没有再使用过了
2.必须是两个,砍掉一个效果会变差
3.这个resize不会直接把图像变得非常的小,它会先把图片进行等比缩减,在中间扣一块出来或者抠几块,所以不会效果很差。
四.代码中注意的细节
1.x = torch.flatten(x, start_dim=1) # 这里的意思是说从channel这个维度开始展平,batch是不去动它的
2.transforms.RandomHorizontalFlip(), # 随机翻转,是数据增强的内容
3.cla_dict = dict((val, key) for key, val in flower_list.items()) # 这里进行一个翻转,是为了在最后得到结果时比较方便
4.# 使用net.train()和net.eval()来管理dropout在训练的时候失活一部分神经元,在测试的时候不失活
5.with torch.no_grad(): # 禁止pytorch对数据的跟踪 ,在验证过程中是不会进行梯度的更新的
6.img = torch.unsqueeze(img, dim=0) # 扩充一个维度,因为读入的图片只有高度宽度channel三个维度,需要再添加一个batch维度