跳转到主要内容

DeltaTorch允许使用PyTorch从DeltaLake表加载训练数据以训练深度学习模型

项目描述

deltatorch

image image image

概念

deltatorch允许用户直接使用DeltaLake表作为PyTorch训练的数据源。使用deltatorch,用户可以创建PyTorch的DataLoader来加载训练数据。我们还支持使用PyTorch DDP进行分布式训练。

为什么还需要另一个数据加载框架?

  • 许多深度学习项目都在努力解决高效数据加载的问题,尤其是在表格数据集或包含大量小图像的数据集上。
  • 经典的Big Data格式,如Parquet,可以解决这方面的问题,但其操作难度较大。
    • 写者可能会阻塞读者。
    • 写入失败可能会使整个数据集无法读取。
    • 更复杂的项目可能需要在训练过程中始终接收数据。

Delta Lake存储格式解决了所有这些问题,但PyTorch没有对DeltaLake数据集的直接支持。deltatorch引入了这种支持,并允许用户使用PyTorch训练深度学习模型时使用DeltaLake

使用方法

要求

  • Python版本 > 3.8
  • pipconda

安装

  • 使用pip
pip install  git+https://github.com/delta-incubator/deltatorch

创建PyTorch DataLoader以读取我们的DeltaLake表

首先,我们需要一个包含我们用于训练PyTorch深度学习模型的训练数据的DeltaLake表。有一个要求:此表必须有一个自增ID字段。该字段由deltatorch用于加载的分区和并行化。之后,我们可以使用create_pytorch_dataloader函数创建PyTorch DataLoader,它可以直接在训练中使用。以下是一个为以下表模式创建DataLoader的示例:

CREATE TABLE TRAINING_DATA 
(   
    image BINARY,   
    label BIGINT,   
    id INT
) 
USING delta LOCATION 'path' 

表准备就绪后,我们可以使用create_pytorch_dataloader函数创建PyTorch DataLoader

from deltatorch import create_pytorch_dataloader
from deltatorch import FieldSpec

def create_data_loader(path:str, batch_size:int):

    return create_pytorch_dataloader(
        # Path to the DeltaLake table
        path,
        # Autoincrement ID field
        id_field="id",
        # Fields which will be used during training
        fields=[
            FieldSpec("image",
                      # Load image using Pillow
                      load_image_using_pil=True, 
                      # PyTorch Transform
                      transform=transform),
            FieldSpec("label"),
        ],
        # Number of readers 
        num_workers=2,
        # Shuffle data inside the record batches
        shuffle=True,
        # Batch size        
        batch_size=batch_size,
    )

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定选择哪个,请了解更多关于安装软件包的信息。

源分布

deltatorch-0.0.3.tar.gz (7.4 kB 查看散列值)

上传时间

构建分布

deltatorch-0.0.3-py3-none-any.whl (8.2 kB 查看散列值)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面