CentOS 7 深度学习平台新用户导引

版本更新说明

v1.3 20170630

  • 增加Matlab2012b、Matlab2014b、Matlab2016b菜单启动快捷方式
  • 安装PyCharm专业版并附有激活服务器,菜单栏可启动
  • 激活服务器可激活Jetbrain公司旗下所有所有专业产品

v1.2 20170523
增加Matlab2012,Matlab2014支持,现在已经安装Matlab2012、2014、2016三个版本

v1.1 20170511
增加Torch环境的支持

v1.0 20170509
主要内容有新用户必读,基础设置,caffe的搭建过程,TensorFlow搭建等

前段时间在机房服务器搭建了基础深度学习平台,搭建全过程见CentOS 7.3 Caffe搭建全过程记录

很多环境与软件已经安装完毕,ssh登录后就会显示相应的信息,如下图所示

系统信息

使用之前的几点重要说明:
用户权限问题
为了系统正常运行和其他用户环境的稳定性,不提供root权限给普通用户,如果你需要root权限安装系统级别软件,请联系我或者自己再搭建一台服务器

支持的环境
目前可以为Caffe和TensorFlow学习框架提供支持,两个框架均可以在不需要root权限条件下编译成功并运行,这当然要讲究点技巧和使用规范,下面会有说明。更多框架的支持请留意文章开头的更新说明

软件版本问题
Python目前有2.7.13(默认)和3.6.1两种版本存在,视个人需求而定,这个在创建python虚拟环境是有了更多的选择。Matlab为2016b,只有一个版本,敬请谅解,后期可能会增加2014版,并解决版本冲突问题。

Xmanager可用
大部分同学都需要使用图形话界面。服务器已经配置好,在windows端可直接连接。

关于环境的说明
初始环境已经配置好了PIP的镜像及virtualenvwrapper,在你的桌面上已经放好了最新的Caffe,接下来就要编译它。

如果使用到了python环境,在开始之前你需要移步Python Virtual Environments虚拟环境导引,找另外一台练习机学会以后再往下读,这点很重要,请务必学会,请务必学会,请务必学会

好,假设你已经会使用python的virtual env 了,那么请往下看
用户以simon为例,已经创建好

连接到服务器并配置基本环境

在windows端,打开xshell(推荐你使用)或XManager连接服务器后打开shell

登录后会显示系统信息,并要求你更改密码,这个密码必须比较复杂才能被设置。密码更改成功后会强制退出,再次使用ssh登录即可。
显示显示系统信息,紧接着,virtualenvwrapper初始化

  • 配置上网代理
    首先我们需要在windows端使用ccproxy这个软件搭建起代理服务器,记住代理服务器的地址和端口号,别忘记设置客户端访问权限。接下来设置远程服务器的代理
vi ~/.bashrc
#修改export http_proxy https_proxy ftp_proxy 为你自己的代理服务器地址和端口
  • 创建virtualenvironment ,名字为caffe-master
mkvirtualenv caffe-master # 默认使用2.7版本

好了,我们已经在虚拟环境中了,如下图所示。

image.png

PyCharm的使用

管理员已经为所有用户安装了最新的PyCharm专业版(2017.1.4),可从开始菜单快捷启动
要求激活时,选择服务器激活

image.png

点击激活即可
需要注意的是,激活程序切忌不可商用盈利
实验室的同学可使用地址

http://192.168.69.164:9714
http://192.168.69.68:9714

激活服务器可激活Jetbrain公司旗下的所有收费产品,包括PyCharm、PhpStorm、Intelj Idea、WebStorm等,其他产品及详细信息https://www.jetbrains.com/products.html

激活服务器由Lanyu发布,由于涉及到版权及商业利益,暂不公开发布,如果你需要的话,请私信我。

PyCharm的配置过程有兴趣的同学请移步本人博客CentOS 7 为所有用户安装PyCharm并激活

编译caffe

如果你有使用caffe的需求,请参照一下步骤,否则请跳过
解压并修改caffe

cd ~/Desktop
unzip caffe-master.zip

如果你的虚拟环境的python版本是2.7,请执行下面的操作

