Tensorflow2.0常用函数汇总

Tensorflow2.0常用函数

以下所有内容均基于tensorflow2.0及以上版
并且每段代码开头以import tensorflow as tf为基础,这里我省略了,没有在每一段代码例子内填写。

  1. tf.random.truncated_normal
    该函数用于强制转换数据类型
    用法:tf.random.truncated_normal(张量名,dtype=数据类型)
    代码例子:
a = tf.random.truncated_normal([2,3],0.5,1)
a1 = tf.cast(a,tf.int32)
print (a,a1,'\n')
  1. tf.reduce_max/ reduce_min
    用于寻找该张量中全部元素的最大值
    代码例子:
#张量维度上所有元素的最大值
b = tf.reduce_max(a)
#张量维度上所有元素的最小值
c = tf.reduce_min(a)
print(b,'\n',c)
  1. axis
    表示操作张量的方向,用于控制求均值的方向,去横向均值还是纵向均值.
    axis=0表示跨行计算(经度,down),=1表示跨列计算(维度,across)
    代码例子:
x = tf.constant([[1,2,3],
            [2,2,3]])
#求均值
print(tf.reduce_mean(x))
print(tf.reduce_mean(x,axis=1))
print(tf.reduce_mean(x,axis=0))
#求和
print(tf.reduce_sum(x))
print(tf.reduce_sum(x,axis=1))
print(tf.reduce_sum(x,axis=0))

  1. tf.random.truncated_normal
    生成正态分布的随机数。
    用法:tf.random.truncated_normal (矩阵形状,mean=均值,stddev=标准差),常用于初始化权重和偏置矩阵。
    代码例子:
a = tf.random.truncated_normal([2,3],0.5,1)
b = tf.random.truncated_normal([2,3],0,1)
c = tf.random.truncated_normal([3,2],0,1)
  1. tf.random.truncated_normal
    生成截断式正态分布(相比正态分布更向均值集中)的随机函数
    用法:tf.random.truncated_normal(矩阵形状,mean=均值,stddev=标准差)
    代码例子:
f = tf.random.truncated_normal([2,3],0,1)
  1. tf.Variable
    是将变量标记为“可训练”,被标记的变量会在反向传播中记录梯度信息。
    用法:tf.Variable(初始值),神经网络训练中,常用该函数标记待训练参数
    代码例子:
#初始化参数w,使用
w = tf.Variable(tf.random.normal([2,2],mean=0,stddev=1))
#或
a = tf.random.truncated_normal([2,3],0.5,1)
w = tf.Variable(a)
  1. tensorflow还提供了数学运算
    加减乘除:tf.add(a,b), tf.subtract(a,b), tf.multiply(a,b), tf.divide(a,b)
    平方、次方、开方:tf.square(a,b), tf.pow(a,b), tf.sqrt(a,b)
    矩阵乘法:tf.matmul(b,c)

  2. tf.data.Dataset.from_tensor_slices
    将输入矩阵的第一维度进行切分,生成:输入特征/数据标签数据,用于运算
    data = tf.data.Dataset.from_tensor_slices((输入特征,标签))

  3. tf.GradientTape
    使用with构建计算过程时,使用gradient求张量的梯度
    用法:
    with tf.GradientTape() as tape:
    #若干计算过程
    grad = tape.gradient(函数,对谁求导)
    代码例子:

with tf.GradientTape() as tape:
#w初始值设为3
w = tf.Variable(tf.constant(3.0))
#损失函数设为w^2,因此导数为2w
loss = tf.pow(w,2)
#求导后带入w的数值
grad = tape.gradient(loss,w)

  1. enumerate
    enumerate是python的内建函数,它可以遍历每个元素(如列表、元组或字符串),组合为:索引 元素,常在for循环中使用
    用法:enumerate(列表名)
    代码例子:
seq = ['one','two','three']
for i,element in enumerate(seq):
	print(i,element)
  1. tf.one_hot
    独热编码,分类问题经常需要使用独热编码进行标签
    若做花朵分类,共分成三类(0,1,2),则独热编码表示标签1的方式为(0. 1. 0.),含义为:0%的可能为:0, 100%的可能为:1, 0%的可能为:2
    用法:
    tf.one_hot(待转换数据,depth=几分类)
    代码例子:
classes = 3
labels = tf.constant([1,0,2,1]) #输入的元素值最小为0,最大为2
output = tf.one_hot(labels,depth=classes)
  1. tf.nn.softmax
    用于使n分类的n个输出符合概率分布
    代码例子:
y = tf.constant([1.01,2.01,-0.66])
y_pro = tf.nn.softmax(y)
print("After softmax, y_pro is:", y_pro)
  1. assign_sub
    作用类似于:-=
    赋值操作,更新参数的值并返回。(一般用于w和b的自更新)
    调用assign_sub前,先用tf.Variable定义变量w为可训练(可自更新)
    w.assign_sub(w为需要自减的内容)
    代码例子:
w = tf.Variable(4.00)
w.assign_sub(1.5)
print(w)
  1. tf.argmax
    返回张量指定维度维度的最大值索引号。注:请注意是索引号
    tf.argmax(张量名,axis=操作轴)
    代码例子:
import numpy as np
test = np.array([[1,2,3],[2,3,4],[5,4,3],[8,7,2]])
print(test)
print(tf.argmax(test,axis=0)) #返回每一列(经度)最大值的索引号
print(tf.argmax(test,axis=1)) #返回每一行(纬度)最大值的索引号

print(tf.argmin(test)) #如果不设置数值,默认axis值为0
print(tf.argmin(test,axis=0)) #返回每一列(经度)最小值的索引号
print(tf.argmin(test,axis=1)) #返回每一行(纬度)最小值的索引号
  • 3
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值