Pycharm连接云算力远程服务器(AutoDL)训练深度学习模型全过程

本文主要是介绍Pycharm连接云算力远程服务器(AutoDL)训练深度学习模型全过程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言:在上一篇windows搭建深度学习环境中,我试图使用笔记本联想小新air14的mx350显卡训练一个图像检测的深度学习模型,但是训练时长大概需要几天时间远超我的预期,所以我便选择租用GPU进行训练,在对多家平台对比后找到了经济实惠的AutoDL,接下来是我租用GPU–配置环境–连接Pycharm–训练模型的全过程,基于本人也是刚入门的新手,如果有不恰当的地方还请大家指教。

一、租用GPU

  • 首先进入官网AutoDL:https://www.autodl.com/home,注册登录(如果是学生还有优惠)
  • 点击算力市场
    在这里插入图片描述
  • 选择合适的计量方式,地区和GPU型号,
    (1)在选择地区时,一般选择距离自己最近的区,这样可以减少延迟,提高计算效率123。
    选择GPU
    (2)在选择GPU时,需要考虑GPU对应的地区,一般选择距离自己最近的区,整体区别不大。另外,GPU型号的选择也很重要,对应不同的显卡核心,不同的GPU型号的收费价格不同,越好的GPU收费越贵,看个人经济实力选择。
  • 选择镜像
    在本文中选择的是基础镜像,大家根据自己的项目要求选择合适的框架即可,
    在这里插入图片描述
  • 租用成功后界面
    在这里插入图片描述

二、配置环境

在这里我们首先选择无卡模式开机,顾名思义无卡模式开机即没有GPU有CPU开机(一般GPU被别人占满的时候,无卡模式还是依然能开机的),同时无卡模式只有0.1元/时,我们可以用它进行数据的传输和环境的配置,有卡模式就需要根据你所选择的配置进行收费,如选择的3090需要1.58元/时。
在这里插入图片描述

1、配置环境

(1)点击JupyterLab
在这里插入图片描述
(2)点击终端
在这里插入图片描述

  • 输入:vim ~/.bashrc

  • 点击i进入编辑模式

  • 开始进行编辑:输入i

  • 移动到文件的最后一行,加上source /root/miniconda3/etc/profile.d/conda.sh

  • 按Esc键,输入:wq,再回车(:q是推出不保存:q!是强制退出)
    输入bash后回车,即刷新一下
    在这里插入图片描述(3)进入环境:conda activate base
    创建新环境:conda create -n py37 python=3.7
    进入新环境,输入:conda activate py37
    (推出py37的代码示例:conda deactivate)
    在这里就可以根据项目需要配置相应的深度学习框架,我认为有三种方案,
    一是可以在conda环境下使用官网命令直接安装对应的包,如我的项目需要torch==1.12.0+cu113 torchvision==0.13.0+cu113 torchaudio==0.12.0就可以到Pytorch官网使用对应命令安装,但是我在安装过程中到最后总是被杀掉进程,所以在这里我使用的是第二种方法。
    二是可以使用远程连接工具xftp传输文件到云主机上进行离线安装,xftp下载链接
    三是可以直接将需要安装的包下载的本地电脑,再上传到租用主机的网盘上
    本文使用的是第二种方法,所以以下为第二种方法的具体步骤
    1、点击更多,点击无卡模式开机或有卡模式开机后会在ssh登录出现ssh登录指令和密码
    ssh登录指令格式如下
    ssh -p 123456 root@xxxxxx.xxxx.com

  • 用户名:root

  • 主机HOST:xxxxxx.xxxx.com(即@后的所有内容)

  • 端口号:123456
    在这里插入图片描述2、连接xftp

  • 首先新建文件

  • 名称可以随便起

  • 主机为xxxxxx.xxxx.com(即@后的所有内容)

  • 端口号为ssh -p 123456 root@xxxxxx.xxxx.com格式中的123456

  • 密码
    在这里插入图片描述连接后左侧为你电脑本机,右侧是云主机,在右侧打开你想要存放文件的文件夹,双击左侧本机文件即可将文件上传到云主机的对应文件夹。

在这里插入图片描述
3、离线安装
pytorch安装包路径
进入上传到的文件目录,使用pip命令安装
如我存放在了/root/autodl-fs文件夹下,首先在终端使用cd autodl-fs,使用ll可查看文件列表。
再使用pip 包的名称即可安装,包的名称可以使用tab自动补齐。
在这里插入图片描述4、jupyter页面更新(即在jupyter页面里增加一个基础环境:py38)

