TensorFlow:张量的相关属性和创建方式

一、创建张量

1. 从Numpy,List 对象创建

Numpy Array 数组和Python List 是Python 程序中间非常重要的数据载体容器,很多数
据都是通过Python 语言将数据加载至Array 或者List 容器,再转换到Tensor 类型,通过
TensorFlow 运算处理后导出到Array 或者List 容器,方便其他模块调用。

通过 tf.convert_to_tensor 可以创建新Tensor,并将保存在Python List 对象或者Numpy Array 对象中的数据导入到新Tensor 中:
在这里插入图片描述
在这里插入图片描述
需要注意的是,Numpy 中浮点数数组默认使用64-Bit 精度保存数据,转换到Tensor 类型时精度为tf.float64,可以在需要的时候转换为tf.float32 类型。

实际上,tf.constant()tf.convert_to_tensor()都能够自动的把Numpy 数组或者Python List 数据类型转化为Tensor 类型,这两个API 命名来自TensorFlow 1.x 的命名习惯,在 TensorFlow 2 中函数的名字并不是很贴切,使用其一即可

2. 创建全0,全1张量

通过tf.zeros()tf.ones()即可创建任意形状全0 或全1 的张量。例如,创建为0 和为1 的标量张量:
在这里插入图片描述
创建全0和全1的向量
在这里插入图片描述
创建全0的矩阵:
在这里插入图片描述
通过tf.zeros_like, tf.ones_like 可以方便地新建与某个张量shape 一致,内容全0 或全1的张量。例如,创建与张量a 形状一样的全0 张量:

在这里插入图片描述

二、创建自定义数值张量

除了初始化为全0,或全1 的张量之外,有时也需要全部初始化为某个自定义数值的
张量,比如将张量的数值全部初始化为-1 等。

通过 tf.fill(shape, value)可以创建全为自定义数值value 的张量。
例如,创建元素为-1的标量:
在这里插入图片描述

三、创建已知分布的张量

1. 创建正态分布

通过 tf.random.normal(shape, mean=0.0, stddev=1.0)可以创建形状为shape,均值为mean,标准差为stddev 的正态分布𝒩(𝑚𝑒𝑎𝑛, 𝑠𝑡𝑑𝑑𝑒𝑣2)。

例如,创建均值为0,标准差为1的正太分布:
在这里插入图片描述
创建均值为1,标准差为2 的正太分布:
在这里插入图片描述

2. 创建均匀分布

通过tf.random.uniform(shape, minval=0, maxval=None, dtype=tf.float32)可以创建采样自
[𝑚𝑖𝑛𝑣𝑎𝑙, 𝑚𝑎𝑥𝑣𝑎𝑙]区间的均匀分布的张量。

例如创建采样自区间[0,1],shape 为[2,2]的矩阵:
在这里插入图片描述
创建采样自区间[0,10],shape 为 [2,2]的矩阵:
在这里插入图片描述
如果需要均匀采样整形类型的数据,必须指定采样区间的最大值maxval 参数,同时制定数据类型为tf.int*型:
在这里插入图片描述

四、创建序列

在循环计算或者对张量进行索引时,经常需要创建一段连续的整形序列,可以通过
tf.range()函数实现。
tf.range(limit, delta=1)可以创建[0, 𝑙𝑖𝑚𝑖𝑡)之间,步长为delta 的整形序列,不包含limit 本身。

例如,创建0~9,步长为1 的整形序列:
在这里插入图片描述
创建0~9,步长为2 的整形序列:
在这里插入图片描述
通过tf.range(start, limit, delta=1)可以创建[𝑠𝑡𝑎𝑟𝑡, 𝑙𝑖𝑚𝑖𝑡),步长为delta 的序列,不包含limit本身:
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南淮北安

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值