nvidia.dali.fn.readers.sequence#
- nvidia.dali.fn.readers.sequence(*, bytes_per_sample_hint=[0], dont_use_mmap=False, file_root, image_type=DALIImageType.RGB, initial_fill=1024, lazy_init=False, num_shards=1, pad_last_batch=False, prefetch_queue_depth=1, preserve=False, random_shuffle=False, read_ahead=False, seed=-1, sequence_length, shard_id=0, skip_cached_images=False, step=1, stick_to_shard=False, stride=1, tensor_init_bytes=1048576, device=None, name=None)#
警告
此操作算子现在已弃用。
此操作算子可能会在未来的版本中移除。
external_source()
可以用于实现自定义读取模式。对于读取视频序列,可以使用nvidia.dali.fn.readers.video()
,nvidia.dali.fn.experimental.readers.video()
,nvidia.dali.fn.experimental.decoders.video()
或nvidia.dali.fn.experimental.inputs.video()
中的一种。从表示流集合的目录中读取 [帧] 序列。
此操作算子期望
file_root
包含一组目录,其中每个目录代表一个提取的视频流。此流由每个帧一个文件表示,按字典顺序排序。序列不会跨越流边界,并且仅考虑完整的序列,因此没有填充。目录结构示例
- file_root - 0 - 00001.png - 00002.png - 00003.png - 00004.png - 00005.png - 00006.png .... - 1 - 00001.png - 00002.png - 00003.png - 00004.png - 00005.png - 00006.png ....
注意
此操作算子是视频读取器的类似物,适用于作为单独图像提取的视频帧。其主要目的是用于测试基线。对于常规使用,建议使用视频读取器。
此操作算子允许序列输入。
- 支持的后端
‘cpu’
- 关键字参数:
bytes_per_sample_hint¶ (int 或 int 列表, 可选, 默认 = [0]) –
每个样本的输出大小提示(以字节为单位)。
如果指定,则将预先分配驻留在 GPU 或分页锁定主机内存中的操作算子的输出,以容纳此大小的样本批次。
dont_use_mmap¶ (bool, 可选, 默认 = False) –
如果设置为 True,Loader 将使用普通文件 I/O,而不是尝试在内存中映射文件。
当访问本地文件系统时,映射提供了一点性能优势,但大多数网络文件系统不提供最佳性能。
file_root¶ (str) – 包含流的目录的路径,其中目录代表流。
image_type¶ (
nvidia.dali.types.DALIImageType
, 可选, 默认 = DALIImageType.RGB) – 输入和输出图像的色彩空间。initial_fill¶ (int, 可选, 默认 = 1024) –
用于洗牌的缓冲区大小。
如果
random_shuffle
为 False,则忽略此参数。lazy_init¶ (bool, 可选, 默认 = False) – 仅在第一次运行时而不是在构造函数中解析和准备数据集元数据。
num_shards¶ (int, 可选, 默认 = 1) –
将数据划分为指定数量的部分(分片)。
这通常用于多 GPU 或多节点训练。
pad_last_batch¶ (bool, 可选, 默认 = False) –
如果设置为 True,则通过重复最后一个样本来填充分片。
注意
如果各个分片之间的批次数量不同,则此选项可能会导致将整个重复样本批次添加到数据集中。
prefetch_queue_depth¶ (int, 可选, 默认 = 1) –
指定内部 Loader 预取的批次数量。
当 pipeline 受 CPU 阶段限制时,应增加此值,以内存消耗换取与 Loader 线程更好的交错。
preserve¶ (bool, 可选, 默认 = False) – 阻止操作算子从图中删除,即使其输出未使用。
random_shuffle¶ (bool, 可选, 默认 = False) –
确定是否随机洗牌数据。
使用大小等于
initial_fill
的预取缓冲区按顺序读取数据,然后随机选择样本以形成批次。read_ahead¶ (bool, 可选, 默认 = False) –
确定是否应预读访问的数据。
对于大型文件(如 LMDB、RecordIO 或 TFRecord),此参数会减慢首次访问速度,但会减少所有后续访问的时间。
seed¶ (int, 可选, 默认 = -1) – 随机种子;如果未设置,将自动分配一个。
sequence_length¶ (int) – 每个样本要加载的序列长度。
shard_id¶ (int, 可选, 默认 = 0) – 要读取的分片的索引。
skip_cached_images¶ (bool, 可选, 默认 = False) –
如果设置为 True,则当样本在解码器缓存中时,将跳过加载数据。
在这种情况下,加载器的输出将为空。
step¶ (int, 可选, 默认 = 1) – 连续序列的第一个帧之间的距离。
stick_to_shard¶ (bool, 可选, 默认 = False) –
确定读取器是否应坚持数据分片而不是遍历整个数据集。
如果使用解码器缓存,它可以显着减少要缓存的数据量,但可能会影响训练的准确性。
stride¶ (int, 可选, 默认 = 1) – 序列中连续帧之间的距离。
tensor_init_bytes¶ (int, 可选, 默认 = 1048576) – 每个图像要分配多少内存的提示。