【问题标题】:Illegal hardware instruction when trying to import tensorflow尝试导入 tensorflow 时出现非法硬件指令
【发布时间】:2018-08-25 22:36:31
【问题描述】:

我刚刚使用 virtualenv 方法的说明安装了 tensorflow。安装过程很顺利,所以我认为那里没有任何问题。安装后我继续尝试导入它以验证一切正常,我收到以下消息:

[1]    4492 illegal hardware instruction (core dumped)  python

这是在我使用 python 交互式控制台使用以下命令后发生的:

import tensorflow as tf

我尝试使用 pip 的链接重新安装它,但没有成功。

我已经创建了 virtualenv:

python3.6 -m venv venv

在这不起作用之后(因为它产生了同样的错误)我尝试了:

virtualenv --system-site-packages -p python3.6 venv

我得到了同样的结果。

我用来安装tensorflow的命令是:

pip install tensorflow

如您所见,我打算安装纯 CPU 版本。

我读过一些关于其他框架和技术的想法,这些框架和技术显示了这个消息,因为硬件没有实现指令,所以除了购买新硬件之外没有什么可做的。

有没有办法解决这个问题?我已经尝试了一些不同的安装方法,但都没有看到工作

关于系统规格:

OS = Ubuntu 16.04 x64 LTS
Python = Python 3.6
pip version = 9.0.1
tensorflow version = TensorFlow 1.6.0
CPU = Intel Core 2 Quad Q6600  @2.40GHz

OBS:我在这台机器上确实有一个 GPU,但我认为 tensorflow 不会在它上面运行,因为它有点老了。这是 Nvidia 8800 GTS 512。

感谢您的帮助,如果有任何缺失的信息,请告诉我。

【问题讨论】:

  • 如果你使用 Python3,你不应该使用 pip3 而不是 pip 吗?
  • 因为我在virtualenv中,所以当我调用pip时,它已经与pip3链接了

标签: python tensorflow virtualenv python-3.6 illegal-instruction


【解决方案1】:

我刚刚发现了这个:

Illegal instruction (core dumped) after running import tensorflow

这个问题似乎是由一些旧处理器中没有硬件实现的一组指令引起的(AVX 指令集)。由于它们不是在硬件中实现的,因此这个问题没有真正的解决方法。

如果我理解正确,解决方法是将 tensorflow 从 1.6.0 降级到 1.5.0,这也适用于 GPU 版本。它对我有用。

我暂时将其标记为已回答,但如果有人知道如何让版本 1.6.0 正常工作,请告诉我。

【讨论】:

  • 我也认为 avx 标志是原因。即使在 VM 中启用了 fpu、avx、avx2 标志后,它仍然是一样的。如果我在 python 控制台中导入 tensorflow (1.7),退出并显示消息 Illegal Instruction
  • 可以确认此解决方案(降级,pip install tensorflow=1.5)适用于 CentOS 7。
  • 为了什么值得,我是因为我在 C 中使用了一个未初始化的指针
猜你喜欢
  • 2020-03-21
  • 2021-05-02
  • 2021-10-21
  • 2018-08-11
  • 1970-01-01
  • 2021-03-30
  • 1970-01-01
  • 1970-01-01
  • 2018-04-14
相关资源
最近更新 更多