TensorFlow常用函数汇总备忘
示例中包含生成张量的函数,不清楚怎么用的,可以复习一下张量生成的方法。
1、强制转换张量数据类型
函数使用:tf.constant(张量,dtype=数据类型)
示例:
import tensorflow as tf
a=tf.constant([1.,2.,3.],dtype=tf.float64)
print(a)
#强制转换张量数据类型
b=tf.cast(a,dtype=tf.int32)
print(b)
运行结果:
2、计算张量最大值、最小值
函数使用,计算最大值:tf.reduce_max(张量)
函数使用,计算最小值:tf.reduce_min(张量)
示例:
import tensorflow as tf
a=tf.constant([1.,2.,3.],dtype=tf.float64)
print(a)
#计算张量维度上元素的最大值
print(tf.reduce_max(a))
#计算张量维度上元素的最小值
print(tf.reduce_min(a))
运行结果:
3、理解TensorFlow中的axis参数
二维张量数组中,可以通过调整axis的值为0或1,控制执行维度
axis=0
代表跨行,即纵向操作
axis=1
代表跨列,即横向向操作
如下图:
在tf中会经常用到这个参数,需要记住
4、张量求和
函数使用:tf.reduce_sum(张量,axis=0或1)
示例:
import tensorflow as tf
a=tf.constant([[1,2,3],
[4,5,6]])
print(tf.reduce_sum(a,axis=0))#纵向求和
print(tf.reduce_sum(a,axis=1))#横向求和
运行结果:
5、张量求平均值
函数使用:tf.reduce_mean(张量,axis=0或1)
示例:
import tensorflow as tf
a=tf.constant([[1,2,3],
[4,5,6]])
print(tf.reduce_mean(a,axis=0))#纵向求平均值
print(tf.reduce_mean(a,axis=1))#横向求平均值
运行结果:
6、 tf.Variable 函数,将变量标记为“可训练”
tf.Variable 函数将变量标记为“可训练”,被标记的变量会在反向传播中记录梯度信息。神经网络中经常用该函数标记待训练参数
函数使用:tf.Variable(初始值)
示例:
import tensorflow as tf
w=tf.Variable(tf.random.normal([2,2],mean=0,stddev=1)) #将生成的正态分布随机数标记为可训练,这样在反向传播中就可以通过梯度下降,记录更新参数w了
print(w)
运行结果:
7、张量的加、减、乘、除运算
函数使用,张量加法运算:tf.add(张量,张量)
函数使用,张量减法运算:tf.subtract(张量,张量)
函数使用,张量乘法运算:tf.multiply(张量,张量)
函数使用,张量除法运算:tf.divide(张量,张量)
示例:
import tensorflow as tf
a=tf.ones([1,3])
b=tf.fill([1,3],3.)
print(a)
print(b)
print(tf.add(a,b)) #张量a + 张量b
print(tf.subtract(a,b)) #张量a - 张量b
print(tf.multiply(a,b)) #张量a * 张量b
print(tf.divide(a,b)) #张量a / 张量b
运行结果:
8、张量的平方、次方、开方运算
函数使用,张量平方运算:tf.square(张量)
函数使用,张量次方运算:tf.pow(张量,n)
几次方,n就是几
函数使用,张量开方运算:tf.sqrt(张量)
示例:
import tensorflow as tf
a=tf.ones([1,3])
b=tf.fill([1,3],3.)
print(a)
print(b)
print(tf.square(b)) #得到张量b的平方
print(tf.pow(b,3)) #得到张量b的n次方,这里第二个参数是3,就是3次方
print(tf.sqrt(b)) #得到张量b的开方
运行结果:
9、矩阵相乘
函数使用:tf.matmul(矩阵1,矩阵2)
示例:
import tensorflow as tf
a=tf.ones([3,2])
b=tf.fill([2,3],3.)
print(tf.matmul(a,b))
运行结果:
10、特征和标签配对函数 tf.data.Dataset.from_tensor_slices
神经网络在训练时,是把输入特征和标签配对后喂入网络的
numpy和tensor都可以通过该语句读入数据
函数使用方法:tf.data.Dataset.from_tensor_slices((输入特征,标签))
示例:
import tensorflow as tf
f=tf.constant([12,23,10,17]) #特征集
labels=tf.constant([0,1,1,0]) #标签集
dataset=tf.data.Dataset.from_tensor_slices((f,labels))
print(dataset)
for element in dataset:
print(element)
运行结果:
11、enumerate 遍历每个元素,组合为:索引 元素
示例:
import tensorflow as tf
a=['a','b','c','d']
for index,element in enumerate(a):
print(index,element)
运行结果:
12、 独热编码 one-hot
** 在分类问题中,常用独热编码做标签**
- 标记类别 1:是 0:非
鸢尾花为例:
0 狗尾草鸢尾 1 杂色鸢尾 2 弗吉尼亚鸢尾
标签: 1 (也就是杂色鸢尾)
独热表示: 0 1 0
tf.one_hot函数将待转换数据转换为one-hot形式数据输出
使用方法: tf.one_hot(待转数据 , 几分类)
示例:
import tensorflow as tf
clases=3 #三分类
labels=tf.constant([1,0,2]) #标签集
output=tf.one_hot(labels,clases)
print(output)
运行结果: