张量(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'> (2,)
-
将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)
下面的是笔者的微信公众号,欢迎关注,会持续更新c++、python、tensorflow、机器学习、深度学习等系列文章