megengine.data package

megengine.data.collator

class megengine.data.collator.Collator[源代码]

基类:object

用于将一个列表中的样本合并成一个 mini-batch 的张量。按 batch 从数据集中加载数据时使用。该类是在 https://github.com/pytorch/pytorch/blob/master/torch/utils/data/_utils/collate.py 的基础上修改实现的。

apply(inputs)[源代码]
参数

input – sequence_N(tuple(CHW, C, CK))。

返回

tuple(NCHW, NC, NCK)。

megengine.data.dataloader

class megengine.data.dataloader.DataLoader(dataset, sampler=None, transform=None, collator=None, num_workers=0, timeout=0, divide=False)[源代码]

基类:object

__init__(dataset, sampler=None, transform=None, collator=None, num_workers=0, timeout=0, divide=False)[源代码]

可用于在给定数据集上遍历并取得数据。

DataLoader 将数据集与sampler 、transform 、 collator 结合起来,从而能够灵活地从数据集中连续获得拼成 minibatch 的数据。

参数
  • dataset (Dataset) – 用来加载 minibatch 的数据集

  • sampler (Optional[Sampler]) – 定义了从数据集取得样本数据的策略。如果指定了该策略, shuffle 必须是 False

  • transform (Optional[Transform]) – 对拼成 batch 个样本数据进行增广的策略。默认:None

  • collator (Optional[Collator]) – 对已变换 batch 的合并策略。默认:None

  • num_workers (int) – 加载,变换,整理 batch 个数据的子进程数,0 表示使用单个进程。默认:0

  • timeout (int) – 如果为正数,表示从 workers 收集一个 batch 的最大时间(秒)。默认:0

  • divide (bool) – 定义多进程下的并行处理策略。 True 表示一个 batch 会被分为 num_workers 个切片,workers 会随之并行地处理这些切片。 False 表示不同的子进程会处理不同的 batch。默认:False

megengine.data.sampler

class megengine.data.sampler.Infinite(sampler)[源代码]

基类:megengine.data.sampler.Sampler

无限采样装饰器,可以包装普通的采样器。

sample()[源代码]

返回一个列表,包含了所有样本的索引。

class megengine.data.sampler.RandomSampler(dataset, batch_size=1, drop_last=False, indices=None, world_size=None, rank=None, seed=None)[源代码]

基类:megengine.data.sampler.Sampler

__init__(dataset, batch_size=1, drop_last=False, indices=None, world_size=None, rank=None, seed=None)[源代码]

不放回(不重复选取)地随机采样。

sample()[源代码]

返回一个列表,包含了所有样本的索引。

返回类型

List

class megengine.data.sampler.ReplacementSampler(dataset, batch_size=1, drop_last=False, num_samples=None, weights=None, world_size=None, rank=None, seed=None)[源代码]

基类:megengine.data.sampler.Sampler

__init__(dataset, batch_size=1, drop_last=False, num_samples=None, weights=None, world_size=None, rank=None, seed=None)[源代码]

有放回(可重复选取)地进行随机采样。

参数

weights (List) – 样本索引的权重,可以是未归一化的权重。

sample()[源代码]

返回一个列表,包含了所有样本的索引。

返回类型

List

class megengine.data.sampler.Sampler(dataset, batch_size=1, drop_last=False, num_samples=None, world_size=None, rank=None, seed=None)[源代码]

基类:abc.ABC

__init__(dataset, batch_size=1, drop_last=False, num_samples=None, world_size=None, rank=None, seed=None)[源代码]

所有采样器的抽象类。

参数
  • dataset (dataset) – 待采样的目标数据集。

  • batch_size (positive integer) – 使用 batch 方法时指定 batch 大小。

  • drop_last (bool) – 如果batch大小不能整除数据集大小时,为 True 则放弃最后一个不完整的batch; 为 False 则最后一个batch可能比较小。默认:False

  • num_samples (positive integer) – 分配给一个进程的样本数。

  • world_size (positive integer) – 进程数。

  • rank (non-negative integer within 0 and world_size) – 进程号,在0与 world_size 范围内的非负整数。

  • seed (non-negative integer) – 随机种子。

batch()[源代码]

Batch 方法提供了一个 batch 索引生成器。

返回类型

Iterator[List[Any]]

sample()[源代码]

返回一个列表,包含了所有样本的索引。

scatter(indices)[源代码]

scatter 方法用于将 batch 索引集合分割成若干子集,每个子​​集将会随之分配给一个进程。默认采用均匀分割的方式分割 batch 索引集合。如果需要自定义索引分配方法,请重写这个方法。

返回类型

List

class megengine.data.sampler.SequentialSampler(dataset, batch_size=1, drop_last=False, indices=None, world_size=None, rank=None)[源代码]

基类:megengine.data.sampler.Sampler

__init__(dataset, batch_size=1, drop_last=False, indices=None, world_size=None, rank=None)[源代码]

按序列顺序对元素进行采样。

sample()[源代码]

返回一个生成器。

返回类型

Iterator[Any]

megengine.data.transform.meta_transform

class megengine.data.transform.meta_transform.PseudoTransform[源代码]

基类:megengine.data.transform.meta_transform.Transform

apply(input)[源代码]
class megengine.data.transform.meta_transform.Transform[源代码]

基类:abc.ABC

在子类中重写apply方法。

abstract apply(input)[源代码]
apply_batch(inputs)[源代码]

megengine.data.transform.vision.functional

megengine.data.transform.vision.functional.flip(image, flipCode)[源代码]

根据 flipCode(翻转的类型),翻转输入图像。

参数
  • image – 输入图像,形为 (H, W, C)

  • flipCode

    指示翻转的类型的代码。

    • 1:水平翻转

    • 0:垂直翻转

    • -1:同时沿水平和垂直方向翻转

返回

灰度格式的图像,形为 (H, W, C)

megengine.data.transform.vision.functional.pad(input, size, value)[源代码]

使用 value 值和给定 size 大小填充输入数据。

参数
  • input – 输入数据,形为 (H, W, C)

  • size – 对输入数据填充的尺寸,可以是单个整数或序列。如果它是一个整数,输入数据将在上下左右四个方向填充同样大小。如果它是包含两个整数的序列,输入数据的底部和右侧会被填充。如果它是包含四个整数的序列,输入数据的上,下,左,右都会使用给定大小进行填充。

  • value – 对数据进行填充(padding)时填入的值,可以是整数或浮点数的序列。如果它为浮点值,图像的 dtype 也会被转换为 float32。

返回

填充后的图像。

megengine.data.transform.vision.functional.resize(input, size, interpolation=1)[源代码]

根据给定尺寸(size)放缩输入数据。

参数
  • input – 输入数据,可以是图像或mask,形为 (H,W,C)

  • size – 输入数据的目标尺寸,形为 (height, width)。

  • interpolation – 插值方法。

返回

调整尺寸后的数据,形为 (H, W, C)

megengine.data.transform.vision.functional.to_bgr(image)[源代码]

将灰度图像的色彩空间变为BGR。

参数

image – 输入灰度图像,形为 (H,W,C)

返回

灰度格式的图像,形为 (H, W, C)

megengine.data.transform.vision.functional.to_gray(image)[源代码]

更改 BGR 格式图像的色彩空间为灰度。

参数

image – 输入灰度图像,形为 (H,W,C)

返回

灰度格式的图像,形为 (H, W, C)

megengine.data.transform.vision.functional.wrap_keepdims(func)[源代码]

装饰器,可以保持输入图像的维度恒定不变。

megengine.data.transform.vision.transform

class megengine.data.transform.vision.transform.BrightnessTransform(value, *, order=None)[源代码]

基类:megengine.data.transform.vision.transform.VisionTransform

调整输入数据的亮度。

参数
  • value – 亮度调节的程度。可以是任何非负数。为0则输出原始图像。

  • order – 与 VisionTransform 一致。

class megengine.data.transform.vision.transform.CenterCrop(output_size, *, order=None)[源代码]

基类:megengine.data.transform.vision.transform.VisionTransform

在中心处裁剪给定的输入数据。

参数
  • output_size – 输出图像的目标尺寸,形为 (height, width)。

  • order – 与 VisionTransform 一致。

apply(input)[源代码]

对单个输入数据实施数据增强。

class megengine.data.transform.vision.transform.ColorJitter(brightness=0, contrast=0, saturation=0, hue=0, *, order=None)[源代码]

基类:megengine.data.transform.vision.transform.VisionTransform

随机改变图像的亮度、对比度、饱和度和色调。

参数
  • brightness – 亮度抖动的程度。从[max(0, 1 - brightness), 1 + brightness]或给定的[min, max]区间上的均匀分布中采样。应为非负数。

  • contrast – 对比度抖动程度。从 [max(0, 1 - contrast), 1 + contrast] 或给定 [min, max] 区间上的均匀分布采样。应为非负数。

  • saturation – 饱和度抖动的程度。从 [max(0, 1 - saturation), 1 + saturation] 或给定 [min, max] 区间上的均匀分布中采样。应为非负数。

  • hue – 色调抖动的程度。从 [-hue, hue] 或给定 [min, max] 区间上的均匀分布中采样。应满足 0<= hue <= 0.5 或 -0.5 <= min <= max <= 0.5.

  • order – 与 VisionTransform 一致。

apply(input)[源代码]

对单个输入数据实施数据增强。

class megengine.data.transform.vision.transform.Compose(transforms=[], batch_compose=False, shuffle_indices=None, *, order=None)[源代码]

基类:megengine.data.transform.vision.transform.VisionTransform

将若干变换组合在一起。

