Skip to main content

流畅的数据集操作,兼容你喜欢的库

项目描述


Dataset Ops:流畅的数据集操作,兼容你喜欢的库

Python 包 文件状态 编解码器 代码风格:黑色

Dataset Ops 提供了一个流畅的界面,用于加载、过滤、转换、拆分组合数据集。专为数据科学和机器学习应用而设计,它与TensorflowPyTorch无缝集成。

开胃菜

import datasetops as do

# prepare your data
train, val, test = (
    do.from_folder_class_data('path/to/data/folder')
    .named("data", "label")
    .image_resize((240, 240))
    .one_hot("label")
    .shuffle(seed=42)
    .split([0.6, 0.2, 0.2])
)

# use with your favorite framework
train_tf = train.to_tensorflow() 
train_pt = train.to_pytorch() 

# or do your own thing
for img, label in train:
    ...

安装

在Python 包索引中可用的 Baniry 安装程序

pip install datasetops

为什么?

收集和预处理数据集很麻烦,通常需要花费在数据科学和机器学习生命周期中的 50% 以上。虽然TensorflowPyTorch有一些有用的数据集实用程序可用,但它们是专门针对各自的框架设计的。不出所料,这使得在它们之间切换变得困难,并且训练就绪的数据集定义绑定到一个或另一个。此外,它们不会在您想要执行以下操作的标准场景中为您提供帮助:

  • 以非随机方式对数据集进行采样(例如,每个类使用固定数量的样本)
  • 中心化、标准化、规范化您的数据
  • 组合多个数据集,例如用于多流网络的并行输入
  • 创建非标准数据拆分

Dataset Ops旨在使这些处理步骤更容易、更快、更直观地执行,同时保持与领先库的完全兼容性。这也意味着您可以从torchvision 数据集中获取数据集并直接与 tensorflow 一起使用:

import do
import torchvision

torch_usps = torchvision.datasets.USPS('../dataset/path', download=True)
tensorflow_usps = do.from_pytorch(torch_usps).to_tensorflow()

发展状况

该库仍在大力开发中,API 可能会发生变化。

以下是已实施和计划中的功能列表。

装载机

  • Loader(用于定义数据集的实用程序类)
  • from_pytorch(从 a 加载torch.utils.data.Dataset
  • from_tensorflow(从 a 加载tf.data.Dataset
  • from_folder_data(加载带有数据的平面文件夹)
  • from_folder_class_data(加载嵌套文件夹,每个类都有一个文件夹)
  • from_folder_dataset_class_data(加载具有多个数据集的嵌套文件夹,每个数据集都有一个嵌套类文件夹结构)
  • from_mat(将 .mat 文件的内容加载为单个数据集)
  • from_mat_single_mult_data(将 .mat 文件的内容加载为多个数据集)
  • load(从路径加载数据,自动推断类型和结构)

转换器

  • to_tensorflow(将 Dataset 转换为 tensorflow.data.Dataset)
  • to_pytorch(将数据集转换为torchvision.Dataset)

数据集信息

  • shape(获取数据集项目的形状)
  • counts(按键计算数据集中每个唯一项的计数)
  • unique(按键获取数据集中唯一项的列表)
  • named(提供项目元素的名称)
  • names(获取项目中元素的名称列表)
  • stats(提供数据集统计的概述)
  • origin(提供数据集是如何制作的描述)

采样和拆分

  • shuffle(随机打乱数据集中的项目)
  • sample(样本数据随机一个数据集)
  • filter(使用谓词过滤数据集)
  • split(根据分数随机拆分数据集)
  • split_filter(根据谓词将数据集一分为二)
  • allow_unique(用于平衡分类过滤/采样的方便谓词)
  • take(取数据集中的第一项)
  • repeat(逐项或整体重复数据集中的项目)

物品操作

  • reorder(重新排序数据集项目的元素(例如翻转标签和数据顺序))
  • transform(转换函数,它采用其他函数并将它们应用于数据集项。)
  • categorical(将元素转换为分类整数编码标签)
  • one_hot(将元素转换为 one-hot 编码标签)
  • numpy(将元素转换为 numpy.ndarray)
  • reshape(重塑 numpy.ndarray 元素)
  • image(将 numpy 数组或路径字符串转换为 PIL.Image.Image)
  • image_resize(调整 PIL.Image.Image 元素的大小)
  • image_crop(裁剪 PIL.Image.Image 元素)
  • image_rotate(旋转 PIL.Image.Image 元素)
  • image_transform(转换 PIL.Image.Image 元素)
  • image_brightness(修改 PIL.Image.Image 元素的亮度)
  • image_contrast(修改 PIL.Image.Image 元素的对比度)
  • image_filter(将图像过滤器应用于 PIL.Image.Image 元素)
  • noise(给数据添加噪音)
  • center(根据数据集统计修改每一项)
  • normalize(根据数据集统计修改每一项)
  • standardize(根据数据集统计修改每一项)
  • whiten(根据数据集统计修改每一项)
  • randomly(以一定的概率应用数据转换)

数据集组合

  • concat(连接两个数据集,一个接一个地放置项目)
  • zip(逐项压缩数据集,扩展每个项目的大小)
  • cartesian_product(创建一个数据集,其项目都是原始数据集的项目(压缩)的组合)

项目详情


下载文件

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

源分布

datasetops-0.0.6.tar.gz (19.1 kB 查看哈希)

已上传 source

内置分布

datasetops-0.0.6-py3-none-any.whl (19.0 kB 查看哈希)

已上传 py3