手把手教大家如何使用Kaggle平台的免费GPU资源跑深度学习模型

如果手头没有GPU资源是没法很好进行学习和实操各种深度学习模型的,所幸有一些平台提供了GPU资源供广大兴趣爱好者进行免费使用。

 一、免费GPU资源的平台

1. Google Colab

地址:https://colab.research.google.com/

简介:Google Colab(全称Google Colaboratory)是由Google提供的一种基于云端的交互式编程环境,特别适用于机器学习、数据分析和教育目的。

GPU:支持jupyter notebook直接运行,提供的最长执行时间为 12 小时,其中空闲时间为 30 分钟,显存大小大概在15GB左右, 免费的google 磁盘大概在15GB左右时不时断线,不稳定。

2. Kaggle

地址:https://www.kaggle.com/

简介:Kaggle是一个全球性的数据科学和机器学习竞赛平台,汇聚了全球顶尖的数据科学家和机器学习爱好者,共同解决各种实际问题,分享知识和经验。

GPU:支持jupyter notebook直接运行,每周30个小时,显存大小大概在15GB左右, 免费访问的 GPU 为 Nvidia Tesla P100 和 T4,单次会话最长运行时间为 9 小时,相对 colab稳定一点。

3. 阿里云(PAI系列)

地址:https://free.aliyun.com/?searchKey=PAI

简介:PAI(Platform of Artificial Intelligence)人工智能平台面向企业客户及开发者,提供轻量化、高性价比的云原生人工智能,涵盖DSW交互式建模、Designer拖拽式可视化建模、DLC分布式训练到EAS模型在线部署的全流程。

GPU:支持控制台和jupyter notebook, 三个月的试用期,免费版本显存一般是16G左右,无对话时间限制, 建议不用的时候,关掉实例,毕竟除了时间还有资源大小限制。

4. 阿里天池

地址:https://tianchi.aliyun.com/

简介:阿里天池的天池实验室,通常也称为阿里天池云服务器或天池实训平台,是阿里巴巴集团旗下的阿里云专门为数据科学家、开发者、科研工作者及学生等群体打造的一个云端开发与实验平台。

GPU:选择“天池实验室”-->“天池Notebook”进入,然后注册,登录。这是阿里云提供的打比赛的平台。总共 60小时的免费GPU使用,CPU不限量,但是单次使用GPU最多8小时。

由于某些原因Google Colab不一定能正常访问,阿里云(PAI系列)和阿里天池有试用期到期的说法,综合对比,Kaggle可以正常打开使用,每周又有30小时的免费时长,相对来说是非常适合进行深度学习跑模型的。

二、Kaggle平台介绍

我们在开始Kaggle平台的注册前,再进一步了解下Kaggle平台。

Kaggle是一个国际知名的数据科学和机器学习竞赛平台,由Anthony Goldbloom和Ben Hamner于2010年在墨尔本创立。该平台最初是为了让数据科学家参与各种竞赛,并与其他人竞争。随着时间的推移,Kaggle逐渐发展成为一个更大的社区,提供了更多的功能和资源,以满足数据科学家的需求。在2017年,Kaggle被Google收购,并成为Google Cloud的一部分。Google此举旨在提升其在数据科学和机器学习领域的影响力,并扩大Google Cloud业务。

Kaggle的优点提炼:
  1. 竞赛丰富:Kaggle举办各类数据科学竞赛,涵盖表格数据、计算机视觉、自然语言处理、语音处理和生物医学等多个领域。这些竞赛通常由各大企业和研究机构赞助,提出具体的数据问题,参赛者需要开发出模型来解决这些问题。这些竞赛不仅推动了数据科学领域的研究,还为企业寻找创新解决方案提供了机会。

  2. 数据资源丰富:Kaggle提供了大量的公开数据集,用户可以自由地浏览和使用这些数据集,以训练模型或进行数据分析。这些数据集来自各种来源,包括公共数据集、商业数据集和竞赛数据集。此外,Kaggle还提供了一个数据集市场,用户可以购买和销售自己的数据集。

  3. 社区活跃:Kaggle是一个活跃的社区,用户可以在这里分享他们的代码、模型和项目,与其他数据科学家交流和合作。用户还可以对代码和模型进行评论和评分,以提供反馈和支持。这种社区氛围有助于用户学习和提升技能,同时也促进了数据科学领域的发展。

  4. 学习和提升机会:Kaggle为数据科学家、机器学习工程师和学生提供了一个展现和提升技能的大舞台。通过参与各类竞赛,用户可以与其他参赛者一决高下,提升自己的数据科学技能。对于新手来说,Kaggle还提供了许多入门级别的竞赛和学习资源,帮助他们逐步熟悉Kaggle的操作方式和提升技能。

  5. 求职机会:Kaggle不仅是一个学习和提升技能的平台,还是一个展示个人才能和寻找工作机会的舞台。参与Kaggle竞赛并取得优异成绩的用户,无疑能为个人简历增添亮点,有助于在数据科学和机器学习领域的求职。尽管Kaggle在2014至2022年间设有专门的招聘板块,但即使后来该板块关闭,Kaggle仍通过其他途径帮助用户发掘数据科学领域的工作机会。

