配置阿里云GPU服务器py-tf环境

简介: 本文分为如下几个部分• 什么是GPU服务器• 租用阿里云GPU服务器ubuntu系统• 安装python3.6• 安装pip• 安装anaconda3• 配置jupyter• 服务器与本地windows文件互传• 安装GPU版TensorFlow• 开启多个进程(多个窗口)• 本地sublime编辑远程文件• vim配置

本文分为如下几个部分

  • 什么是GPU服务器
  • 租用阿里云GPU服务器ubuntu系统
  • 安装python3.6
  • 安装pip
  • 安装anaconda3
  • 配置jupyter
  • 服务器与本地windows文件互传
  • 安装GPU版TensorFlow
  • 开启多个进程(多个窗口)
  • 本地sublime编辑远程文件
  • vim配置


什么是GPU服务器

相比于CPU,GPU在进行矩阵运算等高度并行化计算任务上有非常大的速度优势,比如你使用TensorFlow构建卷积神经网络进行图片分类,在CPU上训练模型会非常非常慢,这时我们通常会希望使用GPU进行训练。

使用GPU一般有如下几种选择

1.如果你的电脑带有独立英伟达显卡(查看电脑显卡配置自己查),可以安装GPU版本的tensorflow或者其他深度学习框架,通过一系列配置就可以使用GPU训练模型了。

以windows10下安装python的Tensorflow库为例,参考官网安装CUDA,cuDNN和tensorflow-gpu库,可能还要安装visual studio等,安装过程可能伴随痛苦,报错只能一直百度。

如果自己的电脑显卡配置不是很好,会发现跑模型依然不是很快(但是能比用CPU跑快上几倍);而且电脑会发热出声,看着都心疼。所以我们一般都不会用自己的笔记本电脑来跑模型。

2.如果你有钱的话,可以买一个GPU主机,也就是一个可以用GPU计算的台式电脑,这个最低配的也要好几万,详情可以到淘宝京东上看。或者是学校实验室提供这种主机。

3.第三种就是租用服务器了。这里以阿里云为例进行说明。这种租用的服务器相当于你在自己电脑里操控阿里公司里的一台电脑,你可以在一个窗口中操控远程的电脑,就和在自己电脑上使用一样。

租用阿里云GPU服务器

步骤如下

  • 打开下面链接,登录阿里云

https://partner.aliyun.com/shop/1586986852753298?spm=a2cbv.aps.0.0.6989561cVAC8gr

  • 点击领取优惠券

image.png

按照相关提示注册阿里云账号

  • 注册账号之后,打开下面链接:

https://www.aliyun.com/product/ecs/gpu?spm=5176.19720258.J_8058803260.33.435c2c4ainsu2k

去购买GPU服务器


image.png

  • 规格族选择GPU计算型gn4

image.png

  • 镜像部分选择自己想要的操作系统,这里选择ubuntu16.04 64位。选择自动安装GPU驱动,CUDA9.0.176,Driver390.46,如下图所示

image.png

  • 创建成功后可以在“管理控制台”中看到自己的实例(也就是你租用的GPU服务器)。选中实例点击启动,就会出现一个“远程连接”,如下图所示

image.png

点击远程连接(必须等到状态是“已启动”之后才可以)就会出来一个新的浏览器窗口,在那里会让你输入账号密码,之前没有设置过的话可以在更多-密码-重置密码进行设置。如下图所示

image.png

远程连接后你就可以操作这台主机了(登陆账号是root),不过你可能会发现一个问题,那就是你在自己电脑里复制的东西无法粘贴到远程主机上,这一点非常不方便,还有一些其他不方便的地方,因此我一般不会使用远程连接去使用远程的主机。推荐下载putty,使用putty去连接远程的主机。

putty下载后打开,在Host Name位置填入实例的公网IP地址,也就是上上图中我打马赛克的位置。右边端口默认22即可,点击open

image.png

此时会打开一个黑色窗口,在这里让你输入的账号密码和“远程连接”那里一样。账号密码正确的话就可以开始使用这台主机了,如下所示(下面输入了python命令进入了python交互环境,就像windows的命令行一样)

安装python3.6

(也可以按照后面的方式直接安装anaconda,跳过安装python3.6和pip两节)

ubuntu16.04自带了两个版本的python,2.7和3.5,下面我们会删掉2.7安装3.6版本,并将3.6版本设置为默认版本(即输入python自动启动的是3.6的环境)

