使用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
对象中。
然后,脚本训练一个神经网络,使用上面创建的数据集对图像进行分类。