参数
  • transforms – 待组合的 VisionTransform 列表。

  • batch_compose – 是否对数据增广方法进行打乱。如果为True,使用原始的数据增广顺序。否则,按照shuffle_indices中给定的顺序对数据增广方法进行打乱。

  • shuffle_indices – 用于随机排序(random shuffle)的索引,从1开始。例如,若shuffle_indices 为[(1, 3), (2, 4)],则序列中的第一个数据增广方法和第三个数据增广方法有可能进行shuffle,同时第二和第四个有可能进行打乱。

  • order – 与 VisionTransform 一致

实例代码:

from megengine.data.transform import RandomHorizontalFlip, RandomVerticalFlip, CenterCrop, ToMode, Compose

transform_func = Compose([
    RandomHorizontalFlip(),
    RandomVerticalFlip(),
    CenterCrop(100),
    ToMode("CHW"),
    ],
    shuffle_indices=[(1, 2, 3)]
    )
apply(input)[源代码]

对单个输入数据实施数据增强。

apply_batch(inputs)[源代码]

对一批(batch)的输入数据实施数据增广。

class megengine.data.transform.vision.transform.ContrastTransform(value, *, order=None)[源代码]

基类:megengine.data.transform.vision.transform.VisionTransform

调整输入数据的对比度。

参数
  • value – 对比度调节的程度。可以是任何非负数。 为0则输出原始图像。

  • order – 与 VisionTransform 一致。

class megengine.data.transform.vision.transform.GaussianNoise(mean=0.0, std=1.0, *, order=None)[源代码]

基类:megengine.data.transform.vision.transform.VisionTransform

向输入数据添加随机高斯噪声。高斯噪声按照给定的平均值和标准差产生。

参数
  • mean – 高斯均值,用于产生噪声。

  • std – 高斯标准差,用于产生随机噪声。

  • order – 与 VisionTransform 一致

class megengine.data.transform.vision.transform.HueTransform(value, *, order=None)[源代码]

基类:megengine.data.transform.vision.transform.VisionTransform

调整输入数据的色调。

参数
  • value – 色调调节的程度。可以是0到0.5之间的任意数字。为0则输出原始图像。

  • order – 与 VisionTransform 一致。

class megengine.data.transform.vision.transform.Lighting(scale, *, order=None)[源代码]

基类:megengine.data.transform.vision.transform.VisionTransform

class megengine.data.transform.vision.transform.Normalize(mean=0.0, std=1.0, *, order=None)[源代码]

基类:megengine.data.transform.vision.transform.VisionTransform

用均值和标准差将输入数据正则化。给定 n 通道上的均值 (M1,...,Mn) 和标准差 (S1,..,Sn) 该变换可以对输入数据的每一个通道都进行正则化 output[channel] = (input[channel] - mean[channel]) / std[channel]

参数
  • mean – 由每个通道的均值组成的序列。

  • std – 由每个通道的标准差组成的序列。

  • order – 与 VisionTransform 一致。

class megengine.data.transform.vision.transform.Pad(size=0, value=0, mask_value=0, *, order=None)[源代码]

基类:megengine.data.transform.vision.transform.VisionTransform

填充输入数据。

参数
  • size – 输入图像的填充尺寸,它可以是单个整数或序列。如果它是一个整数,则在四个方向上填充输入图像。如果它是包含两个整数的序列,则仅填充图像的下侧和右侧。如果它是一个包含四个整数的序列,则按给定大小依次填充图像的上,下,左,右侧。

  • value – 填充图像的值,可以是一个整型或浮点型序列。如果为浮点值,图像的数据类型也会随之被转换为浮点。

  • mask_value – 填充分割图的值。

  • order – 与 VisionTransform 一致。

class megengine.data.transform.vision.transform.RandomCrop(output_size, padding_size=0, padding_value=[0, 0, 0], padding_maskvalue=0, *, order=None)[源代码]

基类:megengine.data.transform.vision.transform.VisionTransform

随机裁剪输入数据。裁剪之前首先填充图像。如果目标尺寸仍大于填充图像,继续填充图像至目标尺寸。

参数
  • output_size – 输出图像的目标尺寸,形为 (height, width)。

  • padding_size – 与在 Pad 中的 size 功能一致。

  • padding_value – 与在 Pad 中的 value 一致。

  • order – 与 VisionTransform 一致。

apply(input)[源代码]

对单个输入数据实施数据增强。

class megengine.data.transform.vision.transform.RandomHorizontalFlip(prob=0.5, *, order=None)[源代码]

基类:megengine.data.transform.vision.transform.VisionTransform

按给定的概率,随机水平翻转输入数据。

参数
  • p – 输入数据被翻转的概率。默认:0.5

  • order – 与 VisionTransform 一致。

apply(input)[源代码]

对单个输入数据实施数据增强。

class megengine.data.transform.vision.transform.RandomResize(scale_range, interpolation=1, *, order=None)[源代码]

基类:megengine.data.transform.vision.transform.VisionTransform

随机调整输入数据的尺寸(size)。

参数
  • scale_range – 放缩的范围。

  • order – 与 VisionTransform 一致。

apply(input)[源代码]

对单个输入数据实施数据增强。

