尝试导入 tensorflow 时出现非法硬件指令

inb*_*ank 2 python virtualenv illegal-instruction tensorflow python-3.6

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

[1]    4492 illegal hardware instruction (core dumped)  python
Run Code Online (Sandbox Code Playgroud)

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

import tensorflow as tf
Run Code Online (Sandbox Code Playgroud)

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

我已经创建了 virtualenv:

python3.6 -m venv venv
Run Code Online (Sandbox Code Playgroud)

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

virtualenv --system-site-packages -p python3.6 venv
Run Code Online (Sandbox Code Playgroud)

我得到了同样的结果。

我用来安装 tensorflow 的命令是:

pip install tensorflow
Run Code Online (Sandbox Code Playgroud)

如您所见,我打算安装仅限 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
Run Code Online (Sandbox Code Playgroud)

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

我感谢任何帮助,如果有任何遗漏的信息,请告诉我。

inb*_*ank 5

我刚刚发现了这个:

运行导入 tensorflow 后出现非法指令(核心转储)

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

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

我将暂时将此标记为已回答,但如果有人对如何使版本1.6.0正常工作有任何好主意,请告诉我。