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

聊城网站那家做的好佳木斯市郊区建设局网站

聊城网站那家做的好,佳木斯市郊区建设局网站,海外推广方式有哪些,简单的企业网站源码目录 LeNet-5 LeNet-5 结构 CIFAR-10 pytorch实现 lenet模型 训练模型 1.导入数据 2.训练模型 3.测试模型 测试单张图片 代码 运行结果 LeNet-5 LeNet-5 是由 Yann LeCun 等人在 1998 年提出的一种经典卷积神经网络#xff08;CNN#xff09;模型#xff0c;主要…目录 LeNet-5 LeNet-5 结构 CIFAR-10 pytorch实现 lenet模型 训练模型 1.导入数据 2.训练模型 3.测试模型 测试单张图片 代码 运行结果 LeNet-5 LeNet-5 是由 Yann LeCun 等人在 1998 年提出的一种经典卷积神经网络CNN模型主要用于手写数字识别任务。它在 MNIST 数据集上表现出色并且是深度学习历史上的一个重要里程碑。 LeNet-5 结构 LeNet-5 的结构包括以下几个层次 输入层: 32x32 的灰度图像。卷积层 C1: 包含 6 个 5x5 的滤波器输出尺寸为 28x28x6。池化层 S2: 平均池化层输出尺寸为 14x14x6。卷积层 C3: 包含 16 个 5x5 的滤波器输出尺寸为 10x10x16。池化层 S4: 平均池化层输出尺寸为 5x5x16。卷积层 C5: 包含 120 个 5x5 的滤波器输出尺寸为 1x1x120。全连接层 F6: 包含 84 个神经元。输出层: 包含 10 个神经元对应于 10 个类别。 CIFAR-10 CIFAR-10 是一个常用的图像分类数据集包含 10 个类别的 60,000 张 32x32 彩色图像。每个类别有 6,000 张图像其中 50,000 张用于训练10,000 张用于测试。 1. 标注数据量训练集50000张图像测试集10000张图像 2. 标注类别数据集共有10个类别。具体分类见图1。 3. 可视化 pytorch实现 lenet模型 平均池化Average Pooling对池化窗口内所有像素的值取平均适合保留图像的背景信息。最大池化Max Pooling对池化窗口内的最大值进行选择适合提取显著特征并具有降噪效果。 在实际应用中最大池化更常用因为它通常能更好地保留重要特征并提高模型的性能。 import torch.nn as nn import torch.nn.functional as funcclass LeNet(nn.Module):def __init__(self):super(LeNet, self).__init__()self.conv1 nn.Conv2d(3, 6, kernel_size5)self.conv2 nn.Conv2d(6, 16, kernel_size5)self.fc1 nn.Linear(16*5*5, 120)self.fc2 nn.Linear(120, 84)self.fc3 nn.Linear(84, 10)def forward(self, x):x func.relu(self.conv1(x))x func.max_pool2d(x, 2)x func.relu(self.conv2(x))x func.max_pool2d(x, 2)x x.view(x.size(0), -1)x func.relu(self.fc1(x))x func.relu(self.fc2(x))x self.fc3(x)return x 训练模型 1.导入数据 导入训练数据和测试数据 def load_data(self):#transforms.RandomHorizontalFlip() 是 pytorch 中用来进行随机水平翻转的函数。它将以一定概率默认为0.5对输入的图像进行水平翻转并返回翻转后的图像。这可以用于数据增强使模型能够更好地泛化。train_transform transforms.Compose([transforms.RandomHorizontalFlip(), transforms.ToTensor()])test_transform transforms.Compose([transforms.ToTensor()])train_set torchvision.datasets.CIFAR10(root./data, trainTrue, downloadTrue, transformtrain_transform)self.train_loader torch.utils.data.DataLoader(datasettrain_set, batch_sizeself.train_batch_size, shuffleTrue)# shuffleTrue 表示在每次迭代时数据集都会被重新打乱。这可以防止模型在训练过程中过度拟合训练数据并提高模型的泛化能力。test_set torchvision.datasets.CIFAR10(root./data, trainFalse, downloadTrue, transformtest_transform)self.test_loader torch.utils.data.DataLoader(datasettest_set, batch_sizeself.test_batch_size, shuffleFalse) 2.训练模型 def train(self):print(train:)self.model.train()train_loss 0train_correct 0total 0for batch_num, (data, target) in enumerate(self.train_loader):data, target data.to(self.device), target.to(self.device)self.optimizer.zero_grad()output self.model(data)loss self.criterion(output, target)loss.backward()self.optimizer.step()train_loss loss.item()prediction torch.max(output, 1) # second param 1 represents the dimension to be reducedtotal target.size(0)# train_correct incremented by one if predicted righttrain_correct np.sum(prediction[1].cpu().numpy() target.cpu().numpy())progress_bar(batch_num, len(self.train_loader), Loss: %.4f | Acc: %.3f%% (%d/%d)% (train_loss / (batch_num 1), 100. * train_correct / total, train_correct, total))return train_loss, train_correct / total 3.测试模型 def test(self):print(test:)self.model.eval()test_loss 0test_correct 0total 0with torch.no_grad():for batch_num, (data, target) in enumerate(self.test_loader):data, target data.to(self.device), target.to(self.device)output self.model(data)loss self.criterion(output, target)test_loss loss.item()prediction torch.max(output, 1)total target.size(0)test_correct np.sum(prediction[1].cpu().numpy() target.cpu().numpy())progress_bar(batch_num, len(self.test_loader), Loss: %.4f | Acc: %.3f%% (%d/%d)% (test_loss / (batch_num 1), 100. * test_correct / total, test_correct, total))return test_loss, test_correct / total 测试单张图片 网上随便下载一个图片 然后使用图片编辑工具把图片设置为32x32大小 通过导入模型然后测试一下 代码 import torch import cv2 import torch.nn.functional as F #from model import Net ##重要虽然显示灰色(即在次代码中没用到)但若没有引入这个模型代码加载模型时会找不到模型 from torch.autograd import Variable from torchvision import datasets, transforms import numpy as npclasses (plane, car, bird, cat,deer, dog, frog, horse, ship, truck) if __name__ __main__:device torch.device(cuda if torch.cuda.is_available() else cpu)model torch.load(lenet.pth) # 加载模型model model.to(device)model.eval() # 把模型转为test模式img cv2.imread(bird1.png) # 读取要预测的图片trans transforms.Compose([transforms.ToTensor()])img trans(img)img img.to(device)img img.unsqueeze(0) # 图片扩展多一维,因为输入到保存的模型中是4维的[batch_size,通道,长宽]而普通图片只有三维[通道,长宽]# 扩展后为[112828]output model(img)prob F.softmax(output,dim1) #prob是10个分类的概率print(prob)value, predicted torch.max(output.data, 1)print(predicted.item())print(value)pred_class classes[predicted.item()]print(pred_class) 运行结果 tensor([[1.8428e-01, 1.3935e-06, 7.8295e-01, 8.5042e-04, 3.0219e-06, 1.6916e-04,5.8798e-06, 3.1647e-02, 1.7037e-08, 8.9128e-05]], devicecuda:0,grad_fnSoftmaxBackward0) 2 tensor([4.0915], devicecuda:0) bird 从结果看效果还不错。记录一下
http://www.dnsts.com.cn/news/13356.html

