ModuleNotFoundError: No module named ‘tensorflow.contrib‘ 解决方法

运行报错:

import tensorflow.contrib.layers as layers
ModuleNotFoundError: No module named 'tensorflow.contrib'

原因及解决方法:
TensorFlow 2.0中contrib被弃用,尝试安装旧版tensorflow:

pip install tensorflow==1.14.0     # CPU版本,GPU略

不降级方法

时过境迁,TF1.0实在是陈旧,且一些计算机实验环境下,如果有显卡CUDA加速等,不适合对TF进行降级处理,因此这里给出一些在TF2.0版本下使用TF1.0一些包的方法。
(评论区@Rex~也提供了一些不降级的处理方法

通过Python执行具体的代码,依次达到TF2.0下的对TF1.0适配,当出现
No module named 'tensorflow.xxx'
类似错误时,先检查代码文件开头import语句,如果是import tensorflow as tf,则修改为:

import tensorflow.compat.v1 as tf
tf.compat.v1.disable_eager_execution()

然后继续通过代码执行检查错误,大部分的包都会被解决,一部分包被改名了,但也有一小部分包、库在TF2.0中被移除,只能求助于其他包,部分如下:

tensorflow.contrib.layers.fully_connected

该包在2.0中被删除,通过安装tf_slim包解决,如下:

pip install tf-slim

安装后,在代码中导入该包即可:

import tf_slim

可能原处使用的代码为:

import tensorflow.contrib.layers as tf_layers

tf_layers.fully_connected(xxxx)

可以替换为:

import tf_slim as tf_layers

tf.random_normal

tf.random_normal报错,替换为tf.random.normal即可。
注:将下划线_变成了.


其他包有待发现,可以参考Tensorflow2.0的迁移说明:
官方升级迁移说明

  • 38
    点赞
  • 122
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值