如何降级张量流,可能有多个版本?

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 上的绿色复选框并选择需要的版本

【讨论】:

以上是关于如何降级张量流,可能有多个版本?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用张量流数据集 (TDFS) 作为张量流模型的输入?

什么可能导致张量流导入如此缓慢?

如何将张量流张量切成多个

如何从子目录加载张量流中的数据

阿里三面:Sentinel vs Hystrix 限流对比,如何选择?

LSTM 网络张量流的输入