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

html网站作业商城版免费网站制作

html网站作业,商城版免费网站制作,wordpress lt,seo网站推广怎样【Python PyTorch】卷积神经网络 CNN#xff08;LeNet-5网络#xff09; 1. LeNet-5网络※ LeNet-5网络结构 2. 读取数据2.1 Torchvision读取数据2.2 MNIST FashionMNIST 下载解包读取数据 2. Mnist※ 训练 LeNet5 预测分类 3. EMnist※ 训练 LeNet5 预测分类 4. Fash… 【Python · PyTorch】卷积神经网络 CNNLeNet-5网络 1. LeNet-5网络※ LeNet-5网络结构 2. 读取数据2.1 Torchvision读取数据2.2 MNIST FashionMNIST 下载解包读取数据 2. Mnist※ 训练 LeNet5 预测分类 3. EMnist※ 训练 LeNet5 预测分类 4. FashionMnist※ 训练 LeNet5 预测分类 5. CIFAR-10※ 训练 LeNet5 预测分类 1. LeNet-5网络 标志经典的卷积神经网络 LeNet-5由Yann Lecun 提出是一种经典的卷积神经网络是现代卷积神经网络的起源之一。 Yann将该网络用于邮局的邮政的邮政编码识别有着良好的学习和识别能力。 ※ LeNet-5网络结构 LeNet-5具有一个输入层两个卷积层两个池化层3个全连接层其中最后一个全连接层为输出层。 下面我们以灰度值黑白图像为例描述LeNet网络结构其中”接纳“表示”中间层输入“”传递“表示”中间层输出“。 层次结构 输入层 (Input Layer) 输入尺寸32 × 32 数据图灰度值0 ~ 255一般进行预处理传递通道数1 卷积层 C1 (Convolutional Layer c1) 卷积核尺寸5 × 5卷积核数量6步长1填充0传递尺寸28 × 28 特征图传递通道数6 子采样/池化层 S2 (Subsampling Layer S2) 类型MaxPooling窗口尺寸2 × 2步长2传递尺寸14 × 14 特征图传递通道数6 卷积层 C3 (Convolutional Layer c3) 卷积核尺寸5 × 5卷积核数量16步长1填充0传递尺寸10 × 10 特征图传递通道数16 子采样/池化层 S4 (Subsampling Layer S4) 类型MaxPooling窗口尺寸2 × 2步长2传递尺寸5 × 5 特征图传递通道数6 全连接层 C5 (Fully Connected Layer C5) 展平尺寸400 ( 25 * 16 )传递尺寸120 全连接层 C6 (Fully Connected Layer C6) 接纳尺寸120传递尺寸84 输出层 (Output Layer) 接纳尺寸84输出尺寸10 Same卷积 Full卷积 Valid卷积 Same卷积根据卷积核大小对输入特征图自适应 零填充 (以k定p)确保输出的特征图大小与输入的特征图尺寸相同。Full卷积允许卷积核超出特征图范围但须确保卷积核边缘与特征图边缘相交。Same卷积是特殊的Full卷积。Valid卷积卷积过程中不使用填充输出特征图的尺寸小于输入特征图的尺寸。 本文 Torch Torchvision版本 2. 读取数据 2.1 Torchvision读取数据 Datasets 使用 torchvision.datasets模块包含多种预定义类型的数据集例如MNIST、EMNIST、FashionMNIST、CIFAR-10、ImageNet等。它封装了这些数据集的下载、加载和预处理步骤。 torchvision.datasets 4个参数 root字符串类型指定存放路径train布尔类型区分训练集与测试集download布尔类型开启下载若本地存在则不进行下载transform用于对数据预先处理的转换 2.2 MNIST FashionMNIST 下载解包读取数据 定义读取函数 定义读取函数 def load_mnist(path, kindtrain):import osimport gzipimport numpy as np Load MNIST data for path labels_path os.path.join(path, {}-labels-idx1-ubyte.gz.format(kind))images_path os.path.join(path, {}-images-idx3-ubyte.gz.format(kind))with gzip.open(labels_path, rb) as lbpath:labels np.frombuffer(lbpath.read(), dtypenp.uint8, offset8)with gzip.open(images_path, rb) as lbpath:images np.frombuffer(lbpath.read(), dtypenp.uint8, offset16).reshape(len(labels), 28*28)return images, labels抽取训练集测 试集 X_train, y_train load_mnist(path./data/mnist) X_test, y_test load_mnist(path./data/mnist, kindt10k)自定义 Pytorch Dataset 类 自定义 Pytorch Dataset 类 class MnistDataset(Dataset):def __init__(self, data_path, kindNone, transformNone):self.transform transformimages, labels load_mnist(path./data/mnist, kindkind) 2. Mnist Mnist数据集手写数字识别数据集数据集分为训练集和测试集用以训练和评估机器学习模型。 该数据集在深度学习领域具有重要地位尤其适合初学者学习和实践图像识别技术。 该数据集含有10种类别共70000张灰度图像。包含 60000个训练集样本 和 10000个测试集样本。每张图像以 28×28 像素的分辨率提供。 MNIST是一个手写数字数据集该数据集由美国国家标准与技术研究所National Institute of Standards and Technology, NIST发起整理。该数据集的收集目的是希望通过算法实现对手写数字的识别。 1998年Yan LeCun 等人首次提出了LeNet-5 网络利用上述数据集实现了手写字体的识别。 MNIST数据集由4个部分组成分别为训练集图像、训练集标签、测试集图像和测试集标签。其中训练集图像为 60,000 张图像测试集图像为 10,000 张。每张图像即为一个28*28的像素数组每个像素的值为0或255黑白图像。 每个标签则为长度为10的一维数组代表其为0-9数字的概率。 卷积神经网络 - 手写数字 - 可视化 代码 利用torchvision.datasets.MNIST()读取 导入三方库 import torch import torchvision from torch.utils.data import DataSet, DataLoader import torchvision.transforms as transforms# 定义转换实例 data_transform transforms.Compose([transforms.ToTensor(), # transforms.ToTensor() 将给定图像转为Tensortransforms.Normalize(mean[0.5,0.5,0.5], std[0.5,0.5,0.5])] # transforms.Normalize() 归一化处理 )# 加载MNIST数据集 trainset torchvision.datasets.MNIST(root./data/,trainTrue, downloadTrue, transformdata_transform) testset torchvision.datasets.MNIST(root./data/,trainFalse, downloadTrue, transformdata_transform)# 加载数据加载器便于小批量优化 trainloader torch.utils.data.DataLoader(trainset, batch_size100, shuffleTrue) testloader troch.utils.data.DataLoader(testset, batch_size100, shuffleFalse)※ 训练 LeNet5 预测分类 ① 导入三方库 导入三方库 import os import numpy as np import cv2 import torch import torch.nn as nn import torchvision import torchvision.transforms as transforms from torch.utils.data import Dataset, DataLoader import seaborn as sns import matplotlib.pyplot as plt确定运行设备判断cuda是否可用 device cuda if torch.cuda.is_available() else cpu print(fUsing {device} device)② 读取数据集 利用torchvision.datasets.MNIST()读取 # 定义转换实例 data_transform transforms.Compose([transforms.ToTensor(), # transforms.ToTensor() 将给定图像转为Tensortransforms.Normalize(mean[0.5], std[0.5])] # transforms.Normalize() 归一化处理 )# 加载FashionMNIST数据集 train_set torchvision.datasets.FashionMNIST(root./data/,trainTrue, downloadTrue, transformdata_transform) test_set torchvision.datasets.FashionMNIST(root./data/,trainFalse, downloadTrue, transformdata_transform)# 加载数据加载器便于小批量优化 train_loader torch.utils.data.DataLoader(train_set, batch_size100, shuffleTrue) test_loader torch.utils.data.DataLoader(test_set, batch_size100, shuffleFalse)③ 创建神经网络 创建神经网络 class LeNet(nn.Module):def __init__(self):super(LeNet, self).__init__()self.layer1 nn.Sequential( # 为匹配 LeNet 32*32 输入故对 28*28 图像作 p2 padding。nn.Conv2d(in_channels1, out_channels6, kernel_size5, stride1, padding2),nn.BatchNorm2d(6),nn.ReLU(),nn.MaxPool2d(kernel_size2, stride2),)self.layer2 nn.Sequential(nn.Conv2d(in_channels6, out_channels16, kernel_size5),nn.BatchNorm2d(16),nn.ReLU(),nn.MaxPool2d(kernel_size2, stride2),)self.layer3 nn.Sequential(nn.Flatten(),nn.Linear(in_features16*5*5, out_features120),nn.ReLU(),nn.Linear(in_features120, out_features84),nn.ReLU(),nn.Linear(in_features84, out_features10),nn.LogSoftmax())def forward(self, x):output self.layer1(x)output self.layer2(output)output self.layer3(output)return output④ 训练神经网络 预定义超参数 # 随机种子 torch.manual_seed(20) # 创建神经网络对象 model LeNet() # 确定神经网络运行设备 model.to(device) # 损失函数 loss_function nn.CrossEntropyLoss() # 优化器 optimizer torch.optim.Adam(model.parameters(), lr0.001) # 训练轮次 epochs 5 # 小批量训练次数 batch_size 100 # 训练损失记录 final_losses []定义神经网络训练函数 def train_model():count 0for epoch in range(epochs):for images, labels in train_loader:images, labels images.to(device), labels.to(device)train images.view(100, 1, 28, 28)# 1. 正向传播preds model(train)# 2. 计算误差loss loss_function(preds, labels)final_losses.append(loss)# 3. 反向传播optimizer.zero_grad()loss.backward()# 4. 优化参数optimizer.step()count 1if count % 100 0:print(Epoch: {}, Iteration: {}, Loss: {} .format(epoch, count, loss.data))调用训练函数 保存模型 train_model() torch.save(model.state_dict(), mlenet.pth) print(Saved PyTorch Model State to mlenet.pth)绘制训练损失图像 for i in range(len(final_losses)):final_losses[i] final_losses[i].item() plt.plot(final_losses) plt.show()⑤ 测试神经网络 定义混淆矩阵 confusion_matrix np.zeros((10,10))定义神经网络测试函数 def test_model():model LeNet()model.to(device)model.load_state_dict(torch.load(mlenet.pth))correct 0total 0with torch.no_grad():for images, labels in test_loader:images, labels images.to(device), labels.to(device)preds model(images)preds torch.max(preds, 1)[1]labels torch.max(labels, 1)[1]correct (preds labels).sum()total len(images)print(faccuracy: {correct/total})调用训练函数 输出混淆矩阵 # 调用训练函数 test_model() # 输出混淆矩阵 plt.figure(figsize(8, 6)) sns.heatmap(confusion_matrix, annotTrue, cmapOranges, linecolorblack, linewidth0.5, fmt.20g)3. EMnist EMnist数据集手写字符识别数据集Mnist数据集进阶版本数据集分为训练集和测试集用以训练和评估机器学习模型。 该数据集在深度学习领域具有重要地位尤其适合初学者学习和实践图像识别技术。 该数据集含有10种类别共70000张灰度图像。包含 60000个训练集样本 和 10000个测试集样本。每张图像以 28×28 像素的分辨率提供。 EMNIST 分为以下 6 类 By_Class 共 814255 张62 类与 NIST 相比重新划分类训练集与测试集的图片数。 By_Merge 共 814255 张47 类 与 NIST 相比重新划分类训练集与测试集的图片数。 Balanced : 共 131600 张47 类 每一类都包含了相同的数据每一类训练集 2400 张测试集 400 张。 Digits 共 28000 张10 类每一类包含相同数量数据每一类训练集 24000 张测试集 4000 张。 Letters : 共 103600 张37 类每一类包含相同数据每一类训练集 2400 张测试集 400 张。 MNIST 共 70000 张10 类每一类包含相同数量数据注这里虽然数目和分类都一样但是图片的处理方式不一样EMNIST 的 MNIST 子集数字占的比重更大 Letter中相似的字母 (例如c或o) 被整合为1个字符则共有37个字母可被识别但因 未区分大小写手写印刷体 最终被统一归为 26 类别又因为包含未分类类别 [N/A] 故归为 27 类别。 本小节利用 EMNIST-Letters 数据集训练LeNet5模型进行字符识别。 数据集排列 [N/A]abcd…… ※ 训练 LeNet5 预测分类 ① 导入三方库 导入三方库 import os import numpy as np import cv2 import torch import torch.nn as nn import torchvision import torchvision.transforms as transforms from torch.utils.data import Dataset, DataLoader import seaborn as sns import matplotlib.pyplot as plt确定运行设备判断cuda是否可用 device cuda if torch.cuda.is_available() else cpu print(fUsing {device} device)② 读取数据集 利用torchvision.datasets.EMNIST()读取 # 定义转换实例 data_transform transforms.Compose([transforms.ToTensor(), # transforms.ToTensor() 将给定图像转为Tensortransforms.Normalize(mean[0.5], std[0.5])] # transforms.Normalize() 归一化处理 )# 加载FashionMNIST数据集 train_set torchvision.datasets.FashionMNIST(root./data/,trainTrue, downloadTrue, transformdata_transform) test_set torchvision.datasets.FashionMNIST(root./data/,trainFalse, downloadTrue, transformdata_transform)# 加载数据加载器便于小批量优化 train_loader torch.utils.data.DataLoader(train_set, batch_size100, shuffleTrue) test_loader torch.utils.data.DataLoader(test_set, batch_size100, shuffleFalse)③ 创建神经网络 创建神经网络 class LeNet(nn.Module):def __init__(self):super(LeNet, self).__init__()self.layer1 nn.Sequential( # 为匹配 LeNet 32*32 输入故对 28*28 图像作 p2 padding。nn.Conv2d(in_channels1, out_channels6, kernel_size5, stride1, padding2),nn.BatchNorm2d(6),nn.ReLU(),nn.MaxPool2d(kernel_size2, stride2),)self.layer2 nn.Sequential(nn.Conv2d(in_channels6, out_channels16, kernel_size5),nn.BatchNorm2d(16),nn.ReLU(),nn.MaxPool2d(kernel_size2, stride2),)self.layer3 nn.Sequential(nn.Flatten(),nn.Linear(in_features16*5*5, out_features120),nn.ReLU(),nn.Linear(in_features120, out_features84),nn.ReLU(),nn.Linear(in_features84, out_features27),nn.LogSoftmax())def forward(self, x):output self.layer1(x)output self.layer2(output)output self.layer3(output)return output④ 训练神经网络 预定义超参数 # 随机种子 torch.manual_seed(20) # 创建神经网络对象 model LeNet() # 确定神经网络运行设备 model.to(device) # 损失函数 loss_function nn.CrossEntropyLoss() # 优化器 optimizer torch.optim.Adam(model.parameters(), lr0.001) # 训练轮次 epochs 5 # 小批量训练次数 batch_size 100 # 训练损失记录 final_losses []定义神经网络训练函数 def train_model():count 0for epoch in range(epochs):for images, labels in train_loader:images, labels images.to(device), labels.to(device)# 1. 正向传播preds model(train)# 2. 计算误差loss loss_function(preds, labels)final_losses.append(loss)# 3. 反向传播optimizer.zero_grad()loss.backward()# 4. 优化参数optimizer.step()count 1if count % 100 0:print(Epoch: {}, Iteration: {}, Loss: {} .format(epoch, count, loss.data))调用训练函数 保存模型 train_model() torch.save(model.state_dict(), elenet.pth) print(Saved PyTorch Model State to mlenet.pth)绘制训练损失图像 for i in range(len(final_losses)):final_losses[i] final_losses[i].item() plt.plot(final_losses) plt.show()⑤ 测试神经网络 定义混淆矩阵 confusion_matrix np.zeros((27,27))定义神经网络测试函数 def test_model():model LeNet()model.to(device)model.load_state_dict(torch.load(elenet.pth))correct 0total 0with torch.no_grad():for images, labels in test_loader:images, labels images.to(device), labels.to(device)preds model(images)preds torch.max(preds, 1)[1]correct (preds labels).sum()total len(images)for i in range(len(preds)):confusion_matrix[preds[i]][labels[i]] 1print(faccuracy: {correct/total})调用训练函数 输出混淆矩阵 # 调用训练函数 test_model() # 输出混淆矩阵 plt.figure(figsize(8, 6)) sns.heatmap(confusion_matrix, annotTrue, cmapOranges, linecolorblack, linewidth0.5, fmt.20g)4. FashionMnist FashionMnist衣物图标识别数据集Mnist数据集进阶版本数据集分为训练集和测试集用以训练和评估机器学习模型。 该数据集在深度学习领域具有重要地位尤其适合初学者学习和实践图像识别技术。 该数据集含有10种类别共70000张灰度图像。包含 60000个训练集样本 和 10000个测试集样本。每张图像以 28×28 像素的分辨率提供。 标注编号类别0T恤 T-shirt1裤子 Trousers2套衫 Pullover3裙子 Dress4外套 Coat5凉鞋 Sandal6汗衫 Shirt7运动鞋 Sneaker8包 Bag9踝靴 Ankle boot ※ 训练 LeNet5 预测分类 ① 导入三方库 导入三方库 import os import numpy as np import cv2 import torch import torch.nn as nn import torchvision import torchvision.transforms as transforms from torch.utils.data import Dataset, DataLoader import seaborn as sns import matplotlib.pyplot as plt确定运行设备判断cuda是否可用 device cuda if torch.cuda.is_available() else cpu print(fUsing {device} device)② 读取数据集 利用torchvision.datasets.FashionMNIST()读取 # 定义转换实例 data_transform transforms.Compose([transforms.ToTensor(), # transforms.ToTensor() 将给定图像转为Tensortransforms.Normalize(mean[0.5], std[0.5])] # transforms.Normalize() 归一化处理 )# 加载FashionMNIST数据集 train_set torchvision.datasets.FashionMNIST(root./data/,trainTrue, downloadTrue, transformdata_transform) test_set torchvision.datasets.FashionMNIST(root./data/,trainFalse, downloadTrue, transformdata_transform)# 加载数据加载器便于小批量优化 train_loader torch.utils.data.DataLoader(train_set, batch_size100, shuffleTrue) test_loader torch.utils.data.DataLoader(test_set, batch_size100, shuffleFalse)③ 创建神经网络 创建神经网络 class LeNet(nn.Module):def __init__(self):super(LeNet, self).__init__()self.layer1 nn.Sequential( # 为匹配 LeNet 32*32 输入故对 28*28 图像作 p2 padding。nn.Conv2d(in_channels1, out_channels6, kernel_size5, stride1, padding2),nn.BatchNorm2d(6),nn.ReLU(),nn.MaxPool2d(kernel_size2, stride2),)self.layer2 nn.Sequential(nn.Conv2d(in_channels6, out_channels16, kernel_size5),nn.BatchNorm2d(16),nn.ReLU(),nn.MaxPool2d(kernel_size2, stride2),)self.layer3 nn.Sequential(nn.Flatten(),nn.Linear(in_features16*5*5, out_features120),nn.ReLU(),nn.Linear(in_features120, out_features84),nn.ReLU(),nn.Linear(in_features84, out_features10),nn.LogSoftmax())def forward(self, x):output self.layer1(x)output self.layer2(output)output self.layer3(output)return output④ 训练神经网络 预定义超参数 # 随机种子 torch.manual_seed(20) # 创建神经网络对象 model LeNet() # 确定神经网络运行设备 model.to(device) # 损失函数 loss_function nn.CrossEntropyLoss() # 优化器 optimizer torch.optim.Adam(model.parameters(), lr0.001) # 训练轮次 epochs 5 # 小批量训练次数 batch_size 100 # 训练损失记录 final_losses []定义神经网络训练函数 def train_model():count 0for epoch in range(epochs):for images, labels in train_loader:images, labels images.to(device), labels.to(device)train images.view(100, 1, 28, 28)# 1. 正向传播preds model(train)# 2. 计算误差loss loss_function(preds, labels)final_losses.append(loss)# 3. 反向传播optimizer.zero_grad()loss.backward()# 4. 优化参数optimizer.step()count 1if count % 100 0:print(Epoch: {}, Iteration: {}, Loss: {} .format(epoch, count, loss.data))调用训练函数 保存模型 train_model() torch.save(model.state_dict(), fmlenet.pth) print(Saved PyTorch Model State to fmlenet.pth)绘制训练损失图像 for i in range(len(final_losses)):final_losses[i] final_losses[i].item() plt.plot(final_losses) plt.show()⑤ 测试神经网络 定义混淆矩阵 confusion_matrix np.zeros((10,10))定义神经网络测试函数 def test_model():model LeNet()model.to(device)model.load_state_dict(torch.load(fmlenet.pth))correct 0total 0with torch.no_grad():for images, labels in test_loader:images, labels images.to(device), labels.to(device)preds model(images)preds torch.max(preds, 1)[1]correct (preds labels).sum()total len(images)for i in range(len(preds)):confusion_matrix[preds[i]][labels[i]] 1print(faccuracy: {correct/total})调用训练函数 输出混淆矩阵 # 调用训练函数 test_model() # 输出混淆矩阵 plt.figure(figsize(8, 6)) sns.heatmap(confusion_matrix, annotTrue, cmapOranges, linecolorblack, linewidth0.5, fmt.20g)由此得出标准LeNet5网络拟合Fashion效果良好。 5. CIFAR-10 CIFAR10数据集共有60000个样本32*32像素的RGB彩色图像每个RGB图像包含3个通道R通道、G通道、B通道。 该数据集含有10种类别共60000张彩色图像。包含 50000个训练集样本 和 10000个测试集样本。 标注编号类别0飞机 Airplane1汽车 Automobile2鸟 Bird3猫 Cat4鹿 Deer5狗 Dog6青蛙 Frog7马 Horse8船 Ship9卡车 Truck CIFAR10数据集的内容如图所示。 ※ 训练 LeNet5 预测分类 ① 导入三方库 导入三方库 import os import numpy as np import cv2 import torch import torch.nn as nn import torchvision import torchvision.transforms as transforms from torch.utils.data import Dataset, DataLoader import seaborn as sns import matplotlib.pyplot as plt确定运行设备判断cuda是否可用 device cuda if torch.cuda.is_available() else cpu print(fUsing {device} device)② 读取数据集 利用torchvision.datasets.CIFAR10()读取 # 定义一个转换参数的实例 transform transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))] )# 加载CIFAR10数据集 trainset torchvision.datasets.CIFAR10(root./data, trainTrue, downloadTrue, transformtransforms.ToTensor()) testset torchvision.datasets.CIFAR10(root./data, trainFalse, downloadTrue, transformtransforms.ToTensor())# 创建数据加载器 train_loader torch.utils.data.DataLoader(trainset, batch_size600, shuffleTrue) test_loader torch.utils.data.DataLoader(testset, batch_size600, shuffleFalse)③ 创建神经网络 创建神经网络 class LeNet(nn.Module):def __init__(self):super(LeNet, self).__init__()self.layer1 nn.Sequential( nn.Conv2d(in_channels3, out_channels6, kernel_size5),nn.BatchNorm2d(6),nn.ReLU(),nn.MaxPool2d(kernel_size2, stride2),)self.layer2 nn.Sequential(nn.Conv2d(in_channels6, out_channels16, kernel_size5),nn.BatchNorm2d(16),nn.ReLU(),nn.MaxPool2d(kernel_size2, stride2),)self.layer3 nn.Sequential(nn.Flatten(),nn.Linear(in_features16*5*5, out_features120),nn.ReLU(),nn.Linear(in_features120, out_features84),nn.ReLU(),nn.Linear(in_features84, out_features10),nn.LogSoftmax())def forward(self, x):output self.layer1(x)output self.layer2(output)output self.layer3(output)return output④ 训练神经网络 预定义超参数 # 随机种子 torch.manual_seed(20) # 创建神经网络对象 model LeNet() # 确定神经网络运行设备 model.to(device) # 损失函数 loss_function nn.CrossEntropyLoss() # 优化器 optimizer torch.optim.Adam(model.parameters(), lr0.001) # 训练轮次 epochs 50 # 小批量训练次数 batch_size 600 # 训练损失记录 final_losses []定义神经网络训练函数 def train_model():for epoch in range(epochs):count 0for images, labels in train_loader:images, labels images.to(device), labels.to(device)train images# 1. 正向传播preds model(train)# 2. 计算误差loss loss_function(preds, labels)final_losses.append(loss)# 3. 反向传播optimizer.zero_grad()loss.backward()# 4. 优化参数optimizer.step()count 1if count % 100 0:print(Epoch: {}, Iteration: {}, Loss: {} .format(epoch, count, loss.data))调用训练函数 保存模型 train_model() torch.save(model.state_dict(), clenet.pth) print(Saved PyTorch Model State to clenet.pth)绘制训练损失图像 for i in range(len(final_losses)):final_losses[i] final_losses[i].item() plt.plot(final_losses) plt.show()⑤ 测试神经网络 定义混淆矩阵 confusion_matrix np.zeros((10,10))定义神经网络测试函数 def test_model():model LeNet()model.to(device)model.load_state_dict(torch.load(fmlenet.pth))correct 0total 0with torch.no_grad():for images, labels in test_loader:images, labels images.to(device), labels.to(device)preds model(images)preds torch.max(preds, 1)[1]correct (preds labels).sum()total len(images)for i in range(len(preds)):confusion_matrix[preds[i]][labels[i]] 1print(faccuracy: {correct/total})调用训练函数 输出混淆矩阵 # 调用训练函数 test_model() # 输出混淆矩阵 plt.figure(figsize(8, 6)) sns.heatmap(confusion_matrix, annotTrue, cmapOranges, linecolorblack, linewidth0.5, fmt.20g)由此得出未经修饰/改进的标准LeNet5网络对CIFAR10数据集的拟合效果不佳。 可改进的方向 本文对CIFAR10数据集的拟合效果不佳后续可对此问题再作探究。本文所有网络的输出层采用了LogSoftmax函数而非Softmax函数后续可在此问题上继续探讨。
http://www.dnsts.com.cn/news/168780.html