class megengine.data.transform.vision.transform.RandomResizedCrop(output_size, scale_range=0.08, 1.0, ratio_range=0.75, 1.3333333333333333, interpolation=1, *, order=None)[源代码]

基类:megengine.data.transform.vision.transform.VisionTransform

将输入数据按随机尺寸和纵横比进行裁剪。产生的随机裁剪图像尺寸,默认为原始尺寸的0.08到1.0之间,同时具有随机纵横比,默认为原始纵横比的3/4到1.33之间。使用裁剪变换后,输入数据将按给定尺寸进行放缩。

参数
  • output_size – 输出图像的目标尺寸,形为 (height, width)。

  • scale_range – 对原始尺寸图像裁剪的大小范围。 默认:(0.08, 1.0)

  • ratio_range – 裁剪原始纵横比的范围。默认:(0.75,1.33)

  • order – 与 VisionTransform 一致。

apply(input)[源代码]

对单个输入数据实施数据增强。

class megengine.data.transform.vision.transform.RandomVerticalFlip(prob=0.5, *, order=None)[源代码]

基类:megengine.data.transform.vision.transform.VisionTransform

按给定概率,随机垂直翻转输入数据。

参数
  • p – 输入数据被翻转的概率。默认:0.5

  • order – 与 VisionTransform 一致。

apply(input)[源代码]

对单个输入数据实施数据增强。

class megengine.data.transform.vision.transform.Resize(output_size, interpolation=1, *, order=None)[源代码]

基类:megengine.data.transform.vision.transform.VisionTransform

调整输入数据大小。

参数
  • output_size – 图像的目标尺寸,形为 (height, width)。

  • interpolation

    插值方法。所有方法如下所示:

    • cv2.INTER_NEAREST - 最近邻插值。

    • cv2.INTER_LINEAR - 双线性插值(默认使用此方法)。

    • cv2.INTER_AREA - 使用像素局部空域关系进行重采样。

    • cv2.INTER_CUBIC - 基于4×4像素邻域的双三次插值。

    • cv2.INTER_LANCZOS4 - 基于8×8邻域的Lanczos插值。

  • order – 与 VisionTransform 一致。

apply(input)[源代码]

对单个输入数据实施数据增强。

class megengine.data.transform.vision.transform.SaturationTransform(value, *, order=None)[源代码]

基类:megengine.data.transform.vision.transform.VisionTransform

调整输入数据的饱和度。

参数
  • value – 饱和度调节的程度。可以是任何非负数。 为0则输出原始图像。

  • order – 与 VisionTransform 一致。

class megengine.data.transform.vision.transform.ShortestEdgeResize(min_size, max_size, sample_style='range', interpolation=1, *, order=None)[源代码]

基类:megengine.data.transform.vision.transform.VisionTransform

apply(input)[源代码]

对单个输入数据实施数据增强。

class megengine.data.transform.vision.transform.ToMode(mode='CHW', *, order=None)[源代码]

基类:megengine.data.transform.vision.transform.VisionTransform

将输入数据变换到目标模式。例如,大多数变换使用HWC模式图像,而神经网络可能使用CHW模式的输入张量。

参数
  • mode – 输入的输出模式。默认情况下使用”CHW”模式。

  • order – 与 VisionTransform 一致

class megengine.data.transform.vision.transform.TorchTransformCompose(transforms, *, order=None)[源代码]

基类:megengine.data.transform.vision.transform.VisionTransform

torchvision中变换的Compose类,仅支持PIL图像,但不支持某些torchvision中张量上的变换,比如Normalize和ToTensor。

参数
  • transforms – 与 Compose 一致。

  • order – 与 VisionTransform 一致。

class megengine.data.transform.vision.transform.VisionTransform(order=None)[源代码]

基类:megengine.data.transform.meta_transform.Transform

计算机视觉(vision)中所有transform(数据增广)类函数的基类。 调用逻辑:apply_batch() -> apply() -> _apply_image() 以及其他类似 _apply_*() 的类方法。 如果需要自定义处理图像的transform函数的实现,在子类中重写 _apply_image 方法。

参数

order

输入数据中各类型的顺序。输入数据是由不同类型数据组成元组,order则可以用来指明其中 各类数据类型出现的顺序。比如,如果输入为(image, boxes)类型,那么order应该相应地设为(“image”, “boxes”)。目前支持的字符串类型与数据类型有:

  • ”image”: 输入图像,形为 (H, W, C)

  • ”coords”: 坐标,形为 (N, 2)

  • ”boxes”: bounding boxes,形为 (N, 4),采用 “xyxy” 格式,第一个”xy”代表box的左上角,第二个”xy”代表右下角。

  • ”mask”: 用于图像分割的 mask map,形为 (H, W, 1)

  • ”keypoints”: 特征点,形为 (N, K, 3),其中 N 为实例数量, K 为一个实例中的特征点数量。最后一轴对应的数据前两维是特征点的坐标,第三维则是特征点的标签。

  • ”polygons”: 包含numpy数组的序列。其长为实例的数目,每个numpy数组代表一个实例的多边形坐标。

  • ”category”: 某些数据类型的标签。比如,”image_category”表示输入图像的类别,”boxes_category”表示bounding box的类别。

  • ”info”: 关于图像的信息,比如图像形状与图像路径。