三、Kaggle平台的注册

我们打开Kaggle官网(https://www.kaggle.com/),点击右上角的Register按钮,注册账号。

如果没有google邮箱,我们可以使用普通邮件进行注册:

在注册界面,您需要填写您的邮箱地址和用户名,并设置一个安全的密码。请记住这个密码,因为之后每次登录都需要用到它。填写完相关信息后,点击Next进入下一步操作。

这里需要注意,在注册Kaggle用户时,往往出现不了人机验证从而导致无法完成注册。有不少人出现的注册界面如下:

们可以通过在Google或Edge安装对应的插件后再刷新注册界面即可。

接下来以Edge浏览器为例带领大家如何完成Kaggle账号的注册。

我们点击右上角...,找到扩展并点击,在弹窗中点击 打开Microsoft Edge扩展网站:

在Edge加载项的左上角搜索框输入:Header Editor,搜索该插件。

点击第一个的获取后将出现如下弹窗,我们点击 添加扩展。

添加后将出现如下弹窗:

接下来在右上角点击 扩展图标,点击管理扩展:

点击Header Editor扩展的详细信息:

点击扩展选项:

点击导入导出:

在下载规则URL中输入:https://azurezeng.github.io/static/HE-GoogleRedirect.json后点击下载。

下载后点击保存。

保存后将出现导入成功的提示。

我们在Edge浏览器再次刷新Kaggle的注册页面,将出现人机交互的内容了。

大家再次按照提示操作即可完成Kaggle的账号注册。

四、Kaggle平台的登录

注册完成后,我们点击右上角的Sign In,即可进入登录页面:

在登录页面输入刚刚注册好的账号密码即可登录Kaggle平台了。

登录进去后,点击右上角的头像:

点击Setting进去,即可查看账号的各项信息。

果想要使用GPU,需要进行手机验证。

验证后,即可查看每周可使用的GPU时长了。

五、Kaggle平台使用Jupyter Notebook

点击左上角的+号,点击New Notebook即可创建新的Jupyter Notebook:

Jupyter Notebook默认是使用Python,可以在左侧的Language切换为R。

Notebook默认是未使用GPU资源的,可以通过Notebook右上角的Accelerator进行切换。

Notebook已经帮我们安装好了TensorFlow及Pytorch等深度学习框架。我们先不进行资源切换,在新单元格中输入以下代码,导入并查看TensorFlow的版本。

import tensorflow as tf
print(tf.__version__)

此时使用的是TensorFlow 2.15.0的版本。

接着,我们在单元格中输入以下代码,查看是否使用GPU。

print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))

输出结果为0,表示无可使用的GPU。

下一步,我们将资源切换为GPU T4*2。

在弹窗中点击 Turn on GPU T4*2,进行资源切换。

再重新运行下一下命令,将重新启动session:

我们在重新运行以下命令查看可用的GPU数量:

print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))

输出为2,说明有可用GPU。

我们也可以鼠标点击右上边,查看可用的资源情况。

可见,给的资源还是很给力的。

六、Kaggle平台跑深度学习

接下来,让我们在Kaggle平台上跑《深度学习从入门到精通:基于Keras》(微课版,谢佳标著)书中第四章(4.4 案例实训:对 CIFAR-10 数据集进行图像识别)的卷积神经网络的例子。

数据导入、处理、建模及训练的代码如下:

