之前一直在CPU上跑深度学习,由于做的是NLP方向所以也能勉强忍受。最近在做图像的时候,实在是扛不住了...还好领导们的支持买个虚拟机先体验下。由于刚买的机器,环境都得自己摸索,瞎搞过很多次,也走过很多弯路,所以我就记录下从裸机安装深度学习环境的正确过程。(全程root用户哦!)

裸机简介

服务器是阿里云的CentOS7.4,默认的时候选择的CUDA驱动选错了,1.5以上的tensorflow都应该选择CUDA9.0,注意不要太高,也不要太低!TF很挑剔!

先来聊聊裸机里面包含什么有用的东西:

  • git:好像是1.18.x的版本,记不清了
  • python:2.7

下面就开始安装吧!

第一步,升级Python3

我这边选择的版本是3.6.6,原则就是当前最新最稳定的大版本,以及最高的小版本。如果本机下载,可以直接去这个地址:
https://www.python.org/ftp/python/3.6.6/
如果是服务器下载可以使用命令

wget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz

然后解压缩压缩包:

tar zxvf Python-3.6.6.tgz

进入目录后:

cd Python-3.6.6

先创建python3安装目录:

mkdir /usr/local/python3

开始编译安装

./configure --prefix=/usr/local/python3
make && make install

修改老版本的python执行文件

mv /usr/bin/python /usr/bin/python_old2

新建python3的软连接

ln -s /usr/local/python3/bin/python3 /usr/bin/python

使用命令验证下:

[root@izwz9fnfgk9709s3h9ex47z ~]# python -V
Python 3.6.6

然后不要忘记增加pip3的可执行文件:

ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

这样就可以通过pip3安装python3的模块了。

[root@izwz9fnfgk9709s3h9ex47z ~]# pip3 -V
pip 18.0 from /usr/local/python3/lib/python3.6/site-packages/pip (python 3.6)

此时python就升级完了。

由于这时修改了python脚本的版本,可能对老系统的脚本有影响,所以需要修改两个脚本——/usr/bin/yum/usr/libexec/urlgrabber-ext-down把对应的文件头从#!/usr/bin/python修改为#!/usr/bin/python2.7

另外,我这里用的是阿里云,python下载很多东西都很快,如果是其他的服务或者物理机,有时候需要临时指定yum源,可以使用下面的命令:

pip3 install xxx -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

参考资料:https://www.cnblogs.com/idotest/p/5442173.html

第二步,升级Git

默认CentOS装的git是1.8版本有点陈旧,可以对它进行重装。

安装之前需要先升级gcc一类的东西,按照下面的脚本过程执行即可:

# 安装gcc相关的东西
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install  gcc perl-ExtUtils-MakeMaker
# 这里可以挑一个最新版本下载
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.15.tar.gz
tar zxvf libiconv-1.15.tar.gz
cd libiconv-1.15
./configure --prefix=/usr/local/libiconv
make && make install# 卸载之前的git
yum remove git# 重新下载git
wget https://github.com/git/git/archive/v2.18.0.tar.gz
tar zxvf v2.18.0.tar.gz
cd git-2.18.0
make configure
./configure --prefix=/usr/local/git --with-iconv=/usr/local/libiconv
make all doc
make install install-doc install-html
echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc
source /etc/bashrc

然后重新验证一下:

[root@izwz9fnfgk9709s3h9ex47z soft]# git --version
git version 2.18.0

我的开发流程是这样,我们自己有git的代码库,我本地写完代码提交到gitlab。然后从阿里云的服务器clone代码,运行。由于里面涉及到大量的图片资源,因此clone的时候有个技巧:

git clone xxxx --depth 1

指定一下clone的深度,不然git会下载每一次的提交历史。如果训练的图片或者模型很多都删除或者替换掉了,就没必要下载了。

参考资料:https://blog.csdn.net/z_dianjun/article/details/50819908

第三步,安装CUDA

我记得在学校的时候写过一篇手把手教你在windows安装cuda6,当时看的人还挺多。这回在linux上安装,感觉更简单了。

首先去官网下载cuda的版本,如果不知道你该安装哪一个版本的CUDA,就先确定你想使用哪一个版本的tensorflow,然后去tensorflow的github里面查看configure.py这个文件:
https://github.com/tensorflow/tensorflow/blob/3379bae787d73d6db67d66a284bd1a076b2cbdba/configure.py
这里面有说明对应的CUDA版本:

_DEFAULT_CUDA_VERSION = '9.0'
_DEFAULT_CUDNN_VERSION = '7'
_DEFAULT_NCCL_VERSION = '2.2'
_DEFAULT_CUDA_COMPUTE_CAPABILITIES = '3.5,7.0'
_DEFAULT_CUDA_PATH = '/usr/local/cuda'
_DEFAULT_CUDA_PATH_LINUX = '/opt/cuda'
_DEFAULT_CUDA_PATH_WIN = ('C:/Program Files/NVIDIA GPU Computing ''Toolkit/CUDA/v%s' % _DEFAULT_CUDA_VERSION)
_DEFAULT_TENSORRT_PATH_LINUX = '/usr/lib/%s-linux-gnu' % platform.machine()
_TF_OPENCL_VERSION = '1.2'
_DEFAULT_COMPUTECPP_TOOLKIT_PATH = '/usr/local/computecpp'
_DEFAULT_TRISYCL_INCLUDE_DIR = '/usr/local/triSYCL/include'
_SUPPORTED_ANDROID_NDK_VERSIONS = [10, 11, 12, 13, 14, 15]

可以看到这里需要的是9.0,注意9.0就是9.0,别以为9.2更牛逼就安装9.2,到时候一样用不了的(本篇文章当前最新的是9.2版本)。

安装文件的地址在这里:
https://developer.nvidia.com/cuda-90-download-archive

按照我的系统CentOS7,我是这么选的:

也可以直接在服务器上执行下面的命令进行下载:

wget https://developer.nvidia.com/compute/cuda/9.0/Prod/local_installers/cuda-repo-rhel7-9-0-local-9.0.176-1.x86_64-rpm

下载后按照官网的安装指令安装就行了:

sudo rpm -i cuda-repo-rhel7-9-0-local-9.0.176-1.x86_64-rpm
yum clean all
yum install cuda

注意:如果之前你的及其里面装了其他版本的cuda,或者你已经安装了cuda9.2,yum里面已经缓存了9.2的安装文件,那么可以这么做,创建下面的脚本,执行sh rpm_e.sh cuda移除全部的cuda安装资源,重新输入上面的三条命令安装:

[root@izwz9fnfgk9709s3h9ex47z soft]# cat rpm_e.sh
#/bin/bashset -x
temp_rpm=$(rpm -qa | grep $1)
for item in $temp_rpm
dorpm -e $item --nodeps
done

安装完成后,添加环境变量vi /etc/profile

export CUDA_HOME=/usr/local/cuda-9.0
export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

然后执行source /etc/profile

再执行以下nvcc命令验证下:

[root@izwz9fnfgk9709s3h9ex47z bin]# nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176

此时基本的CUDA就安装完了,如果想要体验下CUDA的程序,也可以编译执行以下samples里面的代码。

第四步,安装cuDNN

由于我们是搞深度学习,因此需要安装这个cuDNN,它是专门针对深度学习的库。

首先登陆这个网址:https://developer.nvidia.com/rdp/cudnn-archive

先要进行注册,邮箱确认,同意配合测试,填一下基本信息,然后就可以下载了。

只要CUDA版本是9.0就行,我这边选择的是cuDNN v7.1。

下载后传到服务器上,执行解压缩:

tar -zxvf cudnn-9.0-linux-x64-v7.1.tgz

然后拷贝对应的文件

