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

龙华网站建设营销推广知乎seo排名帝搜软件

龙华网站建设营销推广,知乎seo排名帝搜软件,庆阳网站优化公司,建设实验中心网站文章目录 一、MNIST数据集1.数据集概述2.数据集组成3.文件结构4.数据特点 二、代码实现1.数据加载与预处理2. 模型定义3. 训练和测试函数4.训练和测试结果 三、总结 一、MNIST数据集 MNIST数据集是深度学习和计算机视觉领域非常经典且基础的数据集#xff0c;它包含了大量的手… 文章目录 一、MNIST数据集1.数据集概述2.数据集组成3.文件结构4.数据特点 二、代码实现1.数据加载与预处理2. 模型定义3. 训练和测试函数4.训练和测试结果 三、总结 一、MNIST数据集 MNIST数据集是深度学习和计算机视觉领域非常经典且基础的数据集它包含了大量的手写数字图片通常用于训练各种图像处理系统也被广泛用于机器学习领域的训练和测试。 1.数据集概述 来源MNIST数据集由Yann LeCun等人于1994年创建它是NIST美国国家标准与技术研究所数据集的一个子集。内容数据集主要包含手写数字0~9的图片及其对应的标签。用途作为深度学习和计算机视觉领域的入门级数据集它适合初学者练习建立模型、训练和预测。 2.数据集组成 MNIST数据集总共包含两个子数据集训练数据集和测试数据集。 训练数据集 包含了60,000张28x28像素的灰度图像。对应的标签文件包含了60,000个标签每个标签对应一张图像中的手写数字。 测试数据集 包含了10,000张28x28像素的灰度图像。对应的标签文件包含了10,000个标签。 3.文件结构 MNIST数据集包含四个文件分别是训练集图像、训练集标签、测试集图像和测试集标签。这些文件以gzip格式压缩并且不是标准的图像格式需要通过专门的编程方式读取。 训练集图像train-images-idx3-ubyte.gz训练集标签train-labels-idx1-ubyte.gz测试集图像t10k-images-idx3-ubyte.gz测试集标签t10k-labels-idx1-ubyte.gz 4.数据特点 图像大小每张图像的大小为28x28像素是一个灰度图像位深度为8灰度值范围为0~255。数据来源手写数字来自250个不同的人。数据格式图像数据以字节的形式存储在二进制文件中标签文件则存储了每张图像对应的数字标签。 二、代码实现 1.数据加载与预处理 import torch from torch import nn # 导入神经网络模块 from torch.utils.data import DataLoader # 数据包管理工具打包数据 from torchvision import datasets # 封装了很多与图像相关的模型数据集 from torchvision.transforms import ToTensor下载训练集数据包含训练图片和标签 training_data datasets.MNIST(rootdata,trainTrue,downloadTrue,transformToTensor(), # 张量图片是不能直接传入神经网络模型 )下载测试集数据包括训练图片和标签 test_data datasets.MNIST(rootdata,trainFalse,downloadTrue,transformToTensor() ) train_dataloader DataLoader(training_data, batch_size64) # 64张图片为一个包 test_dataloader DataLoader(test_data, batch_size64)下载数据集使用torchvision.datasets.MNIST下载并加载MNIST数据集。数据集分为训练集和测试集trainTrue为训练集数据trainFalse为测试集数据。数据转换数据通过transformToTensor()进行预处理将图片转换为PyTorch张量Tensor并自动将像素值归一化到[0,1]区间。数据封装使用DataLoader将数据集封装成批次batch形式便于后续的训练和测试过程。 2. 模型定义 class NeuralNetwork(nn.Module): # 通过调用类的形式来使用神经网络神经网络的模型nn.moduledef __init__(self): # python基础关于类,self类自己本身super().__init__() # 继承的父类初始化self.flatten nn.Flatten() # 展开,创建一个展开对象flattenself.hidden1 nn.Linear(28 * 28, 128) # 第1个参数:有多少个神经元传入进来第2个参数:有多少个数据传出去前一层神经元的个数当前本层神经元个数self.hidden2 nn.Linear(128, 256)self.hidden3 nn.Linear(256, 128)self.out nn.Linear(128, 10)def forward(self, x): # 前向传播告诉它数据的流向。x self.flatten(x) # 图像进行展开x self.hidden1(x)x torch.sigmoid(x) x self.hidden2(x)x torch.sigmoid(x)x self.hidden3(x)x torch.sigmoid(x)x self.out(x)return xmodel NeuralNetwork().to(device) # 把刚刚创建的模型传入到gpu print(model) 定义类定义了一个名为NeuralNetwork的类该类继承自nn.Module用于构建神经网络模型。 模型结构模型包含输入层输出层隐藏层其中隐藏层使用了Sigmoid激活函数最后输出10个类别的得分对应0-9的数字 打印模型结构打印了模型的结构有助于理解模型的架构。 3. 训练和测试函数 def train(dataloader, model, loss_fn, optimizer):model.train()batch_size_num 1for X, y in dataloader: # 其中batch为每一个数据的编号X, y X.to(device), y.to(device) # 把训练数据集和标签传入cpu或GPUpred model.forward(X) # .forward可以被省略父类中已经对次功能进行了设置。自动初始化w权值loss loss_fn(pred, y) # 通过交叉熵损失函数计算损失值loss# Backpropaqation 进来-个bqtch的数据计算一次梯度更新一次网络optimizer.zero_grad() # 梯度值清零loss.backward() # 反向传播计算得到每个参数的梯度值woptimizer.step() # 根据梯度更新网络w参数loss_value loss.item() # 从tensor数据中提取数据出来tensor获取损失值if batch_size_num % 100 0:print(floss:{loss_value:7f} [number:{batch_size_num}])batch_size_num 1def test(dataloader, model, loss_fn):size len(dataloader.dataset)num_batches len(dataloader)model.eval() # 测试w就不能再更新。test_loss, correct 0, 0with torch.no_grad(): # 一个上下文管理器关闭梯度计算。for X, y in dataloader:X, y X.to(device), y.to(device)pred model.forward(X)test_loss loss_fn(pred, y).item() # test loss是会自动累加每一个批次的损失值correct (pred.argmax(1) y).type(torch.float).sum().item()a (pred.argmax(1) y) # dim1表示每一行中的最大值对应的索引号dim0表示每一列中的最大值对应的索引号b (pred.argmax(1) y).type(torch.float) # 把预测值Ture、False 转换为01test_loss / num_batches # 评判模型的好坏correct / size # 平均的准确率print(fTest result:\n Accuracy:{(100 * correct)}%,Avg loss:{test_loss})train函数负责训练模型。它遍历训练数据集的每个批次计算模型的预测、损失并执行反向传播和参数更新。test函数用于评估模型在测试集上的性能。它遍历测试数据集的每个批次计算模型的预测和损失但不进行反向传播或参数更新。在训练和测试过程中都使用了torch.no_grad()上下文管理器来关闭梯度计算这可以节省内存和计算资源。 4.训练和测试结果 loss_fn nn.CrossEntropyLoss()optimizer torch.optim.Adam(model.parameters(), lr0.01) # 创建一个优化器S6D为随机梯度下降算法epochs 10 for t in range(epochs):print(fEpoch {t 1}\n-------------------------)train(train_dataloader, model, loss_fn, optimizer) print(Done!) test(test_dataloader, model, loss_fn) 使用torch.optim.Adam优化器来优化模型的参数这里的学习率设置为0.01。定义了训练轮次epochs并在每个epoch中调用train函数来训练模型。最后使用test函数来评估模型在测试集上的性能并打印出准确率和平均损失。 三、总结 本文为大家介绍了MNIST数据集的组成、文件结构与数据集特点然后为大家提供了MNIST数据集训练的相关代码通过对数据集进行处理训练来得出准确率与损失率为大家更好的展示。总之MNIST数据集是深度学习和计算机视觉领域不可或缺的基础数据集之一对于初学者来说是一个非常好的练手项目同时也为相关领域的研究和实验提供了宝贵的数据资源。
http://www.hkea.cn/news/14356316/

