类型错误:weight_decay 不是有效参数,“optimizer_experimental.Optimizer”的 kwargs 应该为空

ayp*_*yps 11 typeerror spyder keras tensorflow

运行tensorflow.keras.models.load_model('')时出现上述错误

我在 Spyder 环境中研究张量流,没有遇到任何问题。由于我不断收到提示(每当启动 Spyder 时)Spyder 的新版本 5 可用,因此我卸载了现有的 Spyder 版本并安装了最新版本。事实上,我卸载了 Anaconda 本身并重新安装了它(因为上述问题仍然存在)。然而,当运行包含加载现有保存的 LSTM 模型的代码的相同程序时,我收到以下错误。

Prediction_model = tensorflow.keras.models.load_model('') 模型保存为 .h5 文件。

运行load_model命令时的完整错误字符串如下:

File "C:\Users\ayapp\anaconda3\lib\site-packages\keras\utils\traceback_utils.py", line 67, in error_handler
    raise e.with_traceback(filtered_tb) from None

  File "C:\Users\ayapp\anaconda3\lib\site-packages\keras\optimizers\optimizer_experimental\optimizer.py", line 94, in _process_kwargs
    raise TypeError(f"{k} is not a valid argument, kwargs should be empty "

TypeError: weight_decay is not a valid argument, kwargs should be empty  for `optimizer_experimental.Optimizer`.
Run Code Online (Sandbox Code Playgroud)

当我使用早期版本的 Spyder 时,从未遇到过这个问题。

有人能提出解决方案吗?

Chr*_*lez 16

使用 model =tensorflow.keras.models.load_model(fileName,compile=False) 然后 model.compile(无论这里的设置) 这对我有用


Gau*_*kar 6

为了更加清晰,重写@Christian Velez 的答案。

示例代码:

model = Sequential()
...
model.compile(//some arguments) #Copy This Line
model.save(//path)
Run Code Online (Sandbox Code Playgroud)

解决方案:

model = load_model(//path, compile=False)
model.compile(//some arguments) #Paste it here
Run Code Online (Sandbox Code Playgroud)


Sun*_*n P 5

确保经过训练的模型和您尝试预测的环境的张量流版本相同。这对我有用