Почему я не могу получить данные промежуточных слоев сети Keras?

Пытаюсь получить выходные данные промежуточных слоев Sequential, делаю все как в документации Keras: создаю и обучаю модель, а затем создаю модели как "обрезанные" версии существующей:

model = keras.Sequential([
    Conv2D(8, (3,3), padding='same', activation='relu', input_shape=(700, 700, 1), name='conv1'),
    MaxPooling2D((2, 2), strides=2, padding='same', name='mp1'),
    Conv2D(16, (3,3), padding='same', activation='relu', name='conv2'),
    MaxPooling2D((2, 2), strides=2, padding='same', name='mp2'),
    Flatten(),
    Dense(128, activation='relu'),
    Dense(1,  activation='sigmoid')
])

model.compile(optimizer='adam',
         loss='binary_crossentropy',
         metrics=['accuracy'])

model.fit(imgs, labels, epochs=5, validation_split=0.1, batch_size=2)
pred = model.predict(img)
print("Прогноз:", pred, "правильный:", right)
pred1 = Model(inputs=model.input, outputs=model.get_layer('conv1').output)

Но получаю ошибку:

ValueError: The layer sequential has never been called and thus has no defined input.

Подскажите, пожалуйста, как мне решить проблему?


Ответы (0 шт):