cd caffe-master/python
vi requirements.txt
#修改ipython>=3.0.0 为 ipython==5.3.0

安装python依赖

cd caffe-master/python #进入python目录
pip install -r requirements.txt

修改Makefile.config文件

cd caffe-master
cp Makefile.config.example Makefile.config
vi Makefile.config
#修改内容如下
## Refer to http://caffe.berkeleyvision.org/installation.html
# Contributions simplifying and improving our build system are welcome!

# cuDNN acceleration switch (uncomment to build with cuDNN).
USE_CUDNN := 1  ##使用CUDNN

# CPU-only switch (uncomment to build without GPU support).
# CPU_ONLY := 1

# uncomment to disable IO dependencies and corresponding data layers
# USE_OPENCV := 0
# USE_LEVELDB := 0
# USE_LMDB := 0

# uncomment to allow MDB_NOLOCK when reading LMDB files (only if necessary)
#   You should not set this flag if you will be reading LMDBs with any
#   possibility of simultaneous read and write
# ALLOW_LMDB_NOLOCK := 1

# Uncomment if you're using OpenCV 3
OPENCV_VERSION := 3 ##指定opencv的版本

# To customize your choice of compiler, uncomment and set the following.
# N.B. the default for Linux is g++ and the default for OSX is clang++
# CUSTOM_CXX := g++

# CUDA directory contains bin/ and lib/ directories that we need.
CUDA_DIR := /usr/local/cuda
# On Ubuntu 14.04, if cuda tools are installed via
# "sudo apt-get install nvidia-cuda-toolkit" then use this instead:
# CUDA_DIR := /usr

# CUDA architecture setting: going with all of them.
# For CUDA < 6.0, comment the *_50 through *_61 lines for compatibility.
# For CUDA < 8.0, comment the *_60 and *_61 lines for compatibility.
##删除多余的架构
CUDA_ARCH := -gencode arch=compute_30,code=sm_30 
        -gencode arch=compute_35,code=sm_35 \
        -gencode arch=compute_50,code=sm_50 \
        -gencode arch=compute_52,code=sm_52 \
        -gencode arch=compute_60,code=sm_60 \
        -gencode arch=compute_61,code=sm_61 \
        -gencode arch=compute_61,code=compute_61

# BLAS choice:
# atlas for ATLAS (default)
# mkl for MKL
# open for OpenBlas
BLAS := open ##使用open-blas
# Custom (MKL/ATLAS/OpenBLAS) include and lib directories.
# Leave commented to accept the defaults for your choice of BLAS
# (which should work)!
BLAS_INCLUDE := /usr/include/openblas ##指定blas的头文件路径
# BLAS_LIB := /path/to/your/blas

# Homebrew puts openblas in a directory that is not on the standard search path
# BLAS_INCLUDE := $(shell brew --prefix openblas)/include
# BLAS_LIB := $(shell brew --prefix openblas)/lib

# This is required only if you will compile the matlab interface.
# MATLAB directory should contain the mex binary in /bin.
MATLAB_DIR := /usr/local/MATLAB/R2016b ## Matlab的路径
# MATLAB_DIR := /Applications/MATLAB_R2012b.app 

# NOTE: this is required only if you will compile the python interface.
# We need to be able to find Python.h and numpy/arrayobject.h.
#PYTHON_INCLUDE := /usr/include/python2.7 /usr/lib/python2.7/dist-packages/numpy/core/include
## 修改为你的自己的路径,基本上就是用户名那里变一下
PYTHON_INCLUDE := /home/simon/Envs/caffe-master/include/python2.7 /home/simon/Envs/caffe-master/lib/python2.7/site-packages/numpy/core/include
# Anaconda Python distribution is quite popular. Include path:
# Verify anaconda location, sometimes it's in root.
# ANACONDA_HOME := $(HOME)/anaconda
# PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
        # $(ANACONDA_HOME)/include/python2.7 \
        # $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include

# Uncomment to use Python 3 (default is Python 2)
# PYTHON_LIBRARIES := boost_python3 python3.5m
# PYTHON_INCLUDE := /usr/include/python3.5m \
#                 /usr/lib/python3.5/dist-packages/numpy/core/include

