前言:Tensorflow2.0是2019年10月份正式发布的,本人在2019年寒假开始接触Tensorflow2.0,直至近日,对它的学习断断续续,对它的使用还不是特别熟练。为此在学生生涯的最后一个多月,将对Tensorflow2.0进行重新回顾,尤其是其中的基础知识,需要仔细揣摩与理解,最后背诵!
- 张量(Tensor)
Tensor表示的是多维数组,是多维列表,用阶表示张量的维数。
维数 | 阶 | 名字 | 例子 |
---|---|---|---|
0-D | 0 | 标量 scalar | s=1 2 3 |
1-D | 1 | 向量 vector | v=[1,2,3] |
2-D | 2 | 矩阵 matrix | m=[[1,2,3],[4,5,6]] |
n-D | n | 张量 tensor | t = [[[[…n个 |
(1)
判断张量是几阶的,就看最左边位置的方括号有几个。
数据类型包括int、float、bool、string等等
通过tf.constant(张量内容、dtype=数据类型(可选))创建一个张量:
import tensorflow as tf
a = tf.constant([1,5],dtype = tf.int64)
print(a) // tf.Tensor([1,5], shape = (2,), dtype = int64)
print(a.dtype) //dtype: 'int64'
print(a.shape) // a的形状:(2,)
//张量的形状看shape隔开了几个数字,就可以判断该张量是几维的,上述是一维张量,里面有两个元素,代表1和5
(2)
将numpy的数据类型转换为Tensor数据类型:
import tensorflow as tf
import numpy as np
a = np.arange(0.5)
b = tf.convert_to_tensor(a,dtype=tf.int64)
print(a) // [0 1 2 3 4]
print(b) // tf.Tensor([0 1 2 3 4], shape = (5,), dtype = int64)
(3) 快速创建张量
tf.zeros([1,3]) // 创建全为0的二维张量 函数类型为float
tf.ones([1,3]) // 创建全为1的二维张量 函数类型为float
tf.fill([1,3], 9) // 创建全为9的二维张量 函数类型为int
一个数字代表一维;二维: [行,列]; 多维:[n,m,j,k…]
√ tf.random.normal(维度,mean=均值,stddev=标准差)生成正态分布的随机数,默认值为0,标准差为1。
√ tf.random.truncated_normal(维度,mean=均值,stddev=标准差)生成截断式正态分布的随机值。
注意:可以推荐使用tf.random.truncated_normal,因为它可以额保证随机生成的数据在(均值-2标准差,均值+2标准差)之间;随机数会更集中一点。
√ 生成均匀分布随机数 ,注意范围区间 [minval, maxval)
tf.random.uniform(维度, minval = 最小值, maxval = 最大值)