nvidia.dali.fn.readers.caffe2#

nvidia.dali.fn.readers.caffe2(*, additional_inputs=0, bbox=False, bytes_per_sample_hint=[0], dont_use_mmap=False, image_available=True, initial_fill=1024, label_type=0, lazy_init=False, num_labels=1, num_shards=1, pad_last_batch=False, path, prefetch_queue_depth=1, preserve=False, random_shuffle=False, read_ahead=False, seed=-1, shard_id=0, skip_cached_images=False, stick_to_shard=False, tensor_init_bytes=1048576, device=None, name=None)#

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

支持的后端
  • ‘cpu’

关键字参数:
  • additional_inputs (int, 可选, 默认值 = 0) – 为每个样本提供的其他辅助数据张量。

  • bbox (bool, 可选, 默认值 = False) – 表示是否存在边界框信息。

  • bytes_per_sample_hint (int 或 int 列表, 可选, 默认值 = [0]) –

    每个样本的输出大小提示(以字节为单位)。

    如果指定,则驻留在 GPU 或页锁定主机内存中的操作符输出将被预分配,以容纳此大小的样本批次。

  • dont_use_mmap (bool, 可选, 默认值 = False) –

    如果设置为 True,则 Loader 将使用普通文件 I/O,而不是尝试在内存中映射文件。

    当访问本地文件系统时,映射提供小的性能优势,但大多数网络文件系统不提供最佳性能。

  • image_available (bool, 可选, 默认值 = True) – 确定此 LMDB 中是否提供图像。

  • initial_fill (int, 可选, 默认值 = 1024) –

    用于洗牌的缓冲区大小。

    如果 random_shuffle 为 False,则忽略此参数。

  • label_type (int, 可选, 默认值 = 0) –

    数据集中存储的标签类型。

    以下是可用值的列表

    • 0 = SINGLE_LABEL:这是多类分类的整数标签。

    • 1 = MULTI_LABEL_SPARSE:这是多标签分类的稀疏活动标签索引。

    • 2 = MULTI_LABEL_DENSE:这是标签嵌入回归的密集标签嵌入向量。

    • 3 = MULTI_LABEL_WEIGHTED_SPARSE:这是带有每个标签权重的多标签分类的稀疏活动标签索引。

    • 4 = NO_LABEL:没有标签可用。

  • lazy_init (bool, 可选, 默认值 = False) – 仅在第一次运行时(而不是在构造函数中)解析和准备数据集元数据。

  • num_labels (int, 可选, 默认值 = 1) –

    数据集中的类数。

    当使用稀疏标签时是必需的。

  • num_shards (int, 可选, 默认值 = 1) –

    将数据划分为指定数量的部分(分片)。

    这通常用于多 GPU 或多节点训练。

  • pad_last_batch (bool, 可选, 默认值 = False) –

    如果设置为 True,则通过重复最后一个样本来填充分片。

    注意

    如果各个分片之间的批次数量不同,则此选项可能会导致将整个批次的重复样本添加到数据集中。

  • path (strstr 列表) – Caffe2 LMDB 目录的路径列表。

  • 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) – 随机种子;如果未设置,将自动分配一个。

  • shard_id (int, 可选, 默认值 = 0) – 要读取的分片的索引。

  • skip_cached_images (bool, 可选, 默认值 = False) –

    如果设置为 True,则当样本在解码器缓存中时,将跳过加载数据。

    在这种情况下,加载器的输出将为空。

  • stick_to_shard (bool, 可选, 默认值 = False) –

    确定读取器是否应坚持数据分片,而不是遍历整个数据集。

    如果使用解码器缓存,它可以显着减少要缓存的数据量,但可能会影响训练的准确性。

  • tensor_init_bytes (int, 可选, 默认值 = 1048576) – 每个图像要分配多少内存的提示。