当我尝试在 Keras 中修改 SGD 优化器的学习率参数时出现此错误。我是不是遗漏了代码中的某些内容,或者我的 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'])*
这是错误消息:
追溯(最近调用最后):文件“C:\TensorFlow\Keras\ResNet-50\test_sgd.py”,第 10 行,在 model.compile(loss=‘mean_squared_error’, optimizer=SGD(lr=0.01), metrics =[‘accuracy’]) 文件“C:\Users\nsugiant\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\keras_impl\keras\models.py”,第 787 行,编译**kwargs) 文件“C:\Users\nsugiant\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\keras_impl\keras\engine\training.py”,第 632 行,自编译.optimizer = optimizers.get(optimizer) 文件“C:\Users\nsugiant\AppData\Local\Programs\Python\Python35\lib\site-packages\tensorflow\python\keras_impl\keras\optimizers.py”,第 788 行, in get raise ValueError(‘Could not interpret optimizer identifier:’, identifier) ValueError: (‘无法解释优化器标识符:’, )
原文由 Nehemia 发布,翻译遵循 CC BY-SA 4.0 许可协议
原因是您正在使用
tensorflow.python.keras
API 用于模型和图层,而keras.optimizers
用于 SGD。它们是 TensorFlow 和纯 Keras 的两个不同 Keras 版本。他们不能一起工作。您必须将所有内容更改为一个版本。然后它应该工作。