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

创建于 2018-03-04  ·  100评论  ·  资料来源: tensorflow/tensorflow

系统信息

  • 我是否编写了自定义代码(而不是使用 TensorFlow 中提供的股票示例脚本) :否
  • 操作系统平台和发行版(例如,Linux Ubuntu 16.04) :Linux Ubuntu 16.04
  • TensorFlow 从(源代码或二进制文件)安装:二进制文件
  • TensorFlow 版本(使用下面的命令)
    1.6.0-cp27-cp27mu-manylinux1_x86_64(只能猜测,因为python -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)"已经给了我一个错误)
  • Python 版本:Python 2.7.12
  • 重现的确切命令import tensorflow

我创建了一个全新的虚拟环境: virtualenv -p python2 test_venv/
并安装了 tensorflow: pip install --upgrade --no-cache-dir tensorflow
import tensorflow给了我Illegal instruction (core dumped)

请帮助我了解发生了什么以及如何解决。 谢谢你。

CPU信息:

          description: CPU
          product: Intel(R) Core(TM) i3 CPU       M 330  @ 2.13GHz
          bus info: cpu<strong i="31">@0</strong>
          version: CPU Version
          capabilities: x86-64 fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm tpr_shadow vnmi flexpriority ept vpid dtherm arat cpufreq

编辑
使用 gdb 获得的堆栈跟踪:

#0  0x00007fffe5793880 in std::pair<std::__detail::_Node_iterator<std::pair<tensorflow::StringPiece const, std::function<bool (tensorflow::Variant*)> >, false, true>, bool> std::_Hashtable<tensorflow::StringPiece, std::pair<tensorflow::StringPiece const, std::function<bool (tensorflow::Variant*)> >, std::allocator<std::pair<tensorflow::StringPiece const, std::function<bool (tensorflow::Variant*)> > >, std::__detail::_Select1st, std::equal_to<tensorflow::StringPiece>, tensorflow::StringPieceHasher, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::_M_emplace<std::pair<tensorflow::StringPiece, std::function<bool (tensorflow::Variant*)> > >(std::integral_constant<bool, true>, std::pair<tensorflow::StringPiece, std::function<bool (tensorflow::Variant*)> >&&) ()
   from /media/gerry/hdd_1/ws_hdd/test_venv/local/lib/python2.7/site-packages/tensorflow/python/../libtensorflow_framework.so
#1  0x00007fffe5795735 in tensorflow::UnaryVariantOpRegistry::RegisterDecodeFn(std::string const&, std::function<bool (tensorflow::Variant*)> const&) () from /media/gerry/hdd_1/ws_hdd/test_venv/local/lib/python2.7/site-packages/tensorflow/python/../libtensorflow_framework.so
#2  0x00007fffe5770a7c in tensorflow::variant_op_registry_fn_registration::UnaryVariantDecodeRegistration<tensorflow::Tensor>::UnaryVariantDecodeRegistration(std::string const&) ()
   from /media/gerry/hdd_1/ws_hdd/test_venv/local/lib/python2.7/site-packages/tensorflow/python/../libtensorflow_framework.so
#3  0x00007fffe56ea165 in _GLOBAL__sub_I_tensor.cc ()
   from /media/gerry/hdd_1/ws_hdd/test_venv/local/lib/python2.7/site-packages/tensorflow/python/../libtensorflow_framework.so
#4  0x00007ffff7de76ba in call_init (l=<optimized out>, argc=argc@entry=2, argv=argv@entry=0x7fffffffd5c8, env=env@entry=0xa7b4d0)
    at dl-init.c:72
#5  0x00007ffff7de77cb in call_init (env=0xa7b4d0, argv=0x7fffffffd5c8, argc=2, l=<optimized out>) at dl-init.c:30
#6  _dl_init (main_map=main_map@entry=0xa11920, argc=2, argv=0x7fffffffd5c8, env=0xa7b4d0) at dl-init.c:120
#7  0x00007ffff7dec8e2 in dl_open_worker (a=a@entry=0x7fffffffb5c0) at dl-open.c:575
#8  0x00007ffff7de7564 in _dl_catch_error (objname=objname@entry=0x7fffffffb5b0, errstring=errstring@entry=0x7fffffffb5b8, 
    mallocedp=mallocedp@entry=0x7fffffffb5af, operate=operate@entry=0x7ffff7dec4d0 <dl_open_worker>, args=args@entry=0x7fffffffb5c0)
    at dl-error.c:187
#9  0x00007ffff7debda9 in _dl_open (
    file=0x7fffea7cbc34 "/media/gerry/hdd_1/ws_hdd/test_venv/local/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so", mode=-2147483646, caller_dlopen=0x51ad19 <_PyImport_GetDynLoadFunc+233>, nsid=-2, argc=<optimized out>, argv=<optimized out>, env=0xa7b4d0)
    at dl-open.c:660
