【TensorFlow】张量生成

在这里插入图片描述
判断张量是几阶的,就看其最左边有几个方括号

张量的数据类型

在这里插入图片描述

创建一个张量

常规

tf.constant(张量内容,dtype=数据类型(可选))
import tensorflowas tfa=tf.constant([1,5],dtype=tf.int64)
print(a)
print(a.dtype)
print(a.shape)

如果去掉dtype项,不同电脑环境不同导致默认值不同,可能导致后续程序bug

将numpy类型转换为Tensor

tf. convert_to_tensor(数据名,dtype=数据类型(可选))
import tensorflowas tf
import numpyas np
a = np.arange(0, 5)
b = tf.convert_to_tensor( a, dtype=tf.int64 )
print(a)
print(b)

创建特殊Tensor

创建全为0的张量

tf. zeros(维度)

创建全为1的张量

tf. ones(维度)

创建全为指定值的张量

tf. fill(维度,指定值)

维度:
一维直接写个数
二维用[行,列]
多维用[n,m,j,k……]

例子:

a = tf.zeros([2, 3])
b = tf.ones(4)
c = tf.fill([2, 2], 9)
print(a)
print(b)
print(c)

运行结果:

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

随机生成

生成正态分布的随机数,默认均值为0,标准差为1

tf. random.normal(维度,mean=均值,stddev=标准差)

生成截断式正态分布的随机数

扫描二维码关注公众号,回复: 12420073 查看本文章
tf. random.truncated_normal (维度,mean=均值,stddev=标准差)

在tf.truncated_normal中如果随机生成数据的取值在(μ-2σ,μ+2σ)之外则重新进行生成,保证了生成值在均值附近。

生成均匀分布随机数[ minval, maxval)

tf. random. uniform(维度,minval=最小值,maxval=最大值)

例子:

d = tf.random.normal([2, 2], mean=0.5, stddev=1)
print(d)
e = tf.random.truncated_normal([2, 2], mean=0.5, stddev=1)
print(e)

运行结果:

tf.Tensor(
[[0.7925745 0.643315 ]
[1.4752257 0.2533372]], shape=(2, 2), dtype=float32)
tf.Tensor(
[[ 1.3688478 1.0125661 ]
[ 0.17475659 -0.02224463]], shape=(2, 2), dtype=float32)
21

猜你喜欢

转载自blog.csdn.net/qq_45654306/article/details/112651985