相关文章:

  • 网站建设与维护ppt万维网中文网站到期
  • 广告网站设计怎么样wordpress 众筹网站
  • 站酷网素材图库免费下载加强网站信息内容建设的意见
  • 虚拟主机怎么建网站网站建设与搜索引擎营销有什么关系
  • 网站建设合优我的世界做皮肤网站
  • 优质院校建设网站wordpress如何自动采集网站图片
  • 彩票资讯网站建设项目流程管理软件
  • 软件开发工程师多少钱一个月seo搜索
  • 信息发布型网站是企业网站的什么ftp网站备份
  • 英文购物网站模板下载wordpress国外主题加载慢
  • 做公司网站有什么猫腻红鹊豆网络网站站建设
  • pc 手机网站街区网站建设的意义
  • 珠海市官网网站建设价格北京英文网站建设的原则
  • 网站改域名网站制作的主要技术
  • 做营销看的网站有哪些wordpress域名变了迁移
  • 网站建设买了服务器后怎么做wordpress 友链插件
  • 医院行业网站中国十大互联网公司
  • 福州精美个人网站建设公司运营方案模板
  • 门户网站的区别凡客建站网
  • 网站设计和备案手机网站怎么搭建
  • 合肥网站建设哪个公司做得比较好app下载安装安卓版
  • 江西省城市建设档案馆网站扬中网站建设门户报价
  • 陕西建设厅网站西安有哪些做网站建设的公司
  • 装修网站设计案例网站建设规划图
  • 网站英文怎么写做兼职的网站有哪些工作内容
  • 如何做体育彩票网站建立搜索引擎网站
  • 为公司建立网站wordpress改网站信息
  • 安丘做网站的公司柳林网站建设
  • 龙华营销型网站设计室内设计学校前十
  • 公众号电影网站怎么做微信怎么开店