#10 0x00007ffff75ecf09 in dlopen_doit (a=a@entry=0x7fffffffb7f0) at dlopen.c:66
#11 0x00007ffff7de7564 in _dl_catch_error (objname=0x9b1870, errstring=0x9b1878, mallocedp=0x9b1868, operate=0x7ffff75eceb0 <dlopen_doit>, 
    args=0x7fffffffb7f0) at dl-error.c:187
#12 0x00007ffff75ed571 in _dlerror_run (operate=operate@entry=0x7ffff75eceb0 <dlopen_doit>, args=args@entry=0x7fffffffb7f0) at dlerror.c:163
#13 0x00007ffff75ecfa1 in __dlopen (file=<optimized out>, mode=<optimized out>) at dlopen.c:87
#14 0x000000000051ad19 in _PyImport_GetDynLoadFunc ()
#15 0x000000000051a8e4 in _PyImport_LoadDynamicModule ()
#16 0x00000000005b7b1b in ?? ()
#17 0x00000000004bc3fa in PyEval_EvalFrameEx ()
#18 0x00000000004c136f in PyEval_EvalFrameEx ()
#19 0x00000000004b9ab6 in PyEval_EvalCodeEx ()
#20 0x00000000004b97a6 in PyEval_EvalCode ()
#21 0x00000000004b96df in PyImport_ExecCodeModuleEx ()
#22 0x00000000004b2b06 in ?? ()
#23 0x00000000004a4ae1 in ?? ()

编辑 2
巴泽尔版本:不适用
CUDA/cuDNN 版本:不适用
GPU 型号和内存:不适用

降级到旧版本的 tensorflow 后,错误消失了。 我被告知我的 CPU(请参阅上面的信息)可能无法在新 API 中进行一些改进。 如果是这种情况,我想我的问题没有解决方案。 因此,我将关闭此线程。 不过请随时纠正我。 感谢您的支持

awaiting response

最有用的评论

尝试跑步
pip卸载张量流
进而
点安装张量流==1.5

编辑
只是为了给予信任,解决方案来自这里:
https://stackoverflow.com/questions/49094597/illegal-instruction-core-dumped-after-running-import-tensorflow

所有100条评论

谢谢你的文章。 我们注意到您没有填写问题模板中的以下字段。 如果它们与您的案例相关,您能否更新它们,或者将它们保留为 N/A? 谢谢。
巴泽尔版
CUDA/cuDNN 版本
GPU 型号和内存

我在跑步时遇到了相同(或类似)的“非法指令”问题

import tensorflow as tf

我只在 64 位 Ubuntu Linux 上使用 CPU 1.6 版本。

降级到CPU 1.5版本后就没有这个问题了。

如何降级到 CPU 1.5 版本?

尝试跑步
pip卸载张量流
进而
点安装张量流==1.5

编辑
只是为了给予信任,解决方案来自这里:
https://stackoverflow.com/questions/49094597/illegal-instruction-core-dumped-after-running-import-tensorflow

谢谢konnerthg,即使我也有同样的问题。 你的命令帮助我解决了这个问题。 再次感谢。

同样在这里。
使用最新的轮子,我在 Ubuntu 16.04 上遇到了非法指令问题,但是我降级到 tensorflow-gpu==1.5 并且它有效!

降级到 1.5 也对我有用

@konnerthg降级到 1.5 只是变通,这个问题还没有解决。
哪个提交/ PR 解决了这个问题?

我也在 python 3.6 中收到此错误

嘿 !
感谢您的解决方案! 真的。 我有这个问题一个星期了,我开始变得疯狂! 谢谢 !

感谢您的解决方案。它适用于我的 Ubuntu 16.04, 64 位, python3.5 。

感谢您的解决方案! 降级到 1.5 版修复了该问题。 在带有 python 2.7 的 Ubuntu 16.04 服务器上测试

同样的问题,从 Tensorflow 1.6 降级到 1.5 解决了它。 运行 Xubuntu 16.04 64 位,Python 3.5。

感谢这一切解决了我在 Python 3.6 上的问题

_ (tensorflow) naniny@Aspire-E5-573 :~$ pip unistall tensorflow

_(tensorflow) naniny@Aspire-E5-573 :~$ pip install tensorflow==1.5

_(张量流) naniny@Aspire-E5-573 :~$ python

_ (tensorflow) naniny@Aspire-E5-573 :~$ import tensorflow as tf

现在工作没有任何问题......

这真的很奇怪。 有谁知道是什么导致了这个问题? 我很惊讶 TensorFlow 1.6 会有这么大的错误。

