写在开头:
1.本文时间:2018年11月;为什么要说明时间?因为技术是不断革新的,某些观点和步骤可能
不适合之后的版本。
2.哪些系统可以安装tensorflow?
答:windows、linux、mac均可
3.tensorflow的版本有哪些?
答:有CPU和GPU版本。
CPU因支持指令集不同,可以有不同的版本。如gituhub可下载到的编译好的window版就分为
x86_64/SSE2(普通64位),AVX2(支持avx2指令集,avx2是CPU的扩展指令集)。
GPU也分N卡和A卡。
安装适合机器的版本可以提高计算能力。
4.怎么选择适合版本?
答:有支持tensorflow的显卡就用GPU版.
有支持高级指令集的CPU,就使用高级指令集的。
当然为了安装简单,也可以选择普遍适用的CPU普通版本。
5.怎么查看CPU支持的指令集
答:windows可以使用cpu-z工具,linux可以使用相关命令。
6.tensorflow安装方式有哪些?
答:可以安装编译好的版本,可以从源码编译安装。
7.怎么下载tensorflow版本
答:window可以在gituhub下载较全的GPU和CPU编译版本。
linux可以下载到普通CPU(不支持AVX2等指令)和GPU编译版本。需要特定版本需要编译tensorflow源码安装。
mac……
8.本文以CPU安装为主。
linux中安装
version:centos7.5(6以上也适用)、anaconda3、python3.6、tensorflow1.2
date:2018/11/26
一、Anaconda安装
1.下载安装
Anaconda-linux
1 | #安装 |
2.添加Anaconda下载源。
1 | #添加清华源 |
二、python安装
安装python环境
1 | #新建python3.6环境 |
tips:
1.可以将Anaconda创建的常用的python环境加到环境变量中,然后就不用activate进入即可使用了。
1 | vim /etc/profile |
2.python程序后台运行
1 | nohup python -u /app/files/py/f1.py > /app/files/logs/py.log 2>&1 & |
三、tensorflow安装
进入Anaconda-python3.6环境
1 | source acticate py36 |
若之前没有安装过tensorflow,建议选择直接安装或者下载安装包安装。
若CPU支持额外的指令集,如AVX2,可以选择源码编译,提高计算性能。
1.pip直接安装
1 | #cpu版本 |
2.安装包安装
1).pip官网下载
2).tensorflow-github下载
3).tensorflow官网下载
4).github搜索
5).GoogleAPI查找
1 | pip install tensorflow-1.12.0-cp36-cp36m-manylinux1_x86_64.whl |
3.源码编译安装
源码安装tensorflow
四、tensorflow测试及错误详解
1.成功后,进入python环境,测试tensorflow
1 | python |
2.错误或警告
1).
1 | ModuleNotFoundError: No module named 'tensorflow' |
原因:
若安装无误,疑是找不到tensorflow路径
1 | #执行,在anaconda安装目录搜索tensorflow |
发现tensorflow路径,说明tensorflow安装成功:
1 | /root/anaconda3/envs/py36/lib/python3.6/site-packages/ |
查看python版本是否为anaconda激活版本,不是请修改,方法之前已提到。我的原因便是此,不再深究。
1 | python -V |
2).
1 | ImportError: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.17' not found (required by /root/anaconda3/envs/py36/lib/python3.6/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so) |
原因:检查gcc的动态库,缺少“GLIBCXX_3.4.17”
1 | #执行 |
解决:
1 | #执行 |
3).
错误:
1 | ImportError: /lib64/libc.so.6: version `GLIBC_2.16' not found (required by /root/anaconda3/envs/py36/lib/python3.6/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so) |
原因,缺少GLIBC_2.16:继续画瓢
1 | #执行 |
解决(需要升级glibc库到2.16以上版本,注意glibc是linux的基础库,几乎所有的库都会依赖于glibc,破坏libc.so.6的软连接会导致几乎所有系统指令无法使用[万一删除请按照末尾方法恢复]):
glibc版本太高可能需要升级gcc,我直接用yum安装的gcc是4.4.7,无法进行太高版本的编译,而升级gcc又是一个漫长的过程,只专注眼前即可,所以选择较低版本2.17。
1 | wget http://mirrors.ustc.edu.cn/gnu/libc/glibc-2.17.tar.gz |
注意:
1 | #如果没有gcc,需要先安装gcc |
1 | #破坏libc.so.6请执行 |
4).
警告:
1 | #Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA |
解决方法有如下三种:
1 | #1.安装AVX2指令集的tensorflow |
五、tensorflow卸载
1 | pip uninstall tensorflow |
window中安装
version:window7、python3.6、tensorflow1.1
date:2018/11/06
1.exe安装Anaconda
Anaconda-windows
2.测试是否安装成功
1 | conda --version |
3.安装python3.6环境
1 | conda --versionconda create --name python36 python=3.6 |
4.根据CPU(分x86_64和AVX2版本)或GPU下载tensorflow
5.pip安装,我下载了CPU的AVX2版本
1 | pip install tensorflow-1.11.0-cp36-cp36m-win_amd64.whl |
6.测试
1 | #进入python |
7.可能发生的错误或警告
1)
1 | pip install --upgrade --ignore-installed tensorflow |
2)
1 | #Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 |