问题
我在学习GAN的时候,找了一个用TensorFlow1.0写的代码,但是里面有些库在TensorFlow2.0以上版本已经用不了了。
Traceback (most recent call last):
File "I:/python/GAN-master/utils/nets.py", line 2, in <module>
import tensorflow.contrib as tc
ModuleNotFoundError: No module named 'tensorflow.contrib'
警告:tf.contrib模块将不会包含在TensorFlow 2.0中。它的许多子模块已经被集成到TensorFlow core中,或者从tensorflow_io或tensorflow_addons等其他项目中分离出来。有关如何升级的说明,请参阅迁移指南。
解决方案
使用tensorflow1.0 的python环境,并稍微修改代码。
step1 创建tensorflow1.0 的python环境
创建环境
打开anaconda prompt,创建一个tensorflow1.0的环境
conda create --name tensorflow-1.x.x python=3.7
tensorflow-1.x.x是环境的名字,可以自定义,python=3.7是说准备创建python 3.7的环境。
激活环境
创建好新的环境后,需要将其激活,如下:
activate tensorflow-1.x.x
安装模块
这个时候就可以根据需要,安装自己的tensorflow版本了,我们这里选择安装tensorflow=1.15.0,命令如下:
conda install tensorflow==1.15.0
使用新环境
如果不太明白上面的步骤,可以查看这篇文章:
step2
换了环境之后,发现代码还是会报错。这是因为tensorflow
文件夹下没有这些包,这些包已经转移到了tensorflow_core
下面。
将代码中的tensorflow
改成tensorflow_core
就行了。
新问题
tensorflow_core中的部分子文件代码如下:
但是tensorflow目录下没有这些包。导致运行报错。