我尝试从本地计算机上的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
答案 0 :(得分:0)
问题出在语法上。
Colab可以:
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.1</version>
在Spyder中,我能够通过以下行加载模型权重:
model = keras.models.load_model("drive/My Drive/Models/my_model.h5")
P.S。上面的代码是在定义模型和优化器后执行的
答案 1 :(得分:0)
我认为,Colab使用tensorflow 2.x,并且在您的计算机中您拥有tensorflow1.x。因此存在不匹配。
您可以这样做
在您的本地计算机上,
import tensorflow.keras.models import load_model
model = load_model("my_model.h5", compile = False)
希望如此。