使用tensorflow 2.0、keras2.8时,两个库若即若离,互相干扰,导致了很多报错。
在使用优化器SGD时,尝试几种方法。
from keras.optimizer_v1 import sgd
model.compile(loss="mse", optimizer=sgd(lr=1e-6, momentum=0.9))
报错
from tensorflow.python.keras.optimizer_v1 import sgd
model.compile(loss="mse", optimizer=sgd(lr=1e-6, momentum=0.9))
还是报错
import tensorflow
model.compile(loss="mse", optimizer=tf.keras.optimizers.SGD(lr=1e-6, momentum=0.9))
正确
虽然新版本keras移到了tensorflow.python下,但是SGD优化器好像没移过去,而RMSprop则使用新版本方法。
详情参考Tensorflow V2.80 SGD官方文档https://tensorflow.google.cn/api_docs/python/tf/keras/optimizers/SGD