Hub简介Activeloop的Hub是一个开源的Python包,它将数据排列在类似Numpy的数组中。它与Tensorflow和PyTorch等深度学习框架无缝集成,以加速GPU处理和训练。我们可以使用HubAPI来更新数据、可视化数据和创建机器学习管道。Hub允许我们存储图像、音频、视频和时间序列数据,并使其访问速度非常快。数据可以存储在GCS/S3存储桶、本地存储或Activeloop云中。数据可以直接用于训练Pytorch模型,因此您无需构建数据管道。该中心还提供数据版本控制、数据集搜索查询和分布式工作负载。使用Hub后我感觉很棒,能够在几分钟内创建数据并将其推送到云端。本文介绍如何使用Hub创建和管理数据集。在Activeloop云上初始化数据集处理图像将数据推送到云端数据版本控制数据可视化Activeloop存储Activloop为开源数据集和私有数据集提供免费存储。您还可以通过推荐获得最多200GB的免费存储空间。Activeloop的Hub连接到DatabaseforAI,使我们能够使用标签可视化数据集,复杂的搜索查询使我们能够高效地分析数据。该平台还包含100多个图像分割、分类和目标检测数据集。要创建帐户,您可以使用Activeloop网站注册,或输入“!activeloopregister”。该命令将要求您添加用户名、密码和电子邮件。成功创建帐户后,我们将使用“!activelooplogin”登录。现在,我们可以直接从本地机器创建和管理云数据集。如果你使用JupyterNotebook,请使用“!”,否则添加不带!的命令直接在CLI中。!activeloopregister!activelooplogin-u-p初始化Hub数据集在本教程中,我们将使用采用的Kaggle数据集Multi-classWeather(CCBY4.0)。该数据集包含四个基于天气类别的文件夹;日出、晴天、雨和多云。首先,我们需要安装hub和kaggle包。kaggle包将允许我们直接下载数据集并解压缩。!pipinstallhubkaggle!kaggledatasetsdownload-dpratik2901/multiclass-weather-dataset!unzipmulticlass-weather-dataset接下来,我们将在Activeloop云上创建HUB数据集。数据集函数还可以创建新数据集或访问旧数据集。您还可以提供AWS存储桶地址以在Amazon服务器上创建数据集。要在Activeloop上创建数据集,我们需要传递包含用户名和数据集名称的URL。"hub:///"importhubds=hub.dataset('hub://kingabzpro/muticlass-weather-dataset')数据预处理在将数据处理成hub格式之前,我们需要准备数据.下面的代码将提取文件夹名称并将它们存储在“class_names”变量中。在第二部分中,我们将创建数据集文件夹中可用文件的列表。fromPILimportImageimportnumpyasnpimportosdataset_folder='/work/multiclass-weather-dataset/Multi-classWeatherDataset'class_names=os.listdir(dataset_folder)files_list=[]fordirpath,dirnames,文件名inos.walk(dataset_folder):forfilenameinfilenames:files_list.append(os.path.join(dirpath,filename))file_to_hub函数接受三个参数:文件名、数据集和类名。它从每个图像中提取标签并将它们转换为整数。它还将图像文件转换为类似Numpy的数组并将它们附加到张量。对于这个项目,我们只需要两个张量,一个用于标签,一个用于图像数据。@hub.computedeffile_to_hub(file_name,sample_out,class_names):##前两个参数始终是默认参数,其中包含:#第一个参数是输入迭代的一个元素(列表、数据集、数组...)#第二个参数是一个datasetsample#其他参数可选#找到文件对应的标签编号label_text=os.path.basename(os.path.dirname(file_name))label_num=class_names.index(label_text)#将标签和图像追加到输出中示例sample_out.labels.append(np.uint32(label_num))sample_out.images.append(hub.read(file_name))returnsample_out让我们创建一个带有“png”压缩的图像张量和一个简单的标签张量。确保张量的名称应该与我们在file_to_hub函数中提到的相似。要了解有关张量的更多信息,请参阅《API摘要 - Hub 2.0》:https://docs.activeloop.ai/api-basics#creating-tensors-and-adding-data。最后,我们将通过提供files_lists、hub数据集实例“ds”和class_names来运行file_to_hub函数。这需要几分钟时间,因为需要转换数据并将其推送到云端。使用ds:ds.create_tensor('images',htype='image',sample_compression='png')ds.create_tensor('labels',htype='class_label',class_names=class_names)file_to_hub(class_names=class_names).eval(files_list,ds,num_workers=2)数据可视化数据集现在在multiclass-weather-dataset上公开可用。我们可以使用标签来探索数据集或添加描述,以便其他人可以了解有关许可信息和数据分发的更多信息。Activeloop不断添加新功能以改善观看体验。我们还可以使用PythonAPI来访问数据集。我们将使用PIL的图像函数将数组转换为图像并将其显示在Jupyter笔记本中。Image.fromarray(ds["images"][0].numpy())要访问标签,我们将使用带有分类信息的class_names,并使用“labels”张量来显示标签。class_names=ds["labels"].info.class_namesclass_names[ds["labels"][0].numpy()[0]]>>>'Cloudy'commit我们也可以创建不同的分支,管理不同的版本,比如Git和DVC。在本节中,我们将更新class_names信息,并使用该信息创建提交。ds.labels.info.update(class_names=class_names)ds.commit("Classnamesadded")>>>'455ec7d2b49a36c14f3d80d0879369c4d0a70143'正如我们所看到的,日志显示我们已成功将更改提交到master分支。要了解有关版本控制的更多信息,请参阅《数据集版本控制 - Hub 2.0》:https://docs.activeloop.ai/getting-started/step-8-dataset-version-control。log=ds.log()----------------集线器版本日志----------------当前分支:mainCommit:455ec7d2b49a36c14f3d80d0879369c4d0a70143(主要)作者:kingabzproTime:2022-01-3108:32:08消息:添加了类名您还可以使用HubUI查看所有分支和提交。原标题:ANewWayofManagingDeepLearningDatasets,作者:AbidAliAwan