【深度学习】PyTorch 图片识别分类器

下载数据集

import torch
import torchvision
import torchvision.transforms as transforms

# 定义数据预处理的转换
transform = transforms.Compose(
    [transforms.ToTensor(),
     transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])

# 训练集
trainset = torchvision.datasets.CIFAR10(root='./data', train=True,download=True, transform=transform)

# 加载
trainloader = torch.utils.data.DataLoader(trainset, batch_size=4,shuffle=True, num_workers=2)

# 测试集
testset = torchvision.datasets.CIFAR10(root='./data', train=False,download=True, transform=transform)

# 加载
testloader = torch.utils.data.DataLoader(testset, batch_size=4,shuffle=False, num_workers=2)

构建神经网络

import torch.nn as nn
import torch.nn.functional as F

class Net(nn.Module):
  
  def __init__(self):
    super(Net,self).__init__()
    
    #  定义第一层卷积层
    self.c1 = nn.Conv2d(3 ,6 ,5)
    self.c2 = nn.Conv2d(6 ,15, 5)
    
    # 定义池化
    self.pool = nn.MaxPool2d(2,2)
    
    # 定义全连接
    self.fc1 = nn.Linear(15 * 5 * 5,120)
    self.fc2 = nn.Linear(120 , 84)
    self.fc3 = nn.Linear(84 , 10)
    
  def forward(self):
    
    # 卷积层  relu激活函数去负值  池化
    x = self.pool(F.relu(self.c1(x)))
    x = self.pool(F.relu(self.c2(x)))
    
    # 扁平化  转换成x形状 适配 全连接层的输入
    x = x.view(-1, 15 * 5 * 5)
    
    # 全连接层 - relu激活函数 去负值  
    x = F.relu(self.fc1(x))
    x = F.relu(self.fc2(x))
    x = F.slef.fc3(x)
    return x
    
net = Net()

训练模型

# 损失函数 与 梯度清零函数
import torch.optim as optim
losser = nn.CrossEntropyLoss()
optimer = optim.SGD(net.parameters(),lr=0.1)

running_loss = 0

# 训练次数
for epoch in range(2):
  # 遍历训练集
  for data in trainloader:
    
    # 提取图片与标签
    images, labels = data
    
    # 梯度清理
    optimer.zero_grad()
    
    # 计算训练结果张量 向前传播
    outputs = net(images)
    # 计算损失值
    loss = losser(outputs,labels)
   	# 反向传播
    loss.backward()
    
    # 参数更新
    optimer.step()
   	
    # 打印训练数据
    running_loss += loss.item()
    if (i + 1) % 2000 == 0:
      print('[{}, {}] loss: {}'.format(epoch + 1, i + 1, running_loss / 2000))
      running_loss = 0
     
print("训练完毕")

保存模型

torch.save(net.state_dict(),'data.pth')

预测模型

correct = 0  #  正确率
total = 0    #  样本总量

# 禁止梯度清零  (测试/开发)
with torch.no_grad():
  # 遍历测试集
  for data in testloader:
    
    images,labels = data
    outputs = net(images)
    _,predicted = torch.max(outputs,1) # 预测
    
    total += lables.size(0) # 总量
    
    # sum()方法用于计算张量中所有元素的总和
    # item()将张量值转换成标量值
    correct += (predicted == labels).sum().item()
    
print("正确率(%):", 100 * correct / total)  # 打印正确率
print("样本总量",total)


每个类别的准确率

class_correct = list(0. for i in range(10))
class_total = list(0. for i in range(10))

with torch.no_grad():
    for data in testloader:
        images, labels = data
        outpus = net(images)
        _,predicted = torch.max(outpus,1)
        
        c = (predicted == labels).squeeze()  # 挤压维度:其中删除了维度为1的维度,返回true,false

        for i in range(4):
            label = labels[i]
            class_correct[label] += c[i].item()
            class_total[label] += 1
            
for i in range(10):
    print(classes[i], 100 * class_correct[i] / class_total[i])

最后的最后

感谢你们的阅读和喜欢,我收藏了很多技术干货,可以共享给喜欢我文章的朋友们,如果你肯花时间沉下心去学习,它们一定能帮到你。

因为这个行业不同于其他行业,知识体系实在是过于庞大,知识更新也非常快。作为一个普通人,无法全部学完,所以我们在提升技术的时候,首先需要明确一个目标,然后制定好完整的计划,同时找到好的学习方法,这样才能更快的提升自己。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

五、面试资料

我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下。
在这里插入图片描述

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值