# We need to be able to find libpythonX.X.so or .dylib.
PYTHON_LIB := /usr/lib
# PYTHON_LIB := $(ANACONDA_HOME)/lib

# Homebrew installs numpy in a non standard path (keg only)
# PYTHON_INCLUDE += $(dir $(shell python -c 'import numpy.core; print(numpy.core.__file__)'))/include
# PYTHON_LIB += $(shell brew --prefix numpy)/lib

# Uncomment to support layers written in Python (will link against Python libs)
WITH_PYTHON_LAYER := 1 ## 打开pyhton层支持

# Whatever else you find you need goes here.
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib

# If Homebrew is installed at a non standard location (for example your home directory) and you use it for general dependencies
# INCLUDE_DIRS += $(shell brew --prefix)/include
# LIBRARY_DIRS += $(shell brew --prefix)/lib

# NCCL acceleration switch (uncomment to build with NCCL)
# https://github.com/NVIDIA/nccl (last tested version: v1.2.3-1+cuda8.0)
# USE_NCCL := 1

# Uncomment to use `pkg-config` to specify OpenCV library paths.
# (Usually not necessary -- OpenCV libraries are normally installed in one of the above $LIBRARY_DIRS.)
# USE_PKG_CONFIG := 1

# N.B. both build and distribute dirs are cleared on `make clean`
BUILD_DIR := build
DISTRIBUTE_DIR := distribute

# Uncomment for debugging. Does not work on OSX due to https://github.com/BVLC/caffe/issues/171
# DEBUG := 1

# The ID of the GPU that 'make runtest' will use to run unit tests.
TEST_GPUID := 0

# enable pretty build (comment to see full commands)
Q ?= @

为protoc打补丁

cd caffe-master
protoc src/caffe/proto/caffe.proto --cpp_out=.
mkdir include/caffe/proto
mv src/caffe/proto/caffe.pb.h include/caffe/proto

编译

make -j24
make pycaffe
make matcaffe
make test -j24 #可选操作
make runtest -j8 #可选操作

成功后如下图所示

image.png

验证

cd caffe-master/python
ipython
import caffe #如果没问题就成功了
验证caffe

安装TensorFlow(教程太老,已废弃)

TensorFlow是作为python的第三方包发布的,利用包管理工具pip即可完成安装,只是需要注意版本的选择就可以了。移步CentOS 7 搭建Tensorflow环境 获取更详细的信息
以TensorFlow r0.12版本为例进行说明

去官网查询安装地址

  • 官网
  • 选择版本号


    选择版本号
  • 找到地址


    就是图中的地址啦

安装
注意确保你在虚拟环境中

pip install --upgrade https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-0.12.0rc1-cp27-none-linux_x86_64.whl

验证

ipython
import tensorflow

安装Torch

一定要确保你在自己创建的Python虚拟环境中,并且已经安装了ipython

安装

# in a terminal, run the commands WITHOUT sudo
git clone https://github.com/torch/distro.git ~/torch --recursive
cd ~/torch; 
./install.sh
source ~/.bashrc

官网网站的指导中还有bash install-deps;,这句命令的作用是安装Torch7所需要的依赖,由于管理员已经安装过,所以,普通用户就不用安装了

验证

(simon_main) [zhangxinming@localhost torch]$ th
 
  ______             __   |  Torch7 
 /_  __/__  ________/ /   |  Scientific computing for Lua. 
  / / / _ \/ __/ __/ _ \  |  Type ? for help 
 /_/  \___/_/  \__/_//_/  |  https://github.com/torch 
                          |  http://torch.ch 
    
th> torch.Tensor{1,2,3}
 1
 2
 3
[torch.DoubleTensor of size 3]
th> 

更多Torch的用法及知识请移步官方教程

Matlab的使用

启动Matlab非常简单,在图形环境中打开终端,输入

matlab #默认启动2016b版本

matlab2012 #启动2012版本
matlab2014 #启动2014版本
matlab2016 #启动2016版本

v1.3版本后,增加了菜单栏启动的方式

image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容