操作参考#

DALI Pipeline 中的数据处理图是通过调用操作函数定义的。它们接受并返回 DataNode 的实例,这些实例是张量批次的符号表示。操作函数不能直接用于处理数据。

有关定义处理 pipeline 的约束,请参阅 Pipeline 文档的此部分

下表列出了 DALI 中所有可用的操作

函数

设备支持

简短描述

audio_decoder

CPU

decoders.audio() 的旧版别名。

audio_resample

CPU, GPU

重采样音频信号。

batch_permutation

CPU

生成一批随机整数,可用作批次中索引样本的索引。

bb_flip

CPU, GPU

水平或垂直翻转(镜像)边界框。

bbox_paste

CPU

变换边界框,使框在图像粘贴到较大画布后保持在图像中的相同位置。

box_encoder

CPU, GPU

使用作为参数传递的一组默认框(锚点)对输入边界框和标签进行编码。

brightness

CPU, GPU

调整图像的亮度。

brightness_contrast

CPU, GPU

调整图像的亮度和对比度。

caffe2_reader

CPU

readers.caffe2() 的旧版别名。

caffe_reader

CPU

readers.caffe() 的旧版别名。

cast

CPU, GPU

将张量转换为不同的类型。

cast_like

CPU, GPU

将第一个张量转换为第二个张量的类型。

cat

CPU, GPU

沿现有轴连接输入张量。

coco_reader

CPU

readers.coco() 的旧版别名。

coin_flip

CPU, GPU

生成遵循伯努利分布的随机布尔值。

color_space_conversion

CPU, GPU

在各种图像颜色模型之间转换。

color_twist

CPU, GPU

调整图像的色调、饱和度、亮度和对比度。

contrast

CPU, GPU

调整图像的对比度。

coord_flip

CPU, GPU

通过相对于给定中心翻转(反射)其坐标来变换向量或点。

coord_transform

CPU, GPU

对点或向量应用线性变换。

copy

CPU, GPU

创建输入张量的副本。

crop

CPU, GPU

使用指定的窗口尺寸和窗口位置(左上角)裁剪图像。

crop_mirror_normalize

CPU, GPU

如果需要,执行融合裁剪、归一化、格式转换 (NHWC 到 NCHW) 和类型转换。

dl_tensor_python_function

CPU, GPU

执行对 DLPack 张量进行操作的 Python 函数。

dump_image

CPU, GPU

将批量图像以 PPM 格式保存到磁盘。

element_extract

CPU, GPU

从输入序列中提取一个或多个元素。

erase

CPU, GPU

从输入张量中擦除一个或多个区域。

expand_dims

CPU, GPU

在数据形状中插入范围为 1 的新维度。

external_source

CPU, GPU

允许将外部提供的数据作为 pipeline 的输入传递。

fast_resize_crop_mirror

CPU, GPU

ResizedCropMirror 的旧版别名,默认情况下禁用抗锯齿。

file_reader

CPU

readers.file() 的旧版别名。

flip

CPU, GPU

在选定的维度(水平、垂直和深度方向)翻转图像。

full

CPU

返回给定形状和类型的新数据,并填充填充值。

full_like

CPU

返回与输入数据具有相同形状和类型的新数据,并填充 fill_value

gaussian_blur

CPU, GPU

对输入应用高斯模糊。

get_property

CPU, GPU

返回作为输入传递的张量的属性。

grid_mask

CPU, GPU

