搞了一段时间,终于搞明白怎么远程连接实验室服务器写深度学习代码了,如果组内有对这些比较了解的同学,可以找他们帮忙能省很多麻烦,感恩。如果没有的话这篇文章将详细说明所有操作,保证打通全流程,跟着做完就能用。
提示:这篇文章仅对jupyter notebook+vs code+tensorflow组合适用。其他软件组合或连接方法的博客和视频很多,方法、细节和需要使用的软件大多不一样,建议自己仔细查看后再使用。
jupyter notebook+vs code是我个人喜欢的搭配。jupyter可以每一个代码块的执行代码,很方便。但是原生的浏览器编辑器没有代码补全和提示,风格也不好看,所以再搭配上vs code就很让我满意。
首先是买一台Ubuntu系统的服务器,其实就是Ubuntu操作系统就是Linux,后面的设置如果没有ubuntu选项的就选Linux。所以此文只适用于自己课题组有服务器的情况下使用,如果是网上租的深度学习服务器可以查询别的教程。
具体服务器怎么配置是另外一回事了,找你们课题组里面担任服务器管理员职责的同学给你分配一个账号,把账号密码拿到就行
下一步下载VS code。注意是vs code,不是visual studio,这两个很像但是不是一个东西。蓝色的是vs code
去官网单击download下载
下载完成后在vs code先装好python插件和jupyter notebook插件。
操作这一步的前提是你已经使用过anaconda配置过一些相关环境了,这样的话你的电脑里就已经有python了,会给后面的事少掉很多麻烦。配置anaconda可以参考其他教程
比方说我的anaconda里面已经有三个环境了,我在vs code里选择的是my_vs_env环境。
下面打开vs code,单击红框区域进入拓展部分,输入框里输入我下面的几个插件名称下载。
以jupyter notebook为例,下载页面如下图,上图列表栏里的其它几个插件分别是vs code的中文包,python组件和jupyter notebook组件。Remote ssh那两个后面再用。
全部下载好后,去开始页面,应该会有一个jupyter notebook的新手guide。注意看guide里面的第二步 select a jupyter kernel。
可以直接点击蓝色方框open command palette to select a jupyter kernel使用,上面也说了也可以用CTRL+shift+P输入命令select notebook kerne用来选择内核。单击蓝色方块比较简单,单击后选择create new jupyter notebook
进来之后,注意看右上角红框部分,已经选择好我的my_vs_env内核了,没有选好的单击该部分会直接显示出你在anaconda里面所有已经有的环境供你选择的,除非你改过路径了。所以说最好先用anaaconda配好环境在这里可以直接用了。
到这里本机环境下,vs code+jupyter notebook插件就设置好了。
你可以在自己电脑上写深度学习代码了。前提我的my_vs_env里面已经配置好了numpy,tensorflow和matplotlib。
下面就是如何把这一套内容搬上服务器了。
第一步:下载remote ssh插件。就是上文说的我们后面再用到那个插件,直接搜索remote ssh下载排名第一的那个,附带的edit ssh config files插件会一起下载的。
然后参考下文博客,一步步跟着做就行https://blog.csdn.net/junbaba_/article/details/111590179
全做好了看到左侧代码就算成功
注意看右上角红框+号,如果不点击+号,列表栏里应该是没有bash的,可以增加一个bash。新增后单击进入bash看到绿色字符就成功进入服务器了
这时再进入拓展(extension),一般在屏幕左侧。可以看到你服务器名字里已安装的插件和本地已安装的插件。
我用的服务器名字是MLSERVER里面已经有jupyter notebook了。新配置的环境里面应该是什么也没有,把jupyter notebook装进去。
装好后再回到终端窗口
下面是在服务器上创建自己的环境,注意此时你在服务器的根环境下。依次输入以下命令
conda create -n my_env python=3.7.0
my_env可以自定义,这是你自己环境的名字, python=3.7.0(指定python版本,也可以改)这行命令的意思是创建我自己的环境。
tips:在后面下载过程中建议不采用国内镜像源,官方镜像源速度还可以。采用国内镜像源会出现一些意想不到的问题。我遇到的就有https的问题,还有有时采用国内镜像源下载某些package时会提示PackagesNotFoundError ,你近期使用的channels找不到你要的package。下文链接说了解决方法
https://blog.csdn.net/weixin_45552562/article/details/109668589
但是此方法要你注册anaconda账号,这网站不搭梯子很难登上,很折磨人,所以建议不要乱改镜像源。
等第一条命令执行完之后,继续输入
conda activate my_env
这行命令后就进入了你自己的环境了,这时候你的绿色字符前应该会有(my_env)字样
再依次输入
conda install ipykernel
conda install nb_conda
touch test.ipynb
这行命令是新建一个.ipynb文件(jupyter notebook的文件格式)
文件目录里应该就有这个文件,单击进入。你会发现选择内核里是空的,你也运行不了代码
再去命令行直接输入 jupyter notebook
可以看到以上代码,粘贴上面说的让你copy的URL
单击选择内核,再选connect to a jupyter server
把刚刚粘贴的网址输入进去,即可选择服务器下的内核,此时应该是有可选内容的,如果没有的话去找负责服务器的人。
这时试一试jupyter notebook能不能print(5)如果可以输出5,就算成功了。注意此时你已经处于jupyter notebook的操作下了使用conda指令没有用了
需要清楚的是此时你走过的路线是服务器>>你自己的环境>>你环境中的jupyter notebook。
到这一步在服务器上使用vs code和jupyter notebook就算完成了,你可以直接远程在服务器实时的写代码了。但是此时你的环境中应该只有一个python内核,可以写一些python代码但是不适合深度学习任务的使用。
下面是为你服务器里的环境配置深度学习所需要的内容了。在终端按下ctrl+c退出jupyter notebook,确认此时是不是在你自己的环境下,即查看服务器名称前有没有你的自定义环境名称。
如果是,下面安装深度学习相关的包
pip install pandas -i https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
pip install matplotlib -i https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
pip install tensorflow -i https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
keras会和tensorflow一起装好的,numpy会和pandas一起装好。此时tensorflow应该装的是cpu版本,如果装gpu版本的tensorflow是另外教程的事了。
安装可以使用gpu的tensorflow可以参考以下链接
https://www.cnblogs.com/jshmztl/p/13306837.html
gpu版本需要同时匹配python版本,cudnn版本和tensorflow版本,很容易出错建议多看几篇教程,确定自己搞明白了再动手。
这样就基本完成了所有的配置了。即使参考此教程,中间也很有可能出现很多文中没有的小问题,多查查资料应该能解决。