10 TensorFlow的核心数据结构:张量的创建与操作
系列进度
TensorFlow 入门 · 第 10 / 25 篇
整理说明
这篇内容怎么整理
郭震 · 2026-06-04
阅读路线
先按这条路线读
先抓住主线,再回到代码、配置和图文细节,读起来会更稳。
TensorFlow 学习要把张量、模型、训练和部署放在一条线上,而不是只看单段代码。阅读时可以按「张量的创建与操作 -> 什么是张量? -> 创建张量 -> 张量的操作」建立结构,再回到正文里的代码、案例或指标做验证。
读完后,用一个真实小任务复查:输入是什么,处理环节在哪里,输出是否可验收;失败时先查「张量的创建与操作」,再查「什么是张量?」。
在我们了解了第三章的会话使用之后,接下来我们将深入探讨TensorFlow的核心数据结构,也就是张量(Tensor)。张量是TensorFlow的基础,所有的计算都围绕着张量进行。在这一章节,我们将学习如何创建和操作张量,从而为后续的深度学习模型奠定基础。
4.1 张量的创建与操作
什么是张量?
使用 TensorFlow 张量时,先看创建方式、形状变化、数据类型、广播规则和设备位置。
张量是多维数组的一个通用概念。它可以是一维的、二维的、三维的,甚至更高维的数组,张量的维度称为其“阶”(rank)。在NumPy中,我们使用ndarray来表示数组,而在TensorFlow中,我们使用张量来表示数据。
- 标量(0D张量):一个单一数值,例如:
3。 - 向量(1D张量):一个数值的序列,例如:
[1, 2, 3]。 - 矩阵(2D张量):一个数值的二维数组,例如:
[[1, 2], [3, 4]]。 - 高维张量(3D张量及以上):例如一个立方体结构,包含多个矩阵。
创建张量
在TensorFlow中,我们可以使用多种方法创建不同类型的张量。以下是几个常用的方法:
-
用常量创建张量: 使用
tf.constant函数来创建固定的张量。import tensorflow as tf # 创建一个标量张量 scalar_tensor = tf.constant(3) print(scalar_tensor) # 输出:tf.Tensor(3, shape=(), dtype=int32) # 创建一个一维张量 vector_tensor = tf.constant([1, 2, 3]) print(vector_tensor) # 输出:tf.Tensor([1 2 3], shape=(3,), dtype=int32) # 创建一个二维张量 matrix_tensor = tf.constant([[1, 2], [3, 4]]) print(matrix_tensor) # 输出:tf.Tensor([[1 2] [3 4]], shape=(2, 2), dtype=int32) -
使用随机函数创建张量: 可以使用
tf.random函数生成随机值的张量。# 创建一个二维的随机张量 random_tensor = tf.random.uniform(shape=(2, 3), minval=0, maxval=10) print(random_tensor) -
使用零和单位矩阵: TensorFlow还提供了
tf.zeros和tf.ones来创建全零或全一的张量。# 创建全零张量 zeros_tensor = tf.zeros(shape=(2, 2)) print(zeros_tensor) # 输出:tf.Tensor([[0. 0.] [0. 0.]], shape=(2, 2), dtype=float32) # 创建全一张量 ones_tensor = tf.ones(shape=(2, 3)) print(ones_tensor) # 输出:tf.Tensor([[1. 1. 1.] [1. 1. 1.]], shape=(2, 3), dtype=float32)
张量的操作
接下来,我们查看如何对这些张量进行基本的操作。
-
基本数学运算: 张量支持基本的数学运算,例如加法、减法、乘法和除法等。
a = tf.constant([1, 2, 3]) b = tf.constant([4, 5, 6]) # 向量加法 c = a + b print(c) # 输出:tf.Tensor([5 7 9], shape=(3,), dtype=int32) # 逐元素乘法 d = a * b print(d) # 输出:tf.Tensor([ 4 10 18], shape=(3,), dtype=int32) -
矩阵运算: 对于二维张量,可以执行如矩阵乘法这样的运算。
matrix_a = tf.constant([[1, 2], [3, 4]]) matrix_b = tf.constant([[5, 6], [7, 8]]) # 矩阵乘法 matrix_c = tf.matmul(matrix_a, matrix_b) print(matrix_c) # 输出:tf.Tensor([[19 22] [43 50]], shape=(2, 2), dtype=int32) -
张量的转置与重塑: 使用
tf.transpose和tf.reshape可以改变张量的形状。# 转置 transposed = tf.transpose(matrix_a) print(transposed) # 输出:tf.Tensor([[1 3] [2 4]], shape=(2, 2), dtype=int32) # 重塑 reshaped = tf.reshape(matrix_a, (4,)) print(reshaped) # 输出:tf.Tensor([1 2 3 4], shape=(4,), dtype=int32)
学完《TensorFlow的核心数据结构:张量的创建与操作》后,不妨换一个自己的场景试一次,重点观察输入、处理和输出是否能对应起来。
如果想把《TensorFlow的核心数据结构:张量的创建与操作》用到自己的任务里,可以先缩小场景,只验证一个最关键的判断点。
小结
在本节中,我们学习了张量的基本概念、如何创建张量以及如何进行基本的操作。这些是使用TensorFlow进行深度学习和机器学习的基石。掌握张量的创建和操作,将为你后续的学习打下坚实的基础。
读《TensorFlow的核心数据结构:张量的创建与操作》时,可以先看配图里的任务、概念、练习和判断点,再回到正文补细节。这样更容易判断这篇内容能放到哪个真实场景里。
在下一章,我们将探讨Numpy与TensorFlow的关系,这将帮助我们理解如何将NumPy数据与TensorFlow无缝结合。同时,请记住,TensorFlow与NumPy在许多方面是相似的,但也有重要的区别,这将对我们的学习有很大帮助。
继续阅读
从这篇继续找到相关教程
常见问题
读前先确认这三点
TensorFlow的核心数据结构:张量的创建与操作适合谁读?
这是 TensorFlow 入门 系列第 10 / 25 篇,适合正在学习TensorFlow 入门,并且需要把概念落到操作步骤或判断标准里的读者。
读这篇TensorFlow 入门教程要多久?
按中文技术文章阅读速度估算,通读大约 3 分钟;如果要跟着复现,建议把命令、配置和结果检查分开做。
这篇文章里的图文节点怎么用?
正文里有 6 个图文节点,可以先用它们抓住流程、配置和判断点,再回到对应段落细读。
分享文章
转发到常用平台
微信/朋友圈可先复制链接
相关教程
从相近问题继续读
继续阅读