tensorflow2.0:常用函数

这一系列的文章是【北京大学】Tensorflow2.0_哔哩哔哩_bilibili的笔记,这系列课程讲得很好,推荐观看。话不多说直接放代码:

#导入需要的库:
import tensorflow as tf
import numpy as np

#类型转换:tf.cast
a= tf.constant([1,2,3]) #默认为int32
b= tf.cast(a, dtype= tf.float64) #转换为float64
print(b) 

tf.reduce_max(a) #得到最大值
tf.reduce_min(a) #最小值

a= tf.constant([[1,2,3],[5,1,6]])

tf.reduce_max(a, axis= 0) #表示跨行,即求出每列最大值
tf.reduce_max(a, axis= 1) #跨列
tf.reduce_sum(a, axis= 0) #求和
tf.reduce_mean(a, axis= 1) #均值

#常用运算符: tf.add, tf.subtract, tf.multiply, tf.divide, tf.square, tf.pow, #tf.sqrt, tf.matmul

a= tf.fill([3, 2], 3.)
b= tf.ones([2, 3])
#注意matmul中两个矩阵数值类型必须相同,而tf.ones默认是float32,因此a中3后面的点不能省略,否则会因为a是int32类型而导致矩阵乘法出错
tf.matmul(a, b) #矩阵a和矩阵b相乘


#接下来是训练过程中常用的函数:


features= tf.constant([[1,2],[3,4],[5,6],[7,8]])
labels= tf.constant([1,0,0,1])

dataset= tf.data.Dataset.from_tensor_slices((features, labels)) #创建数据集,#features和labels对应
#这个函数可以理解为分别创建了特征和标签之后将其对应连接起来

for element in dataset:
    print(element) #打印出特征-标签对

#tf.Variable()生成一个可训练的变量,此变量在反向传播中会根据梯度情况不断改变自身的值,可用来生成神经网络中的权重矩阵
w= tf.Variable([1,2,3], dtype= tf.float32)

#tf.GradientTape(): #求梯度,反向传播中常用的函数
with tf.GradientTape() as tape:
    w= tf.Variable(tf.constant(3.0)) #生成一个变量w
    loss= tf.pow(w, 2) #定义关于变量w的损失函数
grad= tape.gradient(loss, w) #求出损失函数对w的梯度(导数)
print(grad) #打印此梯度(导数)

#enumerate():注意是python的内建函数不是tf的函数,用于生成索引-元素对,常用于for循环中

seq= ['one', 'two', 'three']

for i, element in enumerate(seq):
    print(i ,element)

#tf.one_hot():独热编码

labels= tf.constant([1,2,3])
classes= 3 #分类数
output= tf.one_hot(labels, depth= classes)

output

#tf.nn.softmax: softmax激活函数
y= tf.constant([1, 2, -0.5])
y_prob= tf.nn.softmax(y)

y_prob

#assign_sub: 自减

w= tf.Variable(4)
w.assign_sub(1) #w= w-1
print(w) #3

#tf.argmax: 返回最大值索引

a= np.array([[1,2,3],[2,3,4],[5,4,3],[8,5,2]])

tf.argmax(a, axis= 0) #每列最大值的索引

tf.argmax(a, axis= 1) #每行最大值索引

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值