您的位置:首页 > 新闻 > 资讯 > 软件开发流程管理系统_七台河新闻综合频道直播_网络营销策划与创意_搜索引擎营销例子

软件开发流程管理系统_七台河新闻综合频道直播_网络营销策划与创意_搜索引擎营销例子

2025/4/4 4:11:35 来源:https://blog.csdn.net/m0_74824642/article/details/146918059  浏览:    关键词:软件开发流程管理系统_七台河新闻综合频道直播_网络营销策划与创意_搜索引擎营销例子
软件开发流程管理系统_七台河新闻综合频道直播_网络营销策划与创意_搜索引擎营销例子
本文将展示如何使用PyTorch实现经典的LeNet-5卷积神经网络,并在Fashion-MNIST数据集上进行训练和评估。代码包含完整的网络定义、数据加载、训练流程及结果可视化。

1. 导入依赖库

import torch
from torch import nn
from d2l import torch as d2l

2. 定义LeNet-5网络结构

通过PyTorch的nn.Sequential构建网络,包含卷积层、池化层和全连接层:

class Reshape(nn.Module):def forward(self, x):return x.view(-1, 1, 28, 28)  # 将输入重塑为1x28x28net = nn.Sequential(Reshape(),nn.Conv2d(1, 6, kernel_size=5, padding=2), nn.Sigmoid(),nn.AvgPool2d(kernel_size=2, stride=2),nn.Conv2d(6, 16, kernel_size=5), nn.Sigmoid(),nn.AvgPool2d(kernel_size=2, stride=2),nn.Flatten(),nn.Linear(16*5*5, 120), nn.Sigmoid(),nn.Linear(120, 84), nn.Sigmoid(),nn.Linear(84, 10)
)

3. 验证各层输出形状

输入随机数据检查网络各层的输出形状:

X = torch.rand(size=(1, 1, 28, 28), dtype=torch.float32)
for layer in net:X = layer(X)print(f"{layer.__class__.__name__}输出形状:\t{X.shape}")

输出结果:

Reshape output shape:     torch.Size([1, 1, 28, 28])
Conv2d output shape:      torch.Size([1, 6, 28, 28])
...
Linear output shape:      torch.Size([1, 10])

4. 加载Fashion-MNIST数据集

使用d2l库快速加载数据,设置批量大小为256:

batch_size = 256
train_data, test_data = d2l.load_data_fashion_mnist(batch_size)

5. 定义评估函数

修改后的准确率评估函数支持GPU计算:

def evaluate_accuracy(net, data, device=None):if isinstance(net, nn.Module):net.eval()if not device:device = next(iter(net.parameters())).devicemetric = d2l.Accumulator(2)for X, y in data:if isinstance(X, list):X = [x.to(device) for x in X]else:X = X.to(device)y = y.to(device)metric.add(d2l.accuracy(net(X), y), y.numel())return metric[0] / metric[1]

6. 训练与评估模型

调用d2l.train_ch6进行训练,设置10个周期和学习率0.9:

lr, num_epochs = 0.9, 10
d2l.train_ch6(net, train_data, test_data, num_epochs, lr, d2l.try_gpu())

输出结果:

loss 0.470, train acc 0.822, test acc 0.805
80458.2 examples/sec on cuda:0

7. 训练结果可视化

训练过程中会自动生成损失和准确率曲线:

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com