依次输入如下命令(在这里复制之后,在putty中点击右键即粘贴)

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:jonathonf/python-3.6
sudo apt-get update
sudo apt-get install python3.6
cd /usr/bin
rm python
ln -s python3.6m python

运行结束后可以尝试输入python看进入的环境是否python3.6,测试结束后输入exit()退出python环境

安装pip

进行上面操作后会发现无法用pip安装包(可以通过这条命令pip --version判断是否可以使用),下面是安装过程

wget https://pypi.python.org/packages/6f/10/5398a054e63ce97921913052fde13ebf332a3a4104c50c4d7be9c465930e/setuptools-26.1.1.zip#md5=f81d3cc109b57b715d46d971737336db
unzip setuptools-26.1.1.zip
cd setuptools-26.1.1
python setup.py install
wget --no-check-certificate https://files.pythonhosted.org/packages/c4/44/e6b8056b6c8f2bfd1445cc9990f478930d8e3459e9dbf5b8e2d2922d64d3/pip-9.0.3.tar.gz
tar -zxvf pip-9.0.3.tar.gz
cd pip-9.0.3
python setup.py install

(注:这里安装的是9.0.3版本的pip,之后使用pip命令时会提示更新,因为更新后会有一些问题所以不用管它就好,觉得自己可以解决这个问题的话也可以尝试更新看看)

安装anaconda3

安装anaconda3会自带一个python,因此这一步和上面安装python3.6有些重叠,只选其一即可,运行如下命令完成安装

mkdir anaconda
cd anaconda
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.2.0-Linux-x86_64.sh  
bash Anaconda3-5.2.0-Linux-x86_64.sh

(注:这步中间会需要回答一些yes no之类的问题)

下一步添加环境变量

export PATH=~/anaconda3/bin:$PATH

这样就可以调用pythonpython3进入python3.6环境了,而且pip也是可以正常使用的。

注:可以直接安装anaconda,配置好环境变量后,默认调用的就是anaconda的python(不需要单独安装python3删除python2),也可以使用pip,jupyter也不需要单独安装。

配置jupyter

当前的服务器是没有图形界面的,所以不能用鼠标操作,一切都要用代码。但是jupyter不一样,下面配置之后,我们就可以在本地的浏览器中打开远程的jupyter,并且用鼠标进行操作,操作和在本地使用jupyter没有任何区别。

pip install jupyter    # 如果已安装anaconda可省略此步
jupyter notebook --generate-config
ipython

在ipython交互环境中依次输入下面两条命令

from notebook.auth import passwd
passwd()

它会让你设置一个密码(这个密码自己要记住,之后从本地连接时需要使用),然后生成一串字符密文,将这串字符记下来之后会有用(从putty中复制东西只需要选中那段文本,即执行了复制操作)。然后exit()退出ipython环境

下面修改jupyter配置文件,对linux下编辑文件的vim命令不熟悉的可以参考菜鸟教程

vi ~/.jupyter/jupyter_notebook_config.py

在这个文件最后加上下面几行,保存退出即可

c.NotebookApp.ip='*'
c.NotebookApp.password = u'把上面记下的密文粘贴到这里'
c.NotebookApp.open_browser = False
c.NotebookApp.port =8899

上面端口(port)设置8899为了不和本地jupyter8888冲突

之后在服务器中输入

jupyter notebook --allow-root

然后在本地(自己的电脑)windows10系统下打开命令行输入

ssh -N -f -L localhost:8899:localhost:8899 root@公网ip

上面命令中的“公网ip”换成你租用的服务器的公网ip地址。(这个窗口一直都不要关,直到你不用jupyter为止)

之后在本地浏览器中输入localhost:8899,会有一个让你输入密码的页面,输入ipython环境下你自己设置的密码,即可登录远程的jupyter了。(这里不需要像其他博客说的那样关掉putty等其他连接)

你可以在服务器linux命令行中安装jupyter扩展和改变主题,就和本地使用一样。还有一个很好的功能是,点击upload可以直接将本地的文件上传到服务器中使用。

如果想退出jupyter,只需要关闭本地浏览器的jupyter窗口,在linux服务器中ctrl+c终止即可。

我们在使用jupyter时,往往还需要用putty窗口执行其他命令,这就需要上面的指令在后台运行,可以用下面这种方式开启jupyter

nohup jupyter notebook --allow-root &

服务器与本地windows文件互传