我在 linux 上使用 python 3.6.4 的 tensorflow-gpu 1.6.0 也遇到了这个问题。 我已经使用 pip 本身安装了 tensorflow。 简单地运行它会产生一个 SIGILL:

$ python3 -m tensorflow
zsh: illegal hardware instruction  python3 -m tensorflow

我得到的堆栈跟踪类似于这张票的描述中提到的内容。

这似乎是由于在上传到 pip 的最新 Tensorflow 包中使用了 AVX 指令所致。 通过GDB运行python3,反汇编崩溃函数指向这条指令:

=> 0x00007fffb9689660 <+80>:    vmovdqu 0x10(%r13),%xmm1

这是不支持 AVX 的较旧或功能较弱的 CPU 不支持的 AVX 指令。 tensorflow(-gpu) 1.5.0 pip 包不使用 AVX 指令,因此在这些 CPU 上使用它没有问题。

解决方案是构建未使用 AVX 指令编译的 tensorflow(-gpu) 以发布(或在本地构建副本)。 提供的安装说明没有提及任何特定的 CPU 要求,也没有提及如何确定与提供的二进制文件的兼容性。

与此同时,使用上面提到的@NinemillaKA 之类的东西恢复到 tensorflow(-gpu) 1.5.0 是一种有效的解决方法。

我有同样的问题,并且正如许多人评论的那样,从1.6.0降级到1.5.0

作为记录,我尝试在 2 台不同的计算机上运行 tensorflow(仅 CPU 版本):

电脑1:

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

电脑2:

OS = Ubuntu 16.04 x64 LTS
Python = Python 3.6
pip version = 9.0.1
tensorflow version = TensorFlow 1.6.0
CPU = Intel Celeron N2820 @2.413GHz

我同意@nacl 的观点,我们应该对指令集有更明确的要求,如果可能,对不支持 AVX 指令的处理器进行单独的更新构建。 老实说,我觉得必须使用任何技术的过时版本都有些令人沮丧,我想很多人都有同感。

为每种架构类型使用不同构建的替代方法是使用动态调度。 IE、PyTorch 为所有架构提供一个二进制文件,并在运行时选择最有效的操作@caisq

谢谢

我也遇到同样的问题。 我在两台机器上试过,在其中一台机器上也能用。

首先,我将它安装在我的 MacBook Pro 上。 我没有任何问题。

MacBook Pro (Retina, Mid 2012)
CPU = 2.3 GHz Intel Core i7
OS = MacOS 10.13.3
Python = Python 3.6.4
pip version = 9.0.3
TensorFlow version = 1.6.0

所以我升级了我的 MacPro。 但是这一次,当我尝试导入 tensorflow 时,我得到了Illegal instruction: 4

Mac Pro (Mid 2010)
CPU = 2 x 2.4 GHz Quad-Core Intel Xeon
OS = MacOS 10.13.3
Python = Python 3.6.4
pip version = 9.0.3
TensorFlow version = 1.6.0

(更新于 3/30/2018)
TensorFlow 1.7 也有同样的问题。 所以我想我使用的是 TensorFlow 1.5。

这在 1.6 和 1.7 中仍然是一个问题。 为什么这是关闭的? @yaroslavvb的解决方案似乎是合理的。 我现在已经降级到 1.5。

不确定,但从这个链接开始,从 ver1.6.0 开始,英特尔 CPU 指令优化器已被引入 tensorflow。 我认为这可能是原因。
https://software.intel.com/en-us/articles/intel-optimized-tensorflow-wheel-now-available

@captainst这是特定于英特尔的版本,与您通过执行pip install获得的官方版本不同。 1.6 升级后的 SIGILL 问题可能是添加了 AVX 引起的

我有同样的问题。
Ubuntu 18.04 x64
蟒蛇 3.6.5rc1
TensorFlow 1.7.0

我遇到过同样的问题。 降级到 1.5 对我有用。

同样在这里。

我也是。 Arch Linux 和 Intel CPU。

在 Ubuntu 17 上也是如此。10.1 VM、Slackware 上的 KVM 管理程序、Intel KabyLake CPU

我想我想通了。 我有一个缺乏 AVX 支持的 G4600 CPU,这是在 1.6 中添加的。

是的,我也锁定了 AVX 支持。

要在 v1.6 及更高版本上修复此问题,您需要从源代码编译 tensorflow。

我想使用最新的tensorflow-gpu(1.7),不想坚持1.5。 那么在没有启用 AVX 支持的情况下从源构建 tensorflow 的解决方案是什么? 我有一个旧的至强 E5420,但我使用的是 tensorflow-gpu

dmoham1476 [email protected]于2018年4月7日周六上午2:28写道:

我想使用最新的tensorflow-gpu(1.7)并且不想坚持
1.5. 在没有 AVX 支持的情况下从源代码构建 tensorflow 的解决方案也是如此
启用? 我有一个旧的至强 E5420,但我使用的是 tensorflow-gpu