import tensorflow as tf
from tensorflow.keras import layers, models
import matplotlib.pyplot as plt
cifar10 = tf.keras.datasets.cifar10
(x_train, y_train), (x_test, y_test) = cifar10.load_data()
# 图像数据标准化
x_train = x_train.astype('float32') / 255.0
x_test = x_test.astype('float32') / 255.0
# 标签数据one-hot编码
num_classes = 10
y_train = tf.keras.utils.to_categorical(y_train, num_classes)
y_test = tf.keras.utils.to_categorical(y_test, num_classes)
# 构建简单卷积神经网络识别CIFAR-10图像
# 构建模型
model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)))
model.add(layers.Dropout(0.2))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.Dropout(0.2))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Flatten())
model.add(layers.Dense(512, activation='relu'))
model.add(layers.Dropout(0.2))
model.add(layers.Dense(10,activation='softmax'))
# 编译模型
model.compile(loss='categorical_crossentropy',optimizer='adam',metrics=['accuracy'])
# 模型训练
history = model.fit(x_train,y_train,epochs=50,batch_size=256,validation_split=0.2,verbose=2)

我们先用GPU T4*2的资源跑该深度学习模型,查看训练模型的耗时情况。

训练的每一个step大概耗时17ms,速度是相当可以的。

最后,让我们再次将资源切换为None,查看此时跑深度学习模型的情况。

此时,仅仅利用CPU跑的深度学习模型每一个step都耗时在600ms以上,效率远不如GPU。

自此,我们已经学会了如何在kaggle上注册及使用GPU资源。Kaggle还可以上传我们本地的或Kaggle平台的数据和Jupyter Notebook文件,后续再展开介绍。

好了,关于如何申请和使用Kaggle平台的GPU资源我们就分享到这里,如果大家对想学习其他更多内容,包括ChatGPT大模型、数据挖掘、可视化、R语言、Python等专题,可关注“我爱数据科学”的公众号或视频号。

         我爱数据科学公众号二维码:

如果公众号二维码过期,可在 微信 -> 公众号 -> + -> 搜索 “我爱数据科学” 进行关注。

我爱数据科学的视频号二维码:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/20549.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ssm_mysql_高校自习室预约系统(源码)

博主介绍:✌程序员徐师兄、8年大厂程序员经历。全网粉丝15w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

IDEA中,MybatisPlus整合Spring项目的基础用法

一、本文涉及的知识点【重点】 IDEA中使用MybatisPlus生成代码,并使用。 Spring整合了Mybatis框架后,开发变得方便了很多,然而,Mapper、Service和XML文件,在Spring开发中常常会重复地使用,每一次的创建、修…

权限修饰符和代码块

一.权限修饰符 1.权限修饰符:是用来控制一个成员能够被访问的范围的。 2.可以修饰成员变量,方法,构造方法,内部类。 3.例子: public class Student {priviate String name;prviate int age;} 二.权限修饰符的分类 有四种作用范围大小…

详解寄存器模型reg_model的auto_predict

什么是reg_model镜像值? DUT的配置寄存器的值是实际值,reg_model有镜像值、期望值的概念。 镜像值:存放我们认为此时DUT里寄存器的实际值。 期望值:存放我们期望DUT寄存器被赋予的值。 什么是auto predict? 那么怎么更新reg…

安卓ANR检测、分析、优化面面谈

前言 一个引发讨论的楔子,以下三种现象有什么区别: App停止运行App暂无响应App闪退 答案: 产生原因不同:停止运行是UNCheckExceptionError暂无响应是ANRDialog闪退是CheckExceptionError 本文讨论的主题是ANR的定义、分类、复现…

内核注入DLL,支持注入PPL

这是我的个人项目,目前功能: 内核注入DLL到进程,支持注入PPL进程,可绕过任意代码卫士保护,签名校验。内核调用应用层任意函数,支持常见的调用约定。 后续可能会增加: 代码注入 Rookit和Anti-…

E. 矩阵第k大

看到这句话,其中任意两个数都不能在同一行或者同一列 经典的网络流/匈牙利 由于小白看不懂网络流 (其实是我不会) ,不妨就讲讲匈牙利 匈牙利算法 前置知识: 二分图 匈牙利(是个人)算法是二分…

纵向导航栏使用navbar-nav-scroll溢出截断问题

