Kaggle平台的使用指南

Kaggle是一个在线社区,为数据科学机器学习从业者提供工具和资源。该平台拥有约50,000个公开可用的数据集,涵盖不同的主题、大小、格式和模态。Kaggle以其分享和托管各种数据集的能力而闻名,允许用户上传和下载数据集。此外,它还提供免费的功能,包括:

类似于Google Colab的笔记本,允许用户运行代码和创建模型。

创建竞赛的能力,主办方可以准备数据,参赛者可以在Kaggle笔记本上运行代码进行竞争。

一个精选的模型库,用户可以从Google旗下的组织如TensorFlow、DeepMind、MediaPipe等发现和使用。

Roboflow提供了多个(28+)笔记本,用于训练像Ultralytics YOLOv8、SAM、CLIP和RTMDet这样的最新计算机视觉模型。这些笔记本可以在各种笔记本平台上使用,如Google Colab和Amazon SageMaker Studio Lab,以及Kaggle

要在Kaggle上打开训练笔记本之一,可以访问GitHub仓库,并点击任何笔记本的“在Kaggle中打开”链接。

Kaggle笔记本允许在受控环境中运行、实验和迭代代码。Kaggle笔记本和Google Colab的一个关键好处是提供免费的GPU资源,这对于机器学习研究和开发至关重要。

Kaggle笔记本的功能类似于Jupyter笔记本,其中笔记本由多个单元格组成,可以独立运行或按顺序运行。使用Kaggle笔记本,可以尝试最新的最新模型(YOLOv5、MobileNetv2、LLaMa 2等),并直接在浏览器中构建概念验证用例。

由于Kaggle支持任何数据集模态、类型和格式,因此在Kaggle上与数据交互的方法并不标准化。如何将数据导入Kaggle取决于每个单独的数据集。尽管如此,有许多数据集使用`.csv`文件作为数据及其相应注释的索引。

在Kaggle上使用数据集有几种选择:

选项1:将数据集导入Kaggle笔记本

# 在笔记本的侧边栏中,应该看到一个下拉菜单“添加数据”。 # 在这里,可以选择最近查看的数据集或进行搜索。 # 找到数据集后,可以点击添加按钮。 # 添加数据集后,它将出现在路径`kaggle/input`中的一个文件夹里。 # 例如,在Digit Recognizer示例中,它被添加到了`kaggle/input/digit-recognizer`。

选项2:下载数据集

# 第二个选项是下载数据集以在其他地方使用。 # 它通常会下载为一个名为`archive.zip`的ZIP文件,里面包含数据集的内容。

Kaggle允许任何用户将数据集上传到他们的平台上,以便存储和共享。

要将数据集上传到Kaggle,请在“创建”按钮下点击“创建数据集”按钮。

不能上传整个文件夹目录,但可以上传压缩的ZIP文件,然后上传。Kaggle会在添加到平台时自动解压缩文件。

可以从Roboflow Universe上传项目,或者上传自己的项目。在Universe上,可以浏览精选的最爱、最近的特色数据集,或从超过200,000个数据集中搜索。

一旦找到了想要上传的数据集,选择项目的版本并下载首选格式的数据集。一个版本是数据集的某个时间点的快照,记录了该时间点的图像、注释、预处理和增强,允许一致地引用和重现确切的数据集。

然后,将zip文件上传到Kaggle。

Kaggle有一个由许多Google旗下组织或研究项目提供的精选模型库。由于模型在架构、类型和模态上各不相同,像数据集一样,Kaggle没有标准化的方法来运行模型的推理。

要使用模型,请在导航到想要模型页面后点击“新建笔记本”。

# 它将打开一个Kaggle笔记本,可以在其中配置模型。 # 模型将被导入到`kaggle/input`文件夹中,与数据集的位置相同。 # 例如,对于这个keras-ocr模型,它将进入`/kaggle/input/keras-ocr/tflite/dr/2/2.tflite`。

如果决定在Kaggle上微调或训练一个新模型,可以轻松地将模型权重上传到Roboflow,这样就可以使用它来使用Label Assist标记新数据或部署它!

# 可以使用Python SDK中的.deploy()函数上传模型权重,使用以下代码: project.version(1).deploy("yolov5", "*path/to/training/results/*")

例如:使用Roboflow模型在Kaggle数据集上进行推理

现在知道了如何使用Kaggle的方方面面,让尝试测试一下Roboflow模型与Kaggle数据集的性能。这只是Kaggle众多用例中的一个。

要开始,可以创建一个新的笔记本。一旦进入笔记本,可以导入一个数据集。例如,让尝试测试Roboflow Universe上的飞机检测模型与Planes in Satellite Imagery数据集的性能。

# 一旦有了笔记本,可以通过修改Kaggle给默认代码来运行数据集上的推理。 # 使用Supervision来可视化和组织结果。 images_folder = '/kaggle/input/planesnet/scenes' limit = 3 import os import cv2 import supervision as sv from roboflow import Roboflow rf = Roboflow(api_key="") project = rf.workspace().project("rifles-00uv0") version = project.version(1) model = version.model classes = list(project.classes) for dirname, _, filenames in os.walk(images_folder): for index, filename in zip(range(limit), filenames): path = os.path.join(dirname, filename) print(path) result = model.predict(path, confidence=10).json() detections = sv.Detections.from_inference(result) box_annotator = sv.BoxAnnotator() labeled_img = box_annotator.annotate( scene = cv2.imread(path), detections = detections ) sv.plot_image(image=labeled_img)

要使用上面的代码片段,需要一个免费的Roboflow账户。将Roboflow API密钥添加为api_key参数的值。

了解如何检索Roboflow API密钥。

在这个用例中,可以评估Roboflow模型在Kaggle上使用新数据的性能,这些数据是模型以前没有见过的。

Kaggle笔记本的控制台

可以可视化数据并查看其性能。如果遇到性能不如预期的示例,还可以将数据上传到项目中。

这个示例Kaggle笔记本是Kaggle全部功能的一个小例子。请随意尝试!

Kaggle允许快速轻松地与大量受众共享数据集,但也有针对特定任务的替代品。尽管适应性强且灵活的开发环境很有用,但也可能难以集成和迭代。

Google的另一个笔记本产品Colab和Amazon SageMaker Studio Lab也提供免费资源和虚拟环境以进行实验,而像Hugging Face和Roboflow Universe这样的平台则为数据集和模型托管提供了Kaggle的替代品。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485