首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PyTorch 60分钟入门系列之训练分类器

训练分类器

前面的教程中我们已经学习了如何定义神经网络,计算损失并更新网络的权重。接下来,我们完整的训练一个神经网络模型,并测试其性能。

数据集说明

一般来说,当在处理图像,文本,音频或视频数据时,可以使用标准的包将数据加载到一个数组中。然后将这个数组转换成。

图像的话,可以用, 。

声音处理可以用和。

文本的处理使用原生或者以及和都可以。

特别是对于图像,创建了一个名为的软件包,该软件包具有常用数据集(如,,等)的数据加载器,以及用于图像的数据转换器。这提供了巨大的便利并避免了编写样板代码。

本教程使用CIFAR10数据集。 我们要进行的分类的类别有:'airplane', 'automobile', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck'。 这个数据集中的图像都是3通道,32x32像素的图片。

训练一个图像分类器

我们要按顺序做这几个步骤:

使用torchvision来读取并预处理CIFAR10数据集

定义一个卷积神经网络

定义一个代价函数

在神经网络中训练训练集数据

使用测试集数据测试神经网络

1.加载和归一化CIFAR10

加载的数据集的输出是范围[0,1]的图像。我们将它们转换为归一化范围[-1,1]的张量。

我们来从中找几张图片看看。

2.定义卷积神经网络结构

3.定义损失函数和优化器

4.训练网络

5.测试网络

我们已经训练了两遍了。 此时需要测试一下到底结果如何。

通过对比神经网络给出的分类和已知的类别结果,可以得出正确与否。如果预测的正确,我们可以将样本加入正确预测的结果的列表中。

好的第一步,让我们展示几张照片来熟悉一下。

现在让我们看看神经网络认为这些例子是什么:

输出是10类对应的数值。一个类对应的数值越高,网络认为这个图像就是越接近这个类。那么,让我们得到最高数值对应的类:

结果看起来挺好。

看看神经网络在整个数据集上的表现结果如何:

从结果上看,神经网络输出的结果比随机要好,随机选择的话从十个中选择一个出来,准确率大概只有10%。

看上去神经网络学到了点东西。

我们看一下那么到底哪些类别表现良好又是哪些类别不太行呢?

参考

Deep Learning with PyTorch: A 60 Minute Blitz(https://pytorch.org/tutorials/beginner/deep_learning_60min_blitz.html)

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180518G0OP9300?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券