在服务器里利用anaconda科学利用GPU以及管理代码

最近在配置服务器GPU的时候遇到了很多坑,大多都是tensorflow环境和Cuda版本以及keras的兼容性问题。恰好从一位大佬那里得知一种船新的使用方法,使用简便且方便管理,以此记录一下。感谢两位不愿意透露姓名的大佬的理论依据以及技术支持!

一 使用conda产生虚拟环境

1 首先在服务器里下载安装anacodna

这个网上教程比比皆是,就不多做赘述了

2 .创建python虚拟环境

使用

conda create -n your_env_name python=X.X(2.7、3.6)

命令创建python版本为X.X、名字为your_env_name的虚拟环境。your_env_name文件可以在Anaconda安装目录envs文件下找到。
如:
conda create -n poppy_leo_tf python==3.6
安装成功结果

3 使用激活(或切换不同python版本)的虚拟环境

打开命令行输入python --version可以检查当前python的版本。

使用如下命令即可 激活你的虚拟环境(即将python的版本改变)。

Linux:  source activate your_env_name(虚拟环境名称)

Windows: activate your_env_name(虚拟环境名称)

source activate poppy_leo_tf
激活后的python环境
可以看到本地的环境已由base切换成了我们创建的虚拟环境 poppy_leo_tf,python的版本也从默认的3.7变成3.6了

4 对虚拟环境中安装额外的包

在你的虚拟环境中使用命令

conda install your_package

即可安装package到your_env_name中
使用conda安装,会自动帮你安装相关的从属包以及cudnn的对应版本(血泪教训,cudnn版本和tf不兼容害得我跑了半个月的cpu),总之这个就是很好用,没问题啊。

conda install tensorflow-gpu==1.12.0
没有描述
在虚拟环境中打开python,导入TensorFlow,没有问题
在这里插入图片描述
其他包的安装和这个同理

5 关闭虚拟环境(即从当前环境退出返回使用PATH环境中的默认python版本)

使用如下命令即可。

Linux: source deactivate

Windows: deactivate

6 删除虚拟环境。

使用命令conda remove -n your_env_name(虚拟环境名称) --all, 即可删除。

7 删除环境中的某个包

使用命令conda remove --name your_env_name package_name 即可。

二 使用pycharm连接服务器中的虚拟环境

环境装好后,到了我们最喜欢的跑代码环节了,但是每次都通过 Xftp软件上传下载修改再上传等等操作来管理代码实在是麻烦,不仅效率低下而且还不方便代码的版本管理。后面经高人指点发现pycharm可以直接连接服务器的python环境,属实给力。

1 下载pycharm专业版

话不多说,先抛链接。
pycharm专业版链接
下载后用校园企业邮箱注册可免费使用
注册链接:https://account.jetbrains.com/login
申请链接:https://www.jetbrains.com/zh/student/
申请学术免费授权
安装pycharm,登录的时候使用注册好的账户即可使用pycharm专业版

2 Pycharm设置内容:

1、File->Settings:弹出Settings窗口,选择Add项,进行新建SSH Interpreter
没有描述
2、点击“SSH Interpreter”栏,填写Host框和Username框信息,单击“Next”按钮
在这里插入图片描述
3、正确填写密码,单击“Next”按钮
在这里插入图片描述
4、在Interpreter框,选择之前用conda创建虚拟环境的Python虚拟环境,最后点击"Finish"按钮,完成设置。
在这里插入图片描述
选中之后apply,当前pycharm的project下的文件默认会自动上传到服务器的文件夹下,具体文件夹可在上图Sync folders里设置。
在这里插入图片描述

跑一个demo

直接在本地的pycharm运行程序,进程在服务器上运行,看到那个显卡被占满,舒服了。
在这里插入图片描述
在这里插入图片描述

注:conda 镜像源安装不了某些包

在安装keras_bert的时候,可能是conda的清华源镜像更新的比较慢,找不到我要的包。同时把pip的清华源链接直接抛给conda,会出现识别不了的错误。这个问题可以通过在pycharm的设置更改,添加清华大学的pip源:https://pypi.tuna.tsinghua.edu.cn/simple/
在这里插入图片描述
在这里插入图片描述

三 使用screen进行任务管理

当数据量较大,运行时间较长时,直接跑命令,窗口或许异常终止,服务器的进程也会直接中断,不得不重新跑。
screen就很给力的解决了这个问题。
先来说说什么是screen。Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。

screen的参数

-A            将所有的视窗都调整为目前终端机的大小
-d            将指定的screen作业离线
-h            指定视窗的缓冲区行数
-m             即使目前已在作业中的screen作业,仍强制建立新的screen作业
-r             恢复离线的screen作业
-R            先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业
-s            指定建立新视窗时,所要执行的shell
-S             指定screen作业的名称
-v            显示版本信息
-x            恢复之前离线的screen作业
-ls或-list    显示目前所有的screen作业
-wipe         检查目前所有的screen作业,并删除已经无法使用的screen作业

例如:在一个终端里打开jupyter notebook后,如果要执行其他命令需重新打开一个终端
但用screen可以简化此操作,且任务不会随着与服务器的断开而终止
新建一个一个作业

screen -S notebook

从外观上来看,就像重新打开了一个终端
在这里插入图片描述
打开服务器的 jupyter notebook

jupyter notebook --allow-root

在这里插入图片描述
退出screen的作业时,有两种方式:

Crtl + a +d     保存进程并退出作业(程序在screen中继续运行,screen -ls 可查看)

exit            退出作业和进程(程序终止,screen -ls 不可查看)

使用第一种方式退出screen,进程仍在保存,方便继续作业

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值