欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

tensorflow学习笔记(4)------北京大学 曹健

程序员文章站 2022-07-13 12:27:00
...

Tensorflow常用API

import tensorflow as tf
#  指数衰减学习率策略
tf.keras.optimizers.schedules.ExponentialDecay(
    initial_learning_rate=0.5, decay_steps=10, decay_rate=0.9, staircase=False
)
# initial_learning_rate (初始学习率) decay_steps(衰减步数,staircase)
#  decay_rate(衰减率)  staircase(Bool类型,true则学习率阶梯型下降)
#  返回值为处理后的学习率


# 分段常数衰减学习率策略
tf.keras.optimizers.schedules.PiecewiseConstantDecay(boundaries=[100, 200, 300],
                                                     values=[0.1, 0.05, 0.025, 0.001])
#  boundaries: [step_1, step_2, ..., step_n]定义了在第几步进行学习率衰减.
# values:  [val_0, val_1, val_2, ..., val_n]定义了学习率的初始值和后续衰减时的具体取值.


#  **函数
x = tf.constant([1, 2, 3])
tf.math.sigmoid(x)
tf.math.tanh(x)
tf.nn.relu(x)
tf.nn.leaky_relu(x, alpha=0.3)  # alpha表示x<0时的斜率
tf.nn.softmax(x, axis=-1)  # 默认为-1,最后一个维度

#  1. 损失函数
#  计算y_true和y_pred均方误差
tf.keras.losses.MSE(y_true=x, y_pred=x)
#  2. 计算交叉熵
tf.keras.losses.categorical_crossentropy(y_true=x,y_pred=x,
                                         from_logits=False, label_smoothing=0 )
# y_true:真实值;y_pred:预测值;from_logits,y_pred是否为逻辑张量, label_smoothing:[0,1]之间的小数
#  3. 交叉熵与softmax
tf.nn.softmax_cross_entropy_with_logits(
               labels=x, logits=x, axis=-1, name=None)
#  labels: 在类别这一维度上,每个向量应服从有效的概率分布. 例如,在labels的shape为
#  [batch_size, num_classes]的情况下,labels[i]应服从概率分布.
# logits: 每个类别的**值,通常是线性层的输出. **值需要经过softmax归一化.
#  axis: 类别所在维度,默认是-1,即最后一个维度

# 4.交叉熵和softmax和onehot编码
tf.nn.sparse_softmax_cross_entropy_with_logits(labes=X,
                                               logits=X,
                                               name=None)
# labels: 标签的索引值.
# logits: 每个类别的**值,通常是线性层的输出. **值需要经过softmax归一化.

相关标签: tensorflow