module ‘tensorflow’ has no attribute ‘contrib’个人简要思路

今天看到一个学弟在和contrib斗智斗勇就莫名想笑,也有点回顾contrib这个背锅侠到底为他的子孙背了多少锅,本来也想多说一会,但考虑到大伙着急找答案的心情,等我说完思路再说。

1最简单的版本代换 也是大家最容易看到的,把tensorflow.compat.v1作为tf,或者在已有的tf上加个compat.v1,再看情况加一个disable_eager_excution()这个可以解决大部分v1被v2继承后的问题,比如app

2第二种继承是继承了,但是啊,他换路径,阿哲,我怎么找得到,别着急,我们先把这个函数复制到tensorflow路径下,对比一下确定是不是哪个文件,如果是,再根据路径改文件,所谓的函数导入也不过是把斜线变成了逗号罢了。

3前面三种基本能解决大部分问题,不过还是有些是你再怎么compat.v1也修改不了的,你在tensorflow里翻遍了也找不到,为什么呢,因为人家都跑出去单打独斗了,比如contrib下面的slim,就一点不顾旧情,变成tf_slim,还有一些是被tensorflow抛弃了,比如estimator下面的replicate_model_fn,直接被弃用,我当时也是被气得够呛,好好装好的环境,就因为这个彻底报废,安安心心去tf1,还有一些了tf.contrib.rnn现在就换成了tf.conpat.v1.nn.rnn。遇到这些问题大家就像遇到背英语单词变形的不规则形式一样先记着。

思路大致说完了,终于可以灌水了,这些问题,都是tensorflow向下不兼容导致的,这讨厌的tensorflow真不负责,狗都不用,哎打工所在,不得不用,想contrib当初tf1.0时代的大内总管,多风光,现在番号被撤了不说了,slim等义子跟他恩断义绝,出去单打独斗,被新皇帝tf2废除丢弃不说,死了还要当背锅侠,谁犯错了都找它,我也是有感于很多老哥出现很特殊的错误也都挂着conrib的名头,让大伙查找很麻烦,给大家一个大致的思路,不用普通问题花太多时间搜索,当然也有很多遗漏,个人能力所限,望见谅。作为一个被这些破问题烦透的人,给大伙一点建议,如果只是复现代码,没必要追求最新版tf,用tf1就好。如果复现之后还需要继续操作,那没办法只能tf2,那就少把t...w.compat.v1作为tf,尽可能使用代换法和添加法,小铁头娃课堂今天结束了,拜拜。

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个错误提示意味着 TensorFlow 模块中没有 contrib 属性。在一些较新版本的 TensorFlow 中,contrib 模块的一些功能已经被整合到 TensorFlow 的核心模块中了。如果你在代码中直接使用了 contrib 模块的某些功能,可以尝试使用其他替代方法或更新 TensorFlow 版本来解决这个问题。 ### 回答2: Tensorflow是一个流行的深度学习框架,广泛应用于机器学习、图像处理、自然语言处理等领域。当我们在使用Tensorflow中遇到“module tensorflow has no attribute contrib”的错误时,通常是由于Tensorflow版本更新导致的。 Tensorflow中的contrib是指贡献代码库,它包括一些实验性质的模块和工具,开发者可以通过这些模块和工具扩展Tensorflow的功能。而在Tensorflow的新版本中,为了提高代码质量和稳定性,一些contrib模块已经被整合到了Tensorflow的核心代码中,因此在导入Tensorflow时无需再使用contrib。 如果我们在代码中仍旧使用了此类旧版本中的contrib模块,在新版本中就会导致“module tensorflow has no attribute contrib”的错误。 解决此错误的方法是,首先确认自己使用的Tensorflow版本,如果是较新的版本,则无需使用contrib,可以将代码中的contrib模块替换为Tensorflow的核心模块即可。如果存在依赖旧版本的contrib代码,可以安装旧版本的Tensorflow,或者手动下载contrib模块并将其添加到Python的搜索路径中。 总之,遇到“module tensorflow has no attribute contrib”的错误,我们需要确认自己使用的Tensorflow版本,并根据版本的不同,采取相应的解决措施。 ### 回答3: 在TensorFlow 2.x版本中,模块tensorflow.contrib被移除了,这也是出现“module tensorflow has no attribute contrib”错误的原因之一。 在TensorFlow 2.x版本中,会按照不同的功能分散到不同的模块中,如TensorFlow Data、TensorFlow IO、TensorFlow Addons等,而不再作为一整个contrib模块包含在TensorFlow中。 如果你的代码中使用了tensorflow.contrib模块,建议升级到TensorFlow 2.x版本后对代码进行修改,相应的功能模块可以使用tensorflow-addons或者其他标准的TensorFlow模块进行替代。 另外需要注意的是,TensorFlow 2.x版本对于一些函数名称和参数有所变化,如果你从TensorFlow 1.x版本升级到TensorFlow 2.x版本,也需要对代码进行相应的修改。建议在升级之前仔细阅读TensorFlow官方文档的迁移指南,以便更好地适应新版本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值