数据转tfrecord算法组件可以将标注生成的数据转换成tfrecord格式,从而用于图像类模型训练。本文介绍数据转tfrecord算法组件的配置方法及使用示例。
前提条件
已开通OSS并完成授权,详情请参见开通OSS服务和为PAI-Studio授予OSS访问权限。
使用限制
仅PAI-Designer提供该算法组件。
算法简介
在分布式集群数据加速方案中,通过把输入数据转为tfrecord,供给下游的图像分类、图像检测、OCR或图像自监督模型训练组件。
数据转tfrecord算法组件位于组件库音视觉算法文件夹下的视频预处理子文件夹,支持上亿规模的图像存储。
可视化配置组件
- 输入桩
输入桩 限制数据类型 建议上游组件 是否必选 标注数据 OSS 读OSS数据 是 - 组件参数
页签 参数 是否必选 描述 默认值 字段设置 转换配置文件路径 否 该参数暂时无用。 不指定该参数 输出tfrecord路径 是 输出tfrecord的路径。 无 输出tfrecord前缀 是 输出文件前缀。最终输出的两个数据文件的路径为: 输出tfrecord路径/输出tfrecord前缀_train_xxx.tfrecord
输出tfrecord路径/输出tfrecord前缀_test_xxx.tfrecord
无 参数设置 转换数据用于何种模型训练 是 该组件转换后的数据可用于以下模型训练: - CLASSIFICATION:分类
- DETECTION:目标检测
- SEGMENTATION:语义分割
- POLYGON_SEGMENTATION:多边形语义分割
- INSTANCE_SEGMENTATION:实例分割
- TEXT_END2END:端到端文字识别
- TEXT_DETECTION:文字检测
- TEXT_RECOGNITION:文字识别
无 类别列表文件路径 是 类别列表文件的OSS路径,类别列表文件内容的每行格式为类别名,或者 类别名:映射类别名
。例如oss://ev-dlc-sh.oss-cn-shanghai-internal.aliyuncs.com/data/iTAG/cls_class.list
,其中cls_class.list表示文件列表文件。无 测试数据分割比例 否 测试数据分割比例。设置为0,则所有数据转换为训练数据,默认值0.1表示10%数据作为验证集。 0.1 图片最大边限制 否 如果设置了图片最大边限制,大图片将被Resize后存入tfrecord,从而节省存储、提高数据读取速度。 不指定该参数 测试图片最大边限制 否 如果设置了该参数,则测试图片中的大图片将被Resize后存入tfrecord,从而节省存储、提高数据读取速度。 不指定该参数 默认类别名称 否 在class_list中未找到的类别均会映射到该名称。 不指定该参数 错误类别名称 否 含有该类别的物体和Box将会被过滤,不参与训练。 不指定该参数 忽略类别名称 否 仅用于检测模型,含有该类别的Box会在训练中被忽略。 不指定该参数 转换类名称 否 转换类名,支持以下取值: - PAI标注格式:PAI标注平台产生的标注文件格式
- 亲测标注格式:亲测平台产生的标注文件格式
- 自监督标注格式:平台定义的图片自监督训练所需格式
PAI标注格式 分隔符 否 用于标记内容的分隔符。 不指定该参数 图片编码方式 否 tfrecord中图片的编码方式。常用图像编码方式如下所示: - jpg
- png
- bmp
jpg 字符映射替换文件 否 当转换数据用于何种模型训练取值为TEXT_END2END或TEXT_DETECTION时,您可以指定字符映射替换文件参数。例如
字符映射替换文件是CSV文件,包含original和replaced两列,original列的字符将被replaced列的内容替换。oss://ev-dlc-sh.oss-cn-shanghai-internal.aliyuncs.com/data/replace.csv
。不指定该参数 字符到id映射文件路径 否 当转换数据用于何种模型训练取值为TEXT_END2END或TEXT_DETECTION时,您可以指定字符到id映射文件路径参数。
字符到ID映射文件的每一行是一个字符,第k行的字符ID为k-1。不指定该参数 执行调优 读取并发数 是 并发读取数。 10 写tfrecord并发数 是 并发写tfrecord的线程数。 1 每个tfrecord保存图片数 是 每个tfrecord保存的图片数目。 1000 单机或分布式(MaxCompute/DLC) 否 组件运行的引擎,您可以结合实际情况选择。系统支持以下计算引擎: - 单机MaxCompute
当运行引擎为单机MaxCompute时,您还需要配置是否使用GPU,取值100表示1张GPU卡。如果不使用GPU,则需要将是否使用GPU配置为0。
- 分布式MaxCompute当运行引擎为分布式MaxCompute时,您还需要配置以下参数:
- worker个数:并发的worker数量。
- CPU Core个数:每个Worker的CPU数目,取值100表示1核。
- memory大小:每个Worker的内存大小,单位为MB。
- 单机DLC当运行引擎为单机DLC时,您还需要配置以下参数:
- 是否使用GPU:取值100表示1张GPU卡。如果不使用GPU,则需要将是否使用GPU配置为0。
- CPU机型选择:选择运行的CPU规格。
- gpu机型选择:选择运行的GPU规格。
- 分布式DLC当运行引擎为分布式DLC时,您还需要配置以下参数:
- 是否使用GPU:取值100表示1张GPU卡。
- worker个数:并发的worker数量。
- CPU机型选择:选择运行的CPU规格。
- gpu机型选择:选择运行的GPU规格。
单机MaxCompute - 输出桩
输出桩(从左到右) 数据类型 建议下游组件 训练数据 OSS路径。该路径是您在字段设置页签的输出tfrecord路径参数配置的OSS路径,训练数据和评估数据均输出在该路径下。 图像类训练组件(例如,图像分类训练、图像检测训练、图像分割训练、图像自监督训练或端到端的文字识别训练)。 评估数据 图像类训练组件(自监督训练组件除外,因为自监督模型训练不需要评估数据)。
计算引擎
数据转tfrecord算法组件支持MaxCompute和PAI-DLC引擎。您可以在执行调优页签的单机或分布式(MaxCompute/DLC)参数配置运行引擎。
示例

- 配置转换数据用于何种模型训练为CLASSIFICATION。
- 配置转换类名称为自监督标注格式。
- 配置测试数据分割比例为0。