Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >输出就是这样的 label: tensor(2) predicted[i]也是这样的数

输出就是这样的 label: tensor(2) predicted[i]也是这样的数

原创
作者头像
用户7737280
发布于 2024-08-27 03:36:16
发布于 2024-08-27 03:36:16
880
举报

import torch

import torch.nn as nn

import torchvision

import torchvision.transforms as transforms

import matplotlib.pyplot as plt

import numpy as np

import torch.nn.functional as F #nn不好使时,在这里找激活函数

# device config

device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')

# hyper parameters

input_size = 784 # 28x28

hidden_size = 100

num_classes = 10

batch_size = 100

learning_rate = 0.001

num_epochs = 2

transform = transforms.Compose(

[transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])

train_dataset = torchvision.datasets.CIFAR10(

root='./data', train=True, download=True, transform=transform)

test_dataset = torchvision.datasets.CIFAR10(

root='./data', www.laipuhuo.com train=False, download=True, transform=transform)

train_loader = torch.utils. data.DataLoader(

dataset=train_dataset, batch_size=batch_size, shuffle=True)

test_loader = torch.utils.data.DataLoader(

dataset=test_dataset, batch_size=batch_size, shuffle=False)

print('每份100个,被分成多少份:', len(test_loader))

classes = ('plane', 'car', 'bird', 'cat', 'deer',

'dog', 'frog', 'horse', 'ship', 'truck')

class ConvNet(nn.Module):

def __init__(self):

super(ConvNet,self).__init__()

self.conv1 = nn.Conv2d(3, 6, 5)

self.pool = nn.MaxPool2d(2, 2)

self.conv2 = nn.Conv2d(6, 16, 5)

self.fc1 = nn.Linear(16*5*5, 120) #这个在forward里解释

self.fc2 = nn.www.laipuhuo.com Linear(120, 84)

self.fc3 = nn.Linear(84, 10)

def forward(self, x):

x = self.pool(F.relu(self.conv1(x)))

x = self.pool(F.relu(self.conv2(x))) #这里x已经变成 torch.Size([4, 16, 5, 5])

# print("两次卷积两次池化后的x.shape:",x.shape)

x = x.view(-1,16*5*5)#这里的16*5*5就是x的后面3个维度相乘

x = F.relu(self.fc1(x)) #fc1定义时,inputx已经是16*5*5了

x = F.relu(self.fc2(x))

x= self.fc3(x)

return x

model = ConvNet().to(device)

criterion = nn.CrossEntropyLoss()

optimizer = torch.optim.SGD(model.parameters(), lr=learning_rate)

n_total_steps = len(train_loader)

for epoch in range(num_epochs):

for i, (images, labels) in enumerate(train_loader):

# origin shape:[www.laipuhuo.com 4,3,32,32]=4,3,1024

# input layer: 3 input channels, 6 output channels, 5 kernel size

images = images.to(device)

labels = labels.to(device)

# Forward pass

outputs = model(images)

loss = criterion(outputs, labels)

# Backward and optimize

optimizer.zero_grad()

loss.backward()

optimizer.step()

if (i+1) % 2000 == 0:

print(

f'Epoch www.laipuhuo.com [{epoch+1}/{num_epochs}], Step [{i+1}/{n_total_steps}], Loss: {loss.item():.4f}')

print('Finished Training')

# test

with torch.no_grad():

n_correct = 0

n_samples = 0

n_class_correct = [0 for i in range(10)] #生成 10 个 0 的列表

n_class_samples = [0 for i in range(10)]

for images, labels in test_loader:

images = images.to(device)

labels = labels.to(device)

print('test-images.shape:', images.shape)

outputs = model(images)

# max returns(value ,index)

_, predicted = torch.max(outputs, 1)

n_samples +=www.laipuhuo.com labels.size(0)

n_correct += (predicted == labels).sum().item()

for i in range(batch_size):

label = labels[i]

# print("label:",label) #这里存的是 0~9的数字 输出就是这样的 label: tensor(2) predicted[i]也是这样的数

pred = predicted[i]

if (label == pred):

n_class_correct[label] += 1

n_class_samples[label] += 1

acc = 100.0*n_correct/n_samples # 计算正确率

print(f'accuracy =www.laipuhuo.com {acc}')

for i in range(10):

acc = 100.0*n_class_correct[i]/n_class_samples[i]

