zoukankan      html  css  js  c++  java
  • 在 Kaggle 内使用免费 GPU 训练自己的模型

    假期里做目标检测,但受硬件所限,尝试了一下 Kaggle 这个平台。

    Kaggle 是一个数据科学网站,里面有丰富的题目和比赛可供挑战,这才是它的主要功能。不过我只是来白嫖 GPU 的

    步骤

    1. 打开Kaggle官网并进行注册,注意:如果无法注册,可能是因为有一个人机验证需要翻墙使用 Google 服务,用梯子或者简单一点使用 Chrome 插件谷歌访问助手

    1. 登录之后点导航栏 Notebooks,点击 New Notebook 新建工程,之后可以选择具体设置。

    • Notebook 是 Jupiter 模式,Script是普通的 py 文件模式。
    • 在详细设置里可以选择 Google 云同步以及是否使用加速器,可以选择 None、GPU 以及 TPU。也可以创建后再进行设置。如果要使用 GPU,首先要绑定手机号,手机号前要有+86加一个空格这个前缀,要不然可能会提示格式错误。注意:这里也可能有一个人机验证需要翻墙使用 Google 服务,同上

    1. 进入主界面

    step4

    1. 要运行一个项目,我们首先将所有资源上传。右上角 Add Data。
    • 建议分类打包压缩,平台会自动进行解压
    • 建议将项目分为数据集、模型配置和训练代码三部分分别上传,便于修改
    • 上传的文件为只读,不可修改,只能删掉重新上传。
    • 拖拽或选择文件后文件开始上传,蓝色进度条背景灰色,如果进度条不动以及任务管理器里没有看到明显网络活动,继续使用谷歌访问助手
    • 点击 Your Datasets 可以查看自己上传的数据集,点击 add 添加到项目中

    1. 点击 Run 按钮或者 Commit 按钮运行程序

    Kaggle 运行 Keras

    (2020.04)

    • 运行按钮运行时,不打印 use GPU_0 之类的信息。训练过程的进度条等会显示。
    • Commit 模式运行时,和本地运行差不多,各类信息都会打印。

    Kaggle 运行 Mxnet

    (2020.05)

    最近用 Kaggle 跑 Mxnet/gluoncv 的 YOLOv3 训练代码,模型使用YOLOv3-mobilenet0.25,voc格式数据集图像共 8000 张左右。

    • batchsize=4下,num_worker 最多设置为1,否则不一定什么时候就会报内存不够用请减小 num_worker 这种错。num_worker=1 时,一个epoch要跑1800s左右,但在我这个笔记本上跑,i5-7200 的 CPU,12G 的内存,GeForce 940MX 的显卡,开 num_worker=2,一个epoch只需要1300s左右。。。不太清楚 num_worker 的作用竟如此强大?

    注意

    配置

    • GPU:NVIDIA Tesla P100,16G显存
    • CPU:4个核心,13G内存,所以性能监测面板上 CPU 使用率最高是 400%
    • TPU v3-8,没用过不太了解

    路径

    • /kaggle/input/ 所有上传的数据集会存放于此,比如某一个叫 abc 的数据集里面有一个 ttt.txt 文件,则路径为 /kaggle/input/abc/ttt.txt,点击文件会显示它的路径
    • /kaggle/working/ 可读可写,如果需要生成文件只能放在这个目录下,默认位置

    注意:不同的压缩方式可能出现麻烦的后果,比如 folder 文件夹里有60张图片 pic_i.jpg,如果右键 folder 压缩为 folder.zip,在 Kaggle 里解压出来每张照片的路径是 folder/folder/pic_i.jpg,如果全选60张照片压缩为 folder.zip,解压后便为正确的路径。 好像现在Kaggle的路径正常了

    • 如果需要使用在 input/ 下的代码文件,需要在 import 之前使用 sys.path.append() 将文件所在目录添加进去。

    使用状态

    • 目前来看,Kaggle 每周提供30个小时的免费 GPU 使用时长,关闭 GPU 选项只是用 CPU 没有限制。在 Commit 模式下,使用GPU 的代码最多只能连续运行9个小时,超过9个小时强行终止。其他情况没有尝试过。
    • Kaggle 的项目分为运行和提交两种状态
      • 点击左上角即可运行,生成文件随时可以下载,但关闭网页就会终止运行,生成的文件将被清空。
      • 点击右上角的 Commit 进行提交,提交后的项目将在 Kaggle 后台运行,但在运行过程中只能查看log,不能中途下载生成的文件。生成的文件将会保存在 Kaggle 上。

    其他

    • Kaggle 上不会输出 logging 的信息。
    • (2020.04)最近发现 Kaggle 在早晨和上午访问流畅,文件下载速度正常,但到了下午文件的下载速度就成了十分感人的10KB/s甚至网络错误,谷歌访问助手无效,加梯子后速度正常。晚上未知。所以如果不方便用梯子的话,尽量还是要使用 Commit 功能,将生成的文件保存下来,等网速快的时候再下载。
    • 训练生成的文件将放在指定位置,可以点击下载,点击之后可能没有任何反应,其实是在后台下载,任务管理器中可以看到网络活动,最后浏览器会直接显示下载完成的。
    • 无论是 Notebook 模式还是 Script 模式,File 菜单里的 Upload Script 只接受*.ipynb文件
    • 在代码没问题的情况下,如果在 Run 模式开启了 GPU 加速,但监测面板内 GPU 占用为0,CPU 占用比较高,没关系,只是偶尔显示不出来而已。因为如果关掉加速你会发现 CPU 占用率立马到380+%。
    • Kaggle上 tensorflow 为 tf 2.0+,注意修改2.0中已经删掉的模块和函数,TensorFlow 2.0 下的 Keras 有一个 Tensorboard 的 bug 导致报错,不知道修复了没有。
    • Kaggle Documentation 有更多的说明...
  • 相关阅读:
    MVC新手指南
    BufferedReader方法-----Scanner方法
    sin=in.readLine();
    STL:string 大小(Size)和容量(Capacity)
    2014=9=24 连接数据库2
    2014=9=24 连接数据库1
    常用英语单词
    Linux权限详解(chmod、600、644、666、700、711、755、777、4755、6755、7755)
    linux 常用快捷键
    启动sh文件注意的问题
  • 原文地址:https://www.cnblogs.com/moonfan/p/12256832.html
Copyright © 2011-2022 走看看