Tensorflow学习之tf.keras(一) tf.keras.layers.Sequential

Sequential将线性的层堆叠成一个层tf.keras.Model

别名

tf.keras.models.Sequential

tf.keras.Sequential(
    layers=None, name=None
)

Sequential 提供有关此模型的训练和推断功能。

例子:

# 可以选择,第一层可以接收' input_shape '参数
model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(8, input_shape=(16,)))
# 然后,我们进行自动形状推断:
model.add(tf.keras.layers.Dense(4))
# 这与以下内容相同:
model = tf.keras.Sequential()
model.add(tf.keras.Input(shape=(16,)))
model.add(tf.keras.layers.Dense(8))
# 注意,您也可以省略' input_shape '参数。
# 在这种情况下,模型在第一次调用训练/评估方法之前没有任何权重(因为它还没有建立):
model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(8))
model.add(tf.keras.layers.Dense(4))
# 模型权重尚未创建
# 然而,如果你指定了输入形状,当你添加图层时,模型就会不断地建立起来
model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(8, input_shape=(16,)))
model.add(tf.keras.layers.Dense(4))
len(model.weights)

4
# 当使用延迟构建模式(没有指定输入形状)时,你可以通过调用 build(batch_input_shape) 来手动构建模型:
model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(8))
model.add(tf.keras.layers.Dense(4))
model.build((None, 16))
len(model.weights)

4
# 请注意,当使用延迟构建模式(没有指定输入形状)时,模型会在您第一次调用' fit '、' eval '或' predict '时构建,或者在一些输入数据上第一次调用模型时构建
model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(8))
model.add(tf.keras.layers.Dense(1))
model.compile(optimizer='sgd', loss='mse')
# 这是第一次建立模型:
model.fit(x, y, batch_size=32, epochs=10)

变量

 

layers

可选的添加到模型的层列表。

name

模型的可选名称。

 

属性

 

distribute_strategy

tf.distribute.Strategy这种模式下创建的

layers

 

metrics_names

返回所有输出的模型显示标签

 

注意:metrics_names只有在keras.Model经过训练/根据实际数据进行评估后才可用

inputs = tf.keras.layers.Input(shape=(3,))
outputs = tf.keras.layers.Dense(2)(inputs)
model = tf.keras.models.Model(inputs=inputs, outputs=outputs)
model.compile(optimizer="Adam", loss="mse", metrics=["mae"])
model.metrics_names
[]
x = np.random.random((2, 3))
y = np.random.randint(0, 2, (2, 2))
model.fit(x, y)
model.metrics_names
['loss', 'mae']
inputs = tf.keras.layers.Input(shape=(3,))
d = tf.keras.layers.Dense(2, name='out')
output_1 = d(inputs)
output_2 = d(inputs)
model = tf.keras.models.Model(
   inputs=inputs, outputs=[output_1, output_2])
model.compile(optimizer="Adam", loss="mse", metrics=["mae", "acc"])
model.fit(x, (y, y))
model.metrics_names
['loss', 'out_loss', 'out_1_loss', 'out_mae', 'out_acc', 'out_1_mae','out_1_acc']

方法:

add

在层堆栈的顶部添加一个层实例

compile

配置用于训练的模型

evaluate

返回测试模式下模型的损失值和指标值

fit

为固定数量的epoch(数据集上的迭代)训练模型

get_layer

根据层的名称(唯一)或索引检索层

load_weights

从TensorFlow或HDF5的权重文件中加载所有的层权重

make_predict_function

创建一个执行推理步骤的函数/功能

make_test_function

创建一个执行计算步骤的函数/功能

make_train_function

创建一个执行训练步骤的函数/功能

pop

删除模型中的最后一层

predict

生成输入样本的输出预测

predict_on_batch

返回单批的预测

predict_step

推理步骤的逻辑

reset_metrics

重置模型中所有指标的状态

reset_states

 

save

将模型保存到Tensorflow SavedModel或单个HDF5文件

save_weights

保存所有层权重

summary

打印网络的字符串总结

test_on_batch

在一批上测试模型

test_step

单计算步骤的逻辑

to_json

返回包含网络配置的JSON字符串

to_yaml

返回包含网络配置的yaml字符串

train_on_batch

对单批数据运行一次梯度更新

train_step

单训练步骤的逻辑

你可能感兴趣的:(Tensorflow2)