张量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 = [[[]]]
tensorflow 数据类型
tf.int32, tf.float32, tf.float64
tf.bool tf.constant([True, False])
tf.string tf.constant("hello world")
创建张量 tf.constant(张量内容, dtype=数据类型(可选))
import tensorflow as tf
a = tf.constant([1,5], dtype=tf.int64)
print(a)
print(a.dtype)
print(a.shape)
1.将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)
2.tf,zeros(维度) 全为0 tf.ones(维度)全为1 tf.fill(维度,指定值---)
a = tf.zero([2, 3])
b = tf.ones(4)
c = tf.fill([2, 2], 9)
print(a)
print(b)
print(c)
3.生成符合正态分布的随机数,默认值为0,标准差为1
tf.random.normal(维度,mean=均值, stddev= 标准差)
4.生成截断式正态分布的随机数,集中一些,保证在范围内
tf.random.truncated_normal(维度,mean=均值, stddev=标准差)
5.生成均匀分布的随机数
tf.random.uniform(维度,minval=最小值, maxval = 最大值)[min, max)
6.强制类型转换
tf.cast(张量名, dtype=数据类型)
7.计算张量维度上的元素的最小值
tf.reduce_min(张量名)
8.计算张量维度上元素的最大值
tf.reduce_max(张量名)
9.axis=0,对纵向操作, axis = 1 横向操作
- tf,Variable()将变量标记为可训练的,被标记的变量会在反向传播中记录梯度信息。
11.四则运算, math等,维度相同
12.特征和标签配对的函数,切分传入张量的第一个维度,生成输入特征/标签对,构建数据集
data = tf.data.Dataset.from_tensor_slices((输入特征,标签))
13.求导函数
with结构记录计算过程,GradientTape求出张量的梯度
14.enumerate,遍历序列,并在元素前配置索引号,内置函数
15.tf.one_hot 独热编码:在分类问题中,常用独热码做标签,标记类别:1表示是,0表示非
tf.one_hot(待转化的数据,depth=几分类)
classes = 3
label = tf.constant([1,0,2])
output = tf.one_hot(labels, depth=classes)
print(output)
16.当神经网络完成前向传播时,计算出概率,当概率符合概率分布时,才能作为概率输出tf.nn.softmax
当n分类的n个输出通过tf.nn.softmax,便符合概率分布,即可输出,其总和满足1
任意的x P(X = x)∈[0,1],
y = tf.constant([1.01, 2.01, -0.66])
y_pro = tf.nn.softmax(y)
print(y_pro)
17.assign_sub,赋值操作,更新参数的值并返回
在调用assign_sub前,先用tf.Variable 定义变量w为可训练(可自更新)
w.assgin_sub(w要自减的内容)
18.tf.argmax 返回0/1方向上最大值的索引号
tf.argmax(张量名,axis=操作轴)