初始化一个keras张量
1 2 3 4 5 6 7 8 9 |
|
1 2 3 4 5 6 7 8 |
|
案例:
1 2 |
|
将layers分组为具有训练和推理特征的对象
两种实例化的方式:
1 - 使用“API”,从开始,链接层调用以指定模型的正向传递,最后从输入和输出创建模型:
1 2 3 4 5 6 |
|
2 - 通过继承Model
类:在这种情况下,您应该在__init__
定义你的layers,并且应该在call
函数里实现模型的正向传递。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
compile():模型编译
1 2 3 4 5 6 7 8 9 10 11 |
|
参数:
optimizer: 优化参数,选择范围我们已经在上面的代码块展示了。
loss:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
metrics: 训练和测试期间要使用的评估指标。
1 2 3 4 5 |
|
sample_weight_mode:
如果您需要进行时间步长样本加权(2D权重),请将
其设置为
"temporal"
。 None
默认为采样权重(1D)。如果模型具有多个
输出,则可以
sample_weight_mode
通过传递字典或模式列表在每个输出上
使用不同的输出
。
weighted_metrics:在训练和测试期间由sample_weight或class_weight评估和加权的指标列表。
evaluate
():模型评估
1 2 3 4 5 6 7 8 9 10 11 12 |
|
参数:
x: 测试自变量,可以是Numpy数组或数组列表、TensorFlow张量或张量列表、如果模型
具有命名输入,则dict将输入名称映射到相应的数组/张量、tf.data数据集或数据
集的迭代、生成器或keras.utils.Sequence实例。
y: 目标数据,类型同x一样。
batch_size: 每个批量处理的数据量。整数。默认为32。如果你的数据是 symbolic
tensors, dataset, dataset iterators, generators, or keras.utils.
Sequence则不需要指定该参数,因为它会生成batchs.
verbose: 0, 1,默认为1。日志显示,批量输出,你可以控制输出的间隔。
steps: 整数或None,每轮迭代的步数。如果x是 tf.data dataset or a dataset iterator,
and steps is None,则数据将会耗尽为止。
max_queue_size: 默认为10,生成队列的最大size。
workers: 进程数。
():
在数据生成器上评估模型
1 2 3 4 5 6 7 8 9 |
|
():在数据上拟合模型
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
1 |
|
参数:
validation_split: 0,1之间的浮点数。分割部分数据用于验证,其余用于训练。当x
是dataset, dataset iterator, generator or keras.utils.Sequence时该
参数不可用。
validation_data:指定验证集数据:
(x_val, y_val)、(x_val, y_val, val_sample_weights);
dataset or a dataset iterator两种数据对于上面两种情况要指定
validation_steps。
class_weight: 指定权值分配,可以突出重点关注的类别。(对损失函数加权)
sample_weight: 样本加权,对损失函数加权,以获得更好的结果。这里可以是numpy
数组,必须保障shape是和传入数据大小一致。应该确保在compile()中
指定sample_weight_mode=“temporal”,dataset, dataset iterator,
generator, or keras.utils.Sequence不支持该参数。
initial_epoch: 整数。开始训练的epoch(对于恢复以前的训练运行很有用)。
steps_per_epoch: 每个epoch的迭代步数。
validation_steps:
validation_freq: 指定验证的epoch,可以为整数或者列表:如:[1,2,10]。
():
在数据生成器上拟合模型,可以减少内存消耗
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
这里传入的数据必须是生成器(yield),如:
1 2 3 4 5 6 7 8 9 10 11 12 |
|
():
获取图层:根据其名称(唯一)或索引检索图层
1 2 3 4 |
|
():
从TensorFlow或HDF5文件加载所有图层权重
1 2 3 4 |
|
():预测
1 2 3 4 5 6 7 8 9 10 |
|
1 |
|
参数:
x:Numpy数组(或类数组)或数组列表、TensorFlow张量或张量列表、
数据集或数据集的迭代、生成器或keras.utils.Sequence实例
():
以生成器传入数据进行预测
1 |
|
1 2 3 4 5 6 7 8 9 |
|
():
单批次样本进行预测
1 |
|
1 |
|
():
单批次样本进行测试
1 2 3 4 5 6 |
|
():
单批次样本进行训练
1 2 3 4 5 6 7 |
|
():重置
指标的状态
如果True,返回的指标仅适用于此批次。如果False,指标将在批次之间有状态地累积。
():
重置状态,需要连续
调用的时候最好使用resets_states()
():保存模型
1 2 3 4 5 6 |
|
将模型保存到Tensorflow SavedModel或单个HDF5文件。
保存文件包括:
1、模型体系结构,允许重新实例化模型。
2、模型权重。
3、优化器的状态,允许您从中断的位置恢复训练。
参数:
filepath: 字符串,模型保存的位置
overwrite: 是否静默覆盖目标位置的现有文件,或者为用户提供手动提示
include_optimizer: 如果为True,则将优化器的状态保存在一起
save_format: 保存的类型,‘tf’,‘h5’,目前tf已经禁用了(tensorflow2.0中)
1 2 3 4 5 6 7 8 |
|
1 |
|
():保存所有图层权重
1 2 3 4 5 |
|
():打印网络的字符串摘要
1 2 3 4 5 |
|
参数:
line_length: 打印行的总长度(例如,将其设置为使显示适应不同的终端窗口大小)。
positions: 每行中日志元素的相对或绝对位置。如果未提供,则默认为[.33, .55, .67, 1.]。
print_fn: 打印功能。默认为print。它将在摘要的每一行上调用。您可以将其设置为自定义函
数以捕获字符串摘要。
():
返回包含网络配置的JSON字符串
要从保存文件JSON加载网络,请使用
keras.models.model_from_json(json_string, custom_objects={})。
():
返回包含网络配置的yaml字符串
要从yaml保存文件加载网络,请使用
keras.models.model_from_yaml(yaml_string, custom_objects={})。