Anaconda:ValueError:无法解释优化器标识符

问题描述

我尝试运行此代码

from keras.models import Sequential
from keras.layers import Dense,Activation
from keras.optimizers import SGD

我收到此错误

ImportError: cannot import name 'SGD' from 'keras.optimizers' (C:\Users\user\AppData\Roaming\Python\python38\site-packages\keras\optimizers.py)

之前尝试用python学习keras的时候没有遇到这个问题,后来遇到了其他的错误。我更新了所有插件并重新安装anaconda3后,遇到了这个问题。

我参考查到的资料修改代码内容,之后就没有报错了。

from keras.models import Sequential
from keras.layers import Dense,Activation
from tensorflow.keras.optimizers import SGD

但后来我遇到了以下错误

model.compile(loss='mse',optimizer=SGD(lr=0.1),metrics=['accuracy'])

ValueError: Could not interpret optimizer identifier: <tensorflow.python.keras.optimizer_v2.gradient_descent.SGD object at 0x0000023987198520>

以上两个问题是否与连接有关? from keras.optimizers import SGD错误在哪里? model.compile(loss='mse',metrics=['accuracy']) 我应该如何修改它?

请知道的前辈帮忙指出问题和解决方法,谢谢。

解决方法

如果您想使用 tf.keras 中的任何内容(例如 SGD),您应该始终使用 tf.keras 中的所有内容。 IE。 tf.keras.modelstf.keras.layers

这是对 TF2 的建议。 请参阅:https://www.tensorflow.org/tutorials/quickstart/beginner