想将本地的代码、数据等文件上传到服务器,或者将服务器中的训练结果传回本地,是需要用代码执行的

下面的代码都在本地windows10系统的命令行中执行(“公网ip”都要换成租用的服务器的公网ip地址)

1.将本地C:/Users/路径下的chuan.txt文件上传到服务器root目录下

scp C:/Users/chuan.txt root@公网ip:/root/

2.如果想传到自己在服务器根目录下新建的new文件夹中需要这样

scp C:/Users/chuan.txt root@公网ip:~/new/

3.将服务器中root目录下的chuan.txt文件下载到本地C:/Users/路径下

scp root@公网ip:/root/chuan.txt C:/Users/

4.传递文件夹需要用-r

scp -r root@公网ip:/root/chuan C:/Users/

也可以用客户端WinSCPFileZilla通过SFTP协议进行文件互传。

安装GPU版TensorFlow

下面安装gpu版本的tensorflow和一些GPU驱动程序库

先安装gpu版本的tensorflow(注意这里要指定版本,否则安装太新的版本可能与CUDA等版本不匹配)

pip install tensorflow-gpu==1.9.0

测试是否可以使用tensorflow,先进入python环境

python

导入tensorflow,如果不报错则安装成功,之后安装的那一堆都不用管了

import tensorflow

如果上一步import发生了错误,则安装下面命令安装依赖程序。

(可以用这条命令查看CUDA版本cat /usr/local/cuda/version.txt

无论你现在是否有CUDA等,或者有什么版本的(CUDA9.2的貌似用不了,需要9.0的),下面命令会删除当前CUDA等,安装可以使用的版本,我们不需要管它安装的是什么,只要依次执行下面命令来安装,可以用就好了(如果你安装了不能用,不要来问我,我也不知道为什么)

sudo apt-get purge cuda
sudo apt-get purge libcudnn6
sudo apt-get purge libcudnn6-dev
wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_9.0.176-1_amd64.deb
wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/libcudnn7_7.0.5.15-1+cuda9.0_amd64.deb
wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/libcudnn7-dev_7.0.5.15-1+cuda9.0_amd64.deb
wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/libnccl2_2.1.4-1+cuda9.0_amd64.deb
wget http://developer.download.nvidia.com/compute/machine-learning/repos/ubuntu1604/x86_64/libnccl-dev_2.1.4-1+cuda9.0_amd64.deb
sudo dpkg -i cuda-repo-ubuntu1604_9.0.176-1_amd64.deb
sudo dpkg -i libcudnn7_7.0.5.15-1+cuda9.0_amd64.deb
sudo dpkg -i libcudnn7-dev_7.0.5.15-1+cuda9.0_amd64.deb
sudo dpkg -i libnccl2_2.1.4-1+cuda9.0_amd64.deb
sudo dpkg -i libnccl-dev_2.1.4-1+cuda9.0_amd64.deb
sudo apt-get update
sudo apt-get install cuda=9.0.176-1
sudo apt-get install libcudnn7-dev
sudo apt-get install libnccl-dev
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}}

参考博客

之后终端输入

python

再导入库

import tensorflow

没有报错就可以用了(本地用CPU的tensorflow代码可以直接拿过来在这里跑,不需要做任何更改,速度会有非常大的提升)

开启多个进程

因为进入服务器只有一个窗口,当我们用这个窗口跑代码时,就没有办法同时用命令编辑一些文件。为了解决这个问题,我们可以使用screen开启多个进程,用一个进程跑代码,然后将这个窗口折叠到后台,创建新的进程来编辑代码。

(下面截图来源于我本地的虚拟机,远程服务器是一样的)

1.安装

用下面这条命令安装screen

sudo apt-get install screen

2.创建进程

我们可以刚进服务器就用下面命令创建一个process(其中process1是该进程名称,可以随意命名)

screen -S process1

这时会开启一个干净的窗口

image.png

我们在这个窗口下执行一些操作,然后运行代码,在代码运行的过程中,连续按Ctrl+A、Ctrl+D,就会回到主进程,之前创建的进程中代码会继续执行着,只是我们还可以继续做编辑文件等其他工作。

image.png

可以在这里创建第二个进程

screen -S process2

(其实如果不需要更多进程,也可以不用创建新进程,直接编辑文件)

第二个进程的操作和第一个进程相同,如果想要将其折叠到后台运行,也是连续按Ctrl+A、Ctrl+D。

3.查看进程

用下面这条命令查看当前有哪些进程