相关文章:

  • 恩施做网站的公司深圳上市设计公司
  • 找工作网站如何制作应用软件
  • 沧县网站建设两学一做网站源码
  • 爬虫 网站开发实例有哪些sns网站
  • 个人网站制作模板主页微信小程序分销
  • 网站怎么描述怎么做个人网站的
  • 推荐几个安全没封的网站号wordpress
  • 包头网站开发可以做交互的网站
  • 自适应网站建设选哪家南京市建设档案馆网站
  • 卖域名的网站要怎么做苏州seo快速优化
  • 海城网站制作建设可以做软件的网站有哪些功能
  • 高大上强企业网站杭州房产网 官方
  • 常用的软件下载网站公司主页的网站格式
  • 建设网站的申请信用卡吗seo是什么专业的课程
  • 网站建设做网站多少钱和田哪里有做网站的地方
  • 成都网站设计培训无极网站无极城市在线
  • 做网站网站盈利会怎么样宝安网站建设多少钱
  • 什么网站专做衣服2345推广联盟
  • 做网站维护需要什么证书广州网站推广找哪家
  • 苏州乡村旅游网站建设策划书.doc平板电脑网站模板
  • 购物网站订单状态模板wordpress利用视频引流
  • 哪些经营范围是包含网站开发的手机版 网站建设
  • 哪个平台做网站好需要手机端网站建设的企业
  • 网站网页制作教程wordpress评论邮件回复插件
  • 村网站开设两学一做栏目中文域名网站怎么发布信息
  • 国示范校建设网站wordpress药店主题
  • 虚拟空间的网站赚钱吗合肥生态丽景网站建设
  • 软件下载网站建设海外营销是干什么的
  • angularjs 做的网站网络平台推广广告费用
  • 网站开发编程入门学习北京网站建设优化