AI深湖DeepLate人工智能的数据集格式开源项目

news2024/10/27 13:32:14


人工智能的数据集格式

文档入门API 参考例子博客Slack 社区Twitter(推特)

用其他语言阅读这篇文章: English

深湖 Deep Lake

Deep Lake 是一种数据集格式,提供简单的 API 以用于创建、存储和协作处理任何规模的 AI 数据集。Deep Lake 的数据布局可在大规模训练模型的同时实现数据的快速转换和流式传输。谷歌、Waymo、红十字会、牛津大学都在使用 Deep Lake。 Deep Lake 包括以下功能:

与存储无关的 API 使用相同的 API 向/从 AWS S3/S3 兼容存储、GCP、Activeloop 云、本地存储以及内存中上传、下载和流式传输数据集。 压缩存储 以原生压缩方式存储图像、音频和视频,仅在需要时解压缩,例如在训练模型时。 惰性 NumPy 类索引 将 S3 或 GCP 数据集视为系统内存中 NumPy 数组的集合。对它们进行切片、索引或迭代。只会下载您要求的字节! 数据集版本控制 提交、创建分支、切换分支 - 您在代码存储库中已经熟悉的概念现在也可以应用于您的数据集! 与深度学习框架的集成 Deep Lake 带有 Pytorch 和 Tensorflow 的内置集成。用几行代码训练你的模型——我们甚至负责数据集洗牌。:) 分布式转换 使用多线程、多处理或我们的内置 Ray集成快速在您的数据集进行转换操作。 在几秒钟内可用100 多个最流行的图像、视频和音频数据集 Deep Lake 社区已经上传 100 多个图像、视频和音频数据集等 例如 MNIST, COCO, ImageNet, CIFAR, GTZAN 等等. Activeloop平台提供即时可视化支持 Deep Lake 数据集在 Activeloop 平台 中通过边界框、掩码、注释等立即实现可视化(见下文).

Deep Lake 入门

🚀 如何安装 Deep Lake

Deep Lake 是用 100% Python 编写的,可以使用 pip 快速安装。

pip3 install deeplake

默认情况下,Deep Lake 不安装音频、视频、google 和其他功能的依赖项。此处提供了有关所有安装选项的详细信息 。

🧠 在 Hub 数据集上训练 PyTorch 模型

加载 CIFAR 10,这是 Deep Lake 中现成的数据集之一:
import deeplake
import torch
from torchvision import transforms, models

ds = deeplake.load('hub://activeloop/cifar10-train')
检查数据集中的张量:
ds.tensors.keys()    # dict_keys(['images', 'labels'])
ds.labels[0].numpy() # array([6], dtype=uint32)
在 CIFAR 10 数据集上训练 PyTorch 模型,无需下载

首先,为图像定义一个转换并使用 Deep Lake 的内置 PyTorch 单行数据加载器将数据连接到计算:

tform = transforms.Compose([
    transforms.ToTensor(),
    transforms.Normalize([0.5, 0.5, 0.5], [0.5, 0.5, 0.5]),
])

deeplake_loader = ds.pytorch(num_workers=0, batch_size=4, transform={
                        'images': tform, 'labels': None}, shuffle=True)

接下来,定义模型、损失和优化器:

net = models.resnet18(pretrained=False)
net.fc = torch.nn.Linear(net.fc.in_features, len(ds.labels.info.class_names))
    
criterion = torch.nn.CrossEntropyLoss()
optimizer = torch.optim.SGD(net.parameters(), lr=0.001, momentum=0.9)

最后,2 个 epoch 的训练循环:

for epoch in range(2):
    running_loss = 0.0
    for i, data in enumerate(deeplake_loader):
        images, labels = data['images'], data['labels']
        
        # zero the parameter gradients
        optimizer.zero_grad()

        # forward + backward + optimize
        outputs = net(images)
        loss = criterion(outputs, labels.reshape(-1))
        loss.backward()
        optimizer.step()
        
        # print statistics
        running_loss += loss.item()
        if i % 100 == 99:    # print every 100 mini-batches
            print('[%d, %5d] loss: %.3f' %
                (epoch + 1, i + 1, running_loss / 100))
            running_loss = 0.0

🏗️ 如何创建一个 Deep Lake 数据集

可以在不同地址(存储提供商)创建 Deep Lake 数据集。这就是他们每个路径:

存储提供商示例路径
Activeloop 云hub://user_name/dataset_name
AWS S3 / S3 兼容s3://bucket_name/dataset_name
GCPgcp://bucket_name/dataset_name
本地存储path to local directory
内存mem://dataset_name

让我们在 Activeloop 云中创建一个数据集。Activeloop 云为每位用户提供高达 300 GB 的免费存储空间(更多信息请点击此处)。如果您还没有账号,请从终端使用activeloop register 创建一个新帐户。系统将要求您输入用户名、电子邮件 ID 和密码。您在此处输入的用户名将用于数据集路径。

$ activeloop register
Enter your details. Your password must be at least 6 characters long.
Username:
Email:
Password:

在 Activeloop Cloud 中初始化一个空数据集:

import deeplake

ds = deeplake.empty("hub://<USERNAME>/test-dataset")

接下来,创建一个张量来保存我们刚刚初始化的数据集中的图像:

images = ds.create_tensor("images", htype="image", sample_compression="jpg")

假设您有一个图像文件路径列表,让我们将它们上传到数据集:

image_paths = ...
with ds:
    for image_path in image_paths:
        image = deeplake.read(image_path)
        ds.images.append(image)

或者,您也可以上传 numpy 数组。由于 images 张量是使用 sample_compression="jpg" 创建的,数组将使用 jpeg 压缩进行压缩。

import numpy as np

with ds:
    for _ in range(1000):  # 1000 random images
        random_image = np.random.randint(0, 256, (100, 100, 3))  # 100x100 image with 3 channels
        ds.images.append(random_image)

🚀 如何加载 Deep Lake 数据集

您可以使用一行代码加载刚刚创建的数据集:

import deeplake

ds = deeplake.load("hub://<USERNAME>/test-dataset")

您还可以访问 Deep Lake 格式的 100 多个图像、视频和音频数据集,而不仅仅是您创建的那些。以下是加载 Objectron Bikes 数据集的方法:

import deeplake

ds = deeplake.load('hub://activeloop/objectron_bike_train')

要以 numpy 格式获取 Objectron Bikes 数据集中的第一张图像:

image_arr = ds.image[0].numpy()

📚 文档

可以在我们的文档页面上找到入门指南、示例、教程、API 参考和其他有用信息。

🎓 对于学生和教育工作者

Deep Lake 用户可以通过与 Activeloop 平台的免费集成来访问和可视化各种流行的数据集。用户还可以创建和存储自己的数据集,并将其提供给公众。高达 300 GB 的免费存储空间可供学生和教育工作者使用:

Activeloop 托管的公共数据集的存储200GB 免费
Activeloop 托管的私有数据集的存储100GB 免费

👩‍💻 与熟悉工具的比较

Activeloop Deep Lake vs DVC

Deep Lake 和 DVC 为数据提供类似于 git 的数据集版本控制,但它们存储数据的方法有很大不同。Deep Lake 将数据转换并存储为分块压缩数组,从而可以快速流式传输到 ML 模型,而 DVC 在存储在效率较低的传统文件结构中的数据之上运行。当数据集由许多文件(即许多图像)组成时,与 DVC 的传统文件结构相比,Deep Lake 格式使数据集版本控制更加容易。另一个区别是 DVC 主要使用命令行界面,而 Deep Lake 是 Python 包。最后,Deep Lake 提供了一个 API,可以轻松地将数据集连接到 ML 框架和其他常见的 ML 工具,并通过Activeloop 的可视化工具实现即时数据集可视化.

