在用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

经验分享 程序员 微信小程序 职场和发展