(二)远端服务器安装miniconda3、GPU版pytorch、2022版pycharm的SSH配置、Jupyter配置

前言

说明:本地使用win10系统及Pycharm2022.3.2,远程连接实验室服务器Ubuntu 16.04.7及Cuda11.2。

本文主要记录了在远端服务器中创建属于自己的独立环境,从零安装miniconda、pytorch;在pycharm最新2022版部署本地与服务器映射、配置Jupyter的全过程。

由于网上可以找到的教程都是Pycharm2019,而最新版2022在界面上做出了较大变化且部署起来更为方便,特此记录,由于笔者水平有限如有错误欢迎在评论区指正。

一、安装miniconda及虚拟环境创建

[1] 安装miniconda
  1. 首先在当前目录下创建空目录存储miniconda:
mkdir -p ~/miniconda3
  1. 使用清华镜像源进行下载安装

可以打开清华镜像源:
(二)远端服务器安装miniconda3、GPU版pytorch、2022版pycharm的SSH配置、Jupyter配置_第1张图片

标注有py的说明自带安装了该版本python,但是影响不大,因为后续会使用自己创建的环境以防环境间相互干扰。选择需要的版本然后使用wget命令进行安装:

# -O表示将文件安装到该路径下
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py38_4.8.3-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3 #解压
  1. 删除源文件.sh
#-r 向下递归,不管有多少级目录,一并删除。
#!!!注意尽量要在根目录下使用,防止出现rm -rf is not found(说明环境变量出错)
rm -rf ~/miniconda3/miniconda.sh
  1. 查看conda是否安装成功并切换到目录下
~/miniconda3/bin/conda
source ~/miniconda3/bin/activate #进入base环境

说明:很多文章中说可以直接看conda -v,但是我在运行的时候出现了报错,参考了这位博主的说法:ubuntu系统安装miniconda3以后找不到conda 命令,使用source解决了问题。

[2] 进入虚拟环境

接下来我们就可以按照本地anaconda一样的指令来创建独立的虚拟环境了。

#创建虚拟环境
~/miniconda3/bin/conda create -n <env_name> python=xxx
#进入base环境
source ~/miniconda3/bin/activate
#进入创建的虚拟环境
source activate 环境名
#显示当前目录下安装的库
conda list
#切换当前目录(目录与虚拟环境互不干扰)
cd ~/文件夹名
#查看当前目录
pwd
#查看目录下子目录和文件
ls
[3] 配置conda环境变量

但是每次都输入这样的初始路径也太麻烦了,所以我们可以对linux的环境进行一定的配置。参考:Linux设置anaconda的环境变量

vi ~/.bashrc #进入配置文件
"i": 输入文本; "ESC":退出文本模式; "shift+:":命令模式; 命令模式wq:保存+退出 
export PATH=/home/<username>/miniconda3/bin/envs/<env_name>:$PATH
source ~/.bashrc #重新初始化环境变量

做三点说明:

  1. 上述操作修改了下的.bashrc文件,相当于把该操作作用于username下的所有目录中,不影响其他用户且不需要每次打开都初始化一遍。
  2. 由于我们需要使用不同的环境来进行管理,所以我将设为了第一个检索的路径,当然如果只是想使用默认miniconda环境也可以设置:export PATH=/home//miniconda3/bin:$PATH,如果想添加新的路径就使用::,其中$PATH表示系统默认路径,一定要加在末尾,表示查找不到则最后访问该路径。
  3. 可以通过输入python和conda -V查看版本来判断自己目前的环境到底是否正确。

二、安装GPU版本pytorch

  1. 查看CUDA版本
nvidia-smi
  1. 在pytorch官网上根据版本选择对应的命令运行
# -c表示采用官网下载,因为清华镜像源默认使用cpu版本
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=10.2 -c pytorch
  1. 将cpu版本更新为gpu版本
    出于某些原因,conda可能会查找不到gpu版本而自动下载cpu版本导致访问失败,可以参考:conda安装GPU版pytorch,结果却是cpu版本[找到问题根源,从容解决]。笔者直接卸载部分库后即解决问题:
conda uninstall cpuonly

(二)远端服务器安装miniconda3、GPU版pytorch、2022版pycharm的SSH配置、Jupyter配置_第2张图片
此时torch访问成功:
(二)远端服务器安装miniconda3、GPU版pytorch、2022版pycharm的SSH配置、Jupyter配置_第3张图片

三、Pycharm环境配置

注意:我在再次配置时出现了解释器库无法显示的问题,重新进行了配置,参考我的另一篇博客:Pycharm2022版SSH连接

