使用tensorflow == 2.4.1 keras == 2.3.1
代码
报错AttributeError: module 'tensorflow.python.framework.ops' has no attribute '_
原因:
bert4keras文档
支持tf+keras和tf+tf.keras,后者需要提前传入环境变量TF_KERAS=1。
当使用tf+keras时,建议2.2.4 <= keras <= 2.3.1,以及 1.14 <= tf <= 2.2,不能使用tf2.3+。
keras 2.4+可以用,但事实上keras 2.4.x基本上已经完全等价于tf.keras了,因此如果你要用keras 2.4+,倒不如直接用tf.keras。
注意应该在导入之前就设置TF_KERAS=1
import os
os.environ["TF_KERAS"] = '1'
from bert4keras.models import build_transformer_model
from bert4keras.tokenizers import Tokenizer
import numpy as np
后续错误
报错AttributeError: 'tuple' object has no attribute 'layer'
改正:
import keras
# 改为
import tensorflow.keras as keras