您的位置:首页 > 运维架构 > Linux

ubuntu与centos安装tensorflow经验总结

2016-12-18 23:13 453 查看
这几天做深度学习,把谷歌的开源框架tensorflow安装做个总结台式机ubuntu与centos服务器都进行了安装ubuntu版本16.04安装准备 ubuntu16.04默认python版本是2.7所以不需要重新安装python安装环境准备sudo apt-get install python-pip python-devpip安装 我的是python2.7 无GPU版所以是
pip install
https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.12.0rc1-cp27-none-linux_x86_64.whl[/code]python2.7 GPU版本是 
 pip install
https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-0.12.0rc1-cp27-none-linux_x86_64.whl[/code]
python3及其他版本可到https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/get_started/os_setup.md#virtualenv-installation查找
如果使用 pip 二进制包安装了开启 GPU 支持的 TensorFlow, 必须确保 系统里安装了正确的 CUDA sdk 和 CUDNN 版本. 参考 CUDA 安装教程
你还需要设置 
LD_LIBRARY_PATH
 和 
CUDA_HOME
 环境变量. 可以考虑将下面的命令 添加到 
~/.bash_profile
 文件中, 这样每次登陆后自动生效. 注意, 下面的命令 假定 CUDA 安装目录为 
/usr/local/cuda
:
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64"export CUDA_HOME=/usr/local/cuda
接下来是centos6.8
这个就比较坑爹了
首先是python版本
#python -VPython 2.6.6
因为tensorflow只支持2.7以上版本python,所以需要从python安装开始
环境准备
yum -y install gityum -y install zlib*yum -y install gcc*
yum install python-pip python-dev
yum -y install python-devel openssl openssl-devel gcc sqlite sqlite-devel mysql-devel libxml2-devel zlib-devel readline-devel bzip2-devel然后安装python2.7,这里python版本为2.7.5,因为安装了2.7.11出现了无法编码UTSC4情况,所以没有用2.7.11而用了2.7.5安装进入rootwget http://www.python.org/ftp/python/2.7.5/Python-2.7.5.tgz tar -zxvf Python-2.7.5.tgz    cd Python-2.7.5    ./configure --prefix=/usr/local/python27    make&&make install  查看安装/usr/local/python27/bin/python  
设为默认版本 做软链接
mv /usr/bin/python /usr/bin/python-old    ln -s /usr/local/python27/bin/python /usr/bin/python  进入python# python 退出<<<exit()
修改yum默认链接为python2.6,否则yum会报错
vim /usr/bin/yum
然后将第一行修改为
#!/usr/bin/python2.6
保存退出
这时pip会出现缺少pkg_source啥的情况需要重新安装set_tools和pip
pip下载
wget "https://pypi.python.org/packages/source/p/pip/pip-1.5.4.tar.gz#md5=834b2904f92d46aaa333267fb1c922bb" --no-check-certificate
安装
# tar -xzvf pip-1.5.4.tar.gz# cd pip-1.5.4# python setup.py install安装后提示依然没有pip命令,需在在添加环境变量# vim /etc/profile在文档最后,添加:export PATH="/usr/local/python2.7/bin:$PATH"保存,退出然后运行:#source /etc/profile查看pip版本pip -V然后安装tensorflowpip install
pip install
https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.12.0rc1-cp27-none-linux_x86_64.whl[/code]
安装完成但是python测试出现错误
>>> import tensorflow as tfTraceback (most recent call last):  File "<stdin>", line 1, in <module>  File "/usr/local/python27/lib/python2.7/site-packages/tensorflow/__init__.py", line 23, in <module>    from tensorflow.python import *  File "/usr/local/python27/lib/python2.7/site-packages/tensorflow/python/__init__.py", line 45, in <module>    from tensorflow.python import pywrap_tensorflow  File "/usr/local/python27/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", line 28, in <module>    _pywrap_tensorflow = swig_import_helper()  File "/usr/local/python27/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", line 24, in swig_import_helper    _mod = imp.load_module('_pywrap_tensorflow', fp, pathname, description)ImportError: /lib64/libc.so.6: version `GLIBC_2.15' not found (required by /usr/local/python27/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow.so)
版本编译的时候使用GLIBC_2.15,系统自带的是GLIBC_2.12,所以报错网上找了好多方法都不管用但是http://blog.csdn.net/levy_cui/article/details/51251095解决了下面的问题基本都说出了解决方法
yum install gccwget http://ftp.gnu.org/pub/gnu/glibc/glibc-2.17.tar.xz xz -d glibc-2.17.tar.xztar -xvf glibc-2.17.tarcd glibc-2.17mkdir buildcd build../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin  make && make install等大概10分钟。
输入strings /lib64/libc.so.6|grep GLIBC发现已经更新 GLIBC_2.2.5GLIBC_2.2.6GLIBC_2.3GLIBC_2.3.2GLIBC_2.3.3GLIBC_2.3.4GLIBC_2.4GLIBC_2.5GLIBC_2.6GLIBC_2.7GLIBC_2.8GLIBC_2.9GLIBC_2.10GLIBC_2.11GLIBC_2.12GLIBC_2.13GLIBC_2.14GLIBC_2.15GLIBC_2.16GLIBC_2.17
GLIBC_PRIVATE然后>>> import tensorflow as tfTraceback (most recent call last):  File "<stdin>", line 1, in <module>  File "/usr/local/python27/lib/python2.7/site-packages/tensorflow/__init__.py", line 23, in <module>    from tensorflow.python import *  File "/usr/local/python27/lib/python2.7/site-packages/tensorflow/python/__init__.py", line 45, in <module>    from tensorflow.python import pywrap_tensorflow  File "/usr/local/python27/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", line 28, in <module>    _pywrap_tensorflow = swig_import_helper()  File "/usr/local/python27/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", line 24, in swig_import_helper    _mod = imp.load_module('_pywrap_tensorflow', fp, pathname, description)ImportError: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by /usr/local/python27/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow.so)
错误原因 ImportError: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.14' not found
#strings /usr/lib64/libstdc++.so.6 | grep GLIBCXXGLIBCXX_3.4GLIBCXX_3.4.1GLIBCXX_3.4.2GLIBCXX_3.4.3GLIBCXX_3.4.4GLIBCXX_3.4.5GLIBCXX_3.4.6GLIBCXX_3.4.7GLIBCXX_3.4.8GLIBCXX_3.4.9GLIBCXX_3.4.10GLIBCXX_3.4.11GLIBCXX_3.4.12GLIBCXX_3.4.13GLIBCXX_FORCE_NEWGLIBCXX_DEBUG_MESSAGE_LENGTH没有GLIBCXX_3.4.14版本支持,继续安装
下载新版本,地址:http://ftp.de.debian.org/debian/pool/main/g/gcc-4.7/libstdc++6_4.7.2-5_amd64.debar -x libstdc++6_4.7.2-5_amd64.deb&&tar xvf data.tar.gz  #cd /root/usr/lib/x86_64-linux-gnu#lllrwxrwxrwx 1 root root     19 Apr 26 15:21 libstdc++.so.6 -> libstdc++.so.6.0.17-rw-r--r-- 1 root root 991600 Jan  7  2013 libstdc++.so.6.0.17# find / -name libstdc++.so.6/usr/lib64/libstdc++.so.6/root/usr/lib/x86_64-linux-gnu/libstdc++.so.6#mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.bak#cp libstdc++.so.6.0.17 /usr/lib64/#cd /usr/lib64/#chmod +x libstdc++.so.6.0.17#ll libstdc++.so.6.0.17-rwxr-xr-x 1 root root 991600 Apr 26 15:30 libstdc++.so.6.0.17#ln -s libstdc++.so.6.0.17 libstdc++.so.6#strings /usr/lib64/libstdc++.so.6 | grep GLIBCXXGLIBCXX_3.4GLIBCXX_3.4.1GLIBCXX_3.4.2GLIBCXX_3.4.3GLIBCXX_3.4.4GLIBCXX_3.4.5GLIBCXX_3.4.6GLIBCXX_3.4.7GLIBCXX_3.4.8GLIBCXX_3.4.9GLIBCXX_3.4.10GLIBCXX_3.4.11GLIBCXX_3.4.12GLIBCXX_3.4.13GLIBCXX_3.4.14GLIBCXX_3.4.15GLIBCXX_3.4.16GLIBCXX_3.4.17GLIBCXX_DEBUG_MESSAGE_LENGTH>>> import tensorflow as tfTraceback (most recent call last):  File "<stdin>", line 1, in <module>  File "/usr/local/python27/lib/python2.7/site-packages/tensorflow/__init__.py", line 23, in <module>    from tensorflow.python import *  File "/usr/local/python27/lib/python2.7/site-packages/tensorflow/python/__init__.py", line 45, in <module>    from tensorflow.python import pywrap_tensorflow  File "/usr/local/python27/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", line 28, in <module>    _pywrap_tensorflow = swig_import_helper()  File "/usr/local/python27/lib/python2.7/site-packages/tensorflow/python/pywrap_tensorflow.py", line 24, in swig_import_helper    _mod = imp.load_module('_pywrap_tensorflow', fp, pathname, description)ImportError: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.19' not found (required by /usr/local/python27/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow.so)从网上下载libstdc++.so.6.0.20  http://ftp.de.debian.org/debian/pool/main/g/gcc-4.8/ 或者 http://download.csdn.net/detail/pomelover/7524227 放到/usr/lib64/下#chmod +x libstdc++.so.6.0.20#rm libstdc++.so.6#ln -s libstdc++.so.6.0.20 libstdc++.so.6#strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX[root@pachong1 lib64]# strings /usr/lib64/libstdc++.so.6 | grep GLIBCXXGLIBCXX_3.4GLIBCXX_3.4.1GLIBCXX_3.4.2GLIBCXX_3.4.3GLIBCXX_3.4.4GLIBCXX_3.4.5GLIBCXX_3.4.6GLIBCXX_3.4.7GLIBCXX_3.4.8GLIBCXX_3.4.9GLIBCXX_3.4.10GLIBCXX_3.4.11GLIBCXX_3.4.12GLIBCXX_3.4.13GLIBCXX_3.4.14GLIBCXX_3.4.15GLIBCXX_3.4.16GLIBCXX_3.4.17GLIBCXX_3.4.18GLIBCXX_3.4.19GLIBCXX_3.4.20GLIBCXX_FORCE_NEWGLIBCXX_DEBUG_MESSAGE_LENGTH
以上基本解决全部编译问题如果>>> import tensorflow as tf没有报错,那么恭喜你可以使用了
但是我的服务器最后还是出现USTC4无法编码问题查找说是python2.7.11只编译USTC2啥的,重新编译python2.7.5参考http://blog.csdn.net/taolinke/article/details/50472451
至于anacanda,virtualenv安装
可以参考https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/get_started/os_setup.md#virtualenv-installation   http://www.tensorfly.cn/tfdoc/get_started/os_setup.html 上面有详细内容
参考
http://blog.csdn.net/orangleliu/article/details/9415145
https://github.com/tensorflow/tensorflow/blob/master/tensorflow/g3doc/get_started/os_setup.md#virtualenv-installation
http://blog.csdn.net/levy_cui/article/details/51251095
http://blog.csdn.net/chuchus/article/details/51713389
http://www.mamicode.com/info-detail-1169437.html    http://blog.csdn.net/feifeilyj/article/details/52235987   http://www.tensorfly.cn/tfdoc/get_started/os_setup.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息