sudo cp cuDNN/cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuDNN/cuda/lib64/* /usr/local/cuda/lib64

修改libcudnn.so

#下面的操作在/usr/local/cuda/lib64/目录下进行
cd /usr/local/cuda/lib64sudo rm -rf libcudnn.so libcudnn.so.7#删除两个符号链接;
sudo ln -s libcudnn.so.7.0.64 libcudnn.so.7
sudo ln -s libcudnn.so.7 libcudnn.so

这样cuDNN就安装完了。

安装完cuDNN不要忘记重启机器,不然tensorflow可能会识别不到!

参考资料:https://blog.csdn.net/guoyunfei20/article/details/78191599

第五步,安装keras和tensorflow

最后照着官网的安装步骤来就行了:

sudo pip3 install -U --pre pip setuptools wheel
sudo pip3 install -U --pre numpy scipy matplotlib scikit-learn scikit-image
sudo pip3 install -U --pre tensorflow-gpu
# sudo pip3 install -U --pre tensorflow ## CPU版本
sudo pip3 install -U --pre keras
# 如果搞图像,还需要安装cv2
sudo pip3 install -U --pre opencv-python

其他的按照自己需要的来就行了。

然后打开python命令行,import一下,看看有没有错

[root@izwz9fnfgk9709s3h9ex47z soft]# python
Python 3.6.6 (default, Aug  2 2018, 14:32:43)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> import keras
Using TensorFlow backend.
>>> tf.__version__
'1.10.0-rc0'
>>> keras.__version__
'2.2.1'
>>> 

最后启动终极代码

可以看到里面已经有GPU参与的信息了,而且速度上明显感觉有质一般飞跃!爽!

安装资源

如果有不方便下载的,我这里也有所有组件的安装资源,可以去yunpan下载。

https://pan.baidu.com/s/1IkgVpnn2VWUNXAFkKVlM6g

我的AI之路 —— 从裸机搭建GPU版本的深度学习环境相关推荐

  1. centos GPU tensorflow pytorch 深度学习 环境搭建

    简要记录一下深度学习开发环境的搭建步骤,懒得编辑了,将就着吧. 总体流程参考文章:https://www.cnblogs.com/learn-the-hard-way/p/12318980.html ...

  2. 手把手教你搭建属于自己的GPU深度学习环境

    目录 1. Anaconda的简介.安装及配置 1.1 Anaconda简介 1.2 Anaconda安装 1.2.1 安装包的下载 1.2.2 软件安装 1.2.3 补充:Anaconda新建环境默 ...

  3. 基于AI的计算机视觉识别在Java项目中的使用(三) —— 搭建基于Docker的深度学习训练环境

    深度学习在哪里? 我们已然生活在数字时代,一天24小时我们被数字包围.我们生活中的方方面面都在使用数字来表达.传递.存储.我们无时无刻不在接收数字信息,而又无时无刻不在生产数字信息. 在数字世界中,可 ...

  4. linux系统下深度学习环境搭建和使用

    作为一个AI工程师,对Linux的一些技能的掌握也能从一定层面反应工程师的资深水平. 要求1:基于SSH的远程访问(本篇文章) 能用一台笔记本电脑,远程登陆一台linux服务器 能随时使用笔记本电脑启 ...

  5. Dell G3 搭建深度学习环境(Ubuntu16.04)

    文章目录 一.Ubuntu16.04 系统安装 前言: 1.1 准备阶段 1.2 安装阶段 二.Ubuntu16.04 nvidia显卡驱动 2.1. 禁用nouveau开源驱动 2.2 安装nvid ...

  6. 《服务器(CentOS7.7)深度学习环境搭建、配置及使用》之一:服务器情况简介

    Author kangzhiheng E-mail kangzhiheng@sjtu.edu.cn 本文链接 Github:https://github.com/kangzhiheng/GitLoca ...

  7. 使用Linux服务器搭建个人深度学习环境

    使用Linux服务器搭建个人深度学习环境 环境及所需工具 连接服务器 创建自己的python环境 创建深度学习框架的环境(以tensorflow为例) 测试环境 退出环境 删除环境 WinSCP的使用 ...

  8. 深度学习环境搭建之常识(anaconda,cuda,cudnn,python,tensorflow等概念)

    原网址 https://www.jianshu.com/p/62f155eb6ac5 1.什么是python?(面向对象语言) Python是一种面向对象的解释型计算机程序设计语言,其使用,具有跨平台 ...

  9. Ubuntu18.04+RTX 2080Ti+CUDA 10.0 +cuDNN+PyTorch搭建深度学习环境

    SSH无密码登陆 安装SSH Server Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server: sudo apt-get install openssh-serv ...

最新文章

  1. 一个模型搞定图像标注、读图问答两件事,VQA准确率逼近人类水平 | Demo可玩...
  2. Windows 性能问题诊断(5)
  3. max格式转obj小工具_PDF文件转JPG等图片格式的小工具
  4. geth JavaScript Console
  5. python rgb 图像_在Python中查找RGB图像的互补图像
  6. 详解华为与三星专利之争 律师称可能会打持久战
  7. Arcgis创建SDE_Geometry、SDO_Geometry的区别【转】
  8. 鲲鹏性能优化十板斧(四)——磁盘IO子系统性能调优
  9. java service 初始化_【Java】Nacos – NacosNamingService初始化
  10. java 子串替换_Java中的多个同时子串替换
  11. 杨辉三角 Python(利用嵌套列表)
  12. linux中安装程序的命令是,Linux安装软件命令是什么
  13. SRB x-sign
  14. Js实战之方块跟随鼠标移动
  15. “progtam received signal SIGABRT,Aborted.“错误
  16. Android 如何解决默认壁纸更改为ImageWallpaper之外的壁纸,在特定的操作下,导致死机的问题。
  17. 微信开放平台之第三方平台开发,模板小程序如何提交?
  18. Linux路由表的抽象扩展应用于nf_conntrack
  19. 学习软件工程导论的心得体会
  20. 新西兰计算机预科学费,2018年新西兰ACG预科课程介绍(含学费、开学时间)

热门文章

  1. DHPST分销系统 YEP分销云主机分销系统源码
  2. 网站站长综合seo在线查询工具源码
  3. ZBLOG简单的导航网站主题 支持内页详情目录模板
  4. 星空唯美浮雕效果背景源码
  5. 浙江工业大学计算机应用基础,浙江工业大学期终考试命题稿-浙江大学人文学院.doc...
  6. jsp mysql超市管理系统_jsp超市管理系统 基于jsp+servlet+MySQL的超市管理系统(带数据库) - 下载 - 搜珍网...
  7. 服务器新建文件命令,云服务器中新建文件夹命令
  8. linux硬连接脚本,linux 硬链接和软链接深入理解
  9. csds原装的Markdown文档
  10. thinkphp开发卡密社区系统