当前位置: 首页 > news >正文

论坛网站模板源码下载重庆网站优化seo公司

论坛网站模板源码下载,重庆网站优化seo公司,成品app软件大全,公司两个网站可以做友情链接吗基于深度可分离膨胀卷积的MNIST手写体识别 Github链接 项目背景#xff1a; MNIST手写体数据集是深度学习领域中一个经典的入门数据集#xff0c;包含了从0到9的手写数字图像#xff0c;用于评估不同模型在图像分类任务上的性能。在本项目中#xff0c;我们通过设计一种基…基于深度可分离膨胀卷积的MNIST手写体识别 Github链接 项目背景 MNIST手写体数据集是深度学习领域中一个经典的入门数据集包含了从0到9的手写数字图像用于评估不同模型在图像分类任务上的性能。在本项目中我们通过设计一种基于深度可分离膨胀卷积的神经网络模型解决模型参数量大与特征提取能力不足之间的矛盾同时实现对MNIST手写数字的高效识别。 核心技术 深度卷积 深度卷积Depthwise Convolution将标准卷积分解为每个通道独立的卷积操作从而显著减少计算量。相比传统卷积操作深度卷积只需要处理每个通道的卷积不会引入通道间的冗余计算。点卷积 点卷积Pointwise Convolution采用1×1的卷积核用于整合深度卷积生成的特征将通道间信息融合增强表达能力。点卷积是深度可分离卷积不可或缺的部分负责重建多通道的全局信息。膨胀卷积 膨胀卷积Dilated Convolution通过在卷积核间插入空洞扩展感受野允许模型捕获更大范围的上下文信息特别适合处理具有稀疏特征的任务同时避免了增加参数量的开销。 实现流程 数据准备 加载MNIST数据集进行标准化预处理。将数据分为训练集和测试集保证模型的评估结果具备可靠性。 模型设计 构建基于深度卷积、点卷积及膨胀卷积的神经网络结构重点在于设计轻量化且具有良好表达能力的卷积模块。使用ReLU激活函数和全连接层对提取的特征进行分类处理。 模型训练与测试 使用交叉熵损失函数和Adam优化器训练模型记录损失值变化以监控收敛情况。测试阶段评估模型在MNIST测试集上的分类准确率并验证其泛化能力。 参数量对比分析 对比标准卷积和深度可分离卷积在参数量上的差异直观展示优化效果。在同等条件下深度可分离卷积显著减少参数量同时保持了分类性能的稳定性。 项目成果 通过本项目的实验模型在MNIST数据集上的分类准确率达到了接近 98.7% 的水平。结合深度可分离膨胀卷积的轻量化设计我们在大幅减少参数量的同时实现了与传统卷积模型媲美的性能。此方法为资源受限的场景如移动设备和嵌入式系统提供了一种有效的解决方案。 结论与展望 本项目展示了深度可分离膨胀卷积在图像分类任务中的强大能力特别是在参数量和计算量优化方面。未来的工作可以尝试将该方法应用于更复杂的数据集和任务场景例如自然图像分类、目标检测或语义分割从而进一步验证其通用性与潜力。 # Time : 28/12/2024 上午 10:00 # Author : Xuan # File : 基于深度可分离膨胀卷积的MNIST手写体识别.py # Software: PyCharmimport torch import torch.nn as nn import einops.layers.torch as elt from torchvision import datasets, transforms import matplotlib.pyplot as plt# 定义数据转换 transform transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.1307,), (0.3081,)) ])# 下载并加载训练集 train_dataset datasets.MNIST(root./dataset, trainTrue, downloadTrue, transformtransform) train_loader torch.utils.data.DataLoader(train_dataset, batch_size64, shuffleTrue)# 下载并加载测试集 test_dataset datasets.MNIST(root./dataset, trainFalse, downloadTrue, transformtransform) test_loader torch.utils.data.DataLoader(test_dataset, batch_size1000, shuffleFalse)# 检查数据集大小 print(fTrain dataset size: {len(train_dataset)}) # Train dataset size: 60000 print(fTest dataset size: {len(test_dataset)}) # Test dataset size: 10000class Model(nn.Module):def __init__(self):super(Model, self).__init__()# 深度、可分离、膨胀卷积self.conv nn.Sequential(nn.Conv2d(1, 12, kernel_size7),nn.ReLU(),nn.Conv2d(in_channels12, out_channels12, kernel_size3, groups6, dilation2),nn.Conv2d(in_channels12, out_channels24, kernel_size1),nn.ReLU(),nn.Conv2d(24, 6, kernel_size7),)self.logits_layer nn.Linear(in_features6 * 12 * 12, out_features10)def forward(self, x):x self.conv(x)x elt.Rearrange(b c h w - b (c h w))(x)logits self.logits_layer(x)return logitsdevice cuda if torch.cuda.is_available() else cpu model Model().to(device) criterion nn.CrossEntropyLoss() optimizer torch.optim.Adam(model.parameters(), lr0.001)epochs 10 for epoch in range(epochs):model.train()for batch_idx, (data, target) in enumerate(train_loader):data, target data.to(device), target.to(device)optimizer.zero_grad()output model(data)loss criterion(output, target)loss.backward()optimizer.step()if batch_idx % 100 0:print(fEpoch: {epoch}, Batch: {batch_idx}, Loss: {loss.item()})# Save the model torch.save(model.state_dict(), ./modelsave/mnist.pth)# Load the model model Model().to(device) model.load_state_dict(torch.load(./modelsave/mnist.pth))# Evaluation model.eval() correct 0 first_image_displayed False with torch.no_grad():for data, target in test_loader:data, target data.to(device), target.to(device)output model(data)pred output.argmax(dim1, keepdimTrue)correct pred.eq(target.view_as(pred)).sum().item()# Display the first image and its predictionif not first_image_displayed:plt.imshow(data[0].cpu().numpy().squeeze(), cmapgray)plt.title(fPredicted: {pred[0].item()})plt.show()first_image_displayed Trueprint(fTest set: Accuracy: {correct / len(test_loader.dataset):.4f}) # Test set: Accuracy: 0.9874# 深度可分离卷积参数比较 # 普通卷积参数量 conv nn.Conv2d(in_channels3 ,out_channels3, kernel_size3) # in(3) * out(3) * k(3) * k(3) out(3) 84 conv_params sum(p.numel() for p in conv.parameters()) print(conv_params:, conv_params) # conv_params: 84# 深度可分离卷积参数量 depthwise nn.Conv2d(in_channels3, out_channels3, kernel_size3, groups3) # in(3) * k(3) * k(3) out(3) 30 pointwise nn.Conv2d(in_channels3, out_channels3, kernel_size1) # in(3) * out(3) * k(1) * k(1) out(3) 12 depthwise_separable nn.Sequential(depthwise, pointwise) depthwise_separable_params sum(p.numel() for p in depthwise_separable.parameters()) print(depthwise_separable_params:, depthwise_separable_params) # depthwise_separable_params: 42
http://www.hkea.cn/news/14562166/

