千家信息网

Python编程pytorch深度卷积神经网络AlexNet的示例分析

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章给大家分享的是有关Python编程pytorch深度卷积神经网络AlexNet的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。2012年,AlexNet横空
千家信息网最后更新 2026年11月04日Python编程pytorch深度卷积神经网络AlexNet的示例分析

这篇文章给大家分享的是有关Python编程pytorch深度卷积神经网络AlexNet的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

2012年,AlexNet横空出世。它首次证明了学习到的特征可以超越手工设计的特征。它一举打破了计算机视觉研究的现状。AlexNet使用了8层卷积神经网络,并以很大的优势赢得了2012年的ImageNet图像识别挑战赛。

下图展示了从LeNet(左)到AlexNet(right)的架构。

AlexNet和LeNet的设计理念非常相似,但也有如下区别:

  • AlexNet比相对较小的LeNet5要深得多。

  • AlexNet使用ReLU而不是sigmoid作为其激活函数。

容量控制和预处理

AlexNet通过dropout控制全连接层的模型复杂度,而LeNet只使用了权重衰减。为了进一步扩充数据,AlexNet在训练时增加了大量的图像增强数据,如翻转、裁剪和变色。这使得模型更加健壮,更大的样本量有效地减少了过拟合。

import torchfrom torch import nnfrom d2l import torch as d2lnet = nn.Sequential(        # 这里,我们使用一个11*11的更大窗口来捕捉对象        # 同时,步幅为4,以减少输出的高度和宽度        # 另外,输出通道的数目远大于LeNet        nn.Conv2d(1, 96, kernel_size=11, stride=4, padding=1), nn.ReLU(),        nn.MaxPool2d(kernel_size=3, stride=2)        # 减少卷积窗口,使用填充为2来使得输入与输出的高和宽一致,且增大输出通道数        nn.Conv2d(96, 256, kernel_size=5, padding=2), nn.ReLU(),        nn.MaxPool2d(kernel_size=3, stride=2)        # 使用三个连续的卷积层和较小的卷积窗口        # 除了最后的卷积层,输出通道的数量进一步增加        # 在前两个卷积层之后,汇聚层不用于减少输入的高度和宽度        nn.Conv2d(256, 384, kernel_size=3, padding=1), nn.ReLU(),        nn.Conv2d(384, 384, kernel_size=3, padding=1), nn.ReLU(),        nn.Conv2d(384, 384, kernel_size=3, padding=1), nn.ReLU(),        nn.MaxPool2d(kernel_size=3, stride=2),        nn.Flatten(),        # 这里,全连接层的输出数量是LeNet中的好几倍。使用dropout层来减轻过度拟合        nn.Linear(6400, 4096), nn.ReLU(),        nn.Dropout(p=0.5),        nn.Linear(4096, 4096), nn.ReLU(),        nn.Dropout(p=0.5),        # 最后是输出层。由于这里使用Fashion-MNIST,所以用类别数位10        nn.Linear(4096, 10))

我们构造一个高度和宽度都为224的单通道数据,来观察每一层输出的形状。它与上面离得最近的图中的AlexNet架构相匹配。

X = torch.randn(1, 1, 224, 224)for layer in net:        X = layer(X)        print(layer.__class__.__name__,'Output shape:\t', X.shape)
Conv2d Output shape: torch.Size([1, 96, 54, 54])ReLU Output shape: torch.Size([1, 96, 54, 54])MaxPool2d Output shape: torch.Size([1, 96, 26, 26])Conv2d Output shape: torch.Size([1, 256, 26, 26])ReLU Output shape: torch.Size([1, 256, 26, 26])MaxPool2d Output shape: torch.Size([1, 256, 12, 12])Conv2d Output shape: torch.Size([1, 384, 12, 12])ReLU Output shape: torch.Size([1, 384, 12, 12])Conv2d Output shape: torch.Size([1, 384, 12, 12])ReLU Output shape: torch.Size([1, 384, 12, 12])Conv2d Output shape: torch.Size([1, 256, 12, 12])ReLU Output shape: torch.Size([1, 256, 12, 12])MaxPool2d Output shape: torch.Size([1, 256, 5, 5])Flatten Output shape: torch.Size([1, 6400])Linear Output shape: torch.Size([1, 4096])ReLU Output shape: torch.Size([1, 4096])Dropout Output shape: torch.Size([1, 4096])Linear Output shape: torch.Size([1, 4096])ReLU Output shape: torch.Size([1, 4096])Dropout Output shape: torch.Size([1, 4096])Linear Output shape: torch.Size([1, 10])

读取数据集

在这里将AlexNet直接应用于Fashion-MNIST的识别,但这里有一个问题,那就是Fashion-MNIST图像的分辨率( 28 × 28 28\times28 28×28像素)低于ImageNet图像。为了解决这个问题,我们将它们增加到 224 × 224 224\times224 224×224(通常来讲这不是一个明智的做法,但我们在这里这样做是为了有效使用AlexNet结构)。我们使用d2l.load_data_fashion_mnist函数中的resize参数执行此调整。

batch_size = 128train_iter, test_iter = d2l.load_data_fashion_mnist(batch_size, resize=224)

现在,我们可以开始训练AlexNet了,与LeNet相比,这里的主要变化是使用更小的学习速率训练,这是因为网络更深更广、图像分辨率更高,训练卷积伸进网络就更昂贵。

lr, num_epochs = 0.01, 10d2l.train_ch7(net, train_iter, test_iter, num_epochs, lr, d2l.try_gpu())
loss 0.330, train acc 0.879, test acc 0.8774163.0 examples/sec on cuda:0

感谢各位的阅读!关于"Python编程pytorch深度卷积神经网络AlexNet的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

卷积 输出 网络 图像 数据 训练 神经 神经网络 宽度 通道 高度 深度 示例 分析 编程 有效 全连 内容 函数 分辨率 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网为科技 北京互联网络科技有限公司 华中科技大学互联网 奇士达互联网科技 沃里互联网科技 大白互联网科技 老年人脱离互联网科技的作文 深圳市运趣互联网科技有限公司 福建科技产业互联网发展 华夏互联网科技业 广西互联网科技孵化中心 互联网新科技动漫ppt素材 翼展科技 首家互联网医院 山东子淼互联网科技有限公司 互联网金融科技公司的优势 陕西云淼互联网科技公司 互联网科技收购价值 美国五大互联网科技公司市值多少 安徽九吞吴互联网科技有限公司 株洲百竞科技的互联网营销顾问 友谊互联网络科技 广州善班互联网科技 太原新华互联网科技学校怎么样 恒银科技与互联网金融 互联网科技公司有风险吗 工业互联网等科技实现智能化赋能 保险科技服务互联网营销体系 九思连强互联网电子科技有限公司 保山浩联互联网科技有限公司 武汉亿视互联网科技有限公司
0