ModuleNotFoundError: No module named ‘tensorflow.contrib‘ 关于TensorFlow2中没有contrib包的解决办法

在学习中文实体识别的过程中,参考很多以前的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博客

全部解决好之后我以为可以成功了,结果...

吐了

 

你可能感兴趣的:(tensorflow,python,pycharm)