Pytorch深度学习——多分类问题、MNIST训练实例(B站刘二大人P9学习笔记)

使用MNIST数据集训练手写数字识别模型 MNIST 数据集(手写数字数据集)是一个公开的公共数据集,任何人都可以免费获取它。目前,它已经是一个作为机器学习入门的通用性特别强的数据集之一,所以对于想要学习机器学习分类的、深度神经网络分类的、图像识别与处理的小伙伴,都可以选择MNIST数据集入门。 阅读详情

目录

1 Softmax层介绍

2 选择Loss函数

2.1 NLLLoss损失函数

2.2 CrossEntropyLoss损失函数

3 MNIST训练实例代码详解

3.1 准备数据集

3.2 建立模型

3.3 构建损失函数和优化器

3.4 训练+测试

3.5 完整代码+运行结果

4 遇到问题


        本节课以深度学习经典数据集MNIST数据集为例展开,如图所示是MNIST数据集的一张样例图,每个方框中是手写的数字。而我们需要做的事情就是:根据数据集中的数据,利用深度学习,让机器能够自己识别每个方框中的数字。

        数字一共有0~9一共10种类别,利用深度学习来识别十种数字的类别,这就是多分类问题。

         之前在糖尿病数据集的学习中,我们遇到的是二分类问题,也就是病人一共只有患病(y=1)和不患病(y=0)两种分类,知道y=1的概率,那y=0的概率就等于1-P(y=1),比较两个概率的大小,很容易就可以区分该病人属于哪一个分类。

         而多分类问题不同,以MNIST数据集为例,需要计算出每个方框属于不同数字的10个概率,这10个概率需要满足:

  1.         P\left ( y=i \right )> 0
  2.        \sum_{i=0}^{9}P(y=i)=1

        因此多分类问题我们通常选用Softmax函数作为神经网络的最后一层。


 1 Softmax层介绍

         Softmax函数公式如下:其中 Z_{i} 表示的是线性层输出的数值;对每层的线性层求指数,之后再计算每层指数值占总层数指数值之和的比例,就是计算出的该层次的概率。

    注意: 

  •          首先先对线性层输出的数值求指数,是为了保证计算出的数值一定是一个大于0的数,保证多分类问题中的条件1:P\left ( y=i \right )> 0。
  • 计算每个层次占总层次之和的比例,是为了保证多分类问题中的条件2:\sum_{i=0}^{9}P(y=i)=1

 一个简单的例子如下图所示:

2 选择Loss函数

2.1 NLLLoss损失函数

         NLLLoss损失函数如下图所示:(\widehat{y} 最大的对应的 y 值为1,其余都为0.)

          对应的损失函数代码如下所示:

import numpy as np
y = np.array([1, 0, 0])
z = np.array([0.2, 0.1, -0.1])
y_pred = np.exp(z) / np.exp(z).sum()
loss = (- y * np.log(y_pred)).sum()
print(loss)

2.2 CrossEntropyLoss损失函数

       CrossEntropyLoss损失函数是将Softmax层和NLLLoss损失函数整合在一。CrossEntropyLoss损失函数如下图所示:

        注意:使用CrossEntropyLoss损失函数时,神经网络的最后一层不需要做激活,(也就是不用经过Softmax层的计算),直接输入到CrossEntropyLoss损失函数中就可以,因为CrossEntropyLoss损失函数包含的Sofrmax层。

        对应的损失函数代码如下所示:

import torch
y = torch.LongTensor([0])
z = torch.Tensor([[0.2, 0.1, -0.1]])
criterion = torch.nn.CrossEntropyLoss()
loss = criterion(z, y)
print(loss)

3 MNIST训练实例代码详解

        我们之前学习的案例中,输入x都是一个向量;在MNIST数据集中,我们需要输入的是一个图像,怎样,图像怎么才能输入到模型中进行训练呢?一种方法是我们可以把图像映射成一个矩向量,再输入到模型中进行训练。

        怎样将一个图像映射成一个向量?

        如图所示是MNIST数据集中一个方格的图像,它是由28x28=784个像素组成,其中越深的地方数值越接近0,越亮的地方数值越接近1。

         因此可以将此图像按照对应的像素和数值映射成一个28x28的一个矩阵,如下图所示:


