当我试图修改Keras中SGD优化器的learning rate参数时,出现了这个错误。我的代码中是否遗漏了某些内容,或者我的Keras安装不正确?
这是我的代码:
from tensorflow.python.keras.models import Sequential
from tensorflow.python.keras.layers import Dense, Flatten, GlobalAveragePooling2D, Activation
import keras
from keras.optimizers import SGD
model = Sequential()
model.add(Dense(64, kernel_initializer='uniform', input_shape=(10,)))
model.add(Activation('softmax'))
model.compile(loss='mean_squared_error', optimizer=SGD(lr=0.01), metrics= ['accuracy'])*
下面是错误消息:
Traceback (most recent call last): File "C:\TensorFlow\Keras\ResNet-50\test_sgd.py", line 10, in model.compile(loss='mean_squared_error', optimizer=SGD(lr=0.01), metrics=['accuracy']) File "C:\Users\nsugiant\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\keras_impl\keras\models.py", line 787, in compile **kwargs) File "C:\Users\nsugiant\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\keras_impl\keras\engine\training.py", line 632, in compile self.optimizer = optimizers.get(optimizer) File "C:\Users\nsugiant\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\keras_impl\keras\optimizers.py", line 788, in get raise ValueError('Could not interpret optimizer identifier:', identifier) ValueError: ('Could not interpret optimizer identifier:', )
我最近也遇到过类似的问题。
原因是您正在使用tensorflow.python.keras api作为模型和层,使用keras.optimizers作为SGD。它们是tensorflow和纯keras的两个不同的keras版本。他们不能一起工作。你必须把所有的东西都改成一个版本。那就应该有用了。:)
希望这有帮助。
我来晚了,你的问题是你的代码中混合了Tensorflow keras和keras API。优化器和模型应该来自同一层定义。使用Keras API进行以下所有操作:
我在这个例子中使用了亚当。请按照上面的代码使用相关的优化器。
希望这有帮助。
这个问题主要是由于版本不同造成的。tensorflow.keras版本可能与keras不同。 从而导致了@Priyanka提到的错误。
对我来说,每当出现这个错误时,我都会以字符串的形式传入优化器的名称,然后由后端计算出来。 例如代替
或者
我知道
相关问题 更多 >
编程相关推荐