您现在的位置是:首页 >学无止境 >【AutoDL】服务器配置、Xftp数据传输及PyCharm连接网站首页学无止境

【AutoDL】服务器配置、Xftp数据传输及PyCharm连接

HUI 别摸鱼了 2023-06-26 04:00:02
简介【AutoDL】服务器配置、Xftp数据传输及PyCharm连接

目录

一、AutoDL服务器配置

(一)租用实例

1. 算力市场

1.1 充值

在这里插入图片描述

1.2 租用服务器

在这里插入图片描述
点击1卡可租,进入租卡页面。
在这里插入图片描述

2 基础镜像

之前实验室服务器的版本:torch 1.12.0,Ubuntu 18.04.1,cuda 11.3,python 3.8.13,torchaudio 0.12.0,torchvision 0.13.0,conda 4.12.0。
基础镜像有两种方法:

2.1 可以选择已给的基本镜像PyTorch框架

但仍需要按照 一、AutoDL服务器配置 -> (三)配置环境 -> 5 -> 5.2 -> 5 开始来验证环境是否配置成功。
在这里插入图片描述

2.2 建一个Miniconda的镜像,后续还需要进行环境配置。下载镜像,再上传,再配置虚拟环境。

在这里插入图片描述
注意: 可以在关机的情况下,更换镜像。
在这里插入图片描述

3 实例查询

在这里插入图片描述

(二)数据传输

  • 单个文件,如zip压缩包时,建议直接在文件存储中上传。因为不需要开机。
  • 多文件,Xftp传输或需要开机。

参考:
AutoDL网盘的使用
AutoDL使用教程

1. AutoDL网盘传输

1.1 AutoDL网盘初始化

在这里插入图片描述

1.2 AutoDL网盘上传ZIP文件

在这里插入图片描述

1.3 AutoDL网盘解压ZIP文件

1.3.1 进入终端

注意: 选择无卡开机
在这里插入图片描述
在这里插入图片描述

1.3.2 进入文件存储autodl-fs

在这里插入图片描述

1.3.3 解压ZIP文件
  • 直接解压到当前文件夹:
# 解压到当前的文件夹
unzip xxx.zip
# 解压到指定的文件夹
unzip -d /train xxx.zip
  • 终端解压时,注意root路径
    在这里插入图片描述
    在这里插入图片描述
    运行结果:
    在这里插入图片描述

2. Xftp数据传输

优点:

  • 在Windows系统下,如果想和Linux系统进行文件传输,可以使用Xftp工具。
  • 不限制上传的文件个数,可直接上传文件夹。

2.1 下载xshell 和 Xftp软件

xshell 和 xftp官网: xshell 和 xftp

2.2 安装xshell 和 Xftp软件

参考:Windows 下 xshell 和 xftp 安装与使用

2.3 Xftp与AutoDL网盘连接

  • AutoDL开机, 可选无卡开机
    在这里插入图片描述
  • 开机后,获得登录指令、密码
    在这里插入图片描述
  • 打开XFTP,复制AutoDL上的登录指令、密码
# 登录指令:ssh -p 22070 root@region-45.seetacloud.com
主机:region-45.seetacloud.com(@后的所有内容)
端口号:22070(@前的数字部分)
用户名:root
密码:AutoDL上的密码

在这里插入图片描述

2.4 Xftp与AutoDL数据传输

  • 连接已建立的会议
    在这里插入图片描述
  • XFTP与AutoDL连接
    在这里插入图片描述
  • 上传数据
    在这里插入图片描述

3. 公网网盘传输

3.1 开机—选择AutoPanel

在这里插入图片描述

3.2 选公网网盘——X里云盘、X度网盘

在这里插入图片描述

具体请参考:公网网盘(强烈推荐)

(三)配置环境

参考: 超详干货!Linux 环境变量配置全攻略

1. 知识(可选择不看,不影响安装)

1.1 PATH的作用