3.1 准备数据集

具体代码如下:

# 准备数据集
batch_size = 64
transform = transforms.Compose([
    transforms.ToTensor(),
#均值、标准差
    transforms.Normalize((0.1307, ), (0.3081, ))
])
train_dataset = datasets.MNIST(root='../dataset/mnist/',
                               train=True,
                               download=True,
                               transform=transform)
train_loader = DataLoader(train_dataset,
                          shuffle=True,
                          batch_size=batch_size)
test_dataset = datasets.MNIST(root='../dataset/mnist',
                              train=False,
                              download=True,
                              transform=transform)
test_loader = DataLoader(test_dataset,
                         shuffle=False,
                         batch_size=batch_size)

 注:

  1. 图像张量:灰度图(黑白图像)就是一个单通道的图像,彩色图像是多通道的图像(分别是R,G,B三个通道),一个通道具有高度——H,宽度——W,通道由——C表示。
  2. transform作用:再pytorch中读取图像时使用的是python的PIL,而由PIL读取的图像一般是由W x H x C组成,而在pytorch中为了进行更高效的图像处理,需要图像由C x W x H这样的顺序组成,因此transform的作用就是将PIL读取的图像顺序转换成C x W x H;像素值从0~255转换成0~1。


3.2 建立模型

        全连接网络中,要求输入的是一个矩阵,因此需要将1x28x28的这个三阶的张量变成一个一阶的向量,因此将图像的每一行的向量横着拼起来变成一串,这样就变成了一个维度为1x784的向量,一共输入N个手写数图,因此,输入矩阵维度为(N,784)。这样就可以设计我们的模型,如下图所示:

 具体代码:

