郭震 AI公众号:郭震AI

8 Keras基本概念之张量(Tensor)

发布日期:

最近更新:

分类: Keras

预计阅读: 4 分钟

阅读次数: 0

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

整理说明

这篇内容怎么整理

郭震 · 2026-06-04

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

阅读路线

先按这条路线读

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

图文要点

先看本文图文节点

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

张量 Tensor流程图查看大图
张量 Tensor流程图

张量是 Keras 模型的共同语言。很多报错不是算法问题,而是 shape、dtype 或 axis 没对上。

张量 Tensor实操核对图查看大图
张量 Tensor实操核对图

我会在每个关键步骤打印 shape。看不见张量形状,就很难定位模型为什么跑不通。

在深入了解Keras之前,掌握基本的数学概念尤为重要,其中之一就是“张量”(Tensor)。张量在深度学习中起着核心作用,因为它们是数据在Keras模型中流动的基本单位。本篇文章将详细讨论张量的概念及其在Keras中的应用,此外,我们也会通过一些实例来加深理解。

张量的定义

张量是一个多维数组,它是深度学习中的基本结构。在数学上,张量可以视为:

Keras张量概念判断卡查看大图
Keras张量概念判断卡

理解 Keras 张量时,先看 batch、shape、dtype 和通道位置。张量形状不清,模型层很容易接错。

  • 标量(0维张量): 一个单一的数值,例如 55
  • 向量(1维张量): 一组数值,例如 [1,2,3][1, 2, 3]
  • 矩阵(2维张量): 由数值组成的二维数组,例如:
(123456)\begin{pmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \end{pmatrix}
  • 高维张量: 例如三维张量可以表示为一个数值块,如下展示:
((123456),(789101112))\begin{pmatrix} \begin{pmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \end{pmatrix}, \begin{pmatrix} 7 & 8 & 9 \\ 10 & 11 & 12 \end{pmatrix} \end{pmatrix}

在深度学习中,我们通常处理的是高维张量,特别是在卷积神经网络(CNN)和循环神经网络(RNN)中。

Keras中的张量

在Keras中,所有的数据输入和输出都以张量的形式存在。通过张量,Keras可以高效地执行各种数学运算,包括加法、乘法、卷积等。

Keras阅读地图卡查看大图
Keras阅读地图卡

《Keras基本概念之张量(Tensor)》适合边看图边读正文。先确认问题和判断标准,再看概念解释与练习步骤,信息会更容易连成一条线。

Keras中的张量主要由numpyTensorFlow库支持,Keras的后端可以是TensorFlow、Theano或CNTK,但目前TensorFlow是最常用的后端。

创建张量

我们可以使用numpy库或tensorflow库来创建张量。下面是一些代码实例:

import numpy as np
import tensorflow as tf

# 创建一个 0维张量
scalar = tf.constant(5)
print(scalar)

# 创建一个 1维张量
vector = tf.constant([1, 2, 3])
print(vector)

# 创建一个 2维张量
matrix = tf.constant([[1, 2, 3], [4, 5, 6]])
print(matrix)

# 创建一个 3维张量
tensor_3d = tf.constant([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print(tensor_3d)

张量的运算

张量可以进行不同的数学运算,如加法、乘法、点乘等。这些操作在神经网络的前向传播和反向传播中非常重要。以下是一些基本的张量运算示例:

# 张量相加
a = tf.constant([[1, 2], [3, 4]])
b = tf.constant([[5, 6], [7, 8]])
result_add = tf.add(a, b)
print("Addition Result:\n", result_add)

# 张量相乘
result_mul = tf.matmul(a, b)
print("Multiplication Result:\n", result_mul)

张量与模型输入

在Keras中,模型的输入层通常会定义期望的张量形状。以下是一个使用Keras构建简单神经网络的例子,其中输入数据是由张量组成的。

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense

# 创建模型
model = Sequential()
# 假设输入数据为形状(1000, 20),1000个样本,每个样本20个特征
model.add(Dense(32, activation='relu', input_shape=(20,)))
model.add(Dense(1, activation='sigmoid'))

# 编译模型
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])

# 模拟数据
data = np.random.random((1000, 20))  # 1000个样本,20个特征
labels = np.random.randint(2, size=(1000, 1))  # 二分类标签

# 训练模型
model.fit(data, labels, epochs=10, batch_size=32)

在上述示例中,input_shape=(20,)表示输入数据的张量形状是二十维的。这是Keras识别和处理输入数据的方式。

Keras基本概念之张量(Tensor)应用复盘卡查看大图
Keras基本概念之张量(Tensor)应用复盘卡

读到这里,可以把《Keras基本概念之张量(Tensor)》整理成一张复盘表:先说清主线,再拿一个小任务检查结果。

Keras基本概念之张量(Tensor)应用检查卡查看大图
Keras基本概念之张量(Tensor)应用检查卡

读完《Keras基本概念之张量(Tensor)》后,可以先挑一个小样例走完整流程,再判断哪些步骤已经能独立完成。

总结

在这篇文章中,我们探讨了张量的基本概念以及它们在Keras框架中的重要性。理解张量不仅是使用Keras的基础,也是深入深度学习理论的重要一步。下一篇文章中,我们将进一步讨论Keras模型的类型及其选择,相信这会帮助你更好地构建和优化你的深度学习模型。

继续阅读

从这篇继续找到相关教程

AI 教程总索引

常见问题

读前先确认这三点

Keras基本概念之张量(Tensor)适合谁读?

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

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

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

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

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

分享文章

转发到常用平台

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

相关教程

AI 教程总索引

继续阅读

继续找到相关 AI 教程

返回栏目

Reader Messages

读者留言

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

最多 800 字

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

0/800

留言列表

0
正在加载留言...