screen -ls

image.png

进入某一进程

可以用下面代码进入之前创建的process1进程

screen -r process1

进入之后会发现之前的代码仍然继续运行着

image.png

5.终止进程

比如要将process1进程终止掉,用下面这条命令

screen -X -S process1 quit

如果把之前创建的所有进程全部终止,就和最初没创建进程一样。

6. 断开不结束进程

在不使用screen时,当与服务器断开连接(但没有停止实例,只是关掉了putty窗口,断开了ssh连接),正在跑的程序会被终止。而如果程序在screen的进程中运行,则不会受ssh断开的影响,关掉窗口合上电脑都不会影响程序的正常运行。

此外,tmux也可以实现和screen类似的功能。

本地sublime编辑远程文件

刚接触linux可能对vim编辑文件很不习惯,我们更希望用鼠标来操作,如果能用本地的工具来编辑远程文件就更得心应手了,sublime的sftp插件就可以实现这件事。它的原理是将远程文件下载到本地,修改完之后再推送到远程。

vim配置

其实通过修改vim的配置文件,可以使之支持鼠标操作、代码自动缩进等,可以使在远程编辑更加得心应手。

打开配置文件

vim ~/.vimrc

将下面这些配置信息粘贴进去

"去掉vi的一致性"
set nocompatible
"显示行号"
set number
" 隐藏滚动条"    
set guioptions-=r 
set guioptions-=L
set guioptions-=b
"隐藏顶部标签栏"
set showtabline=0
"设置字体"
set guifont=Monaco:h13         
syntax on   "开启语法高亮"
set background=dark     "设置背景色"
set nowrap  "设置不折行"
set fileformat=unix "设置以unix的格式保存文件"
set cindent     "设置C样式的缩进格式"
set tabstop=4   "设置table长度"
set shiftwidth=4        "同上"
set showmatch   "显示匹配的括号"
set scrolloff=5     "距离顶部和底部5行"
set laststatus=2    "命令行为两行"
set fenc=utf-8      "文件编码"
set backspace=2
set mouse=a     "启用鼠标"
set selection=exclusive
set selectmode=mouse,key
set matchtime=5
set ignorecase      "忽略大小写"
set incsearch
set hlsearch        "高亮搜索项"
set noexpandtab     "不允许扩展table"
set whichwrap+=<,>,h,l
set autoread
set cursorline      "突出显示当前行"
set cursorcolumn        "突出显示当前列"

退出之后打开一个python文件,会发现代码高亮了、写代码时回车可以自动缩进、鼠标可以确定光标位置了,滚轮也有效了,总之会更符合我们日常的使用习惯。

但是原来鼠标选中即复制、右键即粘贴的功能看起来用不了了。实际上只要按住shift再选中就还是复制,按住shift右键是粘贴。

如果对颜色不满意,可以下载其他主题颜色设置进去。下面我以monokai为例

mkdir ~/.vim
mkdir ~/.vim/colors
cd ~/.vim/colors
wget https://raw.githubusercontent.com/sickill/vim-monokai/master/colors/monokai.vim
vim ~/.vimrc

加入下面一行

colorscheme monokai

保存退出后,再打开python文件就可以看到效果。

