Как я могу создать модель keras из слоев? - PullRequest
0 голосов
/ 12 апреля 2019

Это странный вопрос.Я построил несколько слоев в списке под названием 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).

Ответы [ 2 ]

2 голосов
/ 12 апреля 2019

Что ж, если модель является последовательной моделью (что, кажется, имеет место), то вы можете просто использовать класс Sequential для построения модели из списка слоев:

from keras.models import Sequential

model = Sequential(layers_list)

Для получения дополнительной информации см. Руководство по последовательной модели в документации Keras.

1 голос
/ 12 апреля 2019

Я не знаю, какова цель сделать это!

Вы можете просто добавить их непосредственно в модель, т.е.

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...