Skip to Content
为深度学习编程 PyTorch
book

为深度学习编程 PyTorch

by Ian Pointer
July 2025
Intermediate to advanced
220 pages
3h
Chinese
O'Reilly Media, Inc.
Book available
Content preview from 为深度学习编程 PyTorch

第 2 章 用 PyTorch 进行图像分类 用 PyTorch 进行图像分类

本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com

在你设置好 PyTorch 之后,深度学习教科书通常会在做任何有趣的事情之前向你抛出一堆专业术语。我尽量少用这些术语,而是通过一个例子来说明,尽管这个例子很容易随着你对 PyTorch 的使用越来越熟练而扩展。我们在本书中一直使用这个例子来演示如何调试模型(第 7 章)或将其部署到生产中(第 8 章)。

从现在开始到第 4 章结束,我们要构建的是一个图像分类器。神经网络通常用作图像分类器;给网络一张图片,然后问它一个对我们来说很简单的问题:"这是什么?"

让我们开始构建我们的 PyTorch 应用程序。

我们的分类问题

在这里,我们要构建一个简单的分类器,它可以区分鱼和猫。我们将不断迭代设计和构建模型的方法,使其越来越精确。

2-1和图2-2展示了一条鱼和一只猫。我不确定鱼是否有名字,但猫的名字叫 Helvetica。

首先,让我们来讨论一下分类所面临的传统挑战。

An image of a fish
图 2-1. 一条鱼
An image of a black cat in a box
图 2-2. 方框中的 Helvetica

传统挑战

你会如何编写一个能区分鱼和猫的程序呢?也许你会编写一套规则,描述猫有尾巴或鱼有鳞片,然后将这些规则应用到图像中,以确定你正在看的是什么。但这需要时间、精力和技巧。另外,如果你遇到了像曼克斯猫这样的动物,虽然它很明显是一只猫,但却没有尾巴,那该怎么办呢?

你可以看到,为了描述所有可能发生的情况,这些规则会变得越来越复杂。另外,我得承认,我在图形编程方面非常糟糕,所以一想到要手动编写所有这些规则,我就感到害怕。

我们需要的是一个函数,在输入图像的情况下,返回。我们很难通过详尽罗列所有条件来构建这个函数。但 Deep Learning 本质上是让计算机来完成我们刚才谈到的构建所有这些规则的艰苦工作--只要我们创建一个结构,给网络提供大量数据,并让它有办法找出是否得到了正确的答案。这就是我们要做的。一路上,你将学习到如何使用 PyTorch 的一些关键概念。

但首先是数据

首先,我们需要数据。需要多少数据?这要看情况。要想让任何 Deep Learning 技术发挥作用,你都需要大量数据来训练神经网络,这种想法并不一定正确,你将在第 4 章中看到这一点。不过,现在我们要从头开始训练,这通常确实需要获取大量数据。我们需要大量的鱼和猫的图片。

现在,我们可以花一些时间从谷歌图片搜索之类的地方下载许多图片,但在这种情况下,我们有一个捷径:一个用于训练神经网络的标准图片集,名为 ImageNet。它包含 1400 多万张图像和 20000 个图像类别。它是所有图像分类器自我评判的标准。因此,我从这里获取图像,当然,如果你喜欢,也可以自行下载其他图像。

除了数据,PyTorch 还需要一种方法来确定什么是猫,什么是鱼。这对我们来说很容易,但对计算机来说就有点难了(这也是我们首先要构建程序的原因!)。我们使用标签来连接数据,这种训练方式被称为 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

产品路线图全面升级

产品路线图全面升级

C. Todd Lombardo, Bruce McCarthy, Evan Ryan, Michael Connors
超越Vibe编程

超越Vibe编程

Addy Osmani

Publisher Resources

ISBN: 9798341662902Supplemental Content