vim配置非常强大,更多功能读者自己探索。

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
相关文章
|
10天前
|
弹性计算 数据挖掘 应用服务中间件
阿里云轻量应用服务器68元与云服务器99元和199元区别及选择参考
目前阿里云有三款特惠云服务器,第一款轻量云服务器2核2G68元一年,第二款经济型云服务器2核2G3M带宽99元1年,第三款通用算力型2核4G5M带宽199元一年。有的新手用户并不是很清楚他们之间的区别,因此不知道如何选择。本文来介绍一下它们之间的区别以及选择参考。
236 87
|
3天前
|
存储 弹性计算 应用服务中间件
阿里云轻量应用服务器出新品通用型实例了,全球26个地域可选
近日,阿里云再度发力,推出了首款全新升级的轻量应用服务器——通用型实例。这款服务器实例不仅标配了200Mbps峰值公网带宽,更在计算、存储、网络等基础资源上进行了全面优化,旨在为中小企业和开发者提供更加轻量、易用、普惠的云计算服务,满足其对于通用计算小算力的迫切需求。目前,这款新品已在全球26个地域正式上线,为全球用户提供了更加便捷、高效的上云选择。
|
20天前
|
机器学习/深度学习 人工智能 PyTorch
阿里云GPU云服务器怎么样?产品优势、应用场景介绍与最新活动价格参考
阿里云GPU云服务器怎么样?阿里云GPU结合了GPU计算力与CPU计算力,主要应用于于深度学习、科学计算、图形可视化、视频处理多种应用场景,本文为您详细介绍阿里云GPU云服务器产品优势、应用场景以及最新活动价格。
阿里云GPU云服务器怎么样?产品优势、应用场景介绍与最新活动价格参考
|
19天前
|
存储 运维 安全
阿里云弹性裸金属服务器是什么?产品规格及适用场景介绍
阿里云服务器ECS包括众多产品,其中弹性裸金属服务器(ECS Bare Metal Server)是一种可弹性伸缩的高性能计算服务,计算性能与传统物理机无差别,具有安全物理隔离的特点。分钟级的交付周期将提供给您实时的业务响应能力,助力您的核心业务飞速成长。本文为大家详细介绍弹性裸金属服务器的特点、优势以及与云服务器的对比等内容。
|
11天前
|
存储 人工智能 网络协议
浅聊阿里云倚天云服务器:c8y、g8y、r8y实例性能详解与活动价格参考
选择一款高性能、高性价比的云服务器对于企业而言至关重要,阿里云推出的倚天云服务器——c8y、g8y、r8y三款实例,它们基于ARM架构,采用阿里自研的倚天710处理器,并基于新一代CIPU架构,通过芯片快速路径加速手段,实现了计算、存储、网络性能的大幅提升。2025年,计算型c8y云服务器活动价格860.65元一年起,通用型g8y云服务器活动价格1187.40元一年起,内存型r8y云服务器活动价格1454.32元一年起。本文将为大家详细解析这三款实例的性能特点、应用场景以及最新的活动价格情况,帮助大家更好地了解阿里云倚天云服务器。
|
5天前
|
人工智能 安全 Linux
阿里云与龙蜥携手打造智算时代最佳服务器操作系统
本次分享的主题是阿里云与龙蜥携手打造智算时代最佳服务器操作系统,由阿里云技术软件部产品总监张鹏程分享。主要分为三个部分: 1.开源社区 2.操作系统 3.云 + AI
阿里云与龙蜥携手打造智算时代最佳服务器操作系统
|
14天前
|
机器学习/深度学习 弹性计算 缓存
简单聊聊,阿里云2核2G3M带宽云服务器与轻量应用服务器区别及选择参考
2核2G3M带宽云服务器与轻量应用服务器是目前阿里云的活动中,入门级走量型云服务器,轻量云服务器2核2G3M带宽68元一年,经济型e实例云服务器2核2G3M带宽99元1年。同样的配置,对于有的新手用户来说,有必要了解一下他们之间的区别,以及各自的购买和续费相关政策,从而选择更适合自己需求的云服务器。本文为大家简单分析一下我们应该选择哪一款。
|
14天前
|
监控 安全 数据库
阿里云国际站:如何使用阿里云国际站服务器
阿里云国际站服务器是一种强大的云计算服务,可以帮助用户轻松搭建和管理自己的网站、应用程序和数据库。本文将介绍如何使用阿里云国际站服务器,包括注册账户、选择服务器配置、安装操作系统、配置网络和安全设置等方面。
|
17天前
|
弹性计算 安全 搜索推荐
阿里云国际站注册教程:阿里云服务器安全设置
阿里云国际站注册教程:阿里云服务器安全设置 在云计算领域,阿里云是一个备受推崇的品牌,因其强大的技术支持和优质的服务而受到众多用户的青睐。本文将为您介绍阿里云国际站的注册过程,并重点讲解如何进行阿里云服务器的安全设置。
|
17天前
|
人工智能 监控 测试技术
阿里云磐久服务器稳定性实践之路
阿里云服务器质量智能管理体系聚焦自研服务器硬件层面的极致优化,应对高并发交付、短稳定性周期、早问题发现和快修复四大挑战。通过“三个重构”(质量标准、开发流程、交付模式)、“六个归一”(架构、硬件、软件、测试、部件、制造)策略,实现芯片、整机和云同步发布,确保快速稳定上量。此外,全场景测试体系与智能预警、分析、修复系统协同工作,保障服务器在萌芽阶段发现问题并及时解决,提升整体质量水平。未来,阿里云将继续深化大数据驱动的质量管理,推动服务器行业硬件质量的持续进步。

热门文章

最新文章