Неожиданный аргумент ключевого слова передан оптимизатору: имя при загрузке модели keras - PullRequest
0 голосов
/ 09 июля 2019

Я пытался загрузить контрольную точку модели из Colab на мою локальную машину, но получил ошибку:

TypeError: Unexpected keyword argument passed to optimizer: name 

Что касается вызова оптимизатора, это выглядит так:

# Compile the model
model.compile(loss='categorical_crossentropy',
              optimizer=tf.keras.optimizers.Adam(lr=0.001, decay=1e-5),
              metrics=['accuracy'])

Я использовал точно такой же код, который использовал в Colab (он работал там)

Версия Keras - 2.2.4

TensorFlow - 1.13.1

Та же проблема возникает, если я пытаюсь загрузить model.h5 Я также пытался загрузить модель в Rstudio, но все равно получаю ту же ошибку

Более подробное сообщение об ошибке:


  File "<ipython-input-1-d8e38e577b3d>", line 95, in <module>
    model = keras.models.load_model("C:/Users/diu/Documents/Python/Checkpoints/cp.ckpt")

  File "C:\Users\diu\AppData\Local\Continuum\anaconda3\lib\site-packages\tensorflow\python\keras\engine\saving.py", line 249, in load_model
    optimizer_config, custom_objects=custom_objects)

  File "C:\Users\diu\AppData\Local\Continuum\anaconda3\lib\site-packages\tensorflow\python\keras\optimizers.py", line 838, in deserialize
    printable_module_name='optimizer')

  File "C:\Users\diu\AppData\Local\Continuum\anaconda3\lib\site-packages\tensorflow\python\keras\utils\generic_utils.py", line 194, in deserialize_keras_object
    return cls.from_config(cls_config)

  File "C:\Users\diu\AppData\Local\Continuum\anaconda3\lib\site-packages\tensorflow\python\keras\optimizers.py", line 159, in from_config
    return cls(**config)

  File "C:\Users\diu\AppData\Local\Continuum\anaconda3\lib\site-packages\tensorflow\python\keras\optimizers.py", line 471, in __init__
    super(Adam, self).__init__(**kwargs)

  File "C:\Users\diu\AppData\Local\Continuum\anaconda3\lib\site-packages\tensorflow\python\keras\optimizers.py", line 68, in __init__
    'passed to optimizer: ' + str(k))

TypeError: Unexpected keyword argument passed to optimizer: name

1 Ответ

0 голосов
/ 09 июля 2019

Проблема была в синтаксисе.

Колаб был в порядке с:

model = keras.models.load_model("drive/My Drive/Models/my_model.h5")

В Spyder я смог загрузить веса моделей с помощью строки:

model.load_weights("~/Python/Model/my_model.h5")

P.S. приведенный выше код был выполнен после определения модели и оптимизатора

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