• Docs >
  • hfai.utils.{mm, detr2}
Shortcuts

hfai.utils.{mm, detr2}

mm.FFRecordClient

为 mmcv 提供的 FFRecord 文件格式的存储后端

detr2.register_ffrecord_handler

在 detectron2 上使用 FFRecord,需要在导入 detectron2 包之前使用本函数

class hfai.utils.mm.FFRecordClient(fname, path_prefix=None, check_data=True)[source]

为 mmcv 提供的 FFRecord 文件格式的存储后端

通过 FFRecordClient,我们可以直接在 mmcv 里访问 ffrecord.pack_folder 打包后的文件

具体教程请看 HFAI X MMCV

Note

支持 mmcv >= 1.3.18

Parameters
  • fname (str) – 通过 ffrecord.pack_folder 打包后的文件路径

  • path_prefix (str) – 路径的前缀

  • check_data (bool) – 读取 FFRecord 文件时是否验证校验和

Examples

>>> from ffrecord import pack_folder
>>> import hfai.utils.mm, mmcv
>>> pack_folder("/your/folder", "packed.ffr")
>>> file_client_args = dict(backend="ffrecord", fname="packed.ffr")
>>> client = mmcv.FileClient.infer_client(file_client_args)
>>> data = client.get("0001.txt")

我们还可以在构建 FFRecordClient 的时候给一个路径的前缀,这样读取文件的时候会自动去除掉输入路径的前缀:

>>> file_client_args = dict(backend="ffrecord", fname="packed.ffr", path_prefix="/home/user/data/")
>>> client = mmcv.FileClient.infer_client(file_client_args)
>>> data = client.get("/home/user/data/0001.txt")
class hfai.utils.detr2.register_ffrecord_handler(ffr_file, ffr_prefix=None, local_prefix='datasets')[source]

在 detectron2 上使用 FFRecord,需要在导入 detectron2 包之前使用本函数

具体教程请看 HFAI X Detectron2

Examples:

from hfai.utils.detr2 import register_ffrecord_handler
register_ffrecord_handler(
    ffr_file="datasets/coco/coco.ffr",
    ffr_prefix="coco",
)

# 在这之后我们导入 detectron2 并使用
import detectron