关于Tensorflow2降版本tf1问题

  • Post author:
  • Post category:其他


最近在跑深度学习代码发现,有些代码是用tf1写的,而我的机子安装的是tf2,tf1到tf2还是有比较多的变化的,具体的版本变化自行百度,不贴出来了,这篇文章主要是提供一个解决办法

怎么知道自己的报错是否是因为版本问题呢?我这里举一些报错出来吧:

module ‘tensorflow’ has no attribute ‘contrib’

module ‘tensorflow’ has no attribute ‘app’

module ‘tensorflow’ has no attribute ‘flag’

……

解决过程中也是去搜索了很多方法,(搞了一整天qaq),有很多方法在我这里行不通,但是还是列举一下,(万一是我的人品问题呢= =|)

先说一下我的环境:

python3.7   tensorflow2.3  anaconda  pycharm  Linux(如果你的是Windows下面的方法也可以用,本质都差不多)

那现在我要做的就是将tensorflow2.3换成1.x版本,这里我换的是1.7版本,如果想要两个环境共存的话,就在anaconda里创建一个虚拟环境,在pycharm中切换,文章最后我会说到,

这里先说一下改版本的方法,其中我使用的是第4种方法成功的,其他的办法大家自己可以试试行不行得通

01

在代码前面加上如下代码

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

(但是我这里也找不到compat= =,用了很多办法也没解决)

02

查看官方文档发现其实升级之后很多原来tf1的包在tf2集成到了其他包里,具体查看官方文档:

https://tensorflow.google.cn/versions/r1.15/api_docs/python/tf/contrib?hl=en
https://tensorflow.google.cn/guide/migrate#a_note_on_slim_contriblayers

但是因为我还要用到其他包,又不能一个一个去查看他们集成到那里去了,所以我就没有细看这种方法,感兴趣的也可以自己百度。

(关于自己去改代码,写函数,有能力的可以尝试,像我这种菜鸡就不考虑了= =)


下面就是卸载tf2重新安装tf1了:

【温馨提示】这里还是建议大家谨慎选择,不要最后没换成原来的还用不了了= =,保证自己原来的2.x版本能安装回去再去尝试卸载安装其他版本改配置等

03

不知道直接从pycharm里面下载行不行,因为我这边网速极慢,所以等了很久也没有反应= =,网速快的可以尝试一下,(不行当我没说)

File——>Settings——>

(这里是我已经换好版本之后的截图了,原来的是2.3.1)

然后就是漫长的等待时刻……

04

写在前面:如果大家搜索到那种pip install后加链接直接下载的,能成功也可以,原理上是一样的,只不过有的机子链接可能打不开。

所以我就选择了一种最简单的安装办法,下载下来whl安装^ ^

先卸载掉原来的tf2,

pip uninstall tensorflow

然后

传送门

点击Release history,找到你想要下载的版本,这里我选择1.7.0版本,然后点击Download files,选择和自己环境相匹配的whl文件:

因为我的python环境是3.7,所以将cp36-cp36m换成cp37-cp37m,然后到相应的下载文件夹打开终端进行安装:

pip install tensorflow-1.7.0-cp37-cp37m-manylinux1_x86_64.whl

顺利的话就直接成功了,我是下载了蛮多版本,有些安装的时候有报错,搜索之后也没解决,然后就多用了几个版本尝试= =,过程很艰辛,就不说了,如果大家在这一步安装遇到报错就自行百度或者换个版本试试吧


如何创建虚拟环境让TF1和TF2并存

这里要注意不是说让两个并存在一个环境里,只能是说在同一台机子上,想用哪个就切换一下虚拟环境就行了。

我在这里就先贴一个我觉得不错的博客上来,因为我自己还没有做,这个坑以后再填= =。


conda虚拟环境下tf1和tf2版本共存问题及解决方案

(孩子傻了,配了两天,太累了,跑个代码太不易了0v0,我得去跑代码了,不能再配环境了)



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