有帮忙做ppt的网站或人吗wordpress的编码问题
- 作者: 五速梦信息网
- 时间: 2026年03月21日 06:55
当前位置: 首页 > news >正文
有帮忙做ppt的网站或人吗,wordpress的编码问题,西安企业网站开发哪家好,公司网络运营团队方案数据准备 CIFAR-10 and CIFAR-100 datasets (toronto.edu)在上述网站中下载Python版本的CIFAR-10数据集。 下载后的压缩包解压后会得到几个文件如下#xff1a; 对应的data_batch_1 ~ data_batch_5 是划分好的训练数据#xff0c;每个文件里包含10000张图片#xff0c;test…数据准备 CIFAR-10 and CIFAR-100 datasets (toronto.edu)在上述网站中下载Python版本的CIFAR-10数据集。 下载后的压缩包解压后会得到几个文件如下 对应的data_batch_1 ~ data_batch_5 是划分好的训练数据每个文件里包含10000张图片test_batch 是测试集数据也包含10000张图片。他们的结构是一样的需要分别对这些data_bach进行处理。 查阅相关文献可知对应的data_batch都是使用的pickle库进行处理获得的。所以在处理该文件时也需要使用pickle库进行读取。 编写一段代码脚本将原来文件拆解成图片并将训练集图片与测试集图片分别保存在train和test文件夹中可以得到如下图所示结果。 如上图所示可知对应的训练集数据为5万张测试集数据为1万张。 对应代码运行结果如下图所示 TIP其他可选方案其实torchvision库中的CIFAR库是可以直接加载的。使用代码torchvision.datasets.CIFAR10就可以直接调用库中的数据集。在此直接下载完全部图片后再进行处理会更加方便。 torchvision.datasets.CIFAR10用于加载 CIFAR-10 数据集。参数包括 root数据集存放的根目录。 trainTrue 表示加载训练集False 表示加载测试集。 download是否下载数据集如果设置为 True数据集将会被自动下载到 root 目录下。 transform用于对数据进行转换的操作。 对上述数据集中数据进行归一化、图像增强等操作。 import torchvision.transforms as transforms# 定义图像预处理操作 transform_train transforms.Compose([transforms.RandomCrop(32, padding4), # 随机裁剪数据增强transforms.RandomHorizontalFlip(), # 随机水平翻转数据增强transforms.ToTensor(), # 转换为张量transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5)) # 归一化 ]) 使用随机裁剪、水平翻转技术进行数据增强操作提高后续模型的特征提取能力。 模型构建 使用 PyTorch 构建卷积神经网络模型。设计合适的网络结构包括卷积层、池化层、全连接层等。搭建的卷积神经网络结构图如下所示 import torch from torch import nn from torch.nn import Sequential, Conv2d, MaxPool2d, Linear, Flattenclass Module(nn.Module):def init(self):super(Module, self).init()self.model1 Sequential( # 效果同上Conv2d(3, 32, 5, padding2),MaxPool2d(2),Conv2d(32, 32, 5, padding2),MaxPool2d(2),Conv2d(32, 64, 5, padding2),MaxPool2d(2),Flatten(),Linear(1024, 64),Linear(64, 10))def forward(self, x):x self.model1(x)return xif name main:# 验证网络正确性model Module()input torch.ones((64, 3, 32, 32))output model(input)print(output.shape) # torch.Size([64, 10]) 该卷积神经网络包含了一个卷积层 (Conv2d)输入通道数为3输出通道数为32卷积核大小为5x5使用零填充padding2。一个最大池化层 (MaxPool2d)池化窗口大小为2x2。另一个卷积层输入通道数为32输出通道数为32卷积核大小为5x5同样使用零填充。另一个最大池化层池化窗口大小为2x2。还有一个卷积层输入通道数为32输出通道数为64卷积核大小为5x5零填充。再接一个最大池化层池化窗口大小为2x2。 然后是将特征展平的层 (Flatten)用于将卷积层输出的特征张量展平成一维向量。 接着是一个全连接层 (Linear)输入大小为1024输出大小为64。 最后是另一个全连接层输入大小为64输出大小为10。这里的10代表着输出类别的数量。 后面函数解释 def forward(self, x)是模型的前向传播函数定义了数据从输入到输出的流程。 x self.model1(x)这里将输入数据 x 输入到 model1 中进行前向传播计算。 return x返回模型的输出结果。 if name main:这是Python中的常用写法用于判断当前脚本是否作为主程序执行。 model Module()创建了一个模型对象 model实例化了前面定义的 Module 类。 input torch.ones((64, 3, 32, 32))创建了一个大小为64x3x32x32的张量作为输入数据表示64个样本每个样本的图像大小为32x32通道数为3假设是RGB图像。 output model(input)将输入数据输入到模型中进行前向传播计算得到输出结果。 print(output.shape)打印输出结果的形状这里输出的形状为 torch.Size([64, 10])表示有64个样本每个样本对应一个长度为10的输出向量其中每个元素表示对应类别的预测分数或概率。 对应构建的卷积神经网络结构图如下图所示 模型训练 定义损失函数和优化器。将数据集分为训练集和验证集。在训练集上训练模型通过验证集调整模型参数避免过拟合。
6损失函数
loss_fn nn.CrossEntropyLoss()# 7优化器 learning_rate 1e-2 optimizer torch.optim.SGD(model.parameters(), lrlearning_rate)# 8设置训练网络的一些参数 total_train_step 0 # 记录训练次数 total_test_step 0 # 记录测试次数 epoch 10 # 训练的轮数 损失函数、优化器如上所示损失函数使用交叉熵损失函数优化器中学习率learning rate为0.01优化器使用SGD优化器。 模型评估 使用测试集评估模型性能计算准确率等指标。 随着训练次数增加模型在测试集上面的整体损失LOSS一直在下降正确率一直在提升。训练准确率在第34轮训练时到达66.7% 可视化展示 通过表格展示准确率等实验结果。绘制准确率和损失函数随训练轮次变化的曲线图。随机选取部分图像展示模型的预测结果和真实标签。 此处的可视化使用了tensorboard展示板结合日志文件进行展示 tensorboard –logdirlogs logs代表着日志文件对应的文件夹所在位置 使用上面代码进行读取代码运行产生的日志文件。 TIP日志文件所在的文件夹路径中不能存在中文路径否则会报错。 import torch import torchvision.transforms as transforms from torch.utils.data import DataLoader from torchvision.datasets import CIFAR10 import matplotlib.pyplot as plt import numpy as np# 加载测试数据集 test_data CIFAR10(rootdata, trainFalse, transformtransforms.ToTensor(), downloadTrue) test_loader DataLoader(test_data, batch_size16, shuffleTrue)# 定义类别名称 classes [airplane, automobile, bird, cat, deer, dog, frog, horse, ship, truck]# 加载模型 model torch.load(rC:\Users\Lenovo\Desktop\计算机视觉实验\实验2\CIFAR-10\200轮训练权重\model_34.pth) # 假设模型保存在 model.pth 中# 设置模型为评估模式 model.eval()# 从测试数据集中随机选择一批图像和标签 images, labels next(iter(test_loader))# 对图像进行预测 with torch.nograd():outputs model(images), predicted torch.max(outputs, 1)# 将图像、预测结果和真实标签组合在一起并展示 fig, axes plt.subplots(4, 4, figsize(12, 12)) for i, ax in enumerate(axes.flat):image images[i].permute(1, 2, 0) # 将图像从 (C, H, W) 转换为 (H, W, C)label labels[i]prediction predicted[i]ax.imshow(image)ax.axis(off)ax.set_title(fPredicted: {classes[prediction]}, Actual: {classes[label]},fontsize10)plt.show() 识别效果如上图所示.
- 上一篇: 有阿里空间怎么做网站音乐网站建设方案
- 下一篇: 有本地服务器怎么做网站北京商业设计网站
相关文章
-
有阿里空间怎么做网站音乐网站建设方案
有阿里空间怎么做网站音乐网站建设方案
- 技术栈
- 2026年03月21日
-
友汇网网站建设网站建设后的心得
友汇网网站建设网站建设后的心得
- 技术栈
- 2026年03月21日
-
游戏运营备案官方网站网页设计实训总结200
游戏运营备案官方网站网页设计实训总结200
- 技术栈
- 2026年03月21日
-
有本地服务器怎么做网站北京商业设计网站
有本地服务器怎么做网站北京商业设计网站
- 技术栈
- 2026年03月21日
-
有打赏功能的网站宝塔面板建设网站
有打赏功能的网站宝塔面板建设网站
- 技术栈
- 2026年03月21日
-
有多少个购物网站WordPress头像美化插件
有多少个购物网站WordPress头像美化插件
- 技术栈
- 2026年03月21日