只有自定义实现了对应的_apply_*(),才支持自定义数据类型,否则抛出 NotImplementedError 错误。

apply(input)[源代码]

对单个输入数据实施数据增强。

apply_batch(inputs)[源代码]

对一批(batch)的输入数据实施数据增广。

megengine.data.dataset.meta_dataset

class megengine.data.dataset.meta_dataset.ArrayDataset(*arrays)[源代码]

基类:megengine.data.dataset.meta_dataset.MapDataset

__init__(*arrays)[源代码]
ArrayDataset是承载numpy array数据的数据集。需要至少一个numpy array数据进行初始化

来初始化数据集,且其中表示样本数的维度应一致。

class megengine.data.dataset.meta_dataset.Dataset[源代码]

基类:abc.ABC

所有数据集类Datasets的抽象类。

class megengine.data.dataset.meta_dataset.MapDataset[源代码]

基类:megengine.data.dataset.meta_dataset.Dataset

映射类型数据集(map-style dataset)类的抽象类。 需要进一步提供 __getitem__ 和 __len__ 方法。

class megengine.data.dataset.meta_dataset.StreamDataset[源代码]

基类:megengine.data.dataset.meta_dataset.Dataset

流型数据集(stream data)的抽象类。额外需要 __iter__ 方法。

megengine.data.dataset.vision.cifar

class megengine.data.dataset.vision.cifar.CIFAR10(root=None, train=True, download=True, timeout=500)[源代码]

基类:megengine.data.dataset.vision.meta_vision.VisionDataset

CIFAR10元数据的数据集。

bytes2array(filenames)[源代码]
download()[源代码]
property meta
meta_info = {'name': 'batches.meta'}
process()[源代码]
raw_file_dir = 'cifar-10-batches-py'
raw_file_md5 = 'c58f30108f718f92721af3b95e74349a'
raw_file_name = 'cifar-10-python.tar.gz'
test_batch = ['test_batch']
train_batch = ['data_batch_1', 'data_batch_2', 'data_batch_3', 'data_batch_4', 'data_batch_5']
untar(file_path, dirs)[源代码]
url_path = 'http://www.cs.utoronto.ca/~kriz/'
class megengine.data.dataset.vision.cifar.CIFAR100(root=None, train=True, download=True, timeout=500)[源代码]

基类:megengine.data.dataset.vision.cifar.CIFAR10

bytes2array(filenames)[源代码]
property meta
meta_info = {'name': 'meta'}
raw_file_dir = 'cifar-100-python'
raw_file_md5 = 'eb9058c3a382ffc7106e4002c42a8d85'
raw_file_name = 'cifar-100-python.tar.gz'
test_batch = ['test']
train_batch = ['train']
url_path = 'http://www.cs.utoronto.ca/~kriz/'

megengine.data.dataset.vision.cityscapes

class megengine.data.dataset.vision.cityscapes.Cityscapes(root, image_set, mode, *, order=None)[源代码]

基类:megengine.data.dataset.vision.meta_vision.VisionDataset

Cityscapes 数据集.

class_names = ('road', 'sidewalk', 'building', 'wall', 'fence', 'pole', 'traffic light', 'traffic sign', 'vegetation', 'terrain', 'sky', 'person', 'rider', 'car', 'truck', 'bus', 'train', 'motorcycle', 'bicycle')
supported_order = ('image', 'mask', 'info')

megengine.data.dataset.vision.coco

class megengine.data.dataset.vision.coco.COCO(root, ann_file, remove_images_without_annotations=False, *, order=None)[源代码]

基类:megengine.data.dataset.vision.meta_vision.VisionDataset

MS COCO 数据集.