相关文章:

  • 移动端网站建设的意义字体设计在线转换器
  • 比较好的营销网站上海金融网站制作网站制作公司好
  • 旅游公司的网站怎么做WordPress管理员邮件
  • 百度小说网高淳seo外包公司
  • 电子商务网站推广案例如何在国内做网站
  • 做个网站怎样做的婚纱摄影平台
  • 网站标题怎么修改深圳代理记账报税公司
  • 宣讲家网站两学一做心得lol解说网站源码
  • 专业网站建设套餐三维制图培训班在哪里
  • 制作网站用什么软件有哪些电脑配置会影响wordpress吗
  • 网站代运营收费制作一个简单的html网页
  • 西宁网站seo公司注册国际贸易公司需要多少钱
  • 深圳商城网站建设报价wordpress手机菜单导航
  • 百度云怎么做网站港海(天津)建设股份有限公司网站
  • 房屋装修图片百度爱采购怎么优化排名
  • 遵义网站建设优化公司浦东新区建设局官方网站
  • 网站开发文档doc做站群网站会被k吗
  • 建行网站查询密码是什么东西手机浏览器下载网页视频
  • 怎么做类似淘宝网站吗笑话网站模板
  • 考试网站建设建立公司官网
  • 商城网站制作深圳网站制作wordpress copyright
  • 高新网站开发1年经验潍坊网站建设案例
  • 1688货源网单页面网站如何优化引流
  • 用wang域名做购物网站怎么样wordpress 换中文
  • 网站建设及运维方案时尚大气网站设计
  • 浙江融兴建设有限公司网站杨永生的设计风格
  • 青岛网站建设公司大全徐州城乡建设局安监处网站
  • 做网站一般分几种家居行业网站开发
  • 山西制作网站公司排名wordpress新建文章随机一个阅读量
  • 开发网站做图文水印逻辑微信小程序模板开发