keras 开发文档 2:顺序模型(The Sequential model)

本文详细介绍了在Keras中使用顺序模型的方法,包括何时适用、如何创建、输入形状的预定义、常见调试技巧以及如何进行特征提取和迁移学习。通过实际示例,读者将学会构建、训练和调整顺序模型。

设置

import tensorflow as tf
from tensorflow import keras
from tensorflow.keras import layers

何时使用顺序模型

顺序模型适用于简单的层堆栈,其中每一层正好具有一个输入张量和一个输出张量。

从原理上讲,以下顺序模型:

# Define Sequential model with 3 layers
model = keras.Sequential(
    [
        layers.Dense(2, activation="relu", name="layer1"),
        layers.Dense(3, activation="relu", name="layer2"),
        layers.Dense(4, name="layer3"),
    ]
)
# Call model on a test input
x = tf.ones((3, 3))
y = model(x)

等效于以下功能:

# Create 3 layers
layer1 = layers.Dense(2, activation="relu", name="layer1")
layer2 = layers.Dense(3, activation="relu", name="layer2")
layer3 = layers.Dense(4, name="layer3")

# Call layers on a test input
x = tf.ones((3, 3))
y = layer3(layer2(layer1(x)))

顺序模型不适用于以下情况:

  • 您的模型有多个输入或多个输出
  • 您的任何一层都有多个输入或多个输出
  • 您需要进行图层共享
  • 您需要非线性拓扑(例如,残余连接,多分支模型)

创建一个顺序模型

您可以通过将图层列表传递给Sequential构造函数来创建Sequential模型:

model = keras.Sequential(
    [
        layers.Dense(2, activation="relu"),
        layers.Dense(3, activation="relu"),
        layers.Dense(4),
    ]
)

可通过layers属性访问其图层:

model.layers

在这里插入图片描述
您还可以通过add()方法增量创建一个顺序模型:

model = keras.Sequential()
model.add(layers.Dense(2, activation="relu"))
model.add(layers.Dense(3, activation="relu"))
model.add(layers.Dense(4))

请注意,还有一个相应的pop()方法可以删除图层:顺序模型的行为非常类似于图层列表。

model.pop()
print(len(model.layers
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值