class_names = ('person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus', 'train', 'truck', 'boat', 'traffic light', 'fire hydrant', 'stop sign', 'parking meter', 'bench', 'bird', 'cat', 'dog', 'horse', 'sheep', 'cow', 'elephant', 'bear', 'zebra', 'giraffe', 'backpack', 'umbrella', 'handbag', 'tie', 'suitcase', 'frisbee', 'skis', 'snowboard', 'sports ball', 'kite', 'baseball bat', 'baseball glove', 'skateboard', 'surfboard', 'tennis racket', 'bottle', 'wine glass', 'cup', 'fork', 'knife', 'spoon', 'bowl', 'banana', 'apple', 'sandwich', 'orange', 'broccoli', 'carrot', 'hot dog', 'pizza', 'donut', 'cake', 'chair', 'couch', 'potted plant', 'bed', 'dining table', 'toilet', 'tv', 'laptop', 'mouse', 'remote', 'keyboard', 'cell phone', 'microwave', 'oven', 'toaster', 'sink', 'refrigerator', 'book', 'clock', 'vase', 'scissors', 'teddy bear', 'hair drier', 'toothbrush')
classes_originID = {'airplane': 5, 'apple': 53, 'backpack': 27, 'banana': 52, 'baseball bat': 39, 'baseball glove': 40, 'bear': 23, 'bed': 65, 'bench': 15, 'bicycle': 2, 'bird': 16, 'boat': 9, 'book': 84, 'bottle': 44, 'bowl': 51, 'broccoli': 56, 'bus': 6, 'cake': 61, 'car': 3, 'carrot': 57, 'cat': 17, 'cell phone': 77, 'chair': 62, 'clock': 85, 'couch': 63, 'cow': 21, 'cup': 47, 'dining table': 67, 'dog': 18, 'donut': 60, 'elephant': 22, 'fire hydrant': 11, 'fork': 48, 'frisbee': 34, 'giraffe': 25, 'hair drier': 89, 'handbag': 31, 'horse': 19, 'hot dog': 58, 'keyboard': 76, 'kite': 38, 'knife': 49, 'laptop': 73, 'microwave': 78, 'motorcycle': 4, 'mouse': 74, 'orange': 55, 'oven': 79, 'parking meter': 14, 'person': 1, 'pizza': 59, 'potted plant': 64, 'refrigerator': 82, 'remote': 75, 'sandwich': 54, 'scissors': 87, 'sheep': 20, 'sink': 81, 'skateboard': 41, 'skis': 35, 'snowboard': 36, 'spoon': 50, 'sports ball': 37, 'stop sign': 13, 'suitcase': 33, 'surfboard': 42, 'teddy bear': 88, 'tennis racket': 43, 'tie': 32, 'toaster': 80, 'toilet': 70, 'toothbrush': 90, 'traffic light': 10, 'train': 7, 'truck': 8, 'tv': 72, 'umbrella': 28, 'vase': 86, 'wine glass': 46, 'zebra': 24}
get_img_info(index)[源代码]
keypoint_names = ('nose', 'left_eye', 'right_eye', 'left_ear', 'right_ear', 'left_shoulder', 'right_shoulder', 'left_elbow', 'right_elbow', 'left_wrist', 'right_wrist', 'left_hip', 'right_hip', 'left_knee', 'right_knee', 'left_ankle', 'right_ankle')
supported_order = ('image', 'boxes', 'boxes_category', 'keypoints', 'info')
megengine.data.dataset.vision.coco.has_valid_annotation(anno, order)[源代码]

megengine.data.dataset.vision.folder

class megengine.data.dataset.vision.folder.ImageFolder(root, check_valid_func=None, class_name=False)[源代码]

基类:megengine.data.dataset.vision.meta_vision.VisionDataset

__init__(root, check_valid_func=None, class_name=False)[源代码]

ImageFolder是一个类,可从有组织的文件夹中加载图像数据和标签。

该文件夹组织结构应为:root/cls/xxx.img_ext

标签(label)值是在根目录中类排序后的索引。

参数
  • root (str) – 图像文件夹(image folder)的根目录。

  • loader – 从路径中加载图像的函数。如果为``None``,则调用 PIL 加载图像的默认函数。

  • check_valid_func – 用来检查文件夹中的文件是否为期望图像文件的函数。如果为 None ,则默认调用检查文件扩展名的函数。

  • class_name (bool) – 如果为 True ,那么返回类名称,而不是类索引。

collect_class()[源代码]
返回类型

Dict

collect_samples()[源代码]
返回类型

List

megengine.data.dataset.vision.imagenet

class megengine.data.dataset.vision.imagenet.ImageNet(root=None, train=True, **kwargs)[源代码]

基类:megengine.data.dataset.vision.folder.ImageFolder

从原始文件或文件夹中加载ImageNet,期望的文件夹形如:

${root}/
|       [REQUIRED TAR FILES]
|-  ILSVRC2012_img_train.tar
|-  ILSVRC2012_img_val.tar
|-  ILSVRC2012_devkit_t12.tar.gz
|       [OPTIONAL IMAGE FOLDERS]
|-  train/cls/xxx.${img_ext}
|-  val/cls/xxx.${img_ext}
|-  ILSVRC2012_devkit_t12/data/meta.mat
|-  ILSVRC2012_devkit_t12/data/ILSVRC2012_validation_ground_truth.txt

如果期望的图片文件夹不存在,则需要原始tar文件来进行抽取和处理。

__init__(root=None, train=True, **kwargs)[源代码]

初始化:

  • 如果 root 包含依赖于 trainself.target_folder

    • 使用 target_folder 初始化 ImageFolder。

  • 否则:

    • 如果所有的原始文件都在 root

      • 从原始文件解析 self.target_folder

      • 使用 self.target_folder 初始化 ImageFolder。

    • 否则:

      • 报错。

参数
  • root (Optional[str]) – Imagenet数据的根目录。如果root为 None ,则使用default_dataset_root。

  • train (bool) – 如果为 True ,那么加载train分块(split),否则加载validation分块(split)。

