当我尝试修改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行,in编译** kwargs)文件“C:\ Users \ nsugiant \ AppData \ Local \ Programs \ Python \ Python35 \ lib \ site-packages \ tensorflow \ python \ keras_impl \ keras \ engine \ training.py”,第632行,编译self.optimizer = optimizers.get(optimizer)文件“C:\ Users \ nsugiant \ AppData \ Local \ Programs \ Python \ Python35 \ lib \ site-packages \ tensorflow \ python \ keras_impl \ keras \ optimizers.py”,第788行,在get raise ValueError('无法解释优化器标识符:',标识符)ValueError:('无法解释优化器标识符:',)
4 回答
我最近遇到了类似的问题 .
原因是您使用tensorflow.python.keras api用于模型和图层以及keras.optimizers用于SGD . 它们是张量流和纯keras的两种不同的keras版本 . 他们无法一起工作 . 您必须将所有内容更改为一个版本 . 然后它应该工作 . :)
希望这可以帮助 .
尝试将导入行更改为
你的进口对我来说有点奇怪 . 也许你可以详细说明一下 .
请给
我在这里有点迟了,你的问题是你在代码中错过了Tensorflow keras和keras API . 优化器和模型应来自相同的层定义 . 使用Keras API完成以下所有操作:
我在这个例子中使用过adam . 请按照上面的代码使用相关的优化器 .
希望这可以帮助 .