5个简单步骤掌握TensorFlow中的Tensor

本文深入探讨TensorFlow中的Tensor,通过五个步骤介绍张量的定义、创建、特征、运算和特殊类型。内容包括张量的不可变性、维度、形状、大小、数据类型,以及索引、基本运算、重塑、广播等操作,同时讲解了不规则张量、字符串张量和稀疏张量等特殊类型。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


在这篇文章中,我们将深入研究Tensorflow Tensor的实现细节。我们将在以下五个简单步骤中介绍与Tensorflow的Tensor中相关的所有主题:

  • 第一步:张量的定义→什么是张量?

  • 第二步:创建张量→创建张量对象的函数

  • 第三步:张量对象的特征

  • 第四步:张量操作→索引、基本张量操作、形状操作、广播

  • 第五步:特殊张量

张量的定义:什么是张量

张量是TensorFlow的均匀型多维数组,它非常类似于NumPy数组,并且是不可变的,这意味着一旦创建它们就不能被更改。

首先,要使用TensorFlow对象,我们需要导入TensorFlow库,因为我们经常将NumPy与TensorFlow一起使用,因此我们也可以导入NumPy:

import tensorflow as tf
import numpy as np

张量的创建:创建张量对象

有多种方法可以创建tf.Tensor对象,同时也可以使用多个TensorFlow函数来创建张量对象,如下例所示:

# 你可以用`tf.constant`函数创建tf.Tensor对象:
x = tf.constant([[1, 2, 3, 4 ,5]])
# 你可以用`tf.ones`函数创建tf.Tensor对象:
y = tf.ones((1,5))
# 你可以用`tf.zeros`函数创建tf.Tensor对象:
z = tf.zeros((1,5))
# 你可以用`tf.range`函数创建tf.Tensor对象:
q = tf.range(start=1, limit=6, delta=1)

print(x)
print(y)
print(z)
print(q)

输出:

tf.Tensor([[1 2 3 4 5]], shape=(1, 5), dtype=int32)
tf.Tensor([[1. 1. 1. 1. 1.]], shape=(1, 5), dtype=float32) 
tf.Tensor([[0. 0. 0. 0. 0.]], shape=(1, 5), dtype=float32) 
tf.Tensor([1 2 3 4 5], shape=(5,), dtype=int32)

如你所见,我们使用三个不同的函数创建了形状(1,5)的张量对象,使用tf.range()函数创建了形状(5,)的第四个张量对象。注意,tf.ones的和tf.zeros接受形状作为必需的参数,因为它们的元素值是预先确定的。

张量对象的特征

tf.Tensor创建对象有几个特征。首先,他们有维度数量;其次,它们有一个形状,一个由维度的长度组成的列表;所有张量都有一个大小,即张量中元素的总数;最后,它们的元素都被记录在一个统一的数据类型(datatype)中。让我们仔细看看这些特征。

维度

张量根据其维数进行分类:

  • Rank-0(标量)张量:包含单个值且没有轴的张量(0维);

  • Rank-1张量:包含单轴(一维)值列表的张量;

  • Rank-2张量:包含2个轴(2维)的张量;以及

  • Rank-N张量:包含N轴的张量(三维)。

例如,我们可以通过向tf.constant传递一个三层嵌套的list对象来创建一个Rank-3张量。我们可以将数字分割成一个3层嵌套的列表,每个层有3个元素:

three_level_nested_list = [[[0, 1, 2], 
                             [3, 4, 5]], 
                           [[6, 7, 8], 
                      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值