Skip to content

Latest commit

 

History

History
208 lines (151 loc) · 11.2 KB

README_CN.md

File metadata and controls

208 lines (151 loc) · 11.2 KB



Docs PyPI version PyPI version CircleCI GitHub issues codecov tweet


Hub 向您展示数据的新纪元
最快的方式来访问 & 管理 PyTorch/TensorFlow 的数据和建立可扩展性的数据工作流


[ English | 简体中文 ]

Hub 的作用是什么?

新时代的的软件需要新时代的数据,而 Hub 提供这些数据。数据科学家和 ML 科学家应该专注于训练模型,但现在我们都在花大量时间管理和预处理数据。Hub 致力于改进这一现状。我们把您的数据以单一的 类-numpy 式数组为形式储存在云端,所以您可以无缝的从任何设备访问您的数据。Hub 使得任何储存在云端的数据类型(图像,文本,音频,或者视频)用起来快的像本地服务器一样。有着一样的数据库,小组可以一直保持同步。

Waymo, Red Cross, World Resources Institute, Omdena 和其他很多组织都在使用 Hub!

特点

  • 以版本控制工具储存/回复大型数据库。
  • 像 Google Docs 一样协作: 多个数据科学家同时处理一组数据,并且没有同步冲突
  • 同时从多个设备访问
  • 与您的 ML 工具整合, 比如 Numpy, Dask, Ray, PyTorch, TensorFlow
  • 可部署在 Google Cloud, S3, Azure,和 Activeloop (预设选择,并且是免费的!)
  • 随心所欲地创建任意大小的储存数组. 您甚至可以储存 100k x 100k 大小的图片!
  • 动态地保存样本的形状. 因此您可以把大数组和小数组储存为一条数组
  • 无需冗长的操作,用几秒种即可可视化数据中的片段

如何开始

访问公共数据集. 超快

以前为了加载一个公共数据集,大家需要很多代码,浪费很多时间来访问和理解 API ,和下载数据。如果使用 Hub, 只需要2行代码, 您即可在3分钟内开始工作

pip3 install hub

用 Hub 访问公共数据集只需要几行代码的简单步骤。运行这个片段就可以 numpy 数组的形式取得MNIST 数据库前1000张图片。

from hub import Dataset

mnist = Dataset("activeloop/mnist")  # loading the MNIST data lazily
# saving time with *compute* to retrieve just the necessary data
mnist["image"][0:1000].compute()

您可以在 app.activeloop.ai 找到其他流行的数据库.

训练模型

加载数据并且直接地训练您的模型。Hub 已与 PyTorch 和 TensorFlow 整合,并且以通俗的方式进行格式转换。看看下面使用 PyTorch 的例子:

from hub import Dataset
import torch

mnist = Dataset("activeloop/mnist")
# converting MNIST to PyTorch format
mnist = mnist.to_pytorch(lambda x: (x["image"], x["label"]))

train_loader = torch.utils.data.DataLoader(mnist, batch_size=1, num_workers=0)

for image, label in train_loader:
    # Training loop here

创建本地数据集

如果您想在本地处理您的数据,您可以从创建一个数据集开始:

from hub import Dataset, schema
import numpy as np

ds = Dataset(
    "./data/dataset_name",  # file path to the dataset
    shape = (4,),  # follows numpy shape convention
    mode = "w+",  # reading & writing mode
    schema = {  # named blobs of data that may specify types
    # Tensor is a generic structure that can contain any type of data
        "image": schema.Tensor((512, 512), dtype="float"),
        "label": schema.Tensor((512, 512), dtype="float"),
    }
)

# filling the data containers with data (here - zeroes to initialize)
ds["image"][:] = np.zeros((4, 512, 512))
ds["label"][:] = np.zeros((4, 512, 512))
ds.commit()  # executing the creation of the dataset

您也可以指明 s3://bucket/path, gcs://bucket/path 或 azure 路径。您可以在这里找到云储存的更多相关信息。

如果您需要 Hub 里目前找不到的公共数据集,您可以发送 Issues。我们将尽快为所有人实现他。

用简单的3步上传您的数据集 并 从任何地方访问它

  1. Activeloop 注册一个免费账户并在本地认证:
hub register
hub login
  1. 然后创建一个数据集,注明它的名字,然后把它上传到您的账户。比如:
from hub import Dataset, schema
import numpy as np

ds = Dataset(
    "username/dataset_name",
    shape = (4,),
    mode = "w+",
    schema = {
        "image": schema.Tensor((512, 512), dtype="float"),
        "label": schema.Tensor((512, 512), dtype="float"),
    }
)

ds["image"][:] = np.zeros((4, 512, 512))
ds["label"][:] = np.zeros((4, 512, 512))
ds.commit()
  1. 在任何地点,以任何机器,只要有命令行就可访问它:
from hub import Dataset

ds = Dataset("username/dataset_name")

官方文档

对于其他更高级的工作流,比如上传较大的数据集,或者应用多重变换,请阅读文档

应用场景

社区

加入我们的 Slack 社区 以便从 Activeloop 团队和其他用户获取帮助, 并且与最好的技术保持更新!

tweet on Twitter.

一如既往,感谢我们可爱的贡献者们!

请阅读 CONTRIBUTING.md 以了解如何为 Hub 做贡献。

例子

Activeloop 的 Hub 形使您可以以更低的成本来达成更快的推理。我们的平台已有超过30个流行的数据集。包括:

  • COCO
  • CIFAR-10
  • PASCAL VOC
  • Cars196
  • KITTI
  • EuroSAT
  • Caltech-UCSD Birds 200
  • Food101

在我们的 可视化 web app 查看这些和很多其他的数据集,然后直接加载它们来进行模型训练。

README 徽章

在使用 Hub 吗? 添加 README 徽章来让大家知道:

hub

[![hub](https://img.shields.io/badge/powered%20by-hub%20-ff5a1f.svg)](https://github.com/activeloopai/Hub)

免责声明

与其他的数据管理包一样, Hub 是一个用于下载和准备公共数据集的应用型库。我们不托管或分发这些数据集,也不保证其质量或是公平性,也不声明您有使用它们的许可。确认您是否有权在数据集的许可下使用该数据集是您的责任。

如果您是数据集所有者,并希望更新数据集的任何部分(描述,引用等),或者不希望将数据集包含在此库中,请通过 GitHub issue 告知我们。感谢您对 ML 社区做出的贡献!

致敬

这项技术的灵感来自我们在普林斯顿大学的经验,并且感谢 William Silversmith @SeungLab 和他优秀的 cloud-volume 工具。我们是 Zarr 的重度使用者,特别感谢他们建立了如此重要的基础建设。