Как использовать предварительно подготовленную модель keras в качестве параметра для функции добавления модели? - PullRequest
0 голосов
/ 17 февраля 2019

Я применяю учебное пособие для подготовленных моделей из Deep Learning с python к набору данных по kaggle.Ниже приведен мой код архитектуры CNN, хотя просто я получаю эту ошибку:

TypeError: Добавленный слой должен быть экземпляром класса Layer.Найдено: keras.engine.training.Model объект на 0x7fdb6a780f60

Я смог сделать это, просто используя собственные керасы, но у меня возникли проблемы при попытке использовать с tenorflow 2.0

from keras.applications.vgg16 import VGG16

base = VGG16(weights='../input/vgg16/vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5',
             include_top=False,
             input_shape=(150,225,3))

model = models.Sequential()
model.add(base)
model.add(layers.Flatten())
model.add(layers.Dense(256, activation='relu'))
model.add(layers.Dense(1, activation='sigmoid'))

base.summary()

1 Ответ

0 голосов
/ 17 февраля 2019

Вам необходимо переключиться на функциональный API , поскольку последовательная модель принимает только слои:

from keras.applications.vgg16 import VGG16

base = VGG16(weights='../input/vgg16/vgg16_weights_tf_dim_ordering_tf_kernels_notop.h5',
             include_top=False,
             input_shape=(150,225,3))

in = Input(shape=(150,225,3))
base_out = base(in)
out = Flatten()(base_out)
out = Dense(256, activation='relu')
out = Dense(1, activation='sigmoid')
model = Model(in, out)
model.summary()

Обратите внимание, как вы можете использовать модель в качестве слоя в функциональном API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...