【问题标题】:Tensorflow install fails with "compiletime version 3.5 of module does not match runtime version 3.6"Tensorflow 安装失败,“模块的编译时版本 3.5 与运行时版本 3.6 不匹配”
【发布时间】:2018-04-23 19:49:39
【问题描述】:

我尝试从 pip 安装:

pip3 install --user --no-cache https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-1.4.0-cp36-cp36m-linux_x86_64.whl

然后尝试导入并得到:

 Using TensorFlow backend.
  /usr/lib64/python3.6/importlib/_bootstrap.py:205: RuntimeWarning: 
  compiletime version 3.5 of module 
  'tensorflow.python.framework.fast_tensor_util' does not match runtime 
  version 3.6
    return f(*args, **kwds)

  2017-11-10 09:35:01.206112: I 
  tensorflow/core/platform/cpu_feature_guard.cc:137] Your CPU supports 
  instructions that this TensorFlow binary was not compiled to use: SSE4.1 
  SSE4.2 AVX

问题:

  1. 我不明白为什么车轮显示 3.6,但我收到有关 3.5 的警告

  2. 我想编译以优化我的 cpu,所以我可以使用 pip 从源代码而不是二进制轮安装吗?

【问题讨论】:

  • 在 shell 中发布arch 命令的结果。很可能不是x86_64
  • 是的,arch 说 x86_64,这不是这里的问题。

标签: python linux python-3.x tensorflow pip


【解决方案1】:

RuntimeWarning:模块“tensorflow.python.framework.fast_tensor_util”的编译时版本 3.5 与运行时版本 3.6 不匹配

这是一个known issue,它是prioritized,很快就会修复。现在的解决方法是使用 python 3.5。

更新:

夜间 tensorflow 构建中的问题 has been fixedtf-nightlytf-nightly-gpu 现在有一个为 Linux 从头构建的 python3.6 二进制文件。”

即,以下命令应该适用于 python 3.6:

# tf-nightly or tf-nightly-gpu
pip3 install tf-nightly

您的 CPU 支持未编译此 TensorFlow 二进制文件以使用的指令:SSE4.1 SSE4.2 AVX

这个警告来自于默认的 tensorflow 发行版在编译时没有 CPU 扩展支持(更多关于这个here)。如果你想获得 CPU 优化的 tensorflow 包,你唯一的选择是build it yourself。这有点乏味,但绝对可行。该构建将生成 wheel 文件,您可以使用它来安装它

pip3 install /path/to/the/tensorflow.whl

但是,如果您只是想抑制警告,则可以这样做:

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

【讨论】:

  • 那么,这个警告是无害的,所以我们有能力压制它吗?如果是的话,有什么方法可以永久抑制它,而不是每次我想使用 tensorflow 时都做os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
  • @Kristada673 是的,这个答案中提到了 - stackoverflow.com/a/47227886/712995 从命令行执行 export TF_CPP_MIN_LOG_LEVEL=2
  • 我指的是警告RuntimeWarning: compiletime version 3.5 of module 'tensorflow.python.framework.fast_tensor_util' does not match runtime version 3.6。当我执行export TF_CPP_MIN_LOG_LEVEL=2 时,此警告不会消失。它是无害的吗?如果是,我怎么能忽略它?如果没有,我该如何解决?
  • @Kristada673 我明白了。不,这个警告不会那么容易消失。似乎没有破坏 tf,但某些内部包不会导入,你永远不知道哪个函数可能会失败。所有当前可用的修复都在答案中
【解决方案2】:

我遇到了同样的问题,我可以通过安装 1.3 版本而不是使用 1.4 的 tensorflow 来解决它。使用以下命令执行此操作。

 pip3 install tensorflow==1.3.0

【讨论】:

    【解决方案3】:

    我遇到了同样的问题,我通过以下方式解决了它:

    pip install --ignore-installed tensorflow
    

    出现问题是因为我之前使用 python 3.5 编译了本地版本的 tensorflow(以启用某些 CPU 功能)。我最近安装了python 3.6,新的tensorlfow已经支持了这些CPU特性,所以我只安装了正式版。

    更新

    在对tensorflow 进行一些更新后,上述方法不再有效。

    另一种解决方法是使用anaconda等虚拟环境来创建python3.5环境:

    conda create -n py35 python=3.5
    source activate py35
    pip install tensorflow
    

    要使用 ipython 或 jupyter notebook,请务必在虚拟环境中安装 ipykernel:

    pip install ipykernel
    

    【讨论】:

      【解决方案4】:

      只需安装 1.3 版本的 tensorflow。问题解决了。

      pip install tensorflow==1.3.0
      

      【讨论】:

        【解决方案5】:

        解决方案 1. 我解决这个问题的方法是降级到最新的python3.5,去python.org下载最新的Python3.5,安装它然后使用normalpip3 install tensorflow如果不尝试第二种解决方案应该可以解决问题.

        方案2(也需要从python3.6降级到python3.5 我使用Pycharm 解决了这个问题,我在 pycharm 编辑器中创建了一个项目,然后我将 Project Interpreter 从 python3.6 更改为 python3.5,为此也可以转到 File > Preferences 搜索 Project Interpreter,然后从下拉菜单从 python3.6 更改为 python3.5 点击 Apply 等待操作完成

        然后在同一窗口中使用 + 图标

        将出现一个窗口,您可以在不使用 pip 的情况下轻松搜索和安装 python 库,在我们的例子中,我们需要 tensorflow,所以只需搜索 tensorflow,在搜索结果中选择 tensorflow 并单击安装包,这将安装包

        瞧,你准备好了,现在你的 python3.5 上安装了 tensorflow,记住这一点。

        【讨论】:

          【解决方案6】:

          现在您可以使用低于 3.6.x 的 python 版本,因为现在 Tensorflow 1.4.0 不能与 python 3.6.x 一起正常工作。它肯定会奏效。

          【讨论】:

            【解决方案7】:

            在 ubuntu 17.10 上通过运行解决了这个问题

            $ conda install tensorflow

            【讨论】:

            • 我还发现通过使用python 3.6.3安装虚拟环境然后在安装tensorflow之前激活环境,问题得到解决。 $conda create -n tensorflow python=3.6.3 Anaconda --y$conda update conda$source activate envname$conda install tensorflow
            【解决方案8】:

            我使用 tensorflow 1.4.0,遇到同样的问题。但你现在可以使用 tensorflow 1.6.0。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2012-03-16
              • 2021-07-11
              • 1970-01-01
              • 2018-05-26
              • 2022-01-04
              • 1970-01-01
              • 2016-04-10
              • 1970-01-01
              相关资源
              最近更新 更多