本机例子ubuntu版本为16.04,tensorflow版本1.14和2.0。
出现illegal instruction(core dumped)的原因是机器不支持avx指令,而tensorflow版本>=1.6需要支持avx指令。
查看电脑是否支持avx指令的命令:
cat /proc/cpuinfo|grep avx
若没有显示结果,则说明不支持avx
解决方法只有2种
1:换一台支持avx的机器。
2:降低tensorflow的版本至1.5或以下。
接下来就第2种方法详细介绍,在tensorflow官网找到1.5版本,https://pypi.org/project/tensorflow/1.5.0/#files
发现1.5版本支持的python最高版本是3.6的,那么就下载tensorflow-1.5.0-cp36-cp36m-manylinux1_x86_64.whl
此时我发现python环境是3.7的,那么就需要建一个3.6的虚拟环境
conda create -n py36 python=3.6
建立完成后激活这个虚拟环境
conda activate py36
然后安装1.5版本的tensorflow
pip install tensorflow-1.5.0-cp36-cp36m-manylinux1_x86_64.whl
到此问题已解决,输入python->import tensorflow已经不会报错了。
我因为用到了keras,所以遇到了keras与tensorflow版本不匹配的问题,报错内容是keras要求更高版本的tensorflow,于是查询keras与tensorflow的版本对应关系,得知tensorflow1.5版本对应keras2.1.6,于是
pip install keras==2.1.6
如果安装速度慢可以用豆瓣的镜像源,如
pip install -i http://pypi.douban.com/simple/ keras==2.1.6 --trusted-host pypi.douban.com
至此,问题解决,tensorflow成功运行,最后附一张结果图
另外,对于ImportError:Dll load Failed:找不到指定的模块。