Tensorflow安装失败,提示“编译时的3.5版本模块与运行时的3.6版本不匹配”。

22

我尝试从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 - Nepho
是的,arch显示x86_64,但这不是问题所在。 - nbecker
8个回答

17

警告:模块'tensorflow.python.framework.fast_tensor_util'的编译时版本3.5与运行时版本3.6不匹配。

这是一个已知问题,已得到优先处理,很快就会得到解决。目前的解决方法是使用Python 3.5。

更新:

此问题已得到解决在夜间构建的TensorFlow版本中:"tf-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扩展支持的(更多信息在此)。如果您想获得一个经过CPU优化的TensorFlow软件包,唯一的选择是自己构建。这有点繁琐,但完全可行。构建将生成_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
@Kristada673 是的,在这个答案中提到了 - https://dev59.com/n1YN5IYBdhLWcg3wsZxR#47227886 从命令行执行 export TF_CPP_MIN_LOG_LEVEL=2 - Maxim
我指的是警告 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
@Kristada673 我明白了。不,这个警告不会那么容易消失。它似乎没有破坏tf,但某些内部包无法导入,你永远不知道哪个函数可能会失败。目前所有可用的修复方法都在答案中。 - Maxim

7

我遇到了同样的问题,通过安装Tensorflow 1.3版本而不是1.4版本来解决了这个问题。使用以下命令进行安装:

 pip3 install tensorflow==1.3.0

4

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

pip install --ignore-installed tensorflow

问题出现的原因是我之前使用Python 3.5编译了一个本地版本的TensorFlow(以启用某些CPU功能)。最近,我安装了Python 3.6,新版TensorFlow已经支持这些CPU功能,所以我只需安装官方版本即可。 更新: 一些tensorflow更新后,上述方法不再适用。
另一个解决方法是使用虚拟环境,比如anaconda来创建Python 3.5环境:
conda create -n py35 python=3.5
source activate py35
pip install tensorflow

要使用ipython或jupyter notebook,请确保在虚拟环境中安装了ipykernel:

pip install ipykernel

4

只需安装TensorFlow的1.3版本即可解决问题。

pip install tensorflow==1.3.0

1

解决方案1: 我的解决方法是降级到最新的Python3.5版本,前往python.org下载最新的Python3.5,安装后使用普通的pip3 install tensorflow即可修复问题,如果无法解决,请尝试第二种解决方案。

解决方案2(还需要将Python3.6降级到Python3.5): 我使用Pycharm来解决这个问题,我在pycharm编辑器中创建了一个项目,然后将项目解释器从python3.6更改为python3.5,同样地,前往文件 > 首选项,搜索项目解释器,在下拉菜单中从python3.6更改为python3.5,点击应用并等待操作完成。

enter image description here 然后在同一窗口中使用+图标

enter image description here

一个窗口将出现,让您轻松搜索和安装Python库,而无需使用pip,在我们的情况下,我们想要tensorflow,因此只需搜索tensorflow,在搜索结果中选择tensorflow并单击“安装包”即可安装该软件包。

enter image description here

现在您已经准备好了,您的Python3.5上已安装了TensorFlow,请记住这一点。


1

目前您可以使用低于3.6.x版本的Python,因为Tensorflow 1.4.0与Python 3.6.x不兼容。它一定会正常工作。


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

1
这个问题可以通过在Ubuntu 17.10上运行以下命令解决:

$ conda install tensorflow

。该命令安装了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 - Z Alward

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接