我尝试运行此代码,但出现此错误,请任何人过去遇到相同的错误:
sgd = optimizers.SGD(lr = 0.01, decay = 1e-6, momentum = 0.9, nesterov = True)
Run Code Online (Sandbox Code Playgroud)
model.compile(optimizer = sgd, loss = OBJECTIVE_FUNCTION, metrics = LOSS_METRICS)
fit_history = model.fit_generator(
train_generator,
steps_per_epoch=STEPS_PER_EPOCH_TRAINING,
epochs = NUM_EPOCHS,
validation_data=validation_generator,
validation_steps=STEPS_PER_EPOCH_VALIDATION,
callbacks=[cb_checkpointer, cb_early_stopper]
)
model.load_weights("../working/best.hdf5")
Run Code Online (Sandbox Code Playgroud)
现在我有这个错误:
File "", line 1, in runfile('C:/Users/ResNet50VF72.py', wdir='C:/Users/RESNET')
File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 705, in runfile execfile(filename, namespace)
File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile exec(compile(f.read(), filename, 'exec'), namespace)
File "C:/Users/RESNET/ResNet50VF72.py", line 110, in model.compile(optimizer = sgd, loss = OBJECTIVE_FUNCTION, metrics = LOSS_METRICS)
File "C:\ProgramData\Anaconda3\lib\site-packages\keras\engine\training.py", line 96, in compile self.optimizer = optimizers.get(optimizer)
File "C:\ProgramData\Anaconda3\lib\site-packages\keras\optimizers.py", line 793, in get str(identifier))
ValueError: Could not interpret optimizer identifier : <tensorflow.python.keras.optimizers.SGD object at 0x0000013887021208>
Run Code Online (Sandbox Code Playgroud)
我对另一个优化器有同样的问题:
ValueError: Could not interpret optimizer identifier: <tensorflow.python.keras.optimizers.Adam object at 0x7f3fc4575ef0>
Run Code Online (Sandbox Code Playgroud)
这是因为我使用 keras 而不是 tensorflow.keras 创建了我的模型,解决方案是从:
from keras.models import Sequential
Run Code Online (Sandbox Code Playgroud)
到
from tensorflow.keras.models import Sequential
Run Code Online (Sandbox Code Playgroud)
或者也可以只使用 keras 而不是 tensorflow.keras(我混合了旧代码和新代码),似乎是两者的混合导致了问题(这不足为奇)。
| 归档时间: |
|
| 查看次数: |
4637 次 |
| 最近记录: |