check_raw_file()[源代码]
返回类型

bool

default_devkit_dir = 'ILSVRC2012_devkit_t12'
default_train_dir = 'train'
default_val_dir = 'val'
property meta
raw_file_meta = {'devkit': ('ILSVRC2012_devkit_t12.tar.gz', 'fa75699e90414af021442c21a62c3abf'), 'train': ('ILSVRC2012_img_train.tar', '1d675b47d978889d74fa0da5fadfb00e'), 'val': ('ILSVRC2012_img_val.tar', '29b22e2961454d5413ddabcf34fc5622')}
property valid_ground_truth

megengine.data.dataset.vision.meta_vision

class megengine.data.dataset.vision.meta_vision.VisionDataset(root, *, order=None, supported_order=None)[源代码]

基类:megengine.data.dataset.meta_dataset.MapDataset

megengine.data.dataset.vision.mnist

class megengine.data.dataset.vision.mnist.MNIST(root=None, train=True, download=True, timeout=500)[源代码]

基类:megengine.data.dataset.vision.meta_vision.VisionDataset

承载 MNIST 元数据的 Dataset

__init__(root=None, train=True, download=True, timeout=500)[源代码]
参数
  • root (Optional[str]) – MNIST数据集下载或加载的路径。如果为 Noneroot 将被设置为 _default_root

  • train (bool) – 如果为 True ,则加载训练集,否则加载测试集。

  • download (bool) – 如果原始文件不存在,且download设置为 True ,则下载原始文件并处理,否则抛出ValueError异常,默认为 True。

download()[源代码]
property meta
process(train)[源代码]
raw_file_md5 = ['f68b3c2dcbeaaa9fbdd348bbdeb94873', 'd53e105ee54ea40749a09fcbcd1e9432', '9fb629c4189551a2d022fa330f9573f3', 'ec29112dd5afa0611ce80d1b7f02629c']

用于检查原始文件的md5。

raw_file_name = ['train-images-idx3-ubyte.gz', 'train-labels-idx1-ubyte.gz', 't10k-images-idx3-ubyte.gz', 't10k-labels-idx1-ubyte.gz']

训练集和测试集(10K)原始文件的文件名。

url_path = 'http://yann.lecun.com/exdb/mnist/'

用于下载原始文件的url前缀。

megengine.data.dataset.vision.mnist.parse_idx1(idx1_file)[源代码]
megengine.data.dataset.vision.mnist.parse_idx3(idx3_file)[源代码]

megengine.data.dataset.vision.objects365

class megengine.data.dataset.vision.objects365.Objects365(root, ann_file, remove_images_without_annotations=False, *, order=None)[源代码]

基类:megengine.data.dataset.vision.meta_vision.VisionDataset

Objects365 数据集.

