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

  • Post author:
  • Post category:其他


运行报错:

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的迁移说明:


官方升级迁移说明



版权声明:本文为putyourheart原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。