参考:初识脚本 理解 PATH 及 ~/.bashrc

  • 每次在 Bash 里面输入一个命令时,Bash 都会去 PATH目录里面寻找对应的文件,如果找到了就执行。
  • 使用PATH:将 ~/local 添加到path 里面,分为永久设置PATH和临时设置,具体如下:
  1. 先获取 ~/local 的绝对路径 : cd ~/local; pwd

  2. 临时设置PATH :

  • export PATH=“local的绝对路径:$PATH”

  • 任意位置(不是 ~/local)执行: demo.txt

  1. 永久设置PATH:
  • 创建 .bashrc : touch ~/.bashrc

  • 进入并编辑:start ~/.bashrc

  • 写入以下内容: export PATH=“local的绝对路径:$PATH”

  • 执行 .bashrc : source ~/.bashrc

  • 任意位置(不是 ~/local)执行: demo.txt

1.2 bash

Bash (GNU Bourne-Again Shell) 是许多Linux发行版的默认Shell,是Bourne shell的后继兼容版本与开放源代码版本,它的名称来自Bourne shell(sh)的一个双关语(Bourne again / born again):Bourne-Again SHell。

  • bash是一个命令处理器, 运行在文本窗口中, 并能执行用户直接输入的命令;
  • bash还能从文件中读取Linux命令, 称之为脚本;
  • bash支持通配符, 管道, 命令替换, 条件判断等逻辑控制语句 。

1.3 ~/.bashrc 的作用

~/bashrc: 为每一个运行bash shell的用户执行此文件。当bash shell被打开时,该文件被读取。
每次修改.bashrc后,使用source ~/.bashrc(或者 . ~/.bashrc)就可以立刻加载修改后的设置,使之生效。 一般会在.bash_profile文件中显式调用.bashrc。登陆linux启动bash时首先会去读取/.bash_profile文件,这样/.bashrc也就得到执行了,你的个性化设置也就生效了。

  • .bashrc 这个文件主要保存个人的一些个性化设置,如命令别名、路径等, 是bash的个人配置文件,在用户目录下,是个隐藏文件;
  • 可以实现在进入 Git Bash 前执行任何命令;可以进行命令别名缩写;可以设置环境变量及PATH
  • 新建 .bashrc文件:touch ~/.bashrc;
  • 设置PATH:export PATH=“目录的绝对路径:$PATH”。

1.4 Linux环境变量配置

  • ~/.bash_profile 是交互式、login 方式进入 bash 运行的,意思是只有用户登录时才会生效,.bash_profile只在会话开始时被读取。
  • ~/.bashrc 是交互式 non-login 方式进入 bash 运行的,用户不一定登录,只要以该用户身份运行命令行就会读取该文件,.bashrc在每次打开新的终端时都会被读取。。
1.4.1 Linux环境变量配置方法1:vim ~/.bashrc

通过修改用户目录下的~/.bashrc文件进行配置:

vim ~/.bashrc
// 在最后一行加上
export PATH=$PATH:/home/uusama/mysql/bin

注意事项:

  • 生效时间:使用相同的用户打开新的终端时生效,或者手动source ~/.bashrc生效
  • 生效期限:永久有效
  • 生效范围:仅对当前用户有效
  • 如果有后续的环境变量加载文件覆盖了PATH定义,则可能不生效
1.4.2 Linux环境变量配置方法2:vim ~/.bash_profile

和修改~/.bashrc文件类似,也是要在文件最后加上新的路径即可:

vim ~/.bash_profile
# 在最后一行加上
export PATH=$PATH:/home/uusama/mysql/bin

注意事项:

  • 生效时间:使用相同的用户打开新的终端时生效,或者手动source ~/.bash_profile生效
  • 生效期限:永久有效
  • 生效范围:仅对当前用户有效
  • 如果没有/.bash_profile文件,则可以编辑/.profile文件或者新建一个

2. AutoDL配置环境-激活conda