项目场景: 组件:Bootstrap-4.6.2、JQuery 3.7.1 测试浏览器:Firefox126.0.1、Microsoft Edge125.0.2535.67 IDE:eclipes2024-03.R 在编写CRM的工作台主页面时,由于该页面使用的是较旧的技术,所以打算使用…

ChatGPT-4o 有何特别之处?

文章目录 多模态输入,多模态输出之前的模型和现在模型对比 大家已经知道,OpenAI 在 GPT-4 发布一年多后终于推出了一个新模型。它仍然是 GPT-4 的一个变体,但具有前所未见的多模态功能。 有趣的是,它包括实时视频处理等强大功能&…

基础9 探索图形化编程的奥秘:从物联网到工业自动化

办公室内,明媚的阳光透过窗户洒落,为每张办公桌披上了一层金色的光辉。同事们各自忙碌着,键盘敲击声、文件翻页声和低声讨论交织在一起,营造出一种忙碌而有序的氛围。空气中氤氲着淡淡的咖啡香气和纸张的清新味道,令人…

fastjson 泛型转换问题(详解)

系列文章目录 附属文章一:fastjson TypeReference 泛型类型(详解) 文章目录 系列文章目录前言一、代码演示1. 不存在泛型转换2. 存在泛型转换3. 存在泛型集合转换 二、原因分析三、解决方案1. 方案1:重新执行泛型的 json 转换2. …

数据可视化每周挑战——中国高校数据分析

最近要高考了,这里祝大家金榜题名,旗开得胜。 这是数据集,如果有需要的,可以私信我。 import pandas as pd import numpy as np import matplotlib.pyplot as plt from pyecharts.charts import Line from pyecharts.charts impo…

图像处理ASIC设计方法 笔记26 非均匀性校正SOC如何设计

在红外成像技术领域,非均匀性校正是一个至关重要的环节,它直接影响到成像系统的性能和目标检测识别的准确性。非均匀性是指红外焦平面阵列(IRFPA)中各个像元对同一辐射强度的响应不一致的现象,这种不一致性可能是由于制造过程中的缺陷、材料的不均匀性或者像元间的热电特性…

simCSE句子向量表示(1)-使用transformers API

SimCSE SimCSE: Simple Contrastive Learning of Sentence Embeddings. Gao, T., Yao, X., & Chen, D. (2021). SimCSE: Simple Contrastive Learning of Sentence Embeddings. arXiv preprint arXiv:2104.08821. 1、huggingface官网下载模型 官网手动下载:pri…

集合操作进阶:关于移除列表元素的那点事

介绍 日常开发中,难免会对集合中的元素进行移除操作,如果对这方面不熟悉的话,就可能遇到 ConcurrentModificationException,那么,如何优雅地进行元素删除?以及其它方式为什么不行? 数据初始化…

国内类似ChatGPT的大模型应用有哪些?发展情况如何了

第一部分:几个容易混淆的概念 很多人,包括很多粉丝的科技博主,经常把ChatGPT和预训练大模型混为一谈,因此有必要先做一个澄清。预训练大语言模型属于预训练大模型的一类,而ChatGPT、文心一言又是预训练大语言模型的一个…

node基础-持续更新

node基础 1.node模块2.node环境搭建3.fs模块4.ES模块和CommonJS模块4.1 更改后缀名4.2 package.json配置支持es模块4.3 变量别名4.4 CommonJS模块 5.打造自己的脚手架工具5.1创建自定义全局指令5.2 使用commander处理--help参数5.3 处理自定义指令5.4 逻辑代码模块化拆分5.5 命…

iPad里的图片如何导出 iPad的照片如何管理

我们的设备中充满了各种重要的照片和视频,特别是iPad,作为苹果公司的一款强大的平板电脑,它不仅能够捕捉生活中的精彩瞬间,还可以存储和展示我们珍贵的回忆。然而,随着照片数量的不断增加,有效地管理和导出…

对boot项目拆分成cloud项目的笔记

引言:这里我用的是新版本的技术栈 spring-boot-starter-parent >3.2.5 mybatis-spring-boot-starter >3.0.3 mybatis-plus-boot-starter >3.5.5 spring-cloud-dependencies …

JVMの内存泄漏内存溢出案例分析

1、内存溢出 内存溢出指的是程序在申请内存时,没有足够的内存可供分配,导致无法满足程序的内存需求,常见的内存溢出情况包括堆内存溢出(Heap Overflow)和栈溢出(Stack Overflow): …