问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

深度学习基本概念:张量(Tensor)详解

创作时间:
作者:
@小白创作中心

深度学习基本概念:张量(Tensor)详解

引用
1
来源
1.
https://cloud.tencent.com/developer/article/1842839

张量(Tensor)是深度学习中的核心概念之一,用于存储和处理高阶数组数据。从标量到矩阵,再到更高维度的数组,都可以用张量来表示。本文将详细介绍张量的基本概念、可视化方式以及其在TensorFlow中的具体应用。

张量的定义与可视化

深度学习常用于处理图像、文本、语音等数据。在计算机中,需要将这些数据用合适的数据结构来存储。以图像为例,每一幅图像可以看作由像素点构成的二维数组,而每个像素点又可以表示成RGB对应的3元组,经过这样的嵌套之后,每一幅图像实际上变成了一个高阶数组。

在深度学习中,采用张量来存储高阶数组对应的数据。张量,中文叫做张量,谷歌的开源机器学习框架TensorFlow也是建立在张量的基础上。张量用来存储高阶数组,但本质上标量、向量、矩阵都可以看作是张量的特殊形式。

在TensorFlow中,定义张量的方式如下:

import tensorflow as tf

rank_0_tensor = tf.constant(4)
rank_1_tensor = tf.constant([2.0, 3.0, 4.0])
rank_2_tensor = tf.constant([[1, 2],[3, 4],[5, 6]], dtype=tf.float16)
rank_3_tensor = tf.constant([[[0, 1, 2, 3, 4],[5, 6, 7, 8, 9]],[[10, 11, 12, 13, 14],[15, 16, 17, 18, 19]],[[20, 21, 22, 23, 24],[25, 26, 27, 28, 29]],])

对于张量,可以有多种可视化方式来帮助我们理解其结构,以3阶张量为例:

rank_3_tensor = tf.constant([[[0,1,2,3,4], [5,6,7,8,9]],[[10,11,12,13,14], [15,16,17,18,19]], [[20,21,22,23,24], [25,26,27,28,29]]])
print(rank_3_tensor)

输出结果为:

<tf.Tensor: shape=(3, 2, 5), dtype=int32, numpy=
array([[[ 0,  1,  2,  3,  4],
        [ 5,  6,  7,  8,  9]],
       [[10, 11, 12, 13, 14],
        [15, 16, 17, 18, 19]],
       [[20, 21, 22, 23, 24],
        [25, 26, 27, 28, 29]]])>

张量的基本属性

张量有以下几个基本属性:

  1. shape:形状,统计各个维度的元素数量

  1. rank:秩,维度的总数
  2. axis:轴,具体的某一个维度

在TensorFlow中,可以通过以下方式获取张量的属性:

rank_4_tensor = tf.zeros([3, 2, 4, 5])
print(rank_4_tensor.shape)  # 输出:TensorShape([3, 2, 4, 5])
print(rank_4_tensor.ndim)   # 输出:4
print(rank_4_tensor.shape[0])  # 输出:3
print(rank_4_tensor.shape[1])  # 输出:2
print(rank_4_tensor.shape[2])  # 输出:4
print(rank_4_tensor.shape[3])  # 输出:5

总结

TensorFlow通过张量这一数据结构来存储待处理的数据,并在此基础上定义了一系列的张量操作,来高效地处理深度学习运算。掌握张量的基本概念和操作方法,是学习深度学习的重要一步。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号