1. 问题
在调试Bert的时候,总是出现以下报错,基本上都是TensorFlow版本过高的原因:
AttributeError: module 'tensorflow' has no attribute 'xxxx'
如果已经安装了高版本tensorflow,不想降低版本,可以采取以下办法 ? ?
2. 解决方法
TensorFlow官网 ↑ 以前傻乎乎一个个百度,效率慢。直接进官方文档查询更快。 ? ?
3. 示例
报错:AttributeError: module ‘tensorflow’ has no attribute ‘assert_less_equal’ 查询官网:(侧边框输入函数名或者部分模块名,函数名一般不会变化)
- 第一个结果:tf.compat.v1.assert_less_equal:tf保留的1.0版本函数。一般不会出错
- 第二个结果:tf.debugging.assert_less_equal:tf2.0版本函数(重新放置到其他版块)可能会更改
? 一般来说,两个途径都可以用,基本上区别不大。有些时候,函数会被优化,选择v1版的少些麻烦。 ? ?
4. 附加一个官网查不到的对应情况 tf.contrib.layers.layer_norm
layer_norma = tf.keras.layers.LayerNormalization(axis = -1)
layer_norma(input_tensor)
如果需要更改bert的modeling.py,参考下面的链接👇 来源:layer_norm2.0版本
|