Activeloop Deep Lake vs TensorFlow 数据集 (TFDS)

Deep Lake 和 TFDS 将流行的数据集无缝连接到 ML 框架。Deep Lake 数据集与 PyTorch 和 TensorFlow 兼容,而 TFDS 仅与 TensorFlow 兼容。Deep Lake 和 TFDS 之间的一个关键区别在于,Deep Lake 数据集是为从云端流式传输而设计的,而 TFDS 必须在使用前在本地下载。因此使用 Deep Lake 可以直接从 TensorFlow 数据集导入数据集,并将它们流式传输到 PyTorch 或 TensorFlow。除了提供对流行的公开数据集的访问之外,Deep Lake 还提供强大的工具来创建自定义数据集,将它们存储在各种云存储提供商上,并通过简单的 API 与他人协作。TFDS 主要专注于让公众轻松访问常用数据集,而自定义数据集的管理不是主要关注点。一个详细的对比介绍可以在这里看到.

Activeloop Deep Lake vs HuggingFace Deep Lake 和 HuggingFace 都提供对流行数据集的访问,但 Deep Lake 主要专注于计算机视觉,而 HuggingFace 专注于自然语言处理。HuggingFace 变换和其他 NLP 计算工具与 Deep Lake 提供的功能不同。 Activeloop Deep Lake vs WebDatasets Deep Lake 和 WebDatasets 都提供跨网络的快速数据流。它们具有几乎相同的传输速度,因为底层网络请求和数据结构非常相似。但是,Deep Lake 提供了卓越的随机访问和改组,其简单的 API 是在 python 中而不是命令行中,并且 Deep Lake 可以对数据集进行简单的索引和修改,而无需重新创建它。

社区

加入我们的 Slack 社区,了解有关使用 Deep Lake 进行非结构化数据集管理的更多信息,并从 Activeloop 团队和其他用户那里获得帮助。

通过完成我们的 3 分钟调查,我们希望得到您的反馈。

一如既往,感谢我们出色的贡献者!

使用contributors-img制作.

请阅读 CONTRIBUTING.md 开始为 Deep Lake 做出贡献

自述文件徽章

使用 Deep Lake?添加一个自述文件徽章让大家知道:

在这里插入图片描述

免责声明

数据集许可证

Deep Lake 用户可以访问各种公开可用的数据集。我们不托管或分发这些数据集,不保证它们的质量或公平性,或声称您拥有使用这些数据集的许可。您有责任确定您是否有权使用其许可下的数据集。

如果您是数据集所有者并且不希望您的数据集包含在此库中,请通过GitHub issue与我们联系。感谢您对 ML 社区的贡献!

使用情况跟踪

默认情况下,我们使用 Bugout 收集使用数据(这是执行此操作的code). 它不收集匿名 IP 地址数据以外的用户数据,并且只记录 Deep Lake 库自己的操作。这有助于我们的团队了解该工具的使用方式以及如何构建对您而言重要的功能!在您注册 Activeloop 后,数据不再是匿名的。您始终可以使用以下 CLI 命令选择退出报告:

activeloop reporting --off

致谢

这项技术的灵感来自我们在普林斯顿大学的研究工作。我们要感谢 William Silversmith @SeungLab 提供出色的cloud-volume 工具.

开源项目地址 https://github.com/activeloopai/deeplake
文档地址 https://docs.activeloop.ai/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2210044.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring Security 与 OAuth 2.0 登录实现指南

文章目录 一、项目概述二、环境准备三、创建GitHub OAuth应用四、项目依赖配置五、配置OAuth 2.0六、创建控制器七、创建视图八、运行应用九、用户界面展示十、总结 在现代的Web应用中&#xff0c;安全性是一个不可忽视的因素。OAuth 2.0作为一种流行的授权框架&#xff0c;提供…

