Skip to main content

使用CLI和SDK进行数据集管理

在本教程中,您将使用clearml-data CLI管理CIFAR数据集,然后使用ClearML的Dataset类来摄取数据。

创建数据集

下载数据

在使用clearml-data注册CIFAR数据集之前,您需要获取它的本地副本。

执行此Python脚本来下载数据:

from clearml import StorageManager

manager = StorageManager()
dataset_path = manager.get_local_copy(
remote_url="https://www.cs.toronto.edu/~kriz/cifar-10-python.tar.gz"
)
# make sure to copy the printed value
print("COPY THIS DATASET PATH: {}".format(dataset_path))

预期响应:

COPY THIS DATASET PATH: ~/.clearml/cache/storage_manager/global/f2751d3a22ccb78db0e07874912b5c43.cifar-10-python_artifacts_archive_None

脚本打印下载数据的路径。稍后将需要它。

创建数据集

要创建数据集,请执行以下命令:

clearml-data create --project dataset_examples --name cifar_dataset

预期响应:

clearml-data - Dataset Management & Versioning CLI 
Creating a new dataset:
New dataset created id=ee1c35f60f384e65bc800f42f0aca5ec

其中 ee1c35f60f384e65bc800f42f0aca5ec 是数据集 ID。

添加文件

下载的文件添加到数据集中:

clearml-data add --files <dataset_path>

其中 dataset_path 是之前打印的路径,表示下载数据集的位置。

note

无需指定dataset_id,因为clearml-data会话会存储它。

完成数据集

运行close命令以上传文件(默认会上传到ClearML服务器):

clearml-data close 

此命令将数据集任务的状态设置为已完成,因此它将不再可修改。这确保了未来的可重复性。

有关数据集的信息可以在WebApp中查看,位于数据集的详细信息面板中。 在面板的内容选项卡中,您可以看到一个汇总版本内容的表格,包括文件名、文件大小和哈希值。

数据集内容标签

使用数据集

现在你已经注册了一个新的数据集,你可以使用它了。

data_ingestion.py 示例脚本展示了如何在Python代码中使用数据集。

dataset_name = "cifar_dataset"
dataset_project = "dataset_examples"

from clearml import Dataset

dataset_path = Dataset.get(
dataset_name=dataset_name,
dataset_project=dataset_project,
alias="Cifar dataset"
).get_local_copy()

trainset = datasets.CIFAR10(
root=dataset_path,
train=True,
download=False,
transform=transform
)

在这种情况下,当你在任务中使用数据集时,你可以将数据集的ID存储在任务的超参数中。传递alias=会将数据集的ID存储在实验的配置 > 超参数 > 数据集部分的dataset_alias_string参数中。这样你可以轻松跟踪任务正在使用的数据集。

Dataset.get_local_copy() 返回缓存、下载的数据集的路径。然后,数据集路径被输入到 PyTorch 的 datasets 对象中。

然后,脚本训练一个神经网络,使用上面创建的数据集对图像进行分类。