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归一化.