张量(Tensor):多维数组(列表) 阶:张量的维数
张量可以表示0阶到n阶数组(列表)
基本的数据类型
tf.int,tf.float
tf.bool
tf.string
生成一个张量
- 如何创建一个张量
用法:tf.constant(张量内容,dtype=数据类型(可选))
例子:
import tensorflow as tf
#创建一个张量
a = tf.constant([1,5],dtype = tf.int64)
print(a)
print(a.dtype)
print(a.shape)
输出结果:
tf.Tensor([1 5], shape=(2,), dtype=int64) #有几个逗号说明是几维张量 这个是一个一维张量,里面有两个值1和5
<dtype: 'int64'>
- 将numpy的数据类型转换为Tensor数据类型
用法:tf.convert_to_tensor(数据名,dtype=数据类型(可选))
例子:
import tensorflow as tf
import numpy as np
a = np.arange(0,5)
b = tf.convert_to_tensor(a,dtype=tf.int64)
print(a)
print(b)
输出结果:
[0 1 2 3 4]
tf.Tensor([0 1 2 3 4], shape=(5,), dtype=int64)
- 创建特殊的张量
a. 创建全为0的张量:tf.zeros(维度)
b. 创建全为1的张量:tf.ones(维度)
c. 创建全为指定值的张量:tf.fill(维度,指定值)
维度:一维:直接写个数
二维:用[行,列]
多维:用[n,m,j.k……]
例子:
import tensorflow as tf
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)
- 生成随机数
a. 生成正态分布的随机数,默认均值为0,标准差为1。 用法:tf.random.normal(维度,mean=均值,stddev = 标准差)
b. 生成截断式正态分布的随机数。 用法: tf.random.truncated_normal(维度,mean=均值,stddev = 标准差)
c. 生成均匀分布随机数。 用法: tf.random.uniform(维度,minval = 最小值,maxval = 最大值)
例子:
import tensorflow as tf
d = tf.random.normal([2,2],mean = 0.5, stddev = 1)
e = tf.random.truncated_normal([2,2],mean = 0.5, stddev = 1)
f = tf.random.uniform([2,2],minval = 0.5, maxval = 1)
print(d)
print(e)
print(f)
输出结果:
tf.Tensor([[-1.3744324 0.2684363 ][-0.14133292 1.949162 ]], shape=(2, 2), dtype=float32)
tf.Tensor([[1.1253768 0.18428034][1.5979812 0.20128158]], shape=(2, 2), dtype=float32)
tf.Tensor([[0.5172171 0.7131886 ][0.6884367 0.50856155]], shape=(2, 2), dtype=float32)