参考:李沐+AutoDL深度学习环境配置

2.1 查看conda

conda activate base

在这里插入图片描述

2.2 激活conda

2.2.1 通过修改用户目录下的~/.bashrc文件进行配置
vim ~/.bashrc

在这里插入图片描述

2.2.2 英文下输入i,下面会出现一个INSERT

在这里插入图片描述

2.2.3 跳到页末:按键盘上的pagedown,添加conda

注: 这个路径只对minconda3的AutoDL的服务器管用,如果是其他服务器,自己改下路径。

source /root/miniconda3/etc/profile.d/conda.sh

在这里插入图片描述

2.2.4 保存退出
  • 按下ESC,退出编辑界面;
    在这里插入图片描述

  • 英文键盘输入 :wq,然后回车,保存文件并退出。
    在这里插入图片描述

  • 回到终端界面
    在这里插入图片描述

2.2.5 重启终端:输入 bash 或把终端关掉,重启终端

在这里插入图片描述

2.3 进入基本的conda环境

conda activate base

在这里插入图片描述

3. AutoDL配置环境-Python安装

在这里插入图片描述

3.1 搭建自己的Python环境-py38(自己随意起)

conda create -n py38 python=3.8

在这里插入图片描述

3.2 进入py38环境

conda activate py38

在这里插入图片描述

4. AutoDL配置环境-PyTorch框架安装

PyTorch框架安装两种方法:

  • 官网快捷键安装;
  • 下载PyTorch等包,上传到网盘,进行安装。

4.1 快捷键安装

4.1.1 进入官网,选择自己的版本

官网:PyTorch
在这里插入图片描述

# CUDA 11.3
conda install pytorch==1.12.0 torchvision==0.13.0 torchaudio==0.12.0 cudatoolkit=11.3 -c pytorch
4.1.2 安装
  • 复制、粘贴、安装
    在这里插入图片描述
    在这里插入图片描述
  • 安装完成
    在这里插入图片描述

4.2 网盘上传的各种包的安装

4.2.1 安装包下载、上传

具体参考: (二)数据传输 这一章。
注: 包的安装、上传已完成后,进行下一节。

4.2.2 Torch、Torchvision等其他包的安装
pip install autodl-fs/torch-1.10.0+cu111-cp38-cp38-linux_x86_64.whl

注: 一定要和自己创建实例的环境相对应,我随便举个例子。3个镜像都在autodl-fs/目录下。
在这里插入图片描述
注: 安装torchvision、torchaudio等其他包方法相类似,不重复了。
另: 按下Tab键可自动补齐名称。

5. AutoDL配置环境-JupyterLab页面更新

5.1 原因

环境创建完后,JupyterLab页面还只有基本环境,需要进行更新。
在这里插入图片描述

5.2 JupyterLab页面更新——在py38环境

  1. 在py38环境下,输入下列代码:
conda install ipykernel

在这里插入图片描述
2. 接着输入下列代码:

ipython kernel install --user --name=py38

在这里插入图片描述
3. 添加成功
在这里插入图片描述
4. 按照以上步骤配置好环境,就可以Notebook下的py38进去写代码了。
在这里插入图片描述
5. 如果没有按照以上的步骤配置,就选择左边的Python 3进入Jupyter写代码。
在这里插入图片描述

6. AutoDL配置环境-验证

6.1 开机

注: 之前的步骤都是无卡开机模式,而为了验证环境已经配置完成,需要关机,再直接开机,这次不是无卡开机。
在这里插入图片描述

6.2 进入JupyterLab

在这里插入图片描述

6.3 进入py38

在这里插入图片描述

6.4 输入代码,验证

import torchvision
import torch

print(torch.version.cuda) 
print(torch.__version__)
print(torchvision.__version__)
print(torch.cuda.is_available())
# 11.3
# 1.12.0
# 0.13.0
# True

在这里插入图片描述

二、PyCharm连接(PyCharm2021.3专业版)

