Обновление нашей кодовой базы из keras -> tenorflow.keras по несвязанным причинам.
keras 2.3.1 tenenflow 2.1.0
Этот код работает на keras, но не работает на tf. keras:
weights = applications.VGG16(weights='imagenet', include_top=False).get_weights()
model.set_weights(tempweights)
Ошибка:
You called `set_weights(weights)` on layer "model" with a weight list of length 26, but the layer was expecting 32 weights. Provided weights: [array([[[[ 4.29470569e-01, 1.17273867e-01, 3.40...
при использовании keras.applications.VGG16 (). get_weights () не исправляет это, приводит к точно такой же ошибке.
Изучили эти проблемы с github, которые выглядят похожими, но не смогли найти причину моей проблемы:
https://github.com/keras-team/keras/issues/7229 https://github.com/keras-team/keras/issues/4753
Следующие работы:
model.weights[0] = weights[0]
Это выглядит, как у keras.model.set_weights () было некоторое поведение для работы с несоответствующими весами, но tf.tensorflow.keras не имеет такого поведения?
Подтверждено. Поведение изменилось. Include_top = True исправили это в нашем конкретном случае c, потому что это привело к тому, что наши модели совпали. Keras не выдает ошибок, когда модели не совпадают, и я точно не знаю, что делает в этом случае *1029*. Не собираюсь это расследовать. Оставив решение здесь.