使用云GPU+pycharm训练模型实现后台跑程序、自动保存训练结果、服务器自动关机

简介

本文不是从头开始介绍如何使用云GPU和pycharm训练模型,如果想了解如何使用云GPU和pycharm训练的可以参考我另外两篇博客。

云GPU(恒源云)训练的具体操作流程

YOLOv7使用云GPU训练自己的数据集

本文主要是写一下环境和配置都完成的情况下,之后的一些操作,比如tensorboard、训练完保存训练结果、服务器自动关机、后台训练(防止网络波动导致训练中断)等。

保存结果+自动关机

前提条件,在终端中使用oss login登录恒源云账户。

第一步需要在服务器中的/root目录下创建一个文件upload.sh

用来执行打包训练结果、自动上传到个人数据中、服务器自动关机三个操作。注意,pycharm终端默认路径是/root,而jupyterlab终端默认路径是/,如果在jupyterlab终端中执行以上操作,需要先cd到/root目录下。

我用jupyterlab操作一下,先cd到/root然后vim upload.sh

 执行完成后出现如下界面

 第二步,按 i 键进入编辑模式,将下列内容写入upload.sh文件。(想了解vim的可以去百度一下)

第八行代码中的路径需要根据实际情况进行修改

#!/bin/bash
set -e

cd /hy-tmp
# 压缩包名称
file="result-$(date "+%Y%m%d-%H%M%S").zip"
# 把 result 目录做成 zip 压缩包,该目录根据实际情况调整
zip -q -r "${file}" yolov7-main/runs/train/exp9
# 通过 oss 上传到个人数据中的 backup 文件夹中
oss cp "${file}" oss://backup/
rm -f "${file}"

# 传输成功后关机
shutdown

此次训练结果将会保存在exp4中,所以路径设置为exp4

 第三步,修改完成后,esc退出编辑模式,:wq! 保存文件并退出。可以在/root目录下找到该文件。

 第四步,对文件添加执行权限

chmod u+x upload.sh

第五步,在train.py中添加如下代码注意代码的位置

import os
os.system('/root/upload.sh')  # 此行代码放到train.py训练结束后

后台训练(使用tmux)

后台训练更稳定,也不用本地电脑一直开机,配置完成后即可将电脑关机

第一步,创建一个tmux会话(我cd到根目录了,其它目录下应该也没问题)。

tmux new -s yolo创建一个名为yolo的会话,tmux detach退出会话,tmux ls列出存在的会话。

第二步,tmux a -t yolo重新进入会话,并cdtrain.py所在目录,执行该文件。

训练截图

第三步,第二步中的执行界面需要新建终端输入命令才可以退出,而jupyterlab中没有办法新建终端,可以通过pycharm的终端退出tmux会话。

第四步,训练结束,将训练结果打包上传到个人数据(防止因机器被占用导致无法查看训练结果。个人数据中的文件可以随时下载查看),服务器自动关机(训练结束后自动关机节省费用)

 

tensorboardX

第一步,关闭官方的tensorboard功能(因为恒源云的tensorboard需要下载get_started.ipynb,我一直访问失败,所以改用tensorboardX )。

supervisord ctl stop tensorboard

 第二步,使用tensorboardX功能。(注意,终端不要关闭,否则tensorboardX会断开)

tensorboard --logdir /hy-tmp/runs/train/exp4 --host 0.0.0.0

 第三步,打开官方的tensorboard, 即可看到实时训练过程。

pycharm中的两个服务器设置问题

1. 重启pycharm后,底部可能没有出现服务器选项,即下图可能出现无默认服务器 

 通过下列步骤解决

 2.当某一个服务器不使用时,将其在pycharm中删除,比如端口号为59341的服务器。

在1里面的位置删除服务器

 在设置里将解释器和服务器同时删除

 

 到此,该服务器在pycharm中彻底删除。

如果有错,请不吝赐教。如果有疑问,可以评论或者私信。

猜你喜欢

转载自blog.csdn.net/weixin_43764678/article/details/126057868
今日推荐