请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需要一步,快速开始

搜索
开启左侧

在CentOS 7下搭建机器学习环境

马上注册,分享更多源码,享用更多功能,让你轻松玩转云大陆。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
这篇文章主要是用来记录我自己用CentOS搭建机器学习环境的过程,灵感来源及主要参考为
用 CentOS 7 打造合适的科研环境
这篇文章对于我自己而言主要是整理自己的经验以及作为未来重装系统时参考,也希望这篇文章对其人也有一定的借鉴意义。
安装CentOS 7

实际上在Ubuntu上搭建机器学习环境比在CentOS上简单,选择CentOS而不选择Ubuntu的原因有二:
1.Ubuntu自带的Unity桌面太丑而且默认装了太多无用软件
2.入门Linux系统时使用的是CentOS,所以更熟悉CentOS

准备工作

    准备材料
      U 盘:容量 4GB 以上,用于制作 U 盘启动盘,因为在制作启动盘时会格式化 U 盘,所以 U 盘内不要包含重要资料 安装镜像:CentOS官网下载CentOS 7 LiveGNOME镜像文件LinuxLive USB Creator:Windows 下的 U 盘启动盘制作工具一个已安装 Windows 的电脑:用于制作 U 盘启动盘
    运行 LinuxLive USB Creator 并制作 U 盘启动盘,制作时persistence space拉到最大
    将 U 盘插入计算机,重启,进入 BIOS 选择从 U 盘启动,即可进入 CentOS 的 LiveCD进入 LiveCD 后,点击桌面的 “Install to Hard Drive” 即可安装
安装过程

整个安装过程与参考文章中是一样的。

    选择安装过程中使用的语言,这里应 使用英语,不要使用汉语。若安装界面使用汉语,最终安装的系统中会出现两个比较麻烦的问题:
      家目录下的系统文件夹如 Downloads、Desktop 等会以中文表示,这使得在命令行 cd 变得很麻烦;终端中某些字符用英文字体,某些字符用中文字体,效果非常差,需要自己修改终端字体方可;
    选择区域和城市:Asia 和 Shanghai键盘使用 English(US) 而不是 English(UK)Hostname 可以改也可以不改安装的目的地,选择要使用的硬盘,在 “Other Storage Options” 处选择“I will configure partioning”,即手动分区
分区

    点击 “Click here to create them automatically”,即让安装程序帮忙分区默认的分区方案是使用 LVM,其好处在于 “当机器有多块硬盘时,在使用的时候看上去只有一块”默认的文件系统为 XFS 而不是以前常用的 EXT4;自动分区完成后,再根据自己的需求,手动修改分区细节
      /boot :CentOS 自动分配,一定不要乱改;/ :根目录,合理使用并及时清理的话 15G 就够了,不过建议 30G 以上;swap :与物理内存大小一致即可/opt :个人习惯是将第三方软件都安装在 /opt 下,所以分了 70G/home :余下的全部空间
    点击 “Begin to Install” 开始安装
真正的安装

    设置 root 密码创建一般用户等待安装完成安装完成,重启重启后,同意 License 即可
对系统的若干修改

给一般账号 root 权限

    日常工作中使用 root 账号,是非常糟糕且危险的习惯!一般账号是没有 root 权限的,不能使用sudo。
假设账户名为 grom,要授予他 root 权限,则要修改配置文件 /etc/sudoers :
$ su
# echo 'grom ALL=(ALL) ALL'>> /etc/sudoers # 向配置文件中加入语句
# tail -1 /etc/sudoers  # 检查一下是否正确
grom ALL=(ALL) ALL
其中 grom 为当前用户名。
配置yum源

将yum源配置为国内源可以获得比较快的下载速度,在学校使用的是中科大的镜像站,以后离开学校应会使用网易的镜像站。
    首先备份 CentOS-Base.repo  
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
    将网页中的内容新的CentOS-Base.repo
sudo vim /etc/yum.repos.d/CentOS-Base.repo

  • 更新软件包缓存
sudo yum makecache
添加第三方源

EPEL
EPEL 即 Extra Packages for Enterprise Linux, 为 CentOS 提供了额外的 10000 多个软件包,而且在不替换系统组件方面下了很多功夫,因而可以放心使用。
sudo yum install epel-release
执行完该命令后,在 /etc/yum.repos.d 目录下会多一个 epel.repo 文件。
ELRepoELRepo 包含了一些硬件相关的驱动程序,比如显卡、声卡驱动:
sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
sudo rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm完成该命令后,在 /etc/yum.repos.d 目录下会多一个 elrepo.repo 文件。
安装 yum-axelget

yum-axelget 是 EPEL 提供的一个 yum 插件。使用该插件后用 yum 安装软件时可以并行下载,大大提高了软件的下载速度,减少了下载的等待时间:
sudo yum install yum-axelget安装该插件的同时会安装另一个软件 axel。axel 是一个并行下载工具,在下载 http、ftp 等简单协议的文件时非常好用。
第一次全面更新

在进一步操作之前,先把已经安装的软件包都升级到最新版:
sudo yum update重启

第一次全面更新完之后建议重启。
删除多余的 kernel