浅析主流监控告警系统基本架构和原理

浅析主流监控告警系统基本架构和原理 一&#xff0c;监控系统的作用和目前主流监控系统 1&#xff0c;作用&#xff1a;监控系统一般有以下这几个作用 实时采集监控数据&#xff1a;包括硬件、操作系统、中间件、应用程序等各个维度的数据。实时反馈监控状态&#xff1a;通过…

论文笔记:RelationPrompt :Zero-Shot Relation Triplet Extraction

论文来源: ACL Findings 2022 论文链接:https://arxiv.org/pdf/2203.09101.pdf 论文代码:http://github.com/declare-lab/RelationPrompt 本篇论文是由阿里达摩院自然语言智能实验室于2022年发表的关于零样本关系抽取的顶会论文,本篇博客将记录我在阅读过程中的一些笔记…

AI自动生成PPT解决方案,AI生成PPT-PrensentationGen-Java实现

AI自动生成PPT解决方案&#xff0c;AI生成PPT-PrensentationGen-Java实现。 利用大语言模型生成PPT文件的SpringBoot Web应用&#xff0c;主要功能是自动化创建演示文稿&#xff0c;适用于快速制作演示材料&#xff0c;特色在于其高效的模板处理和文本替换技术。 点击视频观看…

Python入门:如何在Python中优雅地书写多行字符串!

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 多行字符串📒📝 什么是多行字符串?📝 三重引号📝 字符串连接📝 反斜杠⚓️ 相关链接 ⚓️📖 介绍 📖 在编程过程中,时常会遇到需要使用多行字符串的场景。例如,在编写长参数、描述文本或代码文档时,多行字符串…

java生成日历数据列表并按日历格式导出到excel