(一)安装PyCharm专业版

1. 原因

注: 必须是PyCharm专业版才能进行远程连接使用。

2. PyCharm专业版的安装

2.1 学生认证教育邮箱的安装

2.2 PyCharm2021.3专业版的安装

(二)AutoDL与PyCharm专业版连接

参考教程:

1. AutoDL与PyCharm专业版连接

连接方法有两种:

1.1 官方远程连接方法

  • 随便打开一个项目;
  • [File] -> [Settings];
    在这里插入图片描述
  • 选择[Python interpreter] -> 小齿轮;
    在这里插入图片描述
  • 选择[Add];
    在这里插入图片描述
  • 将实例SSH指令中的Host、Port与Username进行匹配和填写;
    在这里插入图片描述
    -点[Yes];
    在这里插入图片描述
  • 输入SSH的密码 -> [Next];
    在这里插入图片描述
  • 定位到py38环境中的python解释器 -> 配置同步目录;※ noise_code,文件夹要用下划线 ※
    在这里插入图片描述
  • 同步文件夹设置;
    在这里插入图片描述
  • 配置同步目录,不建议使用默认的/tmp目录;
    在这里插入图片描述
  • 配置完成。
  • 可以对python解释器进行修改;
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

1.2 从Tools进行配置(可不看)

以下步骤来自:AutoDL使用教程,写在这里主要是为了看方便,大家可以去看博主的原文。

  • Tools -> Deployment -> Configuration;
    在这里插入图片描述
  • 添加SFTP; SFTP(SSH File Transfer Protocol,也称 Secret File Transfer Protocol) 是一种安全的SHH文件传输协议。
    在这里插入图片描述
  • 点击…进入SSH Configurations;
    在这里插入图片描述
  • 完成配置。
    在这里插入图片描述
  • 如果您在运行时找不到Python文件,可能是没有自动同步代码,那么可以选择手动同步:
    在这里插入图片描述

2. 显示云服务器的文件目录

在这里插入图片描述

3. 切换到root/autodl-fs云盘目录下,查看到上传的数据和代码

在这里插入图片描述
在这里插入图片描述

4. 连接到远程终端

在这里插入图片描述
在这里插入图片描述

5. 查看、修改代码内容

  • 新建文件,自动更新
    在这里插入图片描述
    说明: 因为选择了自动更新,所以新建文件、编写的代码都会自动更新到云服务器上。
    在这里插入图片描述
  • 重新上传更新代码(如果需要的话)
    在这里插入图片描述
    在这里插入图片描述

6. 安装项目的依赖包—requirements.txt

  • PyCharm终端输入命令(cd RoGNoisyLabel-master)进入RoGNoisyLabel-master文件夹,然后直接输入如下指令一键安装所需依赖包:(一起全安装)
#进入项目文件夹,目的是找到requirements.txt
cd RoGNoisyLabel-master  
# install
pip install -r requirements.txt 
  • PyCharm终端安装依赖包 (一个一个安装)
    打开requirements.txt查看虚拟环境需要哪个安装包,输入如下命令进行安装。
conda install 安装包的名字  或是   pip install 安装包的名字

在这里插入图片描述

7. 运行代码

7.1 PyCharm终端运行

在这里插入图片描述

7.2 PyCharm直接执行

在这里插入图片描述
运行结果:
在这里插入图片描述

7.3 JupyterLab终端运行(推荐)

  • 通过JupyterLab的终端来执行,只要JupyterLab不出现重启(几乎不会),JupyterLab的终端就会一直运行,无论是本地主机断网还是关机。
    在这里插入图片描述
  • 如果关机了这个终端tab,可以在左侧栏正在运行终端和内核中找回。
    在这里插入图片描述
  • 打开时如果终端什么也不显示,按回车键即可。在使用JupyterLab长时间跑代码的过程中强烈建议对日志重定向,防止断网后中间的日志没有了。使用方法:
