郭震 AI公众号:郭震AI

5 Pytorch小白从零学教程:只生成张量基础之张量的定义与构造

发布日期:

最近更新:

分类: Pytorch小白

预计阅读: 3 分钟

阅读次数: 0

预计阅读3 分钟
结构重点8 个
图文要点6 张
正文规模1.4k 字

整理说明

这篇内容怎么整理

郭震 · 2026-06-04

独立整理围绕 8 个结构重点拆成环境、步骤、验证点和常见误区,尽量让读者能照着复现。
图文对照保留 6 张和配置、流程、判断结果有关的图片,方便快速定位正文重点。
持续校对工具、模型和命令变化较快,后续优先修正入口、参数和风险提醒。

阅读路线

先按这条路线读

先抓住主线,再回到代码、配置和图文细节,读起来会更稳。

图文要点

先看本文图文节点

按图先建立主线,再跳回正文核对步骤、配置和判断标准。

张量定义与构造流程图查看大图
张量定义与构造流程图

张量是 PyTorch 的基本数据结构。学习张量时不要只看值,更要看 shape、dtype、device 和 requires_grad。

官方教程:PyTorch Tensors

张量定义与构造核对图查看大图
张量定义与构造核对图

每创建一个张量,我都会打印 shapedtypedevice。训练问题很多时候第一眼就能从这三项看出来。

在上一篇文章中,我们讨论了如何配置环境以便顺利使用 PyTorch 进行深度学习的开发。现在,我们要深入了解 PyTorch 中的核心概念之一:张量(Tensor)。这一篇将集中讲解张量的定义和构造。

什么是张量

在计算机科学和深度学习中,张量是用于存储数据的基本数据结构。可以把它视为一个多维的数组。不同于常规的 Python 数据结构,张量能有效地进行计算,尤其在 GPU(图形处理单元)上。

PyTorch张量定义构造判断卡查看大图
PyTorch张量定义构造判断卡

学习张量定义与构造时,先确认 shape、dtype、device 和数据来源。很多 PyTorch 报错,本质都是张量属性没有对齐。

张量的维度

  • 标量(0维张量): 单个值,例如 x=3x = 3
  • 向量(1维张量): 一维数组,例如 x=[1,2,3]x = [1, 2, 3]
  • 矩阵(2维张量): 二维数组,例如 x=[[1,2],[3,4]]x = [[1, 2], [3, 4]]
  • 高维张量: 维度高于2的数组,例如一个3D数组可以表示为 x=[[[1,2],[3,4]],[[5,6],[7,8]]]x = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]

张量的构造

在 PyTorch 中,构造张量的方法非常灵活,下面将介绍几种常见的构造方式。

PyTorch实践复盘卡查看大图
PyTorch实践复盘卡

看完《Pytorch小白从零学教程:只生成张量基础之张量的定义与构造》后,建议用一分钟复盘:关键概念是否分清、练习步骤是否可复现、结论能不能换成自己的话。

1. 从列表或数组构造张量

最直接的方式是使用 torch.tensor 函数来从已有的 Python 列表或 NumPy 数组中构造张量。

import torch

# 从列表构造张量
list_tensor = torch.tensor([1, 2, 3, 4])
print(list_tensor)  # 输出: tensor([1, 2, 3, 4])

# 从多维列表构造张量
matrix_tensor = torch.tensor([[1, 2], [3, 4]])
print(matrix_tensor)  # 输出: tensor([[1, 2], [3, 4]])

2. 使用 PyTorch 提供的构造函数

PyTorch 提供了一些特定用途的张量构造函数,例如:

  • torch.zeros:构建全为零的张量
  • torch.ones:构建全为一的张量
  • torch.empty:构建未初始化的张量
  • torch.arange:构建一个指定范围的均匀间隔的一维张量
  • torch.linspace:构建一个指定起始点和结束点的均匀分布的一维张量
# 构建全为零的二维张量
zero_tensor = torch.zeros((2, 3))
print(zero_tensor)

# 构建全为一的张量
ones_tensor = torch.ones((3, 2))
print(ones_tensor)

# 构建一个从0到4的张量,步长为1
arange_tensor = torch.arange(0, 5)
print(arange_tensor)  # 输出: tensor([0, 1, 2, 3, 4])

# 构建一个从0到1的五个均匀分布的点
linspace_tensor = torch.linspace(0, 1, steps=5)
print(linspace_tensor)  # 输出: tensor([0.0000, 0.2500, 0.5000, 0.7500, 1.0000])

3. 指定数据类型和设备

创建张量的时候,可以指定数据类型和设备(CPU或GPU)。例如:

# 创建一个浮点类型的张量
float_tensor = torch.tensor([1, 2, 3], dtype=torch.float32)
print(float_tensor)

# 将张量移动到GPU
if torch.cuda.is_available():
    gpu_tensor = float_tensor.to('cuda')
    print(gpu_tensor)

4. 随机生成张量

在深度学习中,常常需要随机初始化张量。PyTorch 也提供了方便的方法。

# 创建一个随机张量
random_tensor = torch.rand((2, 3))
print(random_tensor)  # 输出一个2x3的随机张量

# 创建一个符合正态分布的张量
normal_tensor = torch.randn((2, 3))
print(normal_tensor)  # 输出一个2x3的标准正态分布张量
Pytorch小白从零学教程:只生成张量基础之张量的定义与构造应用复盘卡查看大图
Pytorch小白从零学教程:只生成张量基础之张量的定义与构造应用复盘卡

复习《Pytorch小白从零学教程:只生成张量基础之张量的定义与构造》时,建议把关键概念、操作步骤和可见结果放在同一页里回看。

Pytorch小白从零学教程:只生成张量基础之张量的定义与构造应用检查卡查看大图
Pytorch小白从零学教程:只生成张量基础之张量的定义与构造应用检查卡

练习《Pytorch小白从零学教程:只生成张量基础之张量的定义与构造》时,建议把输入条件、处理动作和可见结果写在一起,方便下次复查。

小结

在这一部分的教程中,我们介绍了 PyTorch 中张量的定义及如何构造张量。掌握张量的构造是学习深度学习的基础,因为几乎所有的计算都需要使用张量。了解不同的构造方法,让你在未来的工作中能灵活处理数据。

下一篇文章中,我们将探讨张量的基本操作,包括如何对张量进行变换和计算,为后续在 PyTorch 中进行更复杂的操作做好准备。

希望你们能在学习的过程中,积极动手实践,巩固所学的知识!

继续阅读

从这篇继续找到相关教程

AI 教程总索引

常见问题

读前先确认这三点

Pytorch小白从零学教程:只生成张量基础之张量的定义与构造适合谁读?

这是 PyTorch 入门 系列第 5 / 20 篇,适合正在学习PyTorch 入门,并且需要把概念落到操作步骤或判断标准里的读者。

读这篇PyTorch 入门教程要多久?

按中文技术文章阅读速度估算,通读大约 3 分钟;如果要跟着复现,建议把命令、配置和结果检查分开做。

这篇文章里的图文节点怎么用?

正文里有 6 个图文节点,可以先用它们抓住流程、配置和判断点,再回到对应段落细读。

分享文章

转发到常用平台

微信/朋友圈可先复制链接

相关教程

AI 教程总索引

继续阅读

继续找到相关 AI 教程

返回栏目

Reader Messages

读者留言

有问题、补充资料或实测结果,可以直接留下。这里不需要登录。

最多 800 字

为了防刷,每条留言会做长度、链接数量和提交频率限制。

0/800

留言列表

0
正在加载留言...