tf笔记学习-常用函数

看tf笔记,新学的tf中常用的函数,在此整理一下,留作复习用。

import tensorflow as tf

x = tf.constant([[1,2,3],[14,2,5]])
print(x)

print(tf.reduce_mean(x)) #不指定参数的话 就是求所有元素的平均值(1+2+3+14+2+5)/6=4
print(tf.reduce_mean(x,axis = 0)) #纵向求平均值 (1+14)/2=7 (2+2)/2=2 (3+5)/2=4
print(tf.reduce_mean(x,axis = 1)) #横向求平均值  (1+2+3)/3=2 (14+2+5)/3=7

print(tf.reduce_sum(x)) #不指定参数的话 就是求所有元素的和  1+2+3+14+2+5=27
print(tf.reduce_sum(x,axis=0)) #纵向求和
print(tf.reduce_sum(x,axis=1)) #横向求和

print(tf.reduce_max(x)) #求最大值  14
print(tf.reduce_min(x)) #求最小值  1

tf.constant(张量名,dtype = 数据类型) #创建指定类型的张量
如:x1 = tf.constant(x,dtype = tf.int32)

tf.convert_to_tensor(张量名,dtype = 数据类型) #将numpy()数据类型转换成tensor数据类型

tf.zeros(维度) #创建全为0的张量
tf.ones(维度) #创建全为1的张量
tf.fill(维度,指定值)  #创建全为指定值的张量

tf.random.normal(维度,mean=均值,stddev=标准差) #生成正态分布的随机数,默认的均值是0,标准差是1
tf.random.truncated_normal(维度,mean=均值,stddev=标准差) #生成截断式正态分布的随机数
tf.random.uniform(维度,minval=最小值,maxval=最大值) #生成均匀分布随机数[minval,maxval)

tf.Variable() #可以将变量标记为"可训练"。
如:w = tf.Variable(tf.random.normal([2,2],mean = 0,stddev = 1))
#随机生成正态分布随机数,在把生成的随机数标记为可训练。

tf中的数学运算:
四则运算(+-*/):tf.add(张量1,张量2) tf.subtract(张量1,张量2) tf.multiply(张量1,张量2) tf.divide(张量1,张量2)
注意:只有维度相同的张量,才可以进行四则运算
平方,次方,开方:tf.square(张量名) tf.pow(张量名,n次方) tf.sqrt(张量名)
矩阵乘:tf.matmul(矩阵1,矩阵2)

将特征与标签配对:tf.data.Dataset.from_tensor_slices(features,labels)
如:featurs = tf.constant([12,4,6,3])
   labels = tf.constant([0,1,1,0])
   dataset = tf.data.Dataset.from_tensor_slices(featurs,labels)
   print(dataset)
   for element in dataset:
       print(element)


tf.GradientTape()
with结构记录计算过程,gradient求出张量的梯度
with tf.GradientTape() as tape:
    计算过程
grad = tape.gradient(损失函数,对谁求导)

如:
with tf.GradientTape() as tape:
    w = tf.Variable(tf.constant(3.0))
    loss = tf.pow(w,2)  #loss = w²
grad = tape.gradient(loss,w)
print(grad)

enumerate(名称) 枚举 遍历每一个元素 常和for连用 组合为:索引 元素
如:seq = ['one','two','three']
   for i,element in enumerate(seq):
       print(i,element)
结果为: 0   one
        1  two
        2  three

tf.one_hot(待转换数据,depth = 几分类)  独热码  在分类问题中,常用独热码做标签,1表示是,0表示非
如:classes = 3
    labels = tf.constant([1,0,2])
    output = tf.one_hot(labels,classes)
    print(output)
结果:
[[0.,1.,0.]
 [1.,0.,0.]
 [0.,0.,1.]
]

tf.nn.softmax(x) 可以使得N分类的N个输出,通过该函数,符合概率分布;即每个输出值都在0-1之间,且它们的和为1.
如:x = tf.constant([1.01,2.01,-0.66])
   y_pro = tf.nn.softmax(x)

assign_sub(参数要自减的内容)  常用作参数的自更新
调用assign_sub函数前,需要用tf.Variable来定义变量为可训练,也就是可以自更新。
如:w = tf.Variable(4)
   w.assign_sub(1)   #即w -= 1,即w = w - 1
   print(w)  #结果为3

tf.argmax(张量名,axis = 0或者1)  返回张量沿指定维度最大/小值的索引,axis = 0 表示纵向,axis = 1 表示横向。
如: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)) #返回每一列的最大值的索引 [3,3,1]
    print(tf.argmax(test,axis=1)) #返回每一行的最大值的索引 [2,2,0,0]

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值