Добавленный слой должен быть экземпляром класса Layer.Найденный: - PullRequest
0 голосов
/ 24 марта 2019

Я новичок в машинном обучении.Я следовал этому учебнику по тонкой настройке моделей VGG16.

Модель отлично загружена с этим кодом:

vgg_model = tensorflow.keras.applications.vgg16.VGG16()

, но получает эту ОШИБКУ:

TypeError: The added layer must be an instance of class Layer. Found: <tensorflow.python.keras.engine.input_layer.InputLayer object at 0x000001FA104CBB70>

При запуске этого кода:

model = Sequential()
for layer in vgg_model.layers[:-1]:
    model.add(layer)

Зависимости:

  • Keras 2.2.3
  • Tensorflow 1.12.0
  • tenorflow-gpu1.12.0
  • Python 3.6.0

Я слежу за этим blog , но вместо этого я хочу использовать VGG16.

Любая помощьчтобы исправить это было бы оценено.Большое вам спасибо.

1 Ответ

3 голосов
/ 24 марта 2019

Это не сработает, потому что слой tenorflow.keras добавляется в модель keras.

vgg_model = tensorflow.keras.applications.vgg16.VGG16()
model = keras.Sequential()
model.add(vgg_model.layers[0])

Создайте файл tenorflow.keras.Sequential ().Это будет работать.

model = tensorflow.keras.Sequential()
model.add(vgg_model.layers[0])
...