第12章 推论 推理的概念
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
在本书的前几章中,你主要学习了使用 PyTorch训练模型,以及如何创建管理图像(又称计算机视觉)、文本内容(又称 NLP)和序列建模的模型。在本书接下来的内容中,你将学习大量有关使用训练有素的模型从新数据中进行预测(又称推理)的内容,尤其是使用大型生成模型进行文本到文本和文本到图像的生成式人工智能。
但在开始学习之前,了解底层数据传输技术非常重要。我们在训练章节中略有涉及,但随着你深入学习 ML--无论是训练还是推理--能够理解张量的底层概念对你来说非常重要。
归根结底,无论你有什么数据类型,你都要将其转换为张量,并将其传递到模型中。同样,无论您想以哪种数据类型从模型中向用户展示答案,您都会以张量的形式将它们返回给用户!
在很多情况下,你都会用到辅助函数,例如第 15 章中的变换器(涉及 LLMs)和第 19 章中的扩散器(处理图像生成)。虽然你不会用它们接触张量,但仍会在引擎盖下使用它们。
张量
张量是一个数组 ,可以有任意维数。张量通常用于表示 Deep Learning 算法中的数值数据;它们是可以容纳多维数字的容器。
张量可以是简单的标量值(零维)、向量(一维)、矩阵(二维),甚至更多(三维或更多维)。在 PyTorch 中,它们是所有计算的基本数据结构。
张量也是谷歌另一个深度学习框架TensorFlow 名称的来源。
下面是 PyTorch 中使用torch.tensor 创建的一些张量示例:
importtorch# Scalar (0D tensor)scalar=torch.tensor(42)# Single number# Vector (1D tensor)vector=torch.tensor([1,2,3,4])# Array of numbers# Matrix (2D tensor)matrix=torch.tensor([[1,2,3],[4,5,6]])# 2x3 grid of numbers# 3D tensorcube=torch.tensor([[[1,2],[3,4]],[[5,6],[7,8]]])# 2x2x2 cube of numbers
张量之所以对 的 ML 如此有用,是因为它可以灵活地保存不同的值类型。数字可以是 0D 的张量,代表文本的嵌入向量可以是 1D 的,而图像可以是 3D 的,有高度、宽度和像素值等维度。此外,所有这些都可以为批次添加额外的维度。因此,举例来说,一张图片可以是一个 3D 矩阵,但 100 张图片而不是 100 个 3D 矩阵可以是一个 4D 张量,其中第四维是图片的索引!
当你使用torch.tensor 时,请记住 ,为了优化它们在 GPU 上的运行,已经投入了大量的工作和投资,这使得它们在深度学习计算方面非常高效。
图像数据
图像通常以 JPEG 或 PNG 等格式存储 ,这些格式经过优化,既适合人类查看,又能提高存储效率。图像中的每个点(或像素)通常由若干个值组成,每个值是一个颜色通道的强度。通常情况下,一幅图像有 24 位数据,红色、绿色和蓝色通道各占 8 位。如果你看到的是 32 位,那么额外的 8 位就是阿尔法或透明度通道。
因此,举例来说,一个绿色像素的红色、蓝色和 alpha 通道的值可能是 0,绿色通道的值可能是 255。如果它是半透明的,它的红色和蓝色通道值可能仍为 ...
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.
Read now
Unlock full access