在前面的 yum update 执行之后,可能会将 kernel 也一起更新,则在启动 CentOS 时启动项中会有很多项。
确认当前使用的 kernel 版本号:
$ uname -r
3.10.0-123.9.3.el7.x86_64查找当前系统安装的所有 kernel:
$ rpm -qa | grep kernel | sort
kernel-3.10.0-123.8.1.el7.x86_64
kernel-3.10.0-123.9.2.el7.x86_64
kernel-3.10.0-123.9.3.el7.x86_64
kernel-devel-3.10.0-123.8.1.el7.x86_64
kernel-devel-3.10.0-123.9.2.el7.x86_64
kernel-devel-3.10.0-123.9.3.el7.x86_64
kernel-headers-3.10.0-123.9.3.el7.x86_64
kernel-tools-3.10.0-123.9.3.el7.x86_64
kernel-tools-libs-3.10.0-123.9.3.el7.x86_64可以看出有三个版本的 kernel,123.8.1、123.9.2 和 123.9.3。除了最新的 kernel 外,建议多保留一个旧 kernel,以免新 kernel 出现问题时可以通过旧 kernel 进入系统。因而此处删除 123.8.1 版本的 kernel:
sudo yum remove kernel-3.10.0-123.8.1.el7.x86_64
sudo yum remove kernel-devel-3.10.0-123.8.1.el7.x86_64基础开发环境

GCC 系列

sudo yum install gcc                     # C 编译器
sudo yum install gcc-c++                 # C++ 编译器
sudo yum install gcc-gfortran            # Fortran 编译器
sudo yum install compat-gcc-44           # 兼容 gcc 4.4
sudo yum install compat-gcc-44-c++       # 兼容 gcc-c++ 4.4
软件开发辅助工具

sudo yum install make
sudo yum install gdb     # 代码调试器
sudo yum install cmake   # Cmake
sudo yum install git     # 版本控制安装CUDA 8.0

CUDA™是一种由NVIDIA推出的通用并行计算架构,现行的深度学习框架如caffe、tensorflow都需要先安装CUDA才能安装GPU版本,否则只能安装CPU版本。安装CUDA时会一并安装NVIDIA的显卡驱动。(CentOS自带的显卡驱动是不支持N卡的,所以一开始我把屏幕连接到主板集成显卡的输出口上,这样安装时似乎避免了一些繁琐的过程)
    如果显示器接到N卡,关机,接到集成显卡,启动。 去NVIDIA官网下载对应版本的网络安装包依照官网的指引,执行

sudo rpm -i cuda-repo-rhel7-8.0.61-1.x86_64.rpm
sudo yum clean all
sudo yum install cuda 注意 ,执行第一行有可能有警告,网上资料说这是由于yum安装了旧版本的GPG keys造成的,可以在语句后加上--force强制执行。
    安装完毕后在~/.bashrc中添加环境变量
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
    编译并运行CUDA自带的例子,检验是否安装成功
$cd /usr/local/cuda-8.0/samples
$sudo make
……
……
Finished building CUDA samples
$cd bin/x86_64/linux/release/
$./deviceQuery
出现显卡信息表明安装成功。编译过程中可能会有警告信息,但是并不影响最后结果。
    关机,下次启动前将显示器接到N卡上。(如果继续接到集成显卡将无法进入图形界面)
安装cuDNN 5.1


cuDNN是 CUDA的一个深度网络加速库,也是深度学习框架所需要的。安装cuDNN的过程实际上是下载cuDNN库并拷贝到CUDA的目录中。下载cuDNN库后,进入下载目录执行以下命令即完成安装。
tar xzvf cudnn-8.0-linux-x64-v5.1.tgz
sudo cp -P cuda/include/cudnn.h /usr/local/cuda/include
sudo cp -P cuda/lib64/lib* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h
sudo chmod a+r /usr/local/cuda/lib64/lib*
sudo ldconfig
安装Anaconda

Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本python并存、切换以及各种第三方包安装问题。
    下载Anaconda ,选择python2.7对应版本在下载目录执行下面的语句
sudo bash Anaconda2-4.3.1-Linux-x86_64.sh
    执行conda list验证安装
安装完毕后可以配置tuna的镜像源,运行以下命令:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes 即可添加 Anaconda Python 免费仓库。
安装TensorFlow

安装Anaconda之后就可以很便捷的安装TensorFlow。
conda install tensorflow-gpu
安装完毕后,执行一个hello world程序来验证安装
$ python
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello) 出现Hello, TensorFlow!表示安装成功。
安装opencv

OpenCV是一个开源跨平台计算机视觉库,可以很方便的对图片进行处理。
conda install -c https://conda.binstar.org/menpo opencv
即可安装OpenCV

NTFS 驱动

CentOS 下默认无法挂载 NTFS 格式的硬盘。需安装 nfts-3g 即可实现即插即用:
sudo yum install ntfs-3g科学上网

用ss来实现科学上网
    下载工具
sudo yum install shadowsocks-libev
    修改配置文件
sudo chmod 777 /etc/shadowsocks-libev/config.json
vim /etc/shadowsocks-libev/config.json
    启动程序
ss-local&
zsh 与 oh my zsh


Linux 下有很多 shell,比如最常见的 bash,除此之外还有 csh、ksh。zsh 也是一个 shell。

zsh 的特点在于:

        语法基本完全兼容于 bash,一般用户完全体会不到其区别    zsh 提供命令补全特性,比 bash 的补全要更好用    可配置性强
完全不经配置的 zsh 已经很好用了,一般用户也没必要花时间研究配置。 oh my zsh 是一群人一起维护的一套 zsh 配置文件。 直接用这个配置文件,稍稍了解一点会有更好的体验。
主题选择为ys
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

  • 0 关注
  • 0 粉丝
  • 6 帖子
广告招商