执行 gridmask 增强 (https://arxiv.org/abs/2001.04086)。

hsv

CPU, GPU

调整图像的色调、饱和度和值(亮度)。

hue

CPU, GPU

更改图像的色调级别。

image_decoder

CPU, 混合

decoders.image() 的旧版别名。

image_decoder_crop

CPU, 混合

decoders.image_crop() 的旧版别名。

image_decoder_random_crop

CPU, 混合

decoders.image_random_crop() 的旧版别名。

image_decoder_slice

CPU, 混合

decoders.image_slice() 的旧版别名。

jitter

GPU

执行随机 Jitter 增强。

jpeg_compression_distortion

CPU, GPU

将 JPEG 压缩伪影引入 RGB 图像。

laplacian

CPU, GPU

计算输入的拉普拉斯算子。

lookup_table

CPU, GPU

通过使用由 keysvalues 指定的查找表以及未指定键的 default_value 将输入映射到输出。

mel_filter_bank

CPU, GPU

通过应用三角形滤波器组将频谱图转换为梅尔频谱图。

mfcc

CPU, GPU

从梅尔频谱图计算梅尔频率倒谱系数 (MFCC)。

multi_paste

CPU, GPU

执行从图像批次到每个输出的多次粘贴。

mxnet_reader

CPU

readers.mxnet() 的旧版别名。

nemo_asr_reader

CPU

readers.nemo_asr() 的旧版别名。

nonsilent_region

CPU, GPU

在音频缓冲区中执行前导和尾随静音检测。

normal_distribution

CPU, GPU

生成遵循正态分布的随机数。

normalize

CPU, GPU

通过去除均值并除以标准差来归一化输入。

numba_function

CPU, GPU

调用 njit 编译的 Numba 函数。

numpy_reader

CPU, GPU

readers.numpy() 的旧版别名。

one_hot

CPU, GPU

生成输入的 one-hot 编码。

ones

CPU

返回给定形状和类型的新数据,并填充 1。

ones_like

CPU

返回与输入数组具有相同形状和类型的新数据,并填充 1。

optical_flow

GPU

计算输入中图像之间的光流。

pad

CPU, GPU

在指定的轴中用 fill_value 填充所有样本,以匹配这些轴中批次的最大范围或匹配指定的最小形状。

paste

GPU

将输入图像粘贴到较大的画布上,其中画布大小等于 input size * ratio

peek_image_shape

CPU

获取编码图像的形状。

per_frame

CPU, GPU

将输入张量标记为序列。

permute_batch

CPU, GPU

返回通过根据 indices 参数中给出的索引从输入中选择张量而构造的张量批次。

power_spectrum

CPU

计算信号的功率谱。

preemphasis_filter

CPU, GPU

对输入数据应用预加重滤波器。

python_function

CPU, GPU

执行 Python 函数。

random_bbox_crop

CPU

对图像坐标空间应用预期的随机裁剪,同时保持边界框,以及可选的标签,一致。

random_crop_generator

CPU

生成具有随机选择的面积和宽高比的裁剪窗口。

random_resized_crop

CPU, GPU

执行具有随机选择的面积和宽高比的裁剪,并将其调整为指定的大小。

reinterpret

CPU, GPU

将输入的内容视为具有不同的类型、形状和/或布局。

reshape

CPU, GPU

将输入的内容视为具有不同的形状和/或布局。

resize

CPU, GPU

调整图像大小。

resize_crop_mirror

CPU, GPU

执行融合的调整大小、裁剪、镜像操作。

roi_random_crop

CPU

生成固定形状的裁剪窗口,随机放置,以便尽可能多地包含提供的感兴趣区域 (ROI)。

rotate

CPU, GPU

将图像旋转指定的角度。

saturation

CPU, GPU

更改图像的饱和度级别。

sequence_reader

CPU

readers.sequence() 的旧版别名。

sequence_rearrange

CPU, GPU

重新排列序列中的帧。

shapes

CPU, GPU

返回输入批次中张量的形状。

slice

CPU, GPU

提取子张量或切片。

spectrogram

CPU, GPU

从一维信号(例如,音频)生成频谱图。

sphere

CPU, GPU

执行球体增强。

squeeze

CPU, GPU

删除作为 axesaxis_names 给出的维度。

ssd_random_crop

CPU

执行带有边界框的随机裁剪,其中 Intersection Over Union (IoU) 符合 0-1 之间随机选择的阈值。

stack

CPU, GPU

沿新轴连接输入张量。

tfrecord_reader

CPU

readers.tfrecord() 的旧版别名。

to_decibels

CPU, GPU

将幅度(实数,正数)转换为分贝刻度。

torch_python_function

CPU, GPU

执行对 Torch 张量进行操作的函数。

transpose

CPU, GPU

通过基于 perm 参数重新排序维度来转置张量。

uniform

CPU, GPU

生成遵循均匀分布的随机数。

video_reader

GPU

readers.video() 的旧版别名。

video_reader_resize

GPU

readers.video_resize() 的旧版别名。

warp_affine

CPU, GPU

对图像应用仿射变换。

water

CPU, GPU

执行水增强,使图像看起来像在水下。

zeros

CPU

返回给定形状和类型的新数据,并填充 0。

zeros_like

CPU

返回与输入数组具有相同形状和类型的新数据,并填充 0。

decoders.audio

CPU

从编码的音频数据解码波形。

decoders.image

CPU, 混合

解码图像。

decoders.image_crop

CPU, 混合

解码图像并提取由固定窗口尺寸和可变锚点指定的感兴趣区域 (ROI)。

decoders.image_random_crop

CPU, 混合

解码图像并随机裁剪它们。

decoders.image_slice

CPU, 混合

解码图像并提取感兴趣区域。

experimental.audio_resample

CPU, GPU

audio_resample() 的旧版别名。

experimental.debayer

GPU

执行图像去马赛克/去拜耳化。

experimental.dilate

GPU

对输入图像执行膨胀操作。

experimental.equalize

CPU, GPU

执行灰度/逐通道直方图均衡化。

experimental.erode

GPU

对输入图像执行腐蚀操作。

experimental.filter

CPU, GPU

使用提供的滤波器卷积图像。

experimental.inflate

GPU

使用指定的解压缩算法膨胀/解压缩输入。

experimental.median_blur

GPU

中值模糊通过用周围矩形区域的中值颜色替换每个像素来执行图像或图像序列的平滑处理。

experimental.peek_image_shape

CPU

获取编码图像的形状。

experimental.remap

GPU

remap 操作对图像应用通用几何变换。换句话说,它从输入图像中的一个位置获取像素,并将它们放在输出图像中的另一个位置。变换由 mapxmapy 参数描述,其中

experimental.resize

GPU

调整图像大小。

experimental.tensor_resize

CPU, GPU

调整张量大小。

experimental.warp_perspective

GPU

对图像执行透视变换。

experimental.decoders.image

CPU, 混合

解码图像。

experimental.decoders.image_crop

CPU, 混合

解码图像并提取由固定窗口尺寸和可变锚点指定的感兴趣区域 (ROI)。

experimental.decoders.image_random_crop

CPU, 混合

解码图像并随机裁剪它们。

experimental.decoders.image_slice

CPU, 混合

解码图像并提取感兴趣区域。

experimental.decoders.video

CPU, 混合

从内存缓冲区(例如,由外部源提供)解码视频文件。

experimental.inputs.video

CPU, 混合

从内存缓冲区流式传输和解码视频。用于长视频和高分辨率视频。

experimental.readers.fits

CPU, GPU

从目录读取 Fits 图像 HDU。

experimental.readers.video

CPU, GPU

使用 FFmpeg 加载和解码视频文件。

io.file.read

CPU

从由 1D 字节数组表示的编码文件名读取原始文件内容。

noise.gaussian

CPU, GPU

对输入应用高斯噪声。

noise.salt_and_pepper

CPU, GPU

对输入应用椒盐噪声。

noise.shot

CPU, GPU

对输入应用散粒噪声。

plugin.video.decoder

混合

从内存缓冲区(例如,由外部源提供)解码视频文件。

random.beta

CPU

[0, 1] 范围生成遵循 beta 分布的随机数。

random.choice

CPU

从给定的 1D 数组生成随机样本。

random.coin_flip

CPU, GPU

生成遵循伯努利分布的随机布尔值。

random.normal

CPU, GPU

生成遵循正态分布的随机数。

random.uniform

CPU, GPU

生成遵循均匀分布的随机数。

readers.caffe

CPU

从 Caffe LMDB 读取(图像、标签)对。

readers.caffe2

CPU

从 Caffe2 Lightning 内存映射数据库 (LMDB) 读取样本数据。

readers.coco

CPU

从 COCO 数据集读取数据,该数据集由带有图像和注释 JSON 文件的目录组成。

readers.file

CPU

读取文件内容并返回文件-标签对。

readers.mxnet

CPU

从 MXNet RecordIO 读取数据。

readers.nemo_asr

CPU

从 NVIDIA NeMo 兼容清单读取自动语音识别 (ASR) 数据(音频、文本)。

readers.numpy

CPU, GPU

从目录读取 Numpy 数组。

readers.sequence

CPU

从表示流集合的目录读取 [帧] 序列。

readers.tfrecord

CPU

从 TensorFlow TFRecord 文件读取样本。

readers.video

GPU

使用 FFmpeg 和 NVDECODE 加载和解码视频文件,NVDECODE 是 NVIDIA(R) GPU 中的硬件加速视频解码功能。

readers.video_resize

GPU

使用 FFmpeg 和 NVDECODE 加载、解码和调整视频文件大小,NVDECODE 是 NVIDIA GPU 的硬件加速视频解码。

readers.webdataset

CPU

webdataset 格式的读取器。

reductions.max

CPU, GPU

获取沿指定轴的最大输入元素。

reductions.mean

CPU, GPU

获取沿指定轴的元素的平均值。

reductions.mean_square

CPU, GPU

获取沿指定轴的元素的均方值。

reductions.min

CPU, GPU

获取沿指定轴的最小输入元素。

reductions.rms

CPU, GPU

获取沿指定轴的元素的均方根值。

reductions.std_dev

CPU, GPU

获取沿指定轴的元素的标准差。

reductions.sum

CPU, GPU

获取沿指定轴的元素的总和。

reductions.variance

CPU, GPU

获取沿指定轴的元素的方差。

segmentation.random_mask_pixel

CPU

在掩码中选择随机像素坐标,从均匀分布中采样。

segmentation.random_object_bbox

CPU

从掩码中随机选择一个对象并返回其边界框。

segmentation.select_masks

CPU

按掩码 ID 选择多边形的子集。

transforms.combine

CPU

组合两个或多个仿射变换。

transforms.crop

CPU

生成将参考坐标空间映射到另一个坐标空间的仿射变换矩阵。

transforms.rotation

CPU

生成旋转仿射变换矩阵。

transforms.scale

CPU

生成缩放仿射变换矩阵。

transforms.shear

CPU

生成剪切仿射变换矩阵。

transforms.translation

CPU

生成平移仿射变换矩阵。