日历格式输出 日历数据列表导出封装日历格式实体类效果 日历数据列表 /**** 封装日历数据* param year 年份* param month 月份*/public List<InspectionDailyStaffPlanCalendarData> selectCalendarDataList(int year,int month,List<InspectionDailyStaffPlan> …

centos7 Oracle 11g rac 静默安装(NFS配置共享存储)

1.环境信息准备 注意&#xff1a; 在配置网络时&#xff0c;Oracle RAC的每个节点必须具有至少两个以上的网卡&#xff0c;一张网卡对外提供网络服务&#xff0c;另一张网卡用于各个节点间的通信和心跳检测等。在配置RAC集群的网卡时&#xff0c;如果节点1的公共接口是eth0&…

随机变量及其分布

定义 1.随机变量是一个从样本空间&#xff08;所有可能结果的集合&#xff09;到实数集的函数。样本空间中的每个结果都对应于随机变量的一个值。随机变量的值可以是离散的&#xff0c;也可以是连续的。随机变量通常用大写字母表示&#xff0c;如 X、Y 或 Z。 2.随机变量和事…

难点:Linux 死机定位(进程虚拟地址空间耗尽)

死机定位(进程虚拟地址空间耗尽) 一、死机现象 内存富裕,但内存申请失败。 死机时打印: 怀疑是: 1、内存碎片原因导致。 2、进程虚拟地址空间耗尽导致。 3、进程资源限制导致。 二、内存碎片分析 1、理论知识:如何分析内存碎片化情况 使用 /proc/buddyinfo: /proc/…

Java-sec-code学习2

Java-Sec-Code学习1-文件上传漏洞 case1 url: http://127.0.0.1:8080/file/any 这是一个典型的上传页面&#xff0c;我们尝试上传一个文件试试看。 直接上传一个jsp文件&#xff0c;发现可以直接上传&#xff0c;非常顺利。这意味这后端和前端都没有对文件类型进行任何限制。…

[旧日谈]关于Qt的刷新事件频率,以及我们在Qt的框架上做实时的绘制操作时我们该关心什么。

[旧日谈]关于Qt的刷新事件频率&#xff0c;以及我们在Qt的框架上做实时的绘制操作时我们该关心什么。 最近在开发的时候&#xff0c;发现一个依赖事件来刷新渲染的控件会导致程序很容易异常和崩溃。 当程序在运行的时候&#xff0c;其实软件本身的负载并不高&#xff0c;所以…

【LeetCode每日一题】——724.寻找数组的中心下标

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目注意】六【题目示例】七【题目提示】八【解题思路】九【时间频度】十【代码实现】十一【提交结果】 一【题目类别】 前缀和 二【题目难度】 简单 三【题目编号】 724.寻找数组的中心下标 四【…

python基础路径的迁移

本人未安装anaconda或pycharm等&#xff0c;仅安装了某个python环境&#xff0c;因此以下方法仅针对基础python环境的迁移&#xff0c;不确保其他软件或插件正常运行 第一步将原python路径的整个文件夹剪切到新的路径下 第二步修改系统环境变量&#xff0c;将原来的python路径…

胤娲科技:AI绘梦师——一键复刻梵高《星空》

想象一下&#xff0c;你手中握有一张梵高的《星空》原图&#xff0c;只需轻轻一点&#xff0c;AI便能化身绘画大师&#xff0c;一步步在画布上重现那璀璨星河。 这不是科幻电影中的桥段&#xff0c;而是华盛顿大学科研团队带来的“Inverse Painting”项目&#xff0c;正悄然改变…

【软件工程】McCabe复杂度计算

文章目录 一、定义与公式二、计算步骤三、示例四、注意事项 McCabe复杂度&#xff0c;又称为环路复杂度&#xff08;Cyclomatic Complexity&#xff09;&#xff0c;是一种用来度量软件程序复杂度的经典方法。它通过计算程序中独立路径的数量&#xff0c;帮助开发人员理解代码的…

CMIP6数据处理 ▎单点降尺度、统计方法的区域降尺度、基于WRF模式的动力降尺度

CMIP6数据被广泛应用于全球和地区的气候变化研究、极端天气和气候事件研究、气候变化影响和风险评估、气候变化的不确定性研究、气候反馈和敏感性研究以及气候政策和决策支持等多个领域。这些数据为我们理解和预测气候变化&#xff0c;评估气候变化的影响和风险&#xff0c;以及…

【从感知机到神经网络】

感知机 什么是感知机 公式、框图表示 直观举例 根据身高体重判断胖瘦的感知机。 1、根据已知样本训练出一条直线&#xff0c;用于对非训练样本进行分类&#xff0c;这条直线就是感知机模型。 三维情况下感知机模型是一个平面 感知机的缺陷 缺陷原因 不能处理异或问题&…

【hot100-java】路径总和 III

二叉树篇。 灵神题解 ps: 完结 历时许久的hot100终于结束了&#xff0c;先是python&#xff0c;后是java。 学到了不少语法&#xff0c;也挺爽的&#xff0c;希望接下来几遍会更加熟悉哈哈哈。

解读《ARM Cortex-M3 与Cortex-M4 权威指南》——第1章 ARM Cortex-M处理器简介

1. 三级流水线设计 解释:三级流水线设计意味着处理器在执行指令时可以同时处理多个步骤。这些步骤通常包括取指(Fetch)、译码(Decode)和执行(Execute)。好处:这种设计提高了指令的执行效率,使得处理器能够在每个时钟周期内完成更多的工作,从而提升整体性能。2. 哈佛总…

linux 效率化 - zsh + tmux

文章目录 简介涉及的资料/代码仓库让我们开始吧1. Oh my Zsh!2. 终端主题 - powerlevel10k &#xff08;赋能优雅终端界面&#xff09;3. Oh my Tmux!安装完成&#xff0c;再加点料1. tmux2. zsh 结语参考资料 简介 来看一段操作演示&#xff08;全程键盘&#xff0c;没有鼠标…