进入刚刚创建的虚拟环境,输入conda install ipykernel
再输入:ipython kernel install --user --name=py37
出现
在这里插入图片描述5、验证cuda是否可用 ***(到这里之前为了省钱都是无卡模式开机,为了验证环境是否配置成功需要先关机再开机,这次开机不要选择无卡模式了,需要根据你选择的配置进行按小时计费)***
进入notebook下的py37

import torchvision
import torch
print('你对应的torch的版本信息',torch.__version__)
print('返回true即为可用',torch.cuda.is_available())
# 1.12.0+cu113
# True

在这里插入图片描述

三、连接Pycharm

点击File,点击Settings,点击Python interpreter,点击小齿轮的Add
在这里插入图片描述
点击SSH interpreter,填写对应的Host和Username(即上文连接xftp的主机,用户名和端口号)
在这里插入图片描述
输入密码
在这里插入图片描述选择python和项目路径(一会会上传),如果你和我上文一样,新建了一个python3.7.1的conda环境则需要到/root/miniconda3/envs/py37寻找python
在这里插入图片描述

上传你的项目文件
在这里插入图片描述
开始连接,在下面会出现对应终端
在这里插入图片描述

在这里插入图片描述

四、训练模型

切换到项目存放的文件夹,执行python train.py && shutdown 我的训练模型代码放在train.py文件下,如果你的训练代码不在这里请自行修改。shutdown的作用是在代码运行结束后,云主机会自动关机,以防止再产生不必要消费。

这篇关于Pycharm连接云算力远程服务器(AutoDL)训练深度学习模型全过程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/656822

相关文章

RabbitMQ消息总线方式刷新配置服务全过程

《RabbitMQ消息总线方式刷新配置服务全过程》SpringCloudBus通过消息总线与MQ实现微服务配置统一刷新,结合GitWebhooks自动触发更新,避免手动重启,提升效率与可靠性,适用于配... 目录前言介绍环境准备代码示例测试验证总结前言介绍在微服务架构中,为了更方便的向微服务实例广播消息,

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

Qt使用QSqlDatabase连接MySQL实现增删改查功能

《Qt使用QSqlDatabase连接MySQL实现增删改查功能》这篇文章主要为大家详细介绍了Qt如何使用QSqlDatabase连接MySQL实现增删改查功能,文中的示例代码讲解详细,感兴趣的小伙伴... 目录一、创建数据表二、连接mysql数据库三、封装成一个完整的轻量级 ORM 风格类3.1 表结构

linux hostname设置全过程

《linuxhostname设置全过程》:本文主要介绍linuxhostname设置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录查询hostname设置步骤其它相关点hostid/etc/hostsEDChina编程A工具license破解注意事项总结以RHE

深度解析Java DTO(最新推荐)

《深度解析JavaDTO(最新推荐)》DTO(DataTransferObject)是一种用于在不同层(如Controller层、Service层)之间传输数据的对象设计模式,其核心目的是封装数据,... 目录一、什么是DTO?DTO的核心特点:二、为什么需要DTO?(对比Entity)三、实际应用场景解析

深度解析Java项目中包和包之间的联系

《深度解析Java项目中包和包之间的联系》文章浏览阅读850次,点赞13次,收藏8次。本文详细介绍了Java分层架构中的几个关键包:DTO、Controller、Service和Mapper。_jav... 目录前言一、各大包1.DTO1.1、DTO的核心用途1.2. DTO与实体类(Entity)的区别1

一文详解Git中分支本地和远程删除的方法

《一文详解Git中分支本地和远程删除的方法》在使用Git进行版本控制的过程中,我们会创建多个分支来进行不同功能的开发,这就容易涉及到如何正确地删除本地分支和远程分支,下面我们就来看看相关的实现方法吧... 目录技术背景实现步骤删除本地分支删除远程www.chinasem.cn分支同步删除信息到其他机器示例步骤

mysql中的服务器架构详解

《mysql中的服务器架构详解》:本文主要介绍mysql中的服务器架构,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、mysql服务器架构解释3、总结1、背景简单理解一下mysqphpl的服务器架构。2、mysjsql服务器架构解释mysql的架

MySQL中的表连接原理分析

《MySQL中的表连接原理分析》:本文主要介绍MySQL中的表连接原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、环境3、表连接原理【1】驱动表和被驱动表【2】内连接【3】外连接【4编程】嵌套循环连接【5】join buffer4、总结1、背景