相关文章:

  • )网站开发架构师4G访问wordpress
  • 福田做网站多少钱网络规划设计师教程第二版 pdf下载地址
  • 万网续费登录网站高端装修公司怎么获客
  • dw网站建设教程系统商店
  • 银川住房和城乡建设局网站福永网站建设公司
  • 已被网站管理员设置拦截网络营销推广的方案
  • 福清网站商城建设合肥网站开发招聘
  • 大理州住房和城乡建设局网站深圳品牌女装前十名
  • seo网站的优化流程佛山市官网网站建设多少钱
  • 商城网站源码dede做教程网站资源放哪里
  • 天河门户网站建设廊坊网站建设制作电话
  • 商超网站网站续费管理系统
  • 网站开发简答题家居装修设计
  • 在一个空间建两个网站注册城乡规划师难度
  • 企业做网站公司怎么做三维制图培训班在哪里
  • 徐州网站建设市场分析wordpress采集1024
  • 加强网站集约化建设怎么推广游戏叫别人玩
  • 投诉举报网站 建设方案把wordpress动静分离
  • 网站开发说明wordpress文章自动更新
  • 自己做网站 最好的软件下载河南网站建设的公司
  • 我被钓鱼网站骗了骗取建设信用卡建设银行会怎么处理钱会还回吗wordpress微博同步
  • 国外做珠宝的网站有哪些公司的 SEO与网站建设
  • 地产网站建设方案wordpress调用多媒体
  • 镇平建设局网站企业网站如何上存
  • 廊坊设计网站公司网站建设去哪里找客户
  • 网站开发的源代码怎么算侵权黄页推广2021
  • 国内炫酷的网站设计请人做个网站多少钱
  • 国外做鞋子的网站吗天津个人做网站
  • 合肥市建设工程合同备案网站生成论坛网站
  • 网站建设与维护 计算机平顶山市网站建设