class_names = ('person', 'sneakers', 'chair', 'hat', 'lamp', 'bottle', 'cabinet/shelf', 'cup', 'car', 'glasses', 'picture/frame', 'desk', 'handbag', 'street lights', 'book', 'plate', 'helmet', 'leather shoes', 'pillow', 'glove', 'potted plant', 'bracelet', 'flower', 'tv', 'storage box', 'vase', 'bench', 'wine glass', 'boots', 'bowl', 'dining table', 'umbrella', 'boat', 'flag', 'speaker', 'trash bin/can', 'stool', 'backpack', 'couch', 'belt', 'carpet', 'basket', 'towel/napkin', 'slippers', 'barrel/bucket', 'coffee table', 'suv', 'toy', 'tie', 'bed', 'traffic light', 'pen/pencil', 'microphone', 'sandals', 'canned', 'necklace', 'mirror', 'faucet', 'bicycle', 'bread', 'high heels', 'ring', 'van', 'watch', 'sink', 'horse', 'fish', 'apple', 'camera', 'candle', 'teddy bear', 'cake', 'motorcycle', 'wild bird', 'laptop', 'knife', 'traffic sign', 'cell phone', 'paddle', 'truck', 'cow', 'power outlet', 'clock', 'drum', 'fork', 'bus', 'hanger', 'nightstand', 'pot/pan', 'sheep', 'guitar', 'traffic cone', 'tea pot', 'keyboard', 'tripod', 'hockey', 'fan', 'dog', 'spoon', 'blackboard/whiteboard', 'balloon', 'air conditioner', 'cymbal', 'mouse', 'telephone', 'pickup truck', 'orange', 'banana', 'airplane', 'luggage', 'skis', 'soccer', 'trolley', 'oven', 'remote', 'baseball glove', 'paper towel', 'refrigerator', 'train', 'tomato', 'machinery vehicle', 'tent', 'shampoo/shower gel', 'head phone', 'lantern', 'donut', 'cleaning products', 'sailboat', 'tangerine', 'pizza', 'kite', 'computer box', 'elephant', 'toiletries', 'gas stove', 'broccoli', 'toilet', 'stroller', 'shovel', 'baseball bat', 'microwave', 'skateboard', 'surfboard', 'surveillance camera', 'gun', 'life saver', 'cat', 'lemon', 'liquid soap', 'zebra', 'duck', 'sports car', 'giraffe', 'pumpkin', 'piano', 'stop sign', 'radiator', 'converter', 'tissue ', 'carrot', 'washing machine', 'vent', 'cookies', 'cutting/chopping board', 'tennis racket', 'candy', 'skating and skiing shoes', 'scissors', 'folder', 'baseball', 'strawberry', 'bow tie', 'pigeon', 'pepper', 'coffee machine', 'bathtub', 'snowboard', 'suitcase', 'grapes', 'ladder', 'pear', 'american football', 'basketball', 'potato', 'paint brush', 'printer', 'billiards', 'fire hydrant', 'goose', 'projector', 'sausage', 'fire extinguisher', 'extension cord', 'facial mask', 'tennis ball', 'chopsticks', 'electronic stove and gas stove', 'pie', 'frisbee', 'kettle', 'hamburger', 'golf club', 'cucumber', 'clutch', 'blender', 'tong', 'slide', 'hot dog', 'toothbrush', 'facial cleanser', 'mango', 'deer', 'egg', 'violin', 'marker', 'ship', 'chicken', 'onion', 'ice cream', 'tape', 'wheelchair', 'plum', 'bar soap', 'scale', 'watermelon', 'cabbage', 'router/modem', 'golf ball', 'pine apple', 'crane', 'fire truck', 'peach', 'cello', 'notepaper', 'tricycle', 'toaster', 'helicopter', 'green beans', 'brush', 'carriage', 'cigar', 'earphone', 'penguin', 'hurdle', 'swing', 'radio', 'CD', 'parking meter', 'swan', 'garlic', 'french fries', 'horn', 'avocado', 'saxophone', 'trumpet', 'sandwich', 'cue', 'kiwi fruit', 'bear', 'fishing rod', 'cherry', 'tablet', 'green vegetables', 'nuts', 'corn', 'key', 'screwdriver', 'globe', 'broom', 'pliers', 'volleyball', 'hammer', 'eggplant', 'trophy', 'dates', 'board eraser', 'rice', 'tape measure/ruler', 'dumbbell', 'hamimelon', 'stapler', 'camel', 'lettuce', 'goldfish', 'meat balls', 'medal', 'toothpaste', 'antelope', 'shrimp', 'rickshaw', 'trombone', 'pomegranate', 'coconut', 'jellyfish', 'mushroom', 'calculator', 'treadmill', 'butterfly', 'egg tart', 'cheese', 'pig', 'pomelo', 'race car', 'rice cooker', 'tuba', 'crosswalk sign', 'papaya', 'hair drier', 'green onion', 'chips', 'dolphin', 'sushi', 'urinal', 'donkey', 'electric drill', 'spring rolls', 'tortoise/turtle', 'parrot', 'flute', 'measuring cup', 'shark', 'steak', 'poker card', 'binoculars', 'llama', 'radish', 'noodles', 'yak', 'mop', 'crab', 'microscope', 'barbell', 'bread/bun', 'baozi', 'lion', 'red cabbage', 'polar bear', 'lighter', 'seal', 'mangosteen', 'comb', 'eraser', 'pitaya', 'scallop', 'pencil case', 'saw', 'table tennis paddle', 'okra', 'starfish', 'eagle', 'monkey', 'durian', 'game board', 'rabbit', 'french horn', 'ambulance', 'asparagus', 'hoverboard', 'pasta', 'target', 'hotair balloon', 'chainsaw', 'lobster', 'iron', 'flashlight')
get_img_info(index)[源代码]
supported_order = ('image', 'boxes', 'boxes_category', 'info')

megengine.data.dataset.vision.utils

megengine.data.dataset.vision.utils.calculate_md5(filename)[源代码]
megengine.data.dataset.vision.utils.is_img(filename)[源代码]
megengine.data.dataset.vision.utils.load_raw_data_from_url(url, filename, target_md5, raw_data_dir, timeout)[源代码]
megengine.data.dataset.vision.utils.untar(path, to=None, remove=False)[源代码]
megengine.data.dataset.vision.utils.untargz(path, to=None, remove=False)[源代码]

megengine.data.dataset.vision.voc

class megengine.data.dataset.vision.voc.PascalVOC(root, image_set, *, order=None)[源代码]

基类:megengine.data.dataset.vision.meta_vision.VisionDataset

Pascal VOC 数据集.

class_names = ('aeroplane', 'bicycle', 'bird', 'boat', 'bottle', 'bus', 'car', 'cat', 'chair', 'cow', 'diningtable', 'dog', 'horse', 'motorbike', 'person', 'pottedplant', 'sheep', 'sofa', 'train', 'tvmonitor')
get_img_info(index, image=None)[源代码]
parse_voc_xml(node)[源代码]
supported_order = ('image', 'boxes', 'boxes_category', 'mask', 'info')