TensorFlow常用函数

本文介绍了TensorFlow中的一些关键函数,包括constant用于创建张量,convert_to_tensor转换数据类型,批量创建张量,生成随机数,构建数据集,gradient计算梯度,enumerate遍历操作,one_hot实现独热编码,softmax进行概率归一化,以及assign_sub和argmax用于张量更新和查找最大值索引。
摘要由CSDN通过智能技术生成

1、constant

使用constant创建张量,这里创建了一个一阶张量,其中有两个元素1,5

a=tf.constant([1,5],dtype=tf.int64)
print(a)

2、convert_to_tensor

将numpy的数据类型转换为Tensor的数据类型

a=np.arange(0,5)
b=tf.convert_to_tensor(a,dtype=tf.int64)
print(a)
print(b)

3、批量创建张量

创建全为0的张量
一维直接用数字,二维用[行,列],多维用[1,2,…]

# 创建全为0的张量
# 一维直接用数字,二维用[行,列],多维用[1,2,.......]
# 理解为,有两行,三列
a=tf.zeros([2,3])
# 创建全为1的张量
b=tf.ones(4)
# 创建全为指定值的张量
c=tf.fill([2,2],9)
print(a)
print(b)
print(c)

4、生成随机数

#生成正态分布的随机数,默认均值为1,标准差为1
#mean=均值,stddev=标准差
d=tf.random.normal([2,2],mean=0.5,stddev=1)

#生成截断式正态分布的随机数
#和前者相比,后者更向均值0.5集中
e=tf.random.truncated_normal([2,2],mean=0.5,stddev=1)
print(d)
print(e)

#生成均匀分布随机数
f=tf.random.uniform([2,2],minval=0,maxval=1)

5、构建数据集

#切分传入张量的第一维度,生成输入特征/标签对,构建数据集
features=tf.constant([11,12,13,14])
labels=tf.constant([1,0,1,0])
dataset=tf.data.Dataset.from_tensor_slices((features,labels))
print(dataset)

for element in dataset:
   print(element)

6、gradient

#with 结构记录计算过程,gradient求出张量的梯度
#利用gradienttape 实现某个函数对某个参数的求导过程
with tf.GradientTape() as type:
    w=tf.Variable(tf.constant(3.0))
    loss=tf.pow(w,2)
    #gradient(函数,对谁求导)
    grad=type.gradient(loss,w)
    print(grad)

loss=w^2,loss对w求导=2w,带入3,最后结果为6.0。

7、enumerate

#枚举,enumerate,可以遍历每个元素,enumerate(列表名),输出为 索引:元素
seq=["one","two"]
for i,element in enumerate(seq):
    print(i,element)

8、one_hot

我对one_hot,即独热编码的理解是,将输入的张量,按内容排序,给每个值一个对应的二进制状态,然后再按照输入的顺序,输出对应的二进制状态,如下

#one_hot 独热编码
#tf.one_hot()函数,将待转换数据,转换为one_hot形式的数据输出
#tf.one_hot(待转换数据,depth=几分类)
classes =3
#最小值为0,最大值为2
labels=tf.constant([1,0,2])
out_put=tf.one_hot(labels,depth=classes)
print(out_put)

在这里插入图片描述

9、softmax

tf.nn.softmax()函数通常用在,分析神经网络前向传播的结果,将这些结果经有softmax函数,变成符合概率分布的对应值(概率和为1)

#注意要如果输入的不是浮点数,要加上声明类型是浮点数,否则会报错
y=tf.constant([1,1,2],dtype=tf.float32)
y_pro=tf.nn.softmax(y)
print (y_pro)

结果是
在这里插入图片描述

10、assign_sub

tf.nn.softmax()函数通常用在,分析神经网络前向传播的结果,将这些结果经有softmax函数,变成符合概率分布的对应值(概率和为1)

y=tf.constant([1,1,2],dtype=tf.float32)
y_pro=tf.nn.softmax(y)
print (y_pro)

在这里插入图片描述

11、assign_sub

#赋值操作,更新参数的值并返回
#调用assign_sub前,要确认参数是可训练(可自更新),即用tf.Variable定义
#w.assign_sub(w要自减的内容)
w=tf.Variable(6)
w.assign_sub(1)
print(w)

结果为5

12、argmax

返回张量沿指定维度,最大值的索引

#tf.argmax(张量名,axis=指定轴),若axis=0,为竖直方向,axis=1,为水平方向
test=np.array([[8,2,3],[4,5,6],[7,7,9]])
print(test)

print(tf.argmax(test,axis=0))
print(tf.argmax(test,axis=1))

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值