如何降级张量流,可能有多个版本?
Posted
技术标签:
【中文标题】如何降级张量流,可能有多个版本?【英文标题】:How to downgrade tensorflow, multiple versions possible? 【发布时间】:2018-01-26 17:56:07 【问题描述】:我已经安装了 tensorflow 1.2.1,我需要将它降级到 1.1 版才能运行特定的教程。安全的方法是什么?我正在使用 Windows 10,python 3.5。 TensorFlow 是用 pip3 安装的,但是“pip3 show tensorflow”返回空白。
是否可以在同一个操作系统上拥有多个版本的 tensorflow?
【问题讨论】:
【参考方案1】:Pip 允许指定版本
pip install tensorflow==1.1
【讨论】:
我需要先卸载1.2版本吗? pip 卸载 tensorflow 不起作用。 @Yee 不,你不必先卸载它,pip 会直接这样做。但是现在我也无法重新安装 tensorflow,所以不确定问题是什么...... 如果你有 tensorflow 2,那么运行它会移除 tensorflow 2 并安装一个较低的版本。 这仅适用于给定的版本集。在我的情况下(很多以后),这只是(from versions: 2.2.0rc1, 2.2.0rc2, 2.2.0rc3, 2.2.0rc4, 2.2.0, 2.3.0rc0, 2.3.0rc1)
【参考方案2】:
是否可以在同一个操作系统上拥有多个版本的 tensorflow?
是的,您可以为此使用 python 虚拟环境。来自docs:
虚拟环境是一种通过为不同项目创建虚拟 Python 环境来将不同项目所需的依赖项保存在不同位置的工具。它解决了“项目 X 依赖于版本 1.x 但项目 Y 需要 4.x”的困境,并保持您的全局站点包目录清洁和可管理。
安装完virtualenv(见docs)后,您可以为教程创建一个虚拟环境并在其中安装您需要的tensorflow版本:
PATH_TO_PYTHON=/usr/bin/python3.5
virtualenv -p $PATH_TO_PYTHON my_tutorial_env
source my_tutorial_env/bin/activate # this activates your new environment
pip install tensorflow==1.1
PATH_TO_PYTHON
应该指向系统上安装 python 的位置。
当你想使用其他版本的 tensorflow 时执行:
deactivate my_tutorial_env
现在您可以再次使用系统上已安装的 tensorflow 版本。
【讨论】:
【参考方案3】:我发现了 anaconda 的乐趣:https://www.continuum.io/downloads。它允许多个虚拟环境托管不同版本的 phyton 和 tensorflow。例如下面用pyton3.5和tensorflow1.1创建一个虚拟环境
C:> conda create -n tensorflow1.1 python=3.5
C:> activate tensorflow1.1
(tensorflow1.1)
C:> pip install --ignore-installed --upgrade https://storage.googleapis.com/tensorflow/windows/gpu/tensorflow_gpu-1.1.0-cp35-cp35m-win_amd64.whl
瞧,创建了一个虚拟环境。
【讨论】:
【参考方案4】:如果您在 windows 上使用 python3,那么您也可以这样做
pip3 install tensorflow==1.4
您可以从“(从版本:1.2.0rc2、1.2.0、1.2.1、1.3.0rc0、1.3.0rc1、1.3.0rc2、1.3.0、1.4.0rc0、1.4.0rc1、 1.4.0、1.5.0rc0、1.5.0rc1、1.5.0、1.5.1、1.6.0rc0、1.6.0rc1、1.6.0、1.7.0rc0、1.7.0rc1、1.7.0)"
当我想从 1.7 降级到 1.4 时,我这样做了
【讨论】:
我收到此错误:找不到满足要求 tensorflow==1.6.0rc1 的版本(来自版本:1.13.0rc1、1.13.0rc2、1.13.1、1.14.0rc0、1.14。 0rc1, 1.14.0, 2.0.0a0, 2.0.0b0, 2.0.0b1) 错误:没有找到 tensorflow==1.6.0rc1 的匹配分布 这仅适用于给定的版本集。在我的情况下(很多以后),这只是(from versions: 2.2.0rc1, 2.2.0rc2, 2.2.0rc3, 2.2.0rc4, 2.2.0, 2.3.0rc0, 2.3.0rc1)
【参考方案5】:
您可以尝试使用--no-cache-dir
和-I
的选项来覆盖之前版本的缓存并安装新版本。例如:
pip3 install --no-cache-dir -I tensorflow==1.1
然后使用以下命令查看tensorflow的版本:
python3 -c ‘import tensorflow as tf; print(tf.__version__)’
它应该显示安装了正确的版本。
【讨论】:
对我来说,这不起作用,但简单地运行pip install tensorflow==[version]
确实可以降级。
你的意思是这不起作用? --no-cache-dir -I 选项没有帮助覆盖以前版本的缓存?通常一个没有选项的简单 pip install 命令(如您和上面提到的其他解决方案)会起作用。但是,只是在某些系统中,由于前一个会话的缓存在那里,它不允许安装旧版本。这就是为什么我建议使用上述选项来覆盖缓存。
这仅适用于给定的版本集。在我的情况下(很多以后),这只是(from versions: 2.2.0rc1, 2.2.0rc2, 2.2.0rc3, 2.2.0rc4, 2.2.0, 2.3.0rc0, 2.3.0rc1)
【参考方案6】:
如果你有 anaconda,你可以安装想要的版本,conda 会自动为你降级当前的包。
例如:
conda install tensorflow=1.1
【讨论】:
注意:这需要anaconda。【参考方案7】:注意:您不能安装任意版本的 tensorflow,它们必须与您的 python 安装相对应,这里的大多数答案都没有传达这一点。对于current wheels like here(来自上面的this answer)也是如此。对于此示例,在 url 中找到的 cp35-cp35m
暗示它适用于 Python 3.5.x
可以在here on github 找到大量不同***/兼容性的列表。 通过使用它,您可以降级到几乎所有可用的版本,并结合相应的 for python。例如:
pip install tensorflow==2.0.0
(请注意,在我的例子中,在安装 Python 3.7.8 和 3.8.3 之前,你会得到这个:
ERROR: Could not find a version that satisfies the requirement tensorflow==2.0.0 (from versions: 2.2.0rc1, 2.2.0rc2, 2.2.0rc3, 2.2.0rc4, 2.2.0, 2.3.0rc0, 2.3.0rc1)
ERROR: No matching distribution found for tensorflow==2.0.0
这也适用于其他不兼容的组合。)
这对于不支持 AVX 的旧 CPU 或计算能力太低的 GPU 也应该很有用。
如果您只需要最新版本(在您的问题中听起来不像),则可以在 this tensorflow page 上找到当前车轮包的 url 列表。来自SO-answer。
注意:This link to a list 的不同版本对我不起作用。
【讨论】:
更多有用的信息可以在这个答案中找到:***.com/a/63102518/4575793【参考方案8】:点击已安装 tensorflow 上的绿色复选框并选择需要的版本
【讨论】:
以上是关于如何降级张量流,可能有多个版本?的主要内容,如果未能解决你的问题,请参考以下文章