电脑基础 · 2023年4月3日

如何在Kaggle上利用免费Gpu训练Yolox的模型

本文不包含Kaggle的入门步骤,如何上传数据集,如何选择GPU自行学习

文章目录

  • *开头的话*
  • 一、Kaggle的使用
    • 1、**为什么选择Kaggle**
    • 2、Kaggle的操作难度
  • 二、Yolox代码的更改
    • 1.train.py更改
    • 2.callbacks.py部分更改
    • 3、训练数据的路径更改
    • 4、正式训练
  • *末尾的话*

开头的话

本文所用yolox的代码来自bubbliiing的pytorch yolox项目

链接:https://blog.csdn.net/weixin_44791964/article/details/120476949


先上一张训练过程的图片
如何在Kaggle上利用免费Gpu训练Yolox的模型

一、Kaggle的使用

1、为什么选择Kaggle

Kaggle是一个可以免费白嫖的算力平台,支持每周30h的gpu训练和每周20h的tpu训练,无论时用pytorch,tensorflow,还是Keras都已经提前支持好了。
对比其他免费的算力平台,这个平台是没有显卡训练或则不想损伤自己电脑显卡的优选。
但是对比国内openbayes操作难度略大,相对于百度飞桨来说不错(虽有免费算力,却只支持panddle,安装其他环境会被中断,训练无法连贯)

2、Kaggle的操作难度


一、Kaggle跟其他平台一样有input和output两个子文件,但是input文件夹里只可读取 ,output文件夹里的数据只可写入,意思就是每次上传数据集和代码只能写好无错误才可以用,否则就只能在本地环境改好后重新上传。
二、因为input只可read和output只可write的关系,所以在input文件夹里是不可以进行文件复制和转移的,但是你却可以通过`以下代码进行复制

import shutil
shutil.copytree(r'../input/yours', r'./yours')

在kaggle中的路径中./就是/Kaggle/output,在yolox的项目中,含有太多py文件,在output文件里是没有python文件的(我试了两三次,不知道是什么原因,有知道的小伙伴可以帮帮)
3、正确的操作方式
既然python文件在output中不可以用,那么就只能在input操作了。针对yolox的代码,我们只需要更改输出路径就可以操作了。
这里的输出路径我写的是
/Kaggle/output/logs


二、Yolox代码的更改

1.train.py更改

更改部分为更改save_dir的路径

    #------------------------------------------------------------------#
    save_dir            = '/kaggle/working/los'
    #------------------------------------------------------------------#

2.callbacks.py部分更改

这里的更改只是确保代码在全程运行的时候不报错,实际上将map图像的路径与train的路径重复了,训练时不会生成map的图像和txt文件,如果有需求,可以自行更改路径:

self.map_out_path       = log_dir

3、训练数据的路径更改

以下只包含对VOC数据的路径更改,在2007_train.txt和2007_val.txt进行更改
如何在Kaggle上利用免费Gpu训练Yolox的模型
在kaggle上传数据集时要自己命名,这里的blueball是我自己dataset的命名。

4、正式训练

更改完所以需要更改的路径,就可以正式训练了
一、切换到input路径
cell中输入

import os
if os.path.basename(os.getcwd()) == 'working':
    os.chdir('../input/blueball/yolox-pytorch-main')
print('current working directory is {}'.format(os.getcwd()))
print(os.getcwd())
print(os.listdir(os.getcwd()))

或者

cd /kaggle/input/blueball

二、运行train.py程序

!python3 train.py

然后就可以看到训练提示了
如何在Kaggle上利用免费Gpu训练Yolox的模型


末尾的话

由于本人也是新手,文章说明部分可能会有不清楚的部分,欢迎小伙伴们指出
最后附上一张呆呆兽的图片,希望有需求的小伙伴们能够顺利训练!!!!

如何在Kaggle上利用免费Gpu训练Yolox的模型