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

博主在学习中文实体识别时,遇到因TensorFlow 2移除contrib包导致的问题。通过查阅资料,尝试不降低TensorFlow版本的解决方法,包括替换import语句,如将`tensorflow.contrib`替换为`tensorflow.python.ops`,安装`tensorflow_addons`以使用`crf`模块,以及调整`tf.train.Optimizer`为`tf.compat.v1.train.Optimizer`等。尽管解决了一些问题,但仍然存在未解决的挑战。

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

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

吐了

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值