【470】Keras API 参考说明
目录:
- to_categorical()
- randint()
- random()
- Sequential()
- Model training APIs
- compile()
- fit()
- evaluate()
- predict()
- Layer()
- Dense()
- Dropout()
- SGD()
损失函数 Losses:损失函数(或称目标函数、优化评分函数)是编译模型时所需的两个参数之一。
- mean_squared_error
- categorical_crossentropy:多分类
- binary_crossentropy:二分类
评估标准 Metrics:评价函数用于评估当前训练模型的性能。评价函数和 损失函数 相似,只不过评价函数的结果不会用于训练过程中。
- mae
- acc
优化器 Optimizer:
- SGD:随机梯度下降优化器
- RMSprop:这个优化器通常是训练循环神经网络RNN的不错选择。
- Adagrad:Adagrad 是一种具有特定参数学习率的优化器,它根据参数在训练期间的更新频率进行自适应调整。参数接收的更新越多,更新越小。
- Adadelta:Adadelta 是 Adagrad 的一个具有更强鲁棒性的的扩展版本,它不是累积所有过去的梯度,而是根据渐变更新的移动窗口调整学习速率。 这样,即使进行了许多更新,Adadelta 仍在继续学习。 与 Adagrad 相比,在 Adadelta 的原始版本中,您无需设置初始学习率。 在此版本中,与大多数其他 Keras 优化器一样,可以设置初始学习速率和衰减因子。
- Adam:
激活函数 Activations:
- softmax
- relu
- tanh
- sigmoid
tf.keras.utils.to_categorical(y, num_classes=None, dtype="float32")
- 将向量或整数转为二进制矩阵,类似 one-hot 编码
- y:欲转换的向量或者整数
- num_classes:分类的总数,若为 None,则是 y 中的最大值 + 1
numpy.random.randint(low, high=None, size=None, dtype=int)
- 返回指定范围内的随机整数(包含最小值,不包含最大值),可以指定 shape/size
- low:若 high=None,则是 0~low;否则是 low~high
- high:配合 low,随机数为两者中间
- size:输出的维度,默认是输出单个数字
numpy.random.random(size=None)
- 返回 [0.0, 1.0) 之间的随机浮点数,可以指定 shape/size
- size:输出的维度,默认是输出单个数字
tf.keras.Sequential(layers=None, name=None)
- 类,聚集了一个线性的层栈
- add(layer):在层栈的最上面添加一个 layer 的实例
- pop():移除模型中的最后一层
- Model.compile():配置训练模型
Model.compile(
optimizer="rmsprop", # 字符串或者优化器实例。参见 tf.keras.optimizers
loss=None, # 目标函数名称或者损失函数实例。参见 tf.keras.losses
metrics=None, # 评估方法的列表。参见 tf.keras.metrics
loss_weights=None,
weighted_metrics=None,
run_eagerly=None,
**kwargs
)
- Model.fit():训练模型
Model.fit(
x=None, # 输入数据
y=None, # 目标数据
batch_size=None, # 进行梯度下降更新的批量大小
epochs=1, # 训练模型的循环次数
verbose=1,
callbacks=None,
validation_split=0.0, # 0~1 间的浮点型数字。训练数据的一部分用来验证数据
validation_data=None, # 评估损失的验证数据
shuffle=True, # 布尔值,是否在每一个 epoch 前都打乱数据顺序
class_weight=None,
sample_weight=None,
initial_epoch=0,
steps_per_epoch=None,
validation_steps=None,
validation_batch_size=None,
validation_freq=1,
max_queue_size=10,
workers=1,
use_multiprocessing=False,
)
- Model.evaluate():返回测试集的损失值与评估值
Model.evaluate(
x=None, # 输入数据
y=None, # 目标数据
batch_size=None, # 每批计算的样本数
verbose=1,
sample_weight=None,
steps=None,
callbacks=None,
max_queue_size=10,
workers=1,
use_multiprocessing=False,
return_dict=False,
)
- Model.predict():为输入样本生成输出预测
Model.predict(
x, # 输入样本
batch_size=None,
verbose=0,
steps=None,
callbacks=None,
max_queue_size=10,
workers=1,
use_multiprocessing=False,
)
tf.keras.Layer(trainable=True, name=None, dtype=None, dynamic=False, **kwargs)
- 类,所有 layers 的继承类
- trainable:布尔型,这层的变量是否训练
- name:图层的名称
- weights:返回权重值
tf.keras.layer.Dense()
tf.keras.layers.Dense( units, activation=None, use_bias=True, kernel_initializer="glorot_uniform", bias_initializer="zeros", kernel_regularizer=None, bias_regularizer=None, activity_regularizer=None, kernel_constraint=None, bias_constraint=None, **kwargs )
- 类,最普通的 densely-connected NN 层
- units:正整数,输出空间的维度
- activation:激活函数。如果不指定,则是直接输出结果
- relu
- sigmoid
- softmax
- tanh
- use_bias:布尔值,是否使用 bias 向量
- kernel_initializer:权重矩阵的初始化器
- bias_initializer:bias 向量初始化器
- input_dim:输入维度
tf.keras.layers.Dropout(rate, noise_shape=None, seed=None, **kwargs)
- 类,对于输入应用 dropout
- rate:0 和 1 之间的浮点数。输入单元废弃的比例
tf.keras.optimizers.SGD(learning_rate=0.01, momentum=0.0, nesterov=False, name="SGD", **kwargs)
- 类,梯度下降(带 momentum)的优化器
- learning_rate:学习率,默认是 0.01
- momentum:超参数,默认是 0