Model 类

2024 年 8 月 28 日 | 3 分钟阅读

Model 类

它在将层联合成一个包含诸如训练和推理等特性的对象方面非常有用。

参数

  • inputs: 它可以定义为正在馈送到模型的输入。它可以是 Input 对象或对象列表,即 keras.Input。
  • outputs: 它指的是模型的输出。
  • name: 它可以是一个定义模型名称的字符串。

以下是实例化模型的两种方式

I. 第一种方式,我们将借助“Functional API”来完成。 我们将从 Input 开始,然后连接层调用以指定模型的前向传递,最后通过利用输入和输出来创建模型。

II. 第二种方式,我们将通过子类化 Model 类来完成。 在这里,我们首先在 _init_ 中定义层,然后在 call 中执行模型的前向传递。

在子类化 Model 时,我们还可以在 call 中使用一个名为 Boolean 的 training 参数(可选),用于指定推理和训练中的不同行为

创建模型后,我们可以通过 model.compile() 结合损失和指标来配置模型。 可以使用 model.fit() 来训练模型,并且借助 model.predict(),模型可以进行预测。

summary 方法

它可用于以字符串的形式打印出网络的摘要。

参数

  • line_length: 它可以定义为打印行的总长度。 此外,可以将其设置为适应显示不同终端的窗口大小。
  • positions: 它指的是每一行中日志元素的位置,可以是相对的或绝对的。 如果未提供,则将其默认设置为 [.33, .55, .67, 1.]
  • print_fn: 它可以用作打印函数,默认为 print,并将针对摘要的每一行进行调用。 为了捕获字符串摘要,可以将其设置为自定义函数。

引发

  • ValueError: 如果我们在构建模型之前调用 summary(),则可能会生成值错误。

get_layer 方法

它有助于根据层的唯一名称或索引来检索层。 如果同时提供了名称和索引,则索引将优先,因此索引依赖于自下而上的方法(水平遍历图)。

参数

  • name: 它可以定义为表示层名称的字符串。
  • index: 它指的是描述层索引的整数。

返回值

它输出该层的一个实例。

引发

  • ValueError: 如果该层具有无效名称或索引,则会生成值错误。

下一个主题Keras Sequential 类