在学习中文实体识别的过程中,参考很多以前的ltsm-crf代码,以及谷歌的开源bert代码,过程中都遇到了该问题
简单查阅可得这是因为TensorFlow2版本中删除了contrib包所导致的问题,其中有部分大佬给出的解决办法是降低版本,但是我用的pycharm,pip TensorFlow1.x版本时会报错,应该是python3.9或者pycharm和1.x版本的TensorFlow不适配的原因。
所以只好找寻不降低版本的解决方法
只能一个一个找需要替换的包,目前我遇到的:
1.from tensorflow.contrib import rnn
改为:from tensorflow.python.ops import rnn
2.from tensorflow.contrib import crf
先下载tensorflow_addons: pip install tensorflow_addons
改为:from tensorflow_addons.text import crf
3.错误module ‘tensorflow_core._api.v2.train‘ has no attribute ‘Optimizer‘
将
class AdamWeightDecayOptimizer(tf.train.Optimizer)
改为
class AdamWeightDecayOptimizer(tf.compat.v1.train.Optimizer)
4.from tensorflow.contrib.layers.python.layers import initializers
直接改为tensorflow import initializers
后续查找找到一个函数对应表
官方:community/20180907-contrib-sunset.md at master · tensorflow/community (github.com)
有大佬整理:(10条消息) tensorflow1.x和tensorflow2.0两个版本的函数对比表_Ooo。的博客-CSDN博客
全部解决好之后我以为可以成功了,结果...
吐了