安装好Tensorflow2.x后执行import tensorflow时报错并崩溃:Illegal instruction (core dumped),原因一般是安装Tensorflow的机器的CPU不支持或者不完全支持AVX指令 造成的,Tensorflow从1.6版开始加入了针对CPU指令的优化,使用pip命令安装的官方编译的whl安装包估计是在支持AVX指令的服务器上编译出来的,是默认需要CPU支持AVX指令的,当CPU没有AVX指令时就会崩溃。具体参考: Illegal instruction (core dumped) after running import tensorflow · Issue #17411 · tensorflow/tensorflow · GitHub
要解决这个问题,有几个选择:
1)安装Tensorflow 1.15或更老的版本;
2) 从源码开始使用Bazel在自己的环境下自己编译出Tensorflow的安装包并安装,并且这样编译出来的binary自然是无需AVX指令的,并且是针对环境自动做了调整和优化的。
3) 从conda下安装tensorflow,conda和pip使用不同的源,conda有自己的源,里面的Tensorflow安装包估计在编译时考虑了兼容没有AVX指令这个问题,所以安装后不会有上面的问题。