pycharm环境配置主要分为两步:

  1. Tools-Deployment设置ssh:PyCharm配置远程python解释器

  2. File-Settings设置解释器

Deployment部署

参考附上的链接,不同版本的pycharm界面会略有不同,最关键的是理解关键项的意义,部署相当于是首先在Connection中连接上一个远程服务器(Root Path设定了根目录),然后在Mapping中将一个本地文件夹(Local Path一般为当前目录)与远端服务器的某个文件夹(Deployment Path)进行同步映射。映射成功后可以在Remote Host进行查看(需要先重启Pycharm)。注意的是Local Path是绝对本地路径而Deployment Path是相对于Local Path的相对路径,见下图:
(二)远端服务器安装miniconda3、GPU版pytorch、2022版pycharm的SSH配置、Jupyter配置_第4张图片

Settings设置

其实和部署时差不多,考虑到网上大多数教程都是2019版,下面给出2022版的示范界面:

  1. 添加新的环境(我的是已经成功添加的界面)
    (二)远端服务器安装miniconda3、GPU版pytorch、2022版pycharm的SSH配置、Jupyter配置_第5张图片
  2. 选择之前已经部署好的SSH,然后不断点击Next

(二)远端服务器安装miniconda3、GPU版pytorch、2022版pycharm的SSH配置、Jupyter配置_第6张图片

  1. 设置解释器:在Interpreter中选择miniconda3中自己env的python3,Sync folders中选择本地文件夹和远程服务器文件夹的对应(具体可以参考网上的其他教程,这里只展示大致界面)

(二)远端服务器安装miniconda3、GPU版pytorch、2022版pycharm的SSH配置、Jupyter配置_第7张图片
综上所有的远程连接就完成了,接下来只需要正常变成即可,如果需要下载新的库就在命令行中进入自己的虚拟环境然后pip或conda install即可。

四、最新版Pycharm的Jupyter配置

运行Jupyter时发现只能使用cpu,无法连接远程服务器,于是进行了配置。发现网上都是2019版的教程,于是记录了自己配置的过程,2019版和2022版的差距相对来说较大,2022版的配置更为简便。

1、基本配置

参考解决pycharm 连接服务器使用Jupyter Notebook无法运行问题
可以出现如下界面则说明配置成功:
在这里插入图片描述
说明:关于linuxv的im指令:终端打开及编辑文件内容

1.打开文件:vi ‘文件名’
2. 按键’i’,终端页面下方显示’insert’即插入,表示文件进入自由编辑模式
3. 编辑之后按键’ESC’退出编辑页面
4. 保存及退出文件:按键’shift+:‘,三者同时摁,此时终端页面显示’:‘,输入’wq’,即保存并退出;若输入’q’则只退出不保存。

2、配置Jupyter Server

运行某一个jupyter文件,将会自动弹出如下配置界面:
在这里插入图片描述

如果上述过程不行的话,按照如下顺序打开Jupyer的配置:
(二)远端服务器安装miniconda3、GPU版pytorch、2022版pycharm的SSH配置、Jupyter配置_第8张图片
上述过程中可能会弹出输入密码(Server)的对话框,输入自己配置时的密码即可。
说明:在查阅网上配置时发现大多博主都选择了第二项,不知道是不是2022版新增了功能,我在使用第一项即Use Managed Server即实现了自己的目的,而且很简便。

3、查看当前jupyter进程并强制结束不使用的进程

根据提示我们知道可以通过“Ctrl+C”来结束Jupyter进程
在这里插入图片描述

但是实际上在使用jupyter时也会出现类似的情况,即本地手动终止的进程在终端依旧在运行(这样还会导致该更新的代码没能成功刷新),我们需要用命令行结束这些进行。首先可以尝试使用jupyter notebook stop命令,但是我遇到了报错,参考这位博主成功解决了问题:如何真正地关闭jupyter notebook server

jupyter notebook list #显示当前的进程
lsof -n -i4TCP:port-number # 通过端口获得pid
kill -9 PID # 删除进程

演示如下,可以发现再次显示进程时53365被kill。(至于为什么这么多进程,是因为之前不会关hhh)
(二)远端服务器安装miniconda3、GPU版pytorch、2022版pycharm的SSH配置、Jupyter配置_第9张图片
不过博主提供的代码块我没能运行成功,我也懒得检查直接手动一个个kill了。

最后:关于Jupyter训练网络时,改一次py代码就要重新刷新然后从头来一遍我暂时没有想到好方法,或许先将代码粘贴进jupyter? 后续解决了再更新,也欢迎大家在评论区指正!

你可能感兴趣的:(毕设,ubuntu,pytorch,pycharm)