在Python 3.6中导入TensorFlow时出现非法指令:4。

8
我使用Virtualenv在macOS上安装了Tensorflow。一切都很顺利(当我运行命令pip3 install --upgrade tensorflow时,“成功安装six-1.11.0 tensorflow-1.6.0”是终端的最后输出)。所以,在激活虚拟环境后,我输入: python3 然后输入 import tensorflow as tf ,但是它输出错误Illegal instruction: 4并退出Python。
我四处寻找看是否有其他人遇到了相同的问题,但除了this的问题没有提供解决方案外,我没有发现更多信息。我阅读了this的答案,解释了“非法指令”的含义,问题在于我正在使用最新版本的macOS High Sierra。

enter image description here

我是否误解了答案所指的内容?

你知道我如何解决这个问题吗?或者希望有一个解决方法,这样我就可以开始使用tensorflow了。

提前感谢你。


你搞定了吗?我也遇到了同样的问题,我看你安装了1.6版本,我也是。我会回退到1.5版本看看。 - dfresh22
所以我安装了1.15版本,然后在numpy中收到了有关已弃用特性的警告。因此,在安装了tensorflow 1.15之后,我安装了numpy 1.13。现在一切都正常工作。 - dfresh22
错误信息为:FutureWarning: issubdtype 的第二个参数从 float 转换为 np.floating 已被弃用。在未来,它将被视为 np.float64 == np.dtype(float).type。from ._conv import register_converters as _register_converters - dfresh22
在我的端上似乎也可以工作。而且,由于它在虚拟环境中,我的机器的其余部分仍然具有最新的numpy版本。非常感谢您的帮助!这是我正在寻找的解决方法。所以,如果您愿意,您可以编写一个答案,以便我可以将其标记为正确的答案。 - Jules
谢谢,我添加了一个答案。 - dfresh22
3个回答

6

我遇到了同样的问题,所以我卸载了tensorflow 1.6并安装了

pip install -Iv tensorflow==1.5
pip install -Iv numpy==1.13

现在看起来没问题了,我的猜测是tensorflow 1.6中有最新的bug。

为确保与pandas兼容,您可以执行以下操作: pip install -Iv numpy==1.13.3


3

对于我和@dfresh22来说,无法找到1.15版本,但这有所帮助:

pip3 uninstall tensorflow
pip3 install -Iv tensorflow==1.5

1
谢谢,哈哈,我才意识到是打错了。我刚把答案更新为1.5。谢谢提醒。 - dfresh22
@dfresh22 我也不需要安装 numpy=1.13,我目前有 numpy (1.14.2),它运行良好! - caffeinum
1
有趣。我会检查最新的tensorflow并看看。最近一直在研究MASK RCNN。超级有趣。 - dfresh22
1
在我的一台2011年的MacBook Pro和El Capitan上解决了这个问题。 - Xavier Bourret Sicotte

2

同样地,在搭载BigSur(Python 3.9)的苹果M1上,Anaconda界面会抱怨tensorflow版本不兼容Python 3.9,虽然pip可以在终端安装,但我收到了“非法指令:4”的消息。最终,下面的命令解决了必要的安装包:

conda install conda-forge::tensorflow

详情请查看这里。此安装为旧版本tensorflow:tensorflow-2.7.0。


1
我正在使用 MacBook M2 Pro Max,这个 conda 安装是唯一有效的方法。尝试使用 pip 安装命令都无效,因为当我尝试导入 tensorflow 时,总是会出现“非法指令:4”错误。奇怪的是,tensorflow 官方推荐在 Mac 上使用 pip,但它并不起作用。 - Katya
conda install conda-forge::tensorflowconda install -c conda-forge tensorflow 有什么区别? - undefined

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