在用bert时遇到的bug以及解决记录
(1)cannot import name to_categorical from keras.utils
原代码位置:
from keras.utils import to_categorical
解决:版本问题,把头改成这样:
from keras import utils as np_utils #调用时 np_utils.to_categorical()
(2)cannot import name Adam from keras.optimizers
原代码:
from keras.optimizers import Adam opt =Adam(lr=lr,decay =lr/epochs)
解决:keras库更新后无法按照原方式导入包
修改为:
from keras.optimizers import adam_v2 opt = adam_v2.Adam(learning_rate =lr ,decay=lr/epochs)
(3)No module named keras.utils.training_utils
原代码:
from keras.utils.training_utils import multi_gpu_model
解决:是因为模块位置变了,所以改为:
from tensorflow.keras.utils import multi_gpu_model
(4)from keras.backend.tensorflow_backend import set_session
ModuleNotFoundError: No module named keras.backend.tensorflow_backend; keras.backend is not a package
原代码:
from keras.backend.tensorflow_backend import set_session set_session(tf.Session(config=config))
解决:因为2.0以上的版本已经没有set_session
去掉import,直接调用:
tf.compat.v1.keras.backend.set_session(tf.compat.v1.Session(config=config))
(5)太多版本问题,直接降低安装了低版本的tensorflow
最低只能安装2.2.0的tensorflow,对应2.3.1的keras