实验室服务器背景
实验室服务器连接的方式是one-to-many,即一台中转服务器跟着一个GPU服务器集群, 在服务器上跑程序要经过两步
- 借助ssh从本地电脑登陆中转服务器
- 借助ssh从中转服务器登陆配置GPU的特定服务器
具体的账号密码咨询实验室服务器管理人员。注意到中转服务器有两个功能
- 提供中转的渠道,登陆之后可以选择特定的GPU服务器
- mount在中转服务器上的文件也会映射到GPU服务器上
使用到GPU的程序一定要在登陆GPU服务器之后再跑
实验室服务器配置
因为服务器为了兼容更多的程序,包的升级比较缓慢,普通用户是不能使用管理员的命令的!这时候我们需要配置自己的环境
Python + Tensorflow
推荐使用Anaconda来创建需要的环境。一个不需要管理员权限的Python Data Science Platform,实际上是将anaconda的python写入系统环境变量并且优先与系统自带的python实现目的的。我们可以用它来创建一个虚拟环境,指定需要的Python版本以及安装特定的包。
1 | # 建议先在本地下载,然后通过scp传输到服务器上,服务器连接外网的网速贼慢!! |
然后安装在创建的虚拟环境下Tensorflow,类似virtualenv,此处文件夹命名为tf35,指的是我们此处采用的是python3.5
1 | conda create -n tf35 python=3.5 |
还需要在~/.bashrc 加上两行,是为了运行python代码的时候能找到cuda和cudnn
1 | export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64" |
实验室服务器代码运行
假设我们成功完成以上设置且沿用了上面的命名。运行代码完整流程如下
- ssh登陆到中转服务器
- 再ssh登陆到GPU服务器(192.168.1.x, x在4-26之间)
- 使用以下代码查看GPU是否空闲,不行的话退出到中转服务器上(exit),再选择另一台GPU服务器
1 | nvidia-smi |
- 运行以下代码,开启python3.5虚拟环境,这样才能运行有关tensotflow的代码
1 | conda activate tf35 |
- 代码或者数据集可以通过git或者scp或者ftp(感谢实验室同学提醒)上传到服务器,然后在代码目录运行
1 | python path/to/code |
一些已有的数据集存放
存放路径暂定为, 后期可能会再调整。建议实验室的同学把新下载的数据集也放在该目录下,好人一生平安🙈。1
/home/share2/MIAGroup
数据集有
数据集 | 详细 | 大小量级 |
---|---|---|
chest-xray | 胸透 | 10G+ |
cifar | cifar10, cifar100 | 150MB+ |
ICIAR2018_BACH_Challenge.zip | breast-xtay | 10G+ |
synapse | brain? | 20G+ |
ILSVRC(ImageNet Images) | ILSVRC2012* ILSVRC2015_CLS-LOC.tar.gz ILSVRC2017_CLS-LOC.tar.gz |
100G+ |
ps. 如果下载国外数据集网速又比较捉急,欢迎找LincolnZjx(嗯,有特效)
可视化界面连接服务器获取文件的办法
实际上服务器是提供了ftp服务。因而在ubuntu系统下,我们可以
- 打开files
- 点击左侧栏最下面的+ Other Locations
- 在界面最下边输入ftp://服务器ip地址, 然后点击connect
然后在files拖取文件到本地或者上传。当然文件多的时候还是建议用命令行界面的ftp或者scp
1 | ftp -p ip_address |
查看目录文件
1 | ls |
下载的命令是
1 | get /path/to/files |
上传的命令
1 | put /path/to/file |
科学上网Tips
两种做法
第一种:下载Lantern,安装即可使用。
第二种:借助ss和一台国外的服务器。简单来说就是,本地数据经过ss的加密发送给国外的服务器,服务器上有ss服务端接受并解密查询,再转发查询结果回来。
以下简略介绍第二种做法
具体流程
- 租服务器
- 配置服务器
- 配置客户端
服务端
DO和Vultr的服务器都不错,HK,JP,SG的节点会比较快。搭建的时候只需要运行
1 | apt-get install python-pip |
以下是服务端的json配置文件的做法
1 | { |
客户端设置
以下演示的是Ubuntu上的做法
1 | sudo apt install python-pip |
以下是一个通用的客户端shadowsocks.json配置文件的做法, server填的是服务器的ip,server_port是服务器ss服务端监听的端口,password自己设定。
1 | { |
更新日志
- 2018.1.16 添加cudnn和cuda的路径配置
- 2018.1.15 添加服务器运行代码的流程
- 2018.1.10 修改conda create语句
- 2018.1.5 添加conda生效的语句
- 2018.1.4 创建文章