# 设计模型
class Net(torch.nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.l1 = torch.nn.Linear(784, 512)
        self.l2 = torch.nn.Linear(512, 256)
        self.l3 = torch.nn.Linear(256, 128)
        self.l4 = torch.nn.Linear(128, 64)
        self.l5 = torch.nn.Linear(64, 10)

    def forward(self, x):
        x = x.view(-1, 784)
        x = F.relu(self.l1(x))
        x = F.relu(self.l2(x))
        x = F.relu(self.l3(x))
        x = F.relu(self.l4(x))
        return self.l5(x)


model = Net()

3.3 构建损失函数和优化器

  1.   这里我们选择CrossEntropyLoss损失函数;
  2.   因为训练数据集有些大,所以优化器可以加上冲量参数。

  具体代码:

# 构建损失函数和优化器
criterion = torch.nn.CrossEntropyLoss()
optimizer = optim.SGD(model.parameters(), lr=0.01, momentum=0.5)

3.4 训练+测试

  1. 为了方便,这里我们将一轮训练循环封装成函数;
  2. test函数不需要反向传播,只用计算正向的就可以;
  3. torch.max的返回值有两个,第一个是每一行的最大值是多少,第二个是每一行最大值的下标(索引)是多少;
  4.  torch.no_grad() :不需要计算梯度;
  5. Python 各种下划线都是啥意思_、_xx、xx_、__xx、__xx__、_classname_ - 知乎

具体代码:

# 定义训练函数
def train(epoch):
    running_loss = 0.0
    for batch_idx, data in enumerate(train_loader, 0):
        inputs, target = data
        optimizer.zero_grad()
        # 前馈+反馈+更新
        outputs = model(inputs)
        loss = criterion(outputs, target)
        loss.backward()
        optimizer.step()

        running_loss += loss.item()
        # 每300次迭代输出一次
        if batch_idx % 300 == 299:
            print('[%d,%5d] loss:%.3f' % (epoch + 1, batch_idx + 1, running_loss / 300))
            running_loss = 0.0


# 定义测试函数
def test():
    correct = 0
    total = 0
    with torch.no_grad():
        for data in test_loader:
            images, labels = data
            outputs = model(images)
            # 沿着第一维度找最大值的下标
            _, predicted = torch.max(outputs.data, dim=1)
            total += labels.size(0)
            correct += (predicted == labels).sum().item()
    print('Accuracy on test set:%d %%' % (100 * correct / total))



# 实例化训练和测试
if __name__ == '__main__':
    # 训练10轮
    for epoch in range(10):
        train(epoch)
        test()

3.5 完整代码+运行结果

完整代码:

import torch
from torchvision import transforms
from torchvision import datasets
from torch.utils.data import DataLoader
import torch.nn.functional as F
import torch.optim as optim

# 准备数据集
batch_size = 64
transform = transforms.Compose([
    transforms.ToTensor(),
    transforms.Normalize((0.1307, ), (0.3081, ))
])
train_dataset = datasets.MNIST(root='../dataset/mnist/',
                               train=True,
                               download=True,
                               transform=transform)
train_loader = DataLoader(train_dataset,
                          shuffle=True,
                          batch_size=batch_size)
test_dataset = datasets.MNIST(root='../dataset/mnist',
                              train=False,
                              download=True,
                              transform=transform)
test_loader = DataLoader(test_dataset,
                         shuffle=False,
                         batch_size=batch_size)


# 设计模型
class Net(torch.nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        self.l1 = torch.nn.Linear(784, 512)
        self.l2 = torch.nn.Linear(512, 256)
        self.l3 = torch.nn.Linear(256, 128)
        self.l4 = torch.nn.Linear(128, 64)
        self.l5 = torch.nn.Linear(64, 10)

    def forward(self, x):
        x = x.view(-1, 784)
        x = F.relu(self.l1(x))
        x = F.relu(self.l2(x))
        x = F.relu(self.l3(x))
        x = F.relu(self.l4(x))
        return self.l5(x)


model = Net()

# 构建损失函数和优化器
criterion = torch.nn.CrossEntropyLoss()
optimizer = optim.SGD(model.parameters(), lr=0.01, momentum=0.5)


# 定义训练函数
def train(epoch):
    running_loss = 0.0
    for batch_idx, data in enumerate(train_loader, 0):
        inputs, target = data
        optimizer.zero_grad()
        # 前馈+反馈+更新
        outputs = model(inputs)
        loss = criterion(outputs, target)
        loss.backward()
        optimizer.step()

        running_loss += loss.item()
        if batch_idx % 300 == 299:
            print('[%d,%5d] loss:%.3f' % (epoch + 1, batch_idx + 1, running_loss / 300))
            running_loss = 0.0


# 定义测试函数
def test():
    correct = 0
    total = 0
    with torch.no_grad():
        for data in test_loader:
            images, labels = data
            outputs = model(images)
            _, predicted = torch.max(outputs.data, dim=1)
            total += labels.size(0)
            correct += (predicted == labels).sum().item()
    print('Accuracy on test set:%d %%' % (100 * correct / total))



# 实例化训练和测试
if __name__ == '__main__':
    for epoch in range(10):
        train(epoch)
        test()

运行截图如下:

4 遇到问题

运行时遇到警告:The given NumPy array is not writeable,and PyTorch does not support non-writeable tensor,如图:

 按照路径找到mnist.py文件:

 点开修改:删除copy+False,就没有报错,程序可以继续运行了

PyTorch深度学习实践(b站刘二大人)P9讲 多分类问题 Softmax Classifier 1.SoftMax分类器 在Mnist数据集中,我们要得到的输出是0-9,共有十类,这种情况下我们希望输出0-9的概率都大于0,且和为1。 使用SoftMax分类器进行多分类问题(其输入不需要Relu激活,而是直接连接线性层),经过SoftMax分类器后满足:1.大于等于0,2.所有类别概率和为1. 2.Loss function - Cross Entropy NLLLoss(nagative log likelihood loss ):右边输入Y是真实标签,另一个输入要求是 s... 阅读详情

相关推荐

深度学习笔记P1-Pytorch实现mnist手写数字识别

代码跑通的时候,激动的心情难以言表!本节学会的内容:1.CNN神经网络2.一些python函数。

weixin_58635031的博客 1811

torch学习笔记——多分类问题(2)

一开始我分不清楚,epoch,i(index),data之间的关系。我用图片表达。训练集一共包含了 60,000 张图像和标签,而测试集一共包含了 10,000 张图像和标签。epoch记录的是所有数据遍历一遍的次数;那么index记录的就是现在训练的是第几个minibatch。每个minibatch中有64条数据,每条数据是一个28*28的矩阵,所以前面说的如果直接用model(data)的话每层输入只能是一维的,但是data是高维的,要用view()降成一维的。

wangziyanger的博客 1491

深度学习训练营第P1周:Pytorch实现mnist手写数字识别

这个项目使我初步了解了pytorch的使用,和初步应用了cnn进行图片分类,初步了解了cnn的原理。

qq_36142659的博客 1005

pyTorch入门(一)——Minist手写数据识别训练全连接网络

学更好的别人,做更好的自己。——《微卡智享》本文长度为1739字,预计阅读5分钟前言做为pyTorch的刚入门者,需要自己再做Demo进行练习,所以这个入门是一个系列,从pyTorch开始的训练,保存模型,后续再用C++ OpenCV DNN进行推理,再移植到Andorid中直接实现手写数学识别,算是个整套流程的小项目实战。今天是第一篇,写一个最简单的全连接Minist数据集pyTorch的训练。...

Vaccae的博客 2895

【ESP32-IDF】I2S音频协议实战:从PDM麦克风到PCM扬声器的全链路解析

本文深入解析ESP32-S3的I2S音频协议,从PDM麦克风采集到PCM扬声器输出的全链路实现。详细介绍了硬件PDM转PCM、Standard模式配置及混合模式协同工作,提供实战代码与性能优化建议,助力开发者高效完成嵌入式音频项目开发。

pea55的博客 888

从0死磕全栈之使用 VS Code 调试 Next.js 应用完整指南

调试目标推荐方式客户端组件VS Code + Chrome 调试器(pwa-chrome中间件(Middleware)同服务端方式静态生成(SSG)逻辑需在next build时调试,建议改用dynamic路由临时测试通过合理配置 VS Code 调试器,你可以像调试普通 Node.js 或前端项目一样,高效排查 Next.js 应用中的各类问题。🐞。

weixin_44058951的博客 1161

项目实战— pytorch搭建CNN处理MNIST数据集

项目文件夹CNN_MNIST_practice文件夹是整个项目的文件夹,里面存放了六个子文件夹以及四个.py程序,接下来我们分别来介绍这些文件的内容。其中是CPU版本的模型训练+测试程序,而则是GPU版本的模型训练+测试程序。是将MNIST数据集中的训练集和测试集转换为图像的程序。是用于测试一个手写数字 2 的程序。pixel_show文件夹中包含了一个程序和一个.txt文件,该程序用于将某一个图片进行像素化展示,该文件夹中的程序名为:.txt。

xinxin的博客 2113

【QGIS】利用“创建网格”功能实现区域等距分割与坐标转换实战

本文详细介绍了如何在QGIS中使用“创建网格”工具实现区域等距分割。通过实战演示,将北京市行政区划切割为150米正方形网格,并重点讲解了关键步骤:选择投影坐标系EPSG:3857以确保网格尺寸精确,以及将结果转换为常用的WGS84经纬度坐标。文章还涵盖了进阶技巧与常见问题解决方案,帮助用户高效完成空间网格化分析任务。

weixin_29232507的博客 95

torch学习笔记——多分类问题(1)

信息量(I(x)):当一个事件发生的概率越大,它所包含的信息量也就越少。熵(H(x)):表示系统的混乱程度,代表一个系统内信息量的总和,熵越大表示系统越混乱交叉熵(H(a,b)):表示a,b之间的相似程度,越小表示越接近。对于多分类问题,不能像二分类那样一种情况发生的概率是1,另外几种的都是零。比如掷色子,每个点位出现的概率都是1/6,而不是1或0.所以,在多分类的任务里,我们要保证两点,1:每个情况出现的概率大于等于0;

wangziyanger的博客 1058

Burp靶场实战:JWT签名绕过漏洞分析与利用

本文通过Burp Suite靶场实战,深入剖析了JWT签名绕过漏洞的多种攻击手法,包括签名未验证、alg:none攻击、弱密钥爆破、JWK/JKU头注入、KID路径遍历及算法混淆攻击。文章详细演示了利用过程,并提供了关键的防御指南,帮助开发和安全人员加固JWT实现,确保认证安全。

weixin_29325515的博客 595

使用python获取同花顺免费版和同花顺远航版自选股数据用于量化交易

在做量化交易时,有时需要在盘中实时监控同花顺自选股的数量,以便灵活地自定义提醒、捕捉买卖时点等。那么,如何使用python获取同花顺自选股数据呢?

tzzqn2008的专栏 3682

深度学习——多分类问题(SOFTMAX MNIST)-学习笔记

深度学习——多分类问题 在深度学习里有个经典的数据集MNIST-dataset,它是一个手写的数字照片集合,也是一个经典的做多分类的一个集合。 这个集合是由0~9 10个数组成的集合,我们需求是分析输入的数字对应真实数字的概率是多少,说明需要十个标签,十个分类。 多分类问题 逻辑图 把原来只有一个输出,加到10个每个输出对应一个数字,这样可以得到每个数字对应的概率值,这里每个输出做的都是sigmoid二分类(即是非1即0),所以只要有一项输出为1时,其他非1的输出...

qq_58152527的博客 1万+

智能车图像处理19-进阶篇11--斜入十字补线

这篇文章主要讲述智能车竞赛中如何对于斜入十字进行补线操作。

taiyuezyh的博客 7488

使用PyTorch解决多分类问题:构建、训练和评估深度学习模型

多分类问题是一种机器学习任务,其中目标是将输入数据分为多个不同的类别或标签。与二分类问题不同,多分类问题涉及到三个或更多类别的分类任务。例如,图像分类问题可以将图像分为不同的类别,如猫、狗、鸟等。

null18的博客 4460

uniapp(全端兼容)-最新详细实现接入腾讯云IM即时通讯教程,uniapp在安卓苹果app端/小程序/h5移动端等集成使用腾讯云im插件,提供消息列表与聊天对话示例,支持发图片/私聊/实时监听消息

uni-app,腾讯云IM,安卓app,苹果app,微信小程序,移动端,H5网页,手机网站,微信小程序、支付宝小程序,手机app端,nvue,im即时通讯,腾讯云IM详细教程,如何接入腾讯IM即时通讯,使用腾讯im有没有插件,怎么使用腾讯云IM插件,tim-wx-sdk,聊天sdk,即时通讯im uniapp私聊/群聊/聊天室,实现IM即时通讯仿微信聊天功能,对接腾讯云IM+音视频,调用腾讯即时通信IM的示例,卡顿很卡不流畅,音视频,全局监听,仿微信IM,uni-huanxin-im,sdk,实现多端实时通

✅ 精选推荐文章 1万+

使用cmd命令查看电脑是不是翻新机 如何查看自己电脑是不是翻新机

最近pdd啥的百亿补贴啊,什么品牌店啊,很多“假一赔十”,绝对“正品”都蹦出来了,很多人拿到以后,也上网查了各种鉴别方式,包括区分是不是翻新机之类的。本人亲自踩坑“pdd品牌店”,“假一赔十”,“绝对正品”等店铺,跟大家分享一下我得鉴别经验(说道分享鉴别经验了,大家也就不用好奇了,我肯定是买到翻新机了,mmp)。 第一步:准备好手机,开始录屏,没有完整的拆箱视频,可能不容易退货退款 第二步:拆箱,查看屏幕划痕(用手机闪光灯看,要不然看不清),然后查看屏幕有没有被擦过的痕迹 第三步:查看USB孔等插口有没有划

weixin_39417324的博客 1万+

《Pytorch深度学习实践》P9 多分类问题 笔记+代码+作业:Softmax原理、x.view()用法、mnist数据集分类代码、奥托集团产品分类挑战作业

《Pytorch深度学习实践》P9 多分类问题 笔记+代码+作业:Softmax原理、x.view()用法、CrossEntropyLoss LogSoftmax + NLLLoss、mnist数据集分类代码、奥托集团产品分类挑战作业。

大臣不想在月亮上上热搜 1271

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

刘二大人 PyTorch深度学习实践 笔记 P9 多分类问题

刘二大人 PyTorch深度学习实践 笔记 P9 多分类问题

qq_44948213的博客 2463

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Pytorch深度学习—— 自己设计模型训练MNIST(B站刘二大人P10作业)

作业内容:自己设计卷积核大小,池化层、以及线性层的参数,要求有三个卷积层,三个激活层、三个池化层以及三个线性层,用自己设计的卷积网络训练MNIST数据集。 选择下图结构的卷积神经网络来进行训练: 步骤: 选择 3x 3的卷积核,输入通道为 1,输出通道为 10:此时图像矩阵经过 3x 3的卷积核后会小1圈,也就是2个数位,变成 26x 26,输出通道为10; 选择 2 x 2 的最大池化层:此时图像大小缩短一半,变成 13x 13,通道数不变; 再次经过 2x 2的卷...

Learning_AI的博客 2889

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

pytorch深度学习实践3——多分类问题,卷积神经网络CNN

多分类问题Softmax Classifier分类器 全连接网络:用线性层将网络连接在一起 softmax数学原理: loss函数实现方法: 交叉熵损失: 手写数字识别分类案例代码: 引入的包和库: 将图像转换为pytorch的tensor 将图像归一化为0-1分布 将transforms运用到dataset中: 构建模型: 定义损失函数和优化器: 训练: 卷积神经网...

qq_42832272的博客 1万+

深度学习 Day24——使用Pytorch环境实现mnist手写数字识别

365天深度学习训练营 [第十四周]——本期博客我们将首先学习如何使用Anaconda下载Pytorch,然后使用我们的Pytorch环境搭建一个简单的CNN网络实现mnist手写数字的识别。

北天的博客 7111

PyTorch——深度学习多分类问题

pytorch深度学习关于手写数字识别多分类问题代码解析

weixin_42603976的博客 2418

刘二大人《PyTorch深度学习实践》p9多分类问题

是PyTorch中的一个损失函数,常用于多分类问题的训练中。它结合了Softmax激活函数和负对数似然损失(NLLLoss),能够同时计算预测类别的概率分布和真实标签之间的差异。如果模型的输出已经经过log_softmax函数处理,或者你手动对模型输出进行log_softmax处理,可以使用NLLLoss,取决于咱们的具体需求。损失越小表示模型的预测结果与真实标签之间的差异越小,即预测越准确。的向量,使每个元素的取值范围≥0,并且所有元素的和等于1。用于测量模型预测的概率分布与真实标签之间的差异。

xzrrr的博客 1230

Pytorch深度学习实践(8)多分类任务

Pytorch深度学习实践课程(8)多分任务学习笔记与代码实现

Iawfy22的博客 2999

【Pytorch深度学习实践】B站up刘二大人之SoftmaxClassifier-代码理解与实现(8/9)

这是刘二大人系列课程笔记的倒数第二个博客了,介绍的是多分类器的原理和代码实现,下一个笔记就是basicCNN和advancedCNN了; 写在前面: 这节课的内容,主要是两个部分的修改: 一是数据集:直接采用了内置的MNIST的数据集,那dataloader和dataset自然也是内置的,那也就不用自己写dataset再去继承Dataset类; 把train和test写成了函数形式,直接在main函数当中调用即可; 完整代码: #!usr/bin/env python # -*- coding:u

weixin_42306148的博客 3387

PyTorch:训练MNIST数据集

本文主要描述了如何使用现在热度和关注度比较高的Pytorch(深度学习框架)构建一个简单的卷积神经网络,并对MNIST数据集进行了训练和测试。MNIST数据集是一个28*28的手写数字图片集合,使用测试集来验证训练出的模型对手写数字的识别准确率。 加载MNIST数据集 MNIST 包括6万张28x28的训练样本,1万张测试样本,很多教程都会对它”下手”几乎成为一个 “典范”,可以说它就是计算机视觉里面的Hello World。所以我们这里也会使用MNIST来进行实战。 PyTorch中提供了MNI

Vermont_的博客 6544
上一篇: Pytorch深度学习——Kaggle网站中泰坦尼克号作业(B站刘二大人P8作业)
下一篇: Pytorch深度学习—— 卷积神经网络基础篇(B站刘二大人P10学习笔记)
评论 14
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习CV的研一小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值