【问题标题】:How can I create a keras model from layers?如何从图层创建 keras 模型?
【发布时间】:2019-04-11 22:20:12
【问题描述】:

这是一个奇怪的问题。我在名为input_layers 的列表中构建了一些层:

[<keras.layers.convolutional.Conv2D object at 0x1377628d0>, <keras.layers.convolutional.Conv2D object at 0x138eb69b0>, <keras.layers.core.Flatten object at 0x13778dda0>, <keras.layers.core.Dense object at 0x1377f16d8>]

我想从中构建和编译一个keras 模型。我该怎么做?

我试过了:

            new_model = Model(inputs=input_layers, outputs=output_layer)

但这给出了一个错误:

ValueError: Input tensors to a Model must come from `keras.layers.Input`. Received: <keras.layers.convolutional.Conv2D object at 0x1378fff60> (missing previous layer metadata).

【问题讨论】:

  • 你尝试了什么?出了什么问题?

标签: python keras


【解决方案1】:

好吧,如果模型是顺序模型(似乎是这种情况),那么您可以简单地使用 Sequential 类从层列表构建模型:

from keras.models import Sequential

model = Sequential(layers_list)

查看 Keras 文档中的 Sequential model guide 了解更多信息。

【讨论】:

    【解决方案2】:

    我不知道这样做的目的是什么!

    您可以简单地将它们直接添加到模型中,即

    inputs = Input(input_size)
    conv1 = Conv2D(64, 3, activation = 'relu')(inputs)
    conv1 = Conv2D(64, 3, activation = 'relu')(conv1)
    pool1 = MaxPooling2D(pool_size=(2, 2))(conv1)
    model = Model(input = inputs, output = conv10)
    model.compile(optimizer = Adam(lr = 1e-4), loss = 'binary_crossentropy', metrics = ['accuracy'])
    

    另外不要忘记你必须指定模型的输入大小,所以这对你正在做的事情没有意义!

    此外,如果模型是顺序的,您可以这样做

    model = Sequential(your_list)
    

    【讨论】:

      猜你喜欢
      • 2022-06-22
      • 2019-10-03
      • 1970-01-01
      • 1970-01-01
      • 2021-07-14
      • 2020-12-11
      • 2020-05-31
      • 1970-01-01
      • 2019-03-23
      相关资源
      最近更新 更多