print(f'Accuracy of {classes[i]}: {acc} %')

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
机器学习练手项目-猫狗分类器
猫狗分类器是一个深度学习项目,旨在识别图像中的猫和狗。通过训练神经网络模型,该项目可以从输入的图像中准确地识别出是猫还是狗。这个项目可以应用于许多实际场景,如图像分类、动物识别等。
GeekLiHua
2025/01/21
690
机器学习练手项目-猫狗分类器
Pytorch小项目-基于卷积神经网络的CIFAR10分类器
今天我们来讲一篇入门级必做的项目,如何使用pytorch进行CIFAR10分类,即利用CIFAR10数据集训练一个简单的图片分类器。
AI深度学习求索
2018/12/11
3.1K0
CNN层和特征可视化VGG-16
CNN由处理视觉信息的层组成。CNN首先接收输入图像,然后将其传递通过这些层。有几种不同类型的层:最常用的层:卷积,池化和完全连接的层。 首先,让我们来看看完整的CNN架构; 下面是一个名为VGG-16的网络,它经过培训可识别各种图像类别。它接收图像作为输入,并输出该图像的预测类。
小飞侠xp
2018/10/10
5.1K0
CNN层和特征可视化VGG-16
【小白学习PyTorch教程】八、使用图像数据增强手段,提升CIFAR-10 数据集精确度
上次基于CIFAR-10 数据集,使用PyTorch构建图像分类模型的精确度是60%,对于如何提升精确度,方法就是常见的transforms图像数据增强手段。
润森
2022/08/18
1.4K0
【小白学习PyTorch教程】八、使用图像数据增强手段,提升CIFAR-10 数据集精确度
torch05:CNN--MNIST识别和自己数据集
(2)定义训练数据,加餐部分是使用自己的数据集:(可参考:https://blog.csdn.net/u014365862/article/details/80506147)
MachineLP
2019/05/26
9020
PyTorch实现TPU版本CNN模型
随着深度学习模型在各种应用中的成功实施,现在是时候获得不仅准确而且速度更快的结果。
磐创AI
2020/08/11
1.4K0
PyTorch实现TPU版本CNN模型
torch06:ResNet--Cifar识别和自己数据集
(2)定义训练数据,加餐部分是使用自己的数据集:(可参考:https://blog.csdn.net/u014365862/article/details/80506147)
MachineLP
2019/05/26
6870
torch04:全连接神经网络--MNIST识别和自己数据集
(2)定义训练数据,加餐部分是使用自己的数据集:(可参考:https://blog.csdn.net/u014365862/article/details/80506147)
MachineLP
2019/05/26
6090
PyTorch中的LeNet-5入门
LeNet-5是一个经典的卷积神经网络(CNN)模型,由Yann LeCun等人在1998年提出。它在手写数字识别任务上取得了很好的性能,并被广泛应用于图像分类问题。本文将介绍如何使用PyTorch实现LeNet-5模型,并在MNIST手写数字数据集上进行训练和测试。
大盘鸡拌面
2023/10/18
6020
Deep Learning with PyTorch: A 60 Minute Blitz > Training a Classifier
This is it. You have seen how to define neural networks, compute loss and make updates to the weights of the network.
望天
2024/06/12
1940
Deep Learning with PyTorch: A 60 Minute Blitz > Training a Classifier
轻松学Pytorch-使用卷积神经网络实现图像分类
大家好,本篇教程的贡献者来自社区投稿作者【陨星落云】,使用CIFAR-10数据集进行图像分类。该数据集中的图像是彩色小图像,其中被分为了十类。一些示例图像,如下图所示:
OpenCV学堂
2020/05/24
1.7K0
torch07:RNN--MNIST识别和自己数据集
版权声明:本文为博主原创文章,未经博主允许不得转载。有问题可以加微信:lp9628(注明CSDN)。 https://blog.csdn.net/u014365862/article/details/80547020
MachineLP
2019/05/26
1.2K0
深度学习基础:5.CIFAR10数据集分类及GPU使用实例
上篇博文整理了如何用Pytorch搭建一个基本网络模型,本篇进行一个图像分类任务实操。 相关代码主要参考自官网教程: https://pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html#sphx-glr-beginner-blitz-cifar10-tutorial-py
zstar
2022/07/14
1.2K0
深度学习基础:5.CIFAR10数据集分类及GPU使用实例
深度学习--使用PyTorch训练模型
友友们,周一好呀!又见面了。今天我们来继续充电。这篇讲一下我们如何来利用PyTorch训练图像识别的模型。ok,下面进入正文。
china马斯克
2025/03/31
2500
可视化卷积神经网络的特征和过滤器
卷积神经网络是一种特殊类型的人工神经网络,广泛应用于图像识别。这种架构的成功始于 2015 年,当时凭借这种方法赢得了 ImageNet 图像分类挑战。
deephub
2021/07/01
7010
PyTorch与深度学习
PyTorch是一个开源的Python机器学习库,基于Torch,用于自然语言处理等应用程序。PyTorch既可以看作加入了GPU支持的numpy,同时也可以看成一个拥有自动求导功能的强大的深度神经网络。除了Facebook外,它已经被Twitter、CMU和Salesforce等机构采用。
正在走向自律
2024/12/18
1220
PyTorch与深度学习
pytorch:实践MNIST手写数字识别
在datasets.MNIST的中可以设置download=True,这样设置,系统会自动在root里面检测MNIST数据文件,如果存在则不下载,如果不存在则自动联网下载。我尝试自动联网下载,结果十几分钟之后,下载一半之后报错,网络出现问题。于是翻阅其它资源,将其手动下载下来添加到minst文件夹中自动创建的raw文件夹中。 (如果你也需要这个数据集,可以在微信公众号“我有一计”内回复“数据集”,即可获取下载链接)
zstar
2022/06/14
4870
【深度学习】翻译:60分钟入门PyTorch(四)——训练一个分类器
翻译自:Deep Learning with PyTorch: A 60 Minute Blitz
黄博的机器学习圈子
2021/02/08
6170
【小白学习PyTorch教程】六、基于CIFAR-10 数据集,使用PyTorch 从头开始​​构建图像分类模型
图像识别本质上是一种计算机视觉技术,它赋予计算机“眼睛”,让计算机通过图像和视频“看”和理解世界。
润森
2022/08/18
1.8K0
【小白学习PyTorch教程】六、基于CIFAR-10 数据集,使用PyTorch 从头开始​​构建图像分类模型
利用深度学习实现验证码识别-3-ResNet18
在当今数字化时代,验证码作为一种重要的安全验证手段,广泛应用于各种网络场景。然而,传统的验证码识别方法往往效率低下,准确率不高。今天,我们将介绍一种基于 ResNet18 的验证码识别方法,它能够高效、准确地识别验证码,为网络安全提供有力保障。
井九
2024/10/12
1930
利用深度学习实现验证码识别-3-ResNet18
推荐阅读
相关推荐
机器学习练手项目-猫狗分类器
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档