# 日志重定向到train.log文件。即在你的命令后加上:> train.log 2>&1
python xxx.py > train.log 2>&1
# 实时查看日志
tail -f train.log

8. screen/tmux工具

8.1 原因

如果在PyCharm中长时间使用实例的终端环境运行任务,可能因连接中断导致任务失败。因此需要开守护进程来执行程序。

8.2 screen工具

AutoDL自带的Jupyterlab终端和screen工具。
参考:
1.官方文档—守护进程
2.Pycharm连接远程服务器(AutoDL)训练YOLOv5

8.2.1 screen工具安装
  • 打开JupyterLab终端
  • 在命令行终端安装screen:
apt-get update && apt-get install -y screen

在这里插入图片描述

8.2.2 JupyterLab终端
  1. 创建新会话(需要进入你的环境,如py38,这里只做演示,没有进入环境
  • 终端输入:screen
    在这里插入图片描述

  • 回车键 ,此时会出现一个和之前完全一样的终端(实际上是两个)
    在这里插入图片描述
    说明: 此时在这个终端中执行的程序意味着会受到这个会话保护,比如在这里执行命令:
    在这里插入图片描述
    注: 如果使用screen打开终端后中文乱码,执行以下命令后重新进入screen终端:

echo "defencoding GBK" >>  ~/.screenrc
echo "encoding UTF-8 GBK" >>  ~/.screenrc
  1. 离开会话
    在用screen打开的终端中使用快捷键:ctl + a + d,会退出到原终端,并且显示detached,意味着这个会话只是离开并未退出。
    在这里插入图片描述

  2. 重新进入会话(可以看到上图和下图的终端是不一样的,是两个会话
    在这里插入图片描述
    执行完以上命令,就会恢复screen的那个终端(我们会发现最开始执行的ping www.baidu.com仍然在执行)。因此就可以将我们的程序放在screen的会话中执行,然后离开会话,等我们需要看日志时再恢复到这个会话中。
    在这里插入图片描述

  3. 退回会话,关掉会话(可任选一种方法

  • 在用screen打开的终端中使用快捷键:ctl + d,就会离开screen会话,回到原来的终端。如果有正在执行的程序,先ctrl + c终止程序。
    在这里插入图片描述

  • 正常退出可以用exit命令、快捷键等。

screen -r 1310.pts-0.autodl-container-9c5011800000-9700000f2
exit  # 或Ctrl+a k 或Ctrl+C
  1. screen乱码问题
    加上 -U 参数即可,比如:
新建:screen -U
恢复:screen -U -r xxx
  1. 关掉进程中的指定会话
# 关掉指定会话
kill ...        

在这里插入图片描述

8.2.3 PyCharm终端(同上)
  • 切换远程
  • 进入环境
  • 新建screen会话
    在这里插入图片描述
    说明: 可以进入新的会话后,再激活环境,再运行程序。
  • 运行程序
    在这里插入图片描述

8.3 tmux工具

操作与screen工具相似,可自行搜索方法,这里不做介绍。

三、AutoDL自动关机

(一)原因

不确定自己的代码需要执行多久结束,希望执行完成后立马关机。这类场景可以通过shutdown (最好使用命令完整路径: /usr/bin/shutdown)命令来解决。
注: 请保存好程序的日志,自动关机后标准输出中的日志将不再可见

(二)方法1

# 假设您的程序原执行命令为
python train.py

# 那么可以在您的程序后跟上shutdown命令
python train.py; /usr/bin/shutdown      # 用;拼接意味着前边的指令不管执行成功与否,都会执行shutdown命令
python train.py && /usr/bin/shutdown    # 用&&拼接表示前边的命令执行成功后才会执行shutdown。请根据自己的需要选择

(三)方法2

在您的Python代码中执行shutdown命令,例如:

import os

if __name__ == "__main__":
    # xxxxxx
    os.system("/usr/bin/shutdown")
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。