您收到此消息是因为您发表了评论。
直接回复本邮件,在GitHub上查看
https://github.com/tensorflow/tensorflow/issues/17411#issuecomment-379337106
或静音线程
https://github.com/notifications/unsubscribe-auth/AGeJnptN5yMdVaVdWTsIwcjOAJuJbUDQks5tl7PKgaJpZM4SbSGu
.

您可以从 git clone master 的源代码构建。 它应该自动调整

到你的CPU。

问候,

降级到 1.5 版修复了该问题。 我正在使用 Ubuntu 16.04 和 python 2.7

同样的问题
Ubuntu=16.10
蟒蛇=3.6
点数=9.0.3
使用 tensorflow-gpu=1.7
英伟达 GTX 1070
CUDA 9.0

解决了:
pip3 安装 tensorflow-gpu==1.5

同样的问题

同样的问题
Ubuntu 16.04
使用 tensorflow-gpu 1.7 和 1.6

在 Paperspace 笔记本中运行的此 Docker 映像上存在同样的问题。

问题是版本 1.6 和 1.7

有同样的问题,降级到1.5。 Tensorflow 现在导入,但我正在运行一个需要 tensorflow_hub 的脚本。 脚本抛出 RuntimeError: TensorFlow Hub 依赖于 20180308 或 'tensorflow~=1.7' 之后的 'tf-nightly' 构建。 发现 tf.VERSION = 1.5.0

感谢回到 1.5 版也对我有用

