No module named ‘tensorflow.contrib‘问题解析以及tensorflow的卸载安装和向下兼容
后台-插件-广告管理-内容页头部广告(手机) |
0、问题原因
TensorFlow 2.0中contrib被弃用
1、卸载原Tensorflow,重新安装
卸载
在开始安装前,如果你的电脑装过tensorflow,请先把他们卸载干净,包括依赖的包(tensorflow-estimator、tensorboard、tensorflow、keras-applications、keras-preprocessing),不然后续安装了tensorflow-gpu可能会出现找不到cuda的问题。
使用pip卸载的命令如下:
- 1
- 2
- 3
重装
(1)激活自己的donda环境
(2)查看当前已有的TensorFlow版本
- 1
(3)使用conda命令进行安装
conda install tensorflow-gpu==1.14.0- 1
(4)查看是否可以使用
首先进入自己的donda虚拟环境,在激活python
- 1
- 2
- 3
安装完成!过程比较顺利····
2、不降级,向下兼容
通过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()- 1
- 2
然后继续通过代码执行检查错误,大部分的包都会被解决,一部分包被改名了,但也有一小部分包、库在TF2.0中被移除,只能求助于其他包,部分如下:
tensorflow.contrib.layers.fully_connected
该包在2.0中被删除,通过安装tf_slim包解决,如下:
- 1
安装后,在代码中导入该包即可:
import tf_slim- 1
可能原处使用的代码为:
import tensorflow.contrib.layers as tf_layers tf_layers.fully_connected(xxxx)- 1
- 2
可以替换为:
import tf_slim as tf_layers- 1
tf.random_normal
tf.random_normal报错,替换为tf.random.normal即可。
注:将下划线_变成了.
其他包有待发现,可以参考Tensorflow2.0的迁移说明:
链接: Tensorflow
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。
在线投稿:投稿 站长QQ:1888636
后台-插件-广告管理-内容页尾部广告(手机) |