Kaggle,上传,GPU,下载

遇到没GPU想训练模型的情况,CPU跑好久,可利用Kaggle的云GPU。

1、注册参考[1],其中,kaggle官网: 地址

2、进入主页,可用creat创建nootbook,之后可按正常jupyter的操作进行

Kaggle,上传,GPU,下载

 3、上传数据

        可利用Kaggle上的线上的数据集,如果想利用自己的数据来训练模型,需从本地上传

(1)右上方的Add data

Kaggle,上传,GPU,下载

(2)上传自己的数据集
点击upload a dataset,dataset取名,然后选择browse files上传文件。最好将文件压缩之后上传,这样比较快。上传压缩包后kaggle会自动解压。

Kaggle,上传,GPU,下载

 上传完成之后点击Create,正在处理你的数据集时,不要点击别的地方。

运行下述代码可查看数据路径[4]

import os
for dirname, _, filenames in os.walk('/kaggle/input'):
    for filename in filenames:
        print(os.path.join(dirname, filename))

4、编写代码,训练

(1)上传的文件无法在kaggle上进行修改,需要copy到输出文件夹中,

上传文件的进度如果始终为0,则需要科学上网上传数据。

上传的文件会放置在\kaggle\input下,这个目录只能读,而/kaggle/working是放输出文件的,可读可写,但如果不点右上角的Save version,输出文件并不会保存。

将数据集和代码都压缩成一个zip文件,上传,kaggle会自动将其解压缩,从kaggle读取文件名,会发现少了.zip后缀。在上传数据集时,会让人输入一个名字,作为上传文件的上一层目录,文件名中的中划线会被省略,但是下滑线会自动转为中划线。为方便读写,可将上传到到input下的文件传一份到working目录下,使用shutil包[5]原文链接

import shutil
shutil.copytree(r'../input/trydata/image_classification-pytorch', r'./trydata')

使用python的pyautogui包来模拟鼠标操作,就可以刮着了,参考[6]Python 实现按键精灵的功能

因此,为了简单,直接在在notebook中重新写代码

(2)配置运行环境
在settings里配置环境:

Kaggle,上传,GPU,下载

(3)运行

直接运行

(4)离线运行

参考:地址

使用GPU训练模型过程中,出现了提示是否继续操作,紧接着就断了连接,里面的产生的数据都消失了,Kaggle如果长时间不动,会自己断掉,判断离开

如果训练模型需要很久,就要后台跑了,并且要保存训练出来的模型。
点击右上角的Save Version,给version取个名,注意选择Save & Run All

Kaggle,上传,GPU,下载

 save保存。

左下角的活动会出现各个活动文件

5、下载输出结果

把训练的权值文件下载下来,可以直接点击权值文件并下载。

也可下载整个文件夹,但下载整个文件夹会很慢,参考博客[2]:压缩下载

直接在cell中运行此代码即可[2]

import os
import zipfile
import datetime

def file2zip(packagePath, zipPath):
    '''
  :param packagePath: 文件夹路径
  :param zipPath: 压缩包路径
  :return:
  '''
    zip = zipfile.ZipFile(zipPath, 'w', zipfile.ZIP_DEFLATED)
    for path, dirNames, fileNames in os.walk(packagePath):
        fpath = path.replace(packagePath, '')
        for name in fileNames:
            fullName = os.path.join(path, name)
            name = fpath + '\\' + name
            zip.write(fullName, name)
    zip.close()


if __name__ == "__main__":
    # 文件夹路径
    packagePath = '/kaggle/working/'
    zipPath = '/kaggle/working/output.zip'
    if os.path.exists(zipPath):
        os.remove(zipPath)
    file2zip(packagePath, zipPath)
    print("打包完成")
    print(datetime.datetime.utcnow())

下载即可

下载完,可清空kaggle/working下指定文件夹 直接在cell中运行下面代码[2]

import shutil
import os

if __name__ == '__main__':
    path = '/kaggle/working/model'
    if os.path.exists(path):
        shutil.rmtree(path)
        print('删除完成')
    else:
        print('原本为空')

=============================================

更多基本介绍,可参考[7]在Kaggle免费使用GPU训练自己的神经网络

参考文献

[1]使用kaggle GPU跑自己的模型_10000hours的博客 

[2]kaggle下载output中的文件

[3]利用kaggle提供的免费GPU完成卫星图片识别任务

[4]使用Kaggle训练模型并下载自己训练的模型

[5]kaggle上传代码包并运行

[6]Python 实现按键精灵的功能

[7]在Kaggle免费使用GPU训练自己的神经网络

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2023年2月26日 上午10:55
下一篇 2023年2月26日 上午10:56

相关推荐