我在 CentOS 7 上的 tf`1.8 遇到了同样的问题,只有 CPU。 降级到 1.5 有效。

对于那些不想降级的人来说,如果从源代码构建,问题就解决了。

遇到同样的问题,降级到 1.5 对我有用。

也有这个问题,在 tensorflow-gpu 1.8.0 上,在 paperspace fast.ai 模板机上

我对 tensorflow-1.8.0 也有同样的问题。 问题是我不能降级到 1.5 版,因为我想用 retrain.py 进行训练,并且对于这个 tensorflow 版本大于 1.7 是一个要求。 那么,有什么建议吗? 如果我从源代码构建 tensorflow 会有帮助吗?!

同样的问题在这里:
带有 fast.ai 模板的 paperspace VM
GPU:nvidia quadro P4000
tensorflow 1.8.0 安装在 virtualenv 中,如https://www.tensorflow.org/install/install_linux#installing_with_virtualenv给出了上述错误(包括安装页面底部提到的推荐轮子时)
Ubuntu 16.04,蟒蛇 3.6.3
pip uninstall tensorflow && pip install tensorflow-gpu==1.5.0解决了这个问题。 我还没有尝试从源代码编译。

作为旁注, grep avx /proc/cpuinfo返回任何内容,因此我的 VM 的 CPU 不支持 avx 指令。

大家好,从源代码构建为我解决了这个问题。

در تاریخ یکشنبه ۱۳ مهٔ ۲۰۱۸، ۱:۴۷ laurentS [email protected] نوشت:

同样的问题在这里:
带有 fast.ai 模板的 paperspace VM
GPU:nvidia quadro P4000
tensorflow 1.8.0 安装在 virtualenv 中
https://www.tensorflow.org/install/install_linux#installing_with_virtualenv
给出了上面的错误
Ubuntu 16.04,蟒蛇 3.6.3
pip uninstall tensorflow && pip install tensorflow-gpu==1.5.0 修复了
问题。 我还没有尝试从源代码编译。


您收到此消息是因为您发表了评论。
直接回复本邮件,在GitHub上查看
https://github.com/tensorflow/tensorflow/issues/17411#issuecomment-388583280
或静音线程
https://github.com/notifications/unsubscribe-auth/APaJX3BUFgxCemEueanuAXMfqboX5MNqks5tx1FugaJpZM4SbSGu
.

我解决了同样的问题,但在转移到 tensorflow-1.5 之后它对我有用。
我的问题:-错误->核心转储
处理器:AMD® A4-3330mx apu with radeon(tm) hd graphics × 2
显卡:AMD®相扑
GNOME:3.28.1
操作系统类型:64 位,Ubuntu 18.04 LTS

信用:-https ://github.com/konnerthg

当然,它适用于较早版本的 tensorflow,但我更具体地需要与新 tensorflowjs 兼容的 1.7.0 版本。 怎么能?

@mctrjalloh买新 CPU,我猜

我解决了。 不是买新CPU😏

你必须从源代码构建它并没有那么复杂

tensorflow-gpu 1.8.0 也有同样的问题

操作系统:Ubuntu 18.04
蟒蛇:3.6.5

我也是:

操作系统:Ubuntu 16.04
蟒蛇:3.5
NVIDIA 驱动程序版本:384.130

编辑:从源代码构建作品

非常感谢!!!

CUDA9.0+cuDNN7.1+Tensorflow-gpu1.5正在运行

同样的问题。 在 Ubuntu 16 和 Ubuntu 17 上进行了测试,在 3 台不同的机器上进行了测试,每台机器都具有 >8GB RAM 和 >4ghz CPU。 GPU机器也有问题。

我的 Ubuntu Server 16.04 上也有同样的问题。 通过从源代码编译 TensorFlow (r1.8) 并从本地 pip install 解决:+1:

docker 图像也有这个问题。 我不想从源代码编译。 有办法解决吗? 我也不想降级。

就我而言,使用 Bazel 编译 TensorFlow(在 Ubuntu 18.04 上)解决了这个问题。 不过编译确实需要时间。

我的情况也是如此,重新编译 TensorFlow 1.9 解决了这个问题。 但是我遇到了另一个与 numpy 1.15 相关的问题。 降级到 numpy 1.14.5 并且编译成功,并且能够安装 pip 包。

为什么这个问题被关闭了? 它仍然发生在 TensorFlow 1.10 中。

我在此处发布了一些指向 tensorflow 社区构建的链接

实际上,我按照在https://www.tensorflow.org/install/install_linux 上找到的说明进行操作,在按照该安装页面上的要求进行测试时,得到的只是“非法指令(核心转储)”。

这个问题要么不关闭,要么有一个有意义的实际解决方案(即不安装 1.5 版)

它适用于 Ubuntu 18.04。 因此,再次提及安装页面上的版本可能是一个好主意,作为关于哪些有效哪些无效的解决方案。

好吧,这个问题似乎仍在继续……但我有一个非常简单的解决方案
这将使您同时跟随趋势:-)。

安装康达!!!
要安装 conda,只需谷歌一下 :-)

如果您愿意,可以创建一个 conda 环境:

康达创建

只需运行:

康达安装张量流

如果最后一个命令不起作用,则通过另一个频道搜索
跑步:

蟒蛇搜索张量流

这会输出一个频道列表,您可以从那里下载它。
选择一个频道并运行:

蟒蛇秀

这将提示您下载需要输入的命令
张量流。
运行那个命令。

就是这样 !

搬到康达!

2018 年 8 月 23 日星期四晚上 10:38 Alexis Wilke通知@ github.com
写道:

事实上,我按照在
https://www.tensorflow.org/install/install_linux什么也得不到
在按要求进行测试时,比“非法指令(核心转储)”
那个安装页面。

这个问题不应该被关闭,或者有一个实际的解决方案
有道理(即不安装 1.5 版)


你收到这个是因为你被提到了。
直接回复本邮件,在GitHub上查看
https://github.com/tensorflow/tensorflow/issues/17411#issuecomment-415592389
或静音线程
https://github.com/notifications/unsubscribe-auth/AWESkUXD-4XomnnPgF6D5QToWVH74JzAks5uTy7PgaJpZM4SbSGu
.

根本问题可能与 protobuf 以及 pthread_once 和 std::call_once 的不兼容有关。 我自己在导入 tensorflow 时遇到了一个段错误,在另一个名为句子的谷歌包之后,句子的制造者通过为 protobuf 制作一个补丁来修复它,用另一个替换 std::call_once 实现。

https://github.com/google/sentencepiece/issues/186

为了使这个问题更具建设性,我认为 TensorFlow 首先检查 CPU 上需要的指令,如果缺少则打印错误,这将很有用。 同样,它目前如何表示某些指令可用但未编译。 那么区分错误和简单地不为给定的 CPU 使用正确的二进制文件会更容易。

royyannick 先生 ..事实上,我已经在谷歌上搜索了很多次,这影响了我对 Keras 和 Tensoflow 的学习,但今天你让我开心了..你很棒。
谢谢

在 Ubuntu 16.04 中的 tensorflow 1.10.1(最新版本)上尝试了虚拟环境和(f...ing)conda(你,上游伙计,去 fys!),但出现相同的错误。 切换到以前的版本 1.9 - 一切正常。

我碰巧在运行旧 CPU 的机器上重现了这个问题。 这是解释解决问题的可能选项的文章

那些想要在没有 AVX 支持的情况下为旧 CPU 安装最新 TensorFlow 但又没有时间从源代码构建的人也可以从这个 Github 存储库下载 WHL 文件。

这是BS。 我将我的安装回滚到 1.9(不是你在这篇文章中所说的“1.6 之前”)并且二进制文件有效(前天)。

如果您在命令行上运行它:

1)

$ lsb_release -a| grep "Release" | awk '{print $2}'

2)

$ grep flags -m1 /proc/cpuinfo | cut -d ":" -f 2 | tr '[:upper:]' '[:lower:]' | { read FLAGS; OPT="-march=native"; for flag in $FLAGS; do case "$flag" in "sse4_1" | "sse4_2" | "ssse3" | "fma" | "cx16" | "popcnt" | "avx" | "avx2") OPT+=" -m$flag";; esac; done; MODOPT=${OPT//_/\.}; echo "$MODOPT"; }

并在输出中看到16.04用于 1) 和-mavx-mavx2用于 2),这可能是另一个与 AVX 支持无关的问题。

如果这些标志不存在,那我应该添加到我的笔记中,谢谢你。

同样的错误在这里,

CentOS 7、Python 3.6.5、Intel CPU core2 duo e8500。 点安装。

1.9 版不起作用。 1.5 版导入没问题。

在我的装有 Ubuntu 18.04 和 Intel i5-6200U 的笔记本电脑上,1.10 版似乎没问题。

这在https://www.tensorflow.org/install/install_sources 中有说明
注意:从 1.6 版本开始,我们的预构建二进制文件将使用 AVX 指令。

我认为这可能在更显眼的位置被提及!

这解决了我的问题:
安装 NVIDIA 驱动程序、CUDA Toolkit 和 CUDNN 后。
首先卸载tensorflow-gpu

$ pip uninstall tensorflow-gpu

然后使用Anaconda安装 tensorflow-gpu :

$ conda create -n tensorflow
$ conda install tensorflow-gpu -n tensorflow

尝试跑步
pip卸载张量流
进而
点安装张量流==1.5

编辑
只是为了给予信任,解决方案来自这里:
https://stackoverflow.com/questions/49094597/illegal-instruction-core-dumped-after-running-import-tensorflow

谢谢它有效

可能与 AVX 指令有关。 pip prebuilt tensorflow-1.6 及更高版本是用 AVX 指令构建的,有些 CPU 没有 AVX 指令。 pip prebuilt tensorflow-1.5 不是用 AVX 指令构建的。
建议:1):使用低版本的tensorflow
2):从源代码编译更高版本的tensorflow

是的。 的确。 不过,如果软件能告诉我而不仅仅是崩溃,那就更好了。 我对要求没有任何问题,只是它的处理方式......在 Linux 上,很容易在flags行中签入/proc/cpuinfo flags行,其中avx需要出现。 如果不是,则生成错误和exit(1)

这是我在没有 AVX 的旧计算机上的标志

国旗:FPU VME德PSE TSC MSR,PAE MCE CX8 APIC九月MTRR PGE MCA CMOV拍拍PSE36 CLFLUSH DTS ACPI MMX FXSR SSE SSE2 SS HT TM PBE系统调用NX rdtscp流明constant_tsc arch_perfmon PEBS BTS rep_good nopl xtopology nonstop_tsc aperfmperf PNI dtes64监控ds_cpl VMX SMX EST tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 popcnt lahf_lm ssbd ibrs ibpb stibp kaiser tpr_shadow vnmi flexpriority ept vpid dtherm ida flush_l1d

系统信息

——
Lenovo-G500 8GB RAM 描述:CPU
产品:Intel(R) Core(TM) i3 CPU M 330 @ 2.13GHz
总线信息: cpu@0
版本:CPU版本
操作系统; Ubuntu-16.05
pip : 18 最新版本
我没有gpu

我还丢弃了非法指令核心。 tensorforflow 1.5 对我有用,

我需要为我的项目安装最新的 tensorflowv1.10 0r。

我试图以不同的方式在 tensorflow 中安装,那些是

  1. 没有 anacoda ,python 2.7,使用 pip ...pip install --upgrade tensorflow
    2 没有 anacoda ,python 3.5,使用 pip ""
    3.没有 anacoda ,python 3.6,使用 pip ""
    4.with anacoda,python 2.7,使用 conda conda install -c conda-forge tensorflow
    5.没有 anacoda ,python 2.7,使用 pip ""
    6.没有 anacoda ,python 2.7,使用 pip ""

都不为我工作,
这是什么问题。

@bandarikanth

您安装 tensorflow 的方式应该无关紧要。 问题是 tensorflow 1.6+ 预构建的二进制文件需要AVX指令集扩展,而您的处理器不支持 AVX。 您可以从源代码构建,转移到具有足够新处理器的计算机上,或者坚持使用 1.5。

谢谢

在 2018 年 12 月 30 日星期日上午 12:24,Dan Stine < [email protected]写道:

@bandarikanth https://github.com/bandarikanth

您安装 tensorflow 的方式应该无关紧要。 问题
是 tensorflow 1.6+ 预构建的二进制文件需要 AVX
https://en.m.wikipedia.org/wiki/Advanced_Vector_Extensions说明
设置扩展名,并且您的处理器不支持 AVX。 你可以
从源代码构建,移动到具有足够新处理器的计算机,或坚持
与 1.5。


你收到这个是因为你被提到了。
直接回复本邮件,在GitHub上查看
https://github.com/tensorflow/tensorflow/issues/17411#issuecomment-450512554
或静音线程
https://github.com/notifications/unsubscribe-auth/AZf77RdABm0uQsxiPx0uxd45q_rz9pUVks5u97pPgaJpZM4SbSGu
.

如果降级到 1.5 对我有用(pip install tensorflow==1.5)

相关: https :

我对 tensorflow-gpu 2.0 有这个问题

▶ uname -r; pacman -Q linux
5.0.10-arch1-1-ARCH
linux 5.0.10.arch1-1

▶ conda env export
name: Science
channels:
  - defaults
dependencies:
  - cudatoolkit=10.0.130=0
  - cudnn=7.3.1=cuda10.0_0
prefix: /home/archangel/anaconda3/envs/Science
▶ pip freeze | ack "tensor"
tensorflow-gpu==2.0.0a0
▶ ipython                                                          
Python 3.7.3 (default, Mar 27 2019, 22:11:17)                      
Type 'copyright', 'credits' or 'license' for more information      
IPython 7.4.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import tensorflow as tf                                    
[1]    25429 illegal hardware instruction (core dumped)  ipython   



md5-b2492dc6f0518a4ba524a15157565fb3



[18556.882892] traps: ipython[25429] trap invalid opcode ip:7fc41cde1a22 sp:7ffe68904500 error:0 in libtensorflow_framework.so[7fc41c877000+104c000]
[18556.885033] audit: type=1701 audit(1556951396.587:43): auid=4294967295 uid=1000 gid=1000 ses=4294967295 pid=25429 comm="ipython" exe="/home/archangel/anaconda3/bin/python3.7" sig=4 res=1
[18556.894046] audit: type=1130 audit(1556951396.594:44): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-coredump@4-25462-0 comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=?
 res=success'
[18557.506049] audit: type=1131 audit(1556951397.204:45): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-coredump@4-25462-0 comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=?
 res=success'


我在支持 AVX的 i7-3520M 上遇到此崩溃。

编辑:没关系,崩溃发生在shlx指令上,该指令是 AVX2 的一部分。 至少它表明对普通 AVX 的支持是不够的。

仍然有 tensorflow 1.14.0 和 2.0.0b1 的问题。

使用 2.0.0b1 在 Linux Mint 19 上出现同样的错误。
刚刚按照官方网站安装页面的指示安装了 pip3

tf1.5 在 Debian 8.8 存储库中不可用。

是时候尝试avx了。

这在托管集群节点上很难找到,因为操作系统在相关的 python 进程甚至可以写入并将此“非法指令”行写入输出日志文件之前就杀死了它们,并且 python 进程的退出代码似乎是 0 .

我也在使用 2.0.0-beta1,目前正在查明是否用 2.0.0 替换它可以解决这个问题。

我也遇到了这个问题。 我正在使用python2 。 降级到 CPU 1.5 版本有帮助。

我在 Ubuntu 18.04 的虚拟环境中运行 Tensorflow 2 时遇到了这个问题。 令我大吃一惊的是,Tensorflow 开发人员会将 TF 2 准备好并在发生这种废话时可用。 没有留下深刻印象,你们 TF 开发人员。

dmesg 输出(来自 bash):
[333908.854310] 陷阱:python[12862] 陷阱无效操作码 ip:7f8c46e6d820 sp:7ffc87609f78 error:0 in _pywrap_tensorflow_internal.so[7f8c3e250000+a9f8000]
linuxmint 19
Intel(R) Pentium(R) CPU P6200 @ 2.13GHz
8Gb 内存(金士顿)

这是一个与 CPU 相关的大问题。

阅读此线程并获得相同体验后,我的问题是我的 linux 计算机较旧,并且 CPU 不支持 AVX 指令集。 我在另一个虚拟环境中有 tensorflow 1.5,但要使用 tensorflow 2,我将不得不在 Google Colab 上运行我的脚本

我不知道说 AVX 的要求是否有意义。 我所知道的是,这个问题不仅出现在较旧的 CPU 上,而且出现在最近的 CPU 上,例如我的 Intel N5000。 我知道在 N5000 上进行深度学习有点困难,但是如果 RaspberryPi 也支持 tensorflow,我看不出问题。

无论如何,我通过从源代码编译它在我的英特尔 N5000 上安装了最新版本的 TensorFlow (2.0)。 花了 14 个小时,因为我必须在单核上运行编译,因为它需要大量 RAM,而我只有 4Gb 受邀参加聚会。

我把灵感来自于该指南在这里,但经验是远远光滑,还有人不断依赖关系缺少我需要安装并重新启动编译。 还有一些我在编译崩溃时解决的其他问题。

玩得开心,谢谢你的麻烦。 通过 pip 提供已经为非 AVX 编译的二进制文件显然太多了,无法添加到您的持续集成工作流程中

谢谢你的回复,卢卡。 我有一个非常旧的 Ubuntu 18.04 桌面
除了运行 TF2 之外,它的效果非常好,事实上,
我认为是最新的 PyTorch (1.3.0)。
Torch 1.1.0 对我来说很好用,关于 TF2,我使用 Google Colab
工作正常。 我是一名退休的数据分析师并维护着我的业余爱好者档案

谢谢你的帖子

2019 年 12 月 7 日星期六下午 6:52 Luca Olivieri通知@ github.com
写道:

我不知道 AVX 的要求是否有意义或
不是。 我所知道的是,这个问题不仅出现在老年人身上
CPU,但也有最近的 CPU,比如我的 Intel N5000。 我明白了
在 N5000 上进行深度学习有点困难,但如果 tensorflow
RaspberryPi 也支持,我没有看到问题。

无论如何,我在英特尔 N5000 上安装了最新版本的 TensorFlow (2.0)
通过从源代码编译它。 花了 14 个小时,因为我必须运行
在单核上编译,因为它需要大量 RAM 而我只有
4Gb 受邀参加聚会。

我从这里的指南中获得灵感
https://tech.amikelive.com/node-882/how-to-build-and-install-the-latest-tensorflow-without-cuda-gpu-and-with-optimized-cpu-performance-on-ubuntu/
但是体验并不顺利,依赖不断
缺少我需要安装并重新启动编译。 还有一些
编译崩溃时我也解决了其他问题。

玩得开心,谢谢你的麻烦。 通过 pip 提供已经是二进制的
为非 AVX 编译显然太多了,无法添加到您的连续
集成工作流


您收到此消息是因为您发表了评论。
直接回复本邮件,在GitHub上查看
https://github.com/tensorflow/tensorflow/issues/17411?email_source=notifications&email_token=ACYHH362LGI5EZY3G74CMVLQXQZKDA5CNFSM4ETNEGXKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEGGSCPQ#issuecomment-562897214
或取消订阅
https://github.com/notifications/unsubscribe-auth/ACYHH3YLNAER6NGNLKYNMPDQXQZKDANCNFSM4ETNEGXA
.

——
克莱夫·达席尔瓦 CPA,CMA
首页:416-421-2480|手机:416-560-8820
电子邮件:克莱夫。 [email protected]
领英: http :

我在 Gitlab 服务器上运行 CI 管道时遇到了同样的问题。 运行程序的(模拟)CPU 没有提供 AVX 指令。

使用 Conda 而不是使用 PyPI 的轮子安装 Tensorflow 解决了这个问题。 :+1:

Tensorflow 2.1.0 也有同样的问题。 该怎么办?

Architecture:        x86_64
CPU op-mode(s):      32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              48
On-line CPU(s) list: 0-47
Thread(s) per core:  1
Core(s) per socket:  12
Socket(s):           4
NUMA node(s):        8
Vendor ID:           AuthenticAMD
CPU family:          16
Model:               9
Model name:          AMD Opteron(tm) Processor 6176
Stepping:            1
CPU MHz:             800.000
CPU max MHz:         2300.0000
CPU min MHz:         800.0000
BogoMIPS:            4599.77
Virtualization:      AMD-V
L1d cache:           64K
L1i cache:           64K
L2 cache:            512K
L3 cache:            5118K
NUMA node0 CPU(s):   0-5
NUMA node1 CPU(s):   6-11
NUMA node2 CPU(s):   12-17
NUMA node3 CPU(s):   18-23
NUMA node4 CPU(s):   24-29
NUMA node5 CPU(s):   30-35
NUMA node6 CPU(s):   36-41
NUMA node7 CPU(s):   42-47
Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid amd_dcm pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt nodeid_msr hw_pstate vmmcall npt lbrv svm_lock nrip_save pausefilter

我设法通过使用 bazel 从源代码构建来解决我的问题。 它创建了一个 whl 文件。 然后我做了 pip install whl 文件路径

是的,如果您的 CPU 不支持 AVX(可能导致Illegal instruction (core dumped)错误),那么您需要从源代码编译。 这会导致在没有 AVX 指令的情况下生成代码,然后您就可以使用它了。

此外,这保证了 pip 是用您的平台可用的最高优化级别构建的,因此与使用在不同平台上构建的 pip 相比,您实际上可能会看到一些加速。 专注于可能。

要使用 conda 安装 tensorflow,请运行以下命令:
conda install -c conda-forge tensorflow
这个对我有用。

此页面是否有帮助?
0 / 5 - 0 等级