【机器学习】《动手学深度学习 PyTorch版》李沐深度学习笔记(Alexnet)

AlexNet

一.alexnet与lenet的区别
【机器学习】《动手学深度学习 PyTorch版》李沐深度学习笔记(Alexnet)_第1张图片
【机器学习】《动手学深度学习 PyTorch版》李沐深度学习笔记(Alexnet)_第2张图片
【机器学习】《动手学深度学习 PyTorch版》李沐深度学习笔记(Alexnet)_第3张图片
二.主要区别
(1)激活函数从sigmoid变成ReLu(缓解梯度消失)
(2)隐层全连接层后加入了丢弃层
(3)数据增强(图像的随机翻转)
三.详细图解【机器学习】《动手学深度学习 PyTorch版》李沐深度学习笔记(Alexnet)_第4张图片
【机器学习】《动手学深度学习 PyTorch版》李沐深度学习笔记(Alexnet)_第5张图片
【机器学习】《动手学深度学习 PyTorch版》李沐深度学习笔记(Alexnet)_第6张图片
四.一些小问题
【机器学习】《动手学深度学习 PyTorch版》李沐深度学习笔记(Alexnet)_第7张图片
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维度

你可能感兴趣的:(深度学习,pytorch)