华为云用户手册

  • 新建并打开Notebook 进入JupyterLab主页后,可在“Notebook”区域下,选择适用的AI引擎,单击后将新建一个对应框架的Notebook文件。 由于每个Notebook实例选择的工作环境不同,其支持的AI框架也不同,下图仅为示例,请根据实际显示界面选择AI框架,ModelArts支持的所有框架版本及Python版本请参见支持的AI引擎。 图3 选择AI引擎并新建一个Notebook 新建的Notebook文件将呈现在左侧菜单栏中。 图4 新建文件
  • 表格 表格支持从4种数据源导入数据,分别为 对象存储服务 (OBS)、 数据仓库 服务(DWS)、 数据湖探索 服务( DLI )、 MapReduce服务 MRS )。 导入说明: 导入成功的前提是,数据源的schema需要与创建数据集指定的schema保持一致。其中schema指表格的列名和类型,创建数据集时一旦指定,不支持修改。 数据格式不合法,会将数据置为null,详见表4。 从OBS或者MRS导入csv文件,不会校验数据类型,但是列数需要跟数据集的schema保持一致。 下面分别介绍如下几种数据源导入: 从OBS导入数据 支持从OBS导入csv文件,需要选择文件所在目录,其中csv文件的列数需要跟数据集schema一致。支持自动获取csv文件的schema。 ├─dataset-import-example │ table_import_1.csv │ table_import_2.csv│ table_import_3.csv│ table_import_4.csv 从DWS导入数据 从DWS导入数据,用户需要选择对应的DWS集群,并输入需要对应的数据库名、表名以及用户名和密码。所导入表的schema(列名和类型)需要跟数据集相同。 从DLI导入数据 从DLI导入数据,用户需要选择DLI队列、数据库和表名称。所选择的表的schema(列名和类型)需与数据集一致,支持自动获取所选择表的schema。DLI的default队列只用作体验,不同帐号间可能会出现抢占的情况,需进行资源排队,不能保证每次都可以得到资源执行相关操作。DLI支持schema映射的功能,即导入的表的schema的字段名称可以不和数据集相同,但类型要保持一致。 从MRS导入数据 只支持从分析集群导入数据,流式集群不支持导入。从MRS服务中导入存储在HDFS上的csv格式的数据,首先需要选择已有的MRS集群,并从HDFS文件列表选择文件名称或所在目录,导入文件的列数需与数据集schema一致。
  • 图像分类 图像分类的数据支持两种格式,第一种方式(目录方式)只支持单标签。第二种方式(txt标签文件)支持多标签。 相同标签的图片放在一个目录里,并且目录名字即为标签名。当存在多层目录时,则以最后一层目录为标签名。 示例如下所示,其中Cat和Dog分别为标签名。 dataset-import-example ├─Cat │ 10.jpg │ 11.jpg │ 12.jpg │ └─Dog 1.jpg 2.jpg 3.jpg 当目录下存在对应的txt文件时,以txt文件内容作为图像的标签,优先级高于第一种格式。 示例如下所示,import-dir-1和imort-dir-2为导入子目录。 dataset-import-example ├─import-dir-1│ 10.jpg│ 10.txt │ 11.jpg │ 11.txt│ 12.jpg │ 12.txt└─import-dir-2 1.jpg 1.txt 2.jpg 2.txt 单标签的标签文件示例,如1.txt文件内容如下所示: Cat 多标签的标签文件示例,如1.txt文件内容如下所示: CatDog 只支持JPG、JPEG、PNG、BMP格式的图片。单张图片大小不能超过5MB,且单次上传的图片总大小不能超过8MB。
  • 文本分类 文本分类支持导入“txt”和“csv”两种文件类型,文本的编码格式支持“UTF-8”和“GBK”。 文本分类的标注对象和标注文件有2种存放模式。 文本和标注合并:文本分类的标注对象和标注内容在一个文本文件内,标注对象与标注内容之间,多个标注内容之间可分别指定分隔符。 例如,文本文件的内容如下所示。标注对象与标注内容之间采用tab键分隔。 手感很好,反应速度很快,不知道以后怎样 positive三个月前买了一个用的非常好果断把旧手机替换下来尤其在待机方面秒杀 positive没充一会电源怎么也会发热呢音量健不好用回弹不好 negative算是给自己的父亲节礼物吧物流很快下单不到24小时就到货了耳机更赞有些低音炮的感觉入耳很紧不会掉棒棒哒 positive 文本和标注分离:文本分类的标注对象和标注文件均为文本文件,并且以行数进行对应,如标注文件中的第一行表示的是标注对象文件中的第一行的标注。 例如,标注对象“COMMENTS_20180919_114745.txt”的内容如下所示。 手感很好,反应速度很快,不知道以后怎样三个月前买了一个用的非常好果断把旧手机替换下来尤其在待机方面秒杀没充一会电源怎么也会发热呢音量健不好用回弹不好算是给自己的父亲节礼物吧物流很快下单不到24小时就到货了耳机更赞有些低音炮的感觉入耳很紧不会掉棒棒哒 标注文件“COMMENTS_20180919_114745_result.txt”的内容。 positivenegativenegative positive 此数据格式要求将标注对象和标注文件存储在同一目录,并且一一对应,如标注对象文件名为“COMMENTS_20180919_114745.txt”,那么标注文件名为“COMMENTS _20180919_114745_result.txt”。 数据文件存储示例: ├─dataset-import-example │ COMMENTS_20180919_114732.txt │ COMMENTS _20180919_114732_result.txt │ COMMENTS _20180919_114745.txt │ COMMENTS _20180919_114745_result.txt │ COMMENTS _20180919_114945.txt │ COMMENTS _20180919_114945_result.txt
  • 修改标注 当数据完成标注后,您还可以进入“已标注”页签,删除标注数据。 单击目标编号操作列的,删除该段视频的标注。您也可以单击标注视频文件上方的叉号删除标注,然后单击“确认标注”。 在“已标注”页签下,单击目标视频文件,在标注页面右侧的“当前文件标签”下,可单击时间点右侧小三角展开详情,您可以修改或删除标签。 修改标签:单击标签右侧的编辑按钮,标签名称可进行修改。 删除标签:单击标签右侧的删除按钮,将直接删除此标签。如果单击画面时间右侧的删除按钮,将删除此画面下的所有标签。 图3 修改标注
  • 删除视频 通过数据删除操作,可将需要丢弃的视频数据快速删除。 在“全部”、“未标注”或“已标注”页面中,依次选中需要删除的视频,或者选择“选择当前页”选中该页面所有视频,然后单击左上角“删除视频”。在弹出的对话框中,根据实际情况选择是否勾选“同时删除源文件”,确认信息无误后,单击“确定”完成视频删除操作。 其中,被选中的视频,其左上角将显示为勾选状态。如果当前页面无选中视频时,“删除视频”按钮为灰色,无法执行删除操作。 如果勾选了“同时删除源文件”,删除视频操作将删除对应OBS目录下存储的视频,此操作可能会影响已使用此源文件的其他数据集或数据集版本,有可能导致展示异常或训练/推理异常。删除后,数据将无法恢复,请谨慎操作。
  • 数据处理简介 ModelArts平台提供的数据处理功能,基本目的是从大量的、杂乱无章的、难以理解的数据中抽取或者生成对某些特定的人们来说是有价值、有意义的数据。当数据采集和接入之后,数据一般是不能直接满足训练要求的。为了保障数据质量,以免对后续操作(如数据标注、模型训练等)带来负面影响,开发过程通常需要进行数据处理。常见的数据处理类型有以下四种: 数据校验:通常数据采集后需要进行校验,保证数据合法。 数据校验是指对数据可用性的基本判断和验证的过程。通常,我们采集的数据或多或少都会有很多格式问题,无法被进一步处理。以图像识别为例,用户经常会从网上找一些图片用于训练,但是其质量难以保证,有可能图片的名字、路径、后缀名都不满足训练算法的要求;图片也可能有部分损坏,造成无法解码、无法被算法处理的情况。因此,数据校验非常重要,可以帮助人工智能开发者提前发现数据问题,有效防止数据噪声造成的算法精度下降或者训练失败问题。 数据清洗:数据清洗是指对数据进行去噪、纠错或补全的过程。 数据清洗是在数据校验的基础上,对数据进行一致性检查,处理一些无效值。例如在深度学习领域,可以根据用户输入的正样本和负样本,对数据进行清洗,保留用户想要的类别,去除用户不想要的类别。 数据选择:数据选择一般是指从全量数据中选择数据子集的过程。 数据可以通过相似度或者深度学习算法进行选择。数据选择可以避免人工采集图片过程中引入的重复图片、相似图片等问题;在一批输入旧模型的推理数据中,通过内置规则的数据选择可以进一步提升旧模型精度。 数据增强: 数据扩增通过简单的数据扩增例如缩放、裁剪、变换、合成等操作直接或间接的方式增加数据量。 图像生成应用相关深度学习模型,通过对原数据集进行学习,训练生成新的数据集的方式增加数据量。 父主题: 数据处理
  • 视频标注 数据集详情页中,展示了此数据集中“未标注”和“已标注”的视频。 在“未标注”页签左侧视频列表中,单击目标视频文件,打开标注页面。 在标注页面中,播放视频,当视频播放至待标注时间时,单击进度条中的暂停按钮,将视频暂停至某一画面。 在左侧区域选择标注框,默认为矩形框。使用鼠标在视频画面中框出目标,然后在弹出的添加标签文本框中,直接输入新的标签名,在文本框前面选中标签颜色,单击“添加”完成1个物体的标注。如果已存在标签,从下拉列表中选择已有的标签,然后单击“添加”完成标注。逐步此画面中所有物体所在位置,一张画面可添加多个标签。 支持的标注框与“物体检测”类型一致,详细描述请参见物体检测章节的表1。 图1 视频标注 上一个暂停画面标注完成后,在进度条处单击播放按钮继续播放,在需要标注的画面中暂停,然后重复执行步骤3完成整个视频的标注。 界面右侧将呈现当前视频带标注的时间点。 图2 当前文件标签信息 单击页面左上角“返回数据标注预览”,页面将自动返回数据集详情页面,同时,标注好的视频将呈现在“已标注”页签下。
  • 输入要求 算子输入分为两种,“数据集”或“OBS目录”。 选择“数据集”,请从下拉框中选择ModelArts中管理的数据集及其版本。要求数据集类型与您在本任务中选择的场景类别一致。 选择“OBS目录”,目录下需包含用于推理的原始图片以及推理结果文件 其目录结构如下所示。 input_path/ --images/ # 文件夹名称必须为images ----1.jpg ----2.jpg --inference_results/ # 文件夹名称必须为inference_results ----1.jpg_result.txt ----2.jpg_result.txt 其中,推理结果文件txt的内容需满足如下格式。如果使用ModelArts预置算法训练得到的模型进行推理,默认的推理结果已满足要求。 图像分类 { "predicted_label": "dog", "scores": [ [ "dog", "0.589" ], [ "cat", "0.411" ] ]} 物体检测 { "detection_classes": [ "cat", "cat" ], "detection_boxes": [ [ 117.56356048583984, 335.9902648925781, 270.50848388671875, 469.0136413574219 ], [ 18.747316360473633, 13.10757064819336, 217.25146484375, 108.3551025390625 ] ], "detection_scores": [ 0.5179755091667175, 0.46941104531288147 ]}
  • 输出说明 目标检测 输出目录结构如下所示。 output_path : --Data ----1.jpg ----1.xml # 导出筛选结果至该目录下 --output.manifest 其中manifest文件示例如下所示。 {"source":"/tmp/test_out/object_detection/images/be462ea9c5abc09f.jpg","hard":"True","hard-reasons":"0", # 判定该样本为难例的原因,具体原因目前只在智能标注模块展示"hard-coefficient":"1.0", # 难例算法得到的难例系数,越大代表可能是难例的概率越大"annotation":[{"annotation-loc":"/tmp/test_out/object_detection/annotations/be462ea9c5abc09f.xml","type":"modelarts/object_detection","annotation-format":"PASCAL VOC","annotated-by":"modelarts/hard_example_algo"}]} 图像分类 输出目录结构如下所示。 output_path : --Data ----class1 ------1.jpg ----class2 ------2.jpg --output.manifest 其中manifest文件示例如下所示。 {"source":"obs://obs_bucket_name/folder_name/catDog/5.jpg","hard":true,"hard-reasons":"1-20-2-19-21-3","hard-coefficient":1.0,"annotation":[{"name":"cat","type":"modelarts/image_classification","confidence":0.599,"annotated-by":"modelarts/hard_example_algo"}]}
  • 日志文件说明 task_summary_file 为简化日志的输出文件路径,内容如下: {"task_status": 'SUCCEED', # 算法执行状态"total_sample": integer, # 输入样本总数"hard_sample": integer # 输出样本总数} 或者是 {"task_status": 'FAILED',"error_message": 'xxxxxx' # 导致算法执行失败的异常信息}
  • 算法概述 在实际业务场景中,模型维护是一个长期的过程,比如说按照每周、每月进行数据重训练,或者累计数据至一定量时进行定期的重训练。如果将全量的数据用于重训练,需要耗费较大的标注人力和训练耗时。为了提升模型维护效率,可以采用基于难例数据的重训练 。 难例筛选算法对全量数据进行分析并筛选,仅输出全量数据中少部分对于模型维护有价值的数据。基于筛选后的数据进行重训练,可以有效减少标注人力和训练耗时。 难例筛选算法中融合了多种方法,要达到最佳效果,需要根据实际数据选择部分或全部方法,并调整其权重。
  • 参数说明 参数名 是否必选 默认值 参数说明 source_service Y inference 难例任务的前置数据来源,目前仅支持inference。此参数不可修改。 filter_func Y comprehensive_mining 难例筛选算法设置为“comprehensive_mining”。此参数不可修改。 checkpoint_path Y /home/work/user-job-dir/data_filter/resnet_v1_50 用于特征提取的模型目录,当前仅支持基于Imagenet预训练的resnet_v1_50模型,此参数目前暂时不可修改。 model_serving_url N None 推理模型路径。得出推理结果的模型文件路径, 即训练作业的输出路径。该模型会用于aug_consistent_mining算法中的数据增强再推理。 请输入一个真实存在的OBS目录,例如:obs://obs_bucket_name/folder_name/ train_data_path N None 训练数据集,model_serving_url模型使用的训练数据,需输入数据集版本生成的manifest。 请输入一个真实存在的OBS目录,例如:obs://obs_bucket_name/folder_name/v001.manifest comprehensive_algo_config N clustering_mining:0.2020+aug_consistent_mining:0.4265+feature_distribution_mining:0.0451+sequential_mining:0.425+image_similarity_mining:0.0949+predict_score_mining:0.3900+anomaly_detection_mining:0.2020 使用的算法及其权重,默认使用系统实验后效果最佳参数,也可以根据不同的数据自行配置。 例如:predict_score_mining:0.3900+anomaly_detection_mining:0.2020 algo_hard_threshold N 0.1 筛选系数的阈值设置。取值范围0~1。 由于过高阈值可能导致输出结果为0,建议合理填写。 aug_op_config N crop:0.1+fliplr:0.1+gaussianblur:0.1 aug_consistent_mining算法中用到的增强手段,支持crop、fliplr、gaussianblur、flipud、scale、translate、shear、superpixels、sharpen、add、invert。 feature_op_config N image_aspect_ratio:0.5+image_brightness:1.0+image_saturation:0.5+image_resolution:0.5+image_colorfulness:0.5+ambiguity:1.0+bbox_num:1.0+bbox_iou:1.0+bbox_std:0.5+bbox_bright:0.5+bbox_ambiguity:0.5+bbox_aspect_ratio:1.0+bbox_area_ratio:0.5+bbox_edge_value:0.5 feature_distribution_mining算法中定义的特征,可自行修改权重。 score_threshold_up N 0.6 predict_score_mining算法中定义的置信度最高值。取值范围0~1。 score_threshold_low N 0.3 predict_score_mining算法中定义的置信度最低值。取值范围0~1。 margin N 0.8 top2置信度差值定义, 差值超过该阈值,则为难例。取值范围0~1,默认值为 0.8。 similarity_sample_ratio N 1.0 image_similarity_mining算法中的相似比例定义。取值范围0~1,默认值为1.0。 task_summary_file N None 算法简化的日志输出路径及日志文件。请填写一个真实存在的OBS目录,以“obs://”开头。文件名称可自行定义。 例如:obs://obs_bucket_name/folder_name/xxx.log output_dataset_type N manifest 支持directory和manifest类型。 directory:将原始图片和标签输出到结果目录的Data文件夹下。 manifest:仅输出manifest文件。 该参数在数据处理模块将根据页面选择自动填充。
  • 输入要求 算子输入分为两种,“数据集”或“OBS目录”。 选择“数据集”,请从下拉框中选择ModelArts中管理的数据集及其版本。要求数据集类型与您在本任务中选择的场景类别一致。 选择“OBS目录”,存放结构又分两种情况,“仅包含图片”或“包含图片和标注信息”。 “仅包含图片”:当目录下全是图片时,支持jpg、jpeg、png、bmp格式,嵌套子目录的图片也将全部读入。 “包含图片和标注信息”:根据不同数据类型,结构不同。 图像分类,其目录结构如下所示。如下目录结构,仅支持单标签场景。 input_path/ --label1/ ----1.jpg --label2/ ----2.jpg --../ 物体检测,其目录结构如下所示。支持jpg、jpeg、png、bmp格式的图片,xml为标准的PACAL VOC格式标注文件。 input_path/ --1.jpg --1.xml --2.jpg --2.xml ...
  • 输出说明 图像分类 输出数据的目录结构如下所示。 output_path/ --Data/ ----class1/ # 若输入数据有标注信息会一并输出,class1为标注类别 ------1.jpg ----class2/ ------2.jpg ------3.jpg --output.manifest 其中manifest文件内容示例如下所示。 {"id": "xss", "source": "obs://home/fc8e2688015d4a1784dcbda44d840307_14.jpg","usage": "train", "annotation": [{"name": "Cat", "type": "modelarts/image_classification"}]} 物体检测 输出数据的目录结构如下所示。 output_path/ --Data/ ----1.jpg ----1.xml # 若输入数据有标注信息会一并输出,xml为标注文件 ----2.jpg ----3.jpg --output.manifest 其中manifest文件内容示例如下所示。 {"source":"obs://fake/be462ea9c5abc09f.jpg","annotation":[{"annotation-loc":"obs://fake/be462ea9c5abc09f.xml","type":"modelarts/object_detection","annotation-format":"PASCAL VOC","annotated-by":"modelarts/hard_example_algo"}]}
  • 数据选择算子概述 ModelArts提供以下数据选择算子: SimDeduplication:可以依据用户设置的相似程度阈值完成图像去重处理。图像去重是图像数据处理常见的数据处理方法。图像重复指图像内容完全一样,或者有少量的尺度、位移、色彩、亮度变化,或者是添加了少量其他内容等。 图1 SimDeduplication效果图 表1 高级参数说明 参数名 是否必选 默认值 参数说明 simlarity_threshold 否 0.9 相似程度阈值,两张图片间的相似度大于阈值时,其中一张会作为重复图片被过滤掉。取值范围为0~1。 do_validation 否 True 是否做数据校验,可填True或者False。表示数据去重前需要做数据校验,否则只做数据去重。 RRD:可以依据用户设置的比例去除差异最大的数据。 图2 RRD效果图 表2 高级参数说明 参数名 是否必选 默认值 参数说明 sample_ratio 否 0.9 数据留下的百分比。取值范围为0~1。例如0.9表示保留百分之90的原数据。 n_clusters auto auto 数据样本的种类数,默认为auto,即按照目录中图片个数取类别总数,可指定具体类别数,如 4 do_validation 否 True 是否做数据校验,可填True或者False。表示数据去冗余前需要做数据校验,否则只做数据去重。
  • 输出说明 由于算法中有些操作将会舍弃一些数据,输出文件夹里可能不包含全量数据集。例如,“Rotate”会舍弃标注框超出原始图片边界的图片。 输出目录结构如下所示。其中“Data”文件夹用于存放新生成的图片和标注信息,“manifest”文件存储文件夹中图片的结构,可直接导入到数据管理的数据集中。 |----data_url |----Data |----xxx.jpg |----xxx.xml(xxx.txt) |----output.manifest 其中manifest文件内容示例如下所示。 {"id": "xss","source": "obs://home/fc8e2688015d4a1784dcbda44d840307_14.jpg","usage": "train", "annotation": [{"name": "Cat", "type": "modelarts/image_classification"}]}
  • 数据扩增算子概述 数据扩增主要用于训练数据集不足或需要仿真的场景,能通过对已标注的数据集做变换操作来增加训练图片的数量,同时会生成相应的标签。在深度学习领域,增强有重要的意义,能提升模型的泛化能力,增加抗扰动的能力。数据扩增过程不会改动原始数据,扩增后的图片或xml文件保存在指定的输出路径下。 ModelArts提供以下数据扩增算子: 表1 数据扩增算子介绍 算子 算子说明 高级 AddNoise 添加噪声,模拟常见采集设备在采集图片过程中可能会产生的噪声。 noise_type:添加噪声的分布类型,Gauss为高斯噪声,Laplace为拉普拉斯噪声,Poisson是泊松噪声,Impulse是脉冲噪声,SaltAndPepper为椒盐噪声。默认值为Gauss loc:噪声分布的均值,仅在Gauss和Laplace生效。默认值为0 scale:噪声分布的标准差,仅在Gauss和Laplance生效。默认值为1 lam:泊松分布的lambda系数,仅在Poisson有效。默认值为2 p:对于每个像素点,出现脉冲噪声或椒盐噪声的概率,仅在Impulse和SaltAndPepper有效。默认值为0.01 do_validation:数据扩增前是否做数据校验。默认值为True。 Blur 模糊,使用滤波器对图像进行滤波操作,有时用于模拟成像设备的成像。 blur_type:可选Gauss和Average两种模式,分别为高斯和均值滤波。默认值为Gauss do_validation:数据扩增前是否做数据校验。默认值为True。 Crop 图片裁剪,随机裁剪图片的一部分作为新的图片。 crop_percent_min:各边裁剪占比的随机取值范围的最小值。默认值为0.0 crop_percent_max:各边裁剪占比的随机取值范围的最大值。默认值为0.2 do_validation:数据扩增前是否做数据校验。默认值为True。 CutOut 随机擦除,在深度学习中常用的方法,用于模拟物体被障碍物遮挡。 do_validation:数据扩增前是否做数据校验。默认值为True。 Flip 翻转,沿图片水平轴或竖直轴做翻转,是非常常见的增强方法。 lr_ud:选择翻转的方向,lr为水平翻转,ud为竖直翻转。默认值为lr flip_p:做翻转操作的概率。默认值为1。 do_validation:数据扩增前是否做数据校验。默认值为True。 Grayscale 图片灰度化,将三通道的彩色图像转换到三通道的灰度图像。 do_validation:数据扩增前是否做数据校验。默认值为True。 HistogramEqual 直方图均衡化,多半是使用于让图片的视觉效果更加好,在某些场景下会使用。 do_validation:数据扩增前是否做数据校验。默认值为True。 LightArithmetic 亮度增强 ,对亮度空间做线性增强操作。 do_validation:数据扩增前是否做数据校验。默认值为True。 LightContrast 亮度对比度增强,使用一定的非线性函数改变亮度空间的亮度值。 func:默认值为gamma gamma为常见方法伽马矫正,公式为255*((v/255)**gamma)') sigmoid为函数为S型曲线,公式为255*1/(1+exp(gain*(cutoff-I_ij/255)))') log为对数函数,公式为255*gain*log_2(1+v/255) linear为线性函数,公式为127 + alpha*(v-127)') do_validation:数据扩增前是否做数据校验。默认值为True。 MotionBlur 运动模糊,模拟物体运动时产生的残影现象。 do_validation:数据扩增前是否做数据校验。默认值为True。 Padding 图片填充,在边缘添加黑色的边。 px_top:图像顶端增加的像素行数。默认值为1 px_right:图像右侧增加的像素行数。默认值为1 px_left:图像左侧增加的像素行数。默认值为1 px_bottom:图像底侧增加的像素行数。默认值为1 do_validation:数据扩增前是否做数据校验。默认值为True。 Resize 调整图片大小。 height:变换后的图片高度。默认值224 width:变换后的图片宽度。默认值224 do_validation:数据扩增前是否做数据校验。默认值为True。 Rotate 旋转,将图像围绕中心点旋转的操作,操作完成之后保持图片原本的形状不变,不足的部分用黑色填充。 angle_min:旋转角度随机取值范围的最小值,每张图片会从范围中随机取值作为自己的参数。默认值为90° angle_max:旋转角度随机取值范围的最大值,每张图片会从范围中随机取值作为自己的参数。默认值为-90° do_validation:数据扩增前是否做数据校验。默认值为True。 Saturation 色度饱和度增强,对图片的HSV中的H和S空间做线性的变化,改变图片的色度和饱和度。 do_validation:数据扩增前是否做数据校验。默认值为True。 Scale 图片缩放,将图片的长或宽随机缩放到一定倍数。 scaleXY:缩放方向,X为水平,Y为垂直。默认值为X scale_min:缩放比例随机取值范围的最小值。默认为0.5 scale_max:缩放比例随机取值范围的最大值。默认值为1.5 do_validation:数据扩增前是否做数据校验。默认值为True。 Sharpen 图像锐化,用于将边缘清晰化,让物体边缘更加明显。 do_validation:数据扩增前是否做数据校验。默认值为True。 Shear 图片错切,一般用于图片的几何变换,通过线性函数将像素点进行映射。 shearXY:错切方向,X为水平,Y为竖直。默认值为X shear_min:错切角度随机取值范围的最小值。默认值为-30 shear_max:错切角度随机取值范围的最大值。默认值为30 do_validation:数据扩增前是否做数据校验。默认值为True。 Translate 图片平移,将图片整体像X轴或Y轴平移,超出原图部分舍弃,丢失部分用黑色填充。 translateXY:平移的方向,X为水平,Y为竖直。默认值为X do_validation:数据扩增前是否做数据校验。默认值为True。 Weather 添加天气,模拟天气效果。 weather_mode:添加天气的模式,默认值为Rain。 Rain:下雨 Fog:雾 Snow:雪 Clouds:云 do_validation:数据扩增前是否做数据校验。默认值为True。
  • 输入要求 算子输入分为两种,“数据集”或“OBS目录”。 选择“数据集”,请从下拉框中选择ModelArts中管理的数据集及其版本。要求数据集类型与您在本任务中选择的场景类别一致。 选择“OBS目录”,存放结构支持“包含图片和标注信息”模式。 “包含图片和标注信息”,根据不同场景类型,结构不同。 图像分类场景,其目录结构如下所示。如下目录结构,仅支持单标签场景。 input_path/ --label1/ ----1.jpg --label2/ ----2.jpg --../ 物体检测场景,其目录结构如下所示。支持jpg、jpeg、png、bmp格式的图片,xml为标准的PACAL VOC格式标注文件。 input_path/ --1.jpg --1.xml --2.jpg --2.xml ...
  • 输出说明 输出目录的结构如下所示。其中“model”文件夹存放用于推理的“frozen pb”模型,“samples”文件夹存放训练过程中输出图像,“Data”文件夹存放训练模型生成的图像。 train_url----model----CYcleGan_epoch_10.pb ----CYcleGan_epoch_20.pb ... ----CYcleGan_epoch_1000.pb ----samples----0000_0.jpg ----0000_1.jpg ... ----0100_15.jpg ----Data----CYcleGan_0_0.jpg ----CYcleGan_0_1.jpg ... ----CYcleGan_16_8.jpg ----output_0.manifest 其中manifest文件内容示例如下所示。 {"id": "xss","source": "obs://home/fc8e2688015d4a1784dcbda44d840307_14.jpg","usage": "train", "annotation": [{"name": "Cat", "type": "modelarts/image_classification"}]}
  • 数据输入 算子输入分为两种,“数据集”或“OBS目录”。 选择“数据集”,请从下拉框中选择ModelArts中管理的数据集及其版本。要求数据集类型与您在本任务中选择的场景类别一致。 选择“OBS目录”,图像生成算子不需要标注信息,输入支持单层级或双层级目录,存放结构支持“单层级”或“双层级”模式。 单层级目录结构如下所示: image_folder----0001.jpg ----0002.jpg ----0003.jpg ... ----1000.jpg 双层级目录结构如下所示: image_folder----sub_folder_1----0001.jpg ----0002.jpg ----0003.jpg ... ----0500.jpg ----sub_folder_2----0001.jpg ----0002.jpg ----0003.jpg ... ----0500.jpg ... ----sub_folder_100----0001.jpg ----0002.jpg ----0003.jpg ... ----0500.jpg
  • 图像生成算子概述 图像生成算子利用Gan网络依据已知的数据集生成新的数据集。Gan是一个包含生成器和判别器的网络,生成器从潜在空间中随机取样作为输入,其输出结果需要尽量模仿训练集中的真实样本。判别器的输入则为真实样本或生成网络的输出,其目的是将生成网络的输出从真实样本中尽可能分辨出来。而生成网络则要尽可能地欺骗判别网络。两个网络相互对抗、不断调整参数,最终目的是使判别网络无法判断生成网络的输出结果是否真实。训练中获得的生成器网络可用于生成与输入图片相似的图片,用作新的数据集参与训练。基于Gan网络生成新的数据集不会生成相应的标签。图像生成过程不会改动原始数据,新生成的图片或xml文件保存在指定的输出路径下。 ModelArts提供两种类型的图像生成算子: CycleGan算子:基于CycleGAN用于生成域迁移的图像,即将一类图片转换成另一类图片,把X空间中的样本转换成Y空间中的样本。CycleGAN可以利用非成对数据进行训练。模型训练时运行支持两个输入,分别代表数据的原域和目标域,在训练结束时会生成所有原域向目标域迁移的图像。 图1 CycleGan算子 表1 CycleGan算子高级参数 参数名 默认值 参数说明 do_validation True 是否做数据校验,默认为True,表示数据生成前需要做数据校验,否则只做数据生成。 image_channel 3 生成图像的通道数。 image_height 256 图像相关参数:生成图像的高,大小需要是2的次方。 image_width 256 图像相关参数:生成图像的宽,大小需要是2的次方 batch_size 1 训练相关参数:批量训练样本个数。 max_epoch 100 训练相关参数:训练遍历数据集次数。 g_learning_rate 0.0001 训练相关参数:生成器训练学习率。 d_learning_rate 0.0001 训练相关参数:判别器训练学习率。 log_frequency 5 训练相关参数:日志打印频率(按step计数)。 save_frequency 5 训练相关参数:模型保存频率(按epoch计数)。 predict False 是否进行推理预测,默认为False。如果设置True,需要在resume参数设置已经训练完成的模型的obs路径。 resume empty 如果predict设置为True,需要填写Tensorflow模型文件的obs路径用于推理预测。当前仅支持“.pb”格式的模型。示例:obs://xxx/xxxx.pb。 默认值为empty。 StyleGan算子:基于StyleGan2用于在数据集较小的情形下,随机生成相似图像。StyleGAN提出了一个新的生成器结构,能够控制所生成图像的高层级属性(high-level attributes),如发型、雀斑等;并且生成的图像在一些评价标准上得分更好。而本算法又增加了数据增强算法,可以在较少样本的情况下也能生成较好的新样本,但是样本数尽量在70张以上,样本太少生成出来的新图像不会有太多的样式。 图2 StyleGan算子 表2 StyleGan算子高级参数 参数名 默认值 参数说明 resolution 256 生成正方形图像的高宽,大小需要是2的次方。 batch-size 8 批量训练样本个数。 total-kimg 300 总共训练的图像数量为total_kimg*1000。 generate_num 300 生成的图像数量,如果是多个类的,则为每类生成的数量。 predict False 是否进行推理预测,默认为False。如果设置True,需要在resume参数设置已经训练完成的模型的obs路径。 resume empty 如果predict设置为True,需要填写Tensorflow模型文件的obs路径用于推理预测。当前仅支持“.pb”格式的模型。示例:obs://xxx/xxxx.pb。 默认值为empty。 do_validation True 是否做数据校验,默认为True,表示数据生成前需要做数据校验,否则只做数据生成。
  • Notebook Kernel是什么 可以理解是独立的代码执行环境,在ModelArts Notebook中,提供了多种Kernel类型,如TensorFlow1.13.1、PyTorch1.0等。该环境中包含已经预装并调试好的AI引擎以及依赖。 当选择对应kernel打开Notebook,在Notebook后端会对应启动一个Ipython的进程作为运行环境,用于执行用户在页面中的代码、命令输入。 每个Kernel类型中包含一个独立的Conda运行环境,以确保AI引擎相互之间是独立的,举例来说,在Tensorflow类型Kernel中更新了Keras库,不会影响到MindSpore的Kernel中。
  • 远程GPU运行(Notebook2.0) 通过Notebook调试、训练一个AI模型,推荐按照如下逻辑步骤组织notebook的代码: 步骤1. 将训练数据下载到notebook工作目录下(/home/ma-user/work/)或者其子目录中; 步骤2. 对下载后的数据预处理; 步骤3. 定义机器/深度学习模型; 步骤4. 使用训练数据对模型进行训练; 步骤5. 训练完毕后将模型文件保存在当前目录下的子目录中; 步骤6. 加载模型文件,进行推理。 创建Notebook的时候不分配GPU资源,只有需要运行一些计算密集型的代码(如上步骤4)时,实时地通过远程GPU运行。 notebook编辑调试阶段,用户行为保持notebook原有行为一致; 编辑结束,需要运行代码段的时候,如步骤1所涉及的代码没有在调试阶段执行,可先将步骤1中所涉及的代码块执行(选中相应Cell,点击Run Selected Cells按钮); 点击GPU Training开关,所有代码Cell上端将显示一个tag标记,默认都是include,将步骤2-5中所有的Cell保持include标记,其他Cell(包括步骤1所有Cell)点击切换成skip标记(远端会依次执行include标记的代码段); 点击Submit按钮,选择计算实例规格后点击立即执行; 2-5步骤中的代码段将会在拥有GPU资源的远端服务器执行,每个Cell的日志将会在Cell的下方实时输出,直到所有Cell执行完毕; 通过步骤5中生成的模型文件恢复模型,进行推理验证; 重复如上流程,调试模型。 使用限制 通过远程GPU执行的代码块并不会在notebook中同时执行,如步骤6中的代码段依赖前面步骤的变量定义,需要在notebook中按需执行 如果当前平台GPU资源紧缺,远程执行时可能会有资源排队等待延迟 父主题: 使用Jupyter Notebook
  • 编码开发 ModelArts提供两种开发环境进行编码开发,一种是Jupyter Notebook,还有一个是新增的JupyterLab。 Jupyter Notebook:是一款基于网页的用于交互计算的应用程序。其可被应用于全过程计算:开发、文档编写、运行代码和展示结果。 JupyterLab:是一个交互式的开发环境,是Jupyter Notebook的下一代产品,可以使用它编写Notebook、操作终端、编辑MarkDown文本、打开交互模式、查看csv文件及图片等功能。
  • 视频 图7 视频类型的参数 表5 数据集的详细参数 参数名称 说明 数据集输入位置 选择数据集输入位置的OBS路径。 数据集输出位置 选择数据集输出位置的OBS路径。 说明: “数据集输出位置”不能与“数据集输入位置”为同一路径,且不能是“数据集输入位置”的子目录。“数据集输出位置”最好选择一个空目录。 添加标签集 设置标签名称:在标签名称文本框中,输入标签名称。标签名称只能是中文、字母、数字、下划线或中划线组成的合法字符串。长度为1~32字符。 添加标签:单击“添加标签”可增加多个标签。 设置标签颜色:在每个标签右侧的标签颜色区域下,可在色板中选择颜色,或者直接输入十六进制颜色码进行设置。
  • 音频(声音分类、语音内容、语音分割) 图4 声音分类、语音内容、语音分割类型数据集的参数 参数名称 说明 数据集输入位置 选择数据集输入位置的OBS路径。 数据集输出位置 选择数据集输出位置的OBS路径。 说明: “数据集输出位置”不能与“数据集输入位置”为同一路径,且不能是“数据集输入位置”的子目录。“数据集输出位置”最好选择一个空目录。 添加标签集(声音分类) 仅“声音分类”类型的数据集需设置标签。 设置标签名称:在标签名称文本框中,输入标签名称。标签名称只能是中文、字母、数字、下划线或中划线组成的合法字符串。长度为1~32字符。 添加标签:单击“添加标签”可增加多个标签。 标签管理(语音分割) 仅“语音分割”类型的数据集,支持多种标签。 单标签 单标签适用于一段音频标注只有一种类别的音频,通常标注一个标签。 设置标签名称:在“标签名”列输入标签名称。标签名称只能是中文、字母、数字、下划线或中划线组成的合法字符串。长度为1~32字符。 设置标签颜色:在“标签颜色”列设置标签颜色。可在色板中选择颜色,或者直接输入十六进制颜色码进行设置。 多标签 多标签适用于多维度标注,例如在一段音频标注噪音与人说话的声音两种类别,其中说话的声音还可以标注为不同人的声音。单击“新建标签类别”可添加多个标签类别,一个标签类别可以包含多个标签。“标签类别”和“标签名”只能是中文、字母、数字、下划线或中划线组成的合法字符串。长度为1~32字符。 设置标签类别:在“标签类别”输入标签类别的名称。 设置标签名称:在“标签名”输入标签名称。 添加标签:单击“添加标签”可增加多个标签。 启用语音内容标注(语音分割) 仅“语音分割”类型数据集支持设置,默认关闭。如果启用此功能,支持针对语音内容进行标注。 启用团队标注 仅“语音分割”类型支持团队标注,因此选择创建语音分割类型时,支持设置是否启用团队标注。 启用团队标注功能,需填写对应的团队标注任务“名称”、“类型”,同时选择对应的“标注团队”及参与标注的“团队成员”。参数详细介绍请参见创建团队标注任务。 在启用“团队标注”前,需确保您已经在“标注团队”管理页面,添加相应的团队以及成员。如果没有标注团队,可直接从界面链接跳转至“标注团队”页面,添加您的团队并为其添加成员。详细指导请参见团队标注简介。 启用团队标注功能的数据集,在创建完成后,可以在“标注类型”中看到“团队标注”的标识。
  • 文本(文本分类、命名实体、文本三元组) 图5 文本分类、命名实体、文本三元组类型数据集的参数 表2 数据集的详细参数 参数名称 说明 数据集输入位置 选择数据集输入位置的OBS路径。 说明: 文本分类数据只能在执行导入数据操作时识别已标注数据,在此处创建数据集时不能识别已标注数据,建议此处的OBS设置为一个空目录,创建完数据集后再导入已标注数据,导入操作的数据格式要求请参见从OBS目录导入的规范说明。 数据集输出位置 选择数据集输出位置的OBS路径。 说明: “数据集输出位置”不能与“数据集输入位置”为同一路径,且不能是“数据集输入位置”的子目录。“数据集输出位置”最好选择一个空目录。 添加标签集(文本分类、命名实体) 设置标签名称:在标签名称文本框中,输入标签名称。标签名称只能是中文、字母、数字、下划线或中划线组成的合法字符串。长度为1~32字符。 添加标签:单击“添加标签”可增加多个标签。 设置标签颜色:在每个标签右侧的标签颜色区域下,可在色板中选择颜色,或者直接输入十六进制颜色码进行设置。 添加标签集(文本三元组) 针对“文本三元组”类型的数据集,需要设置实体标签和关系标签。 实体标签:需设置标签名以及标签颜色。可在颜色区域右侧单击加号增加多个标签。 关系标签:关系标签为两个实体之间的关系。需设置起始实体和终止实体,您需要先添加至少2个实体标签后,再添加关系标签。 启用团队标注 选择是否启用团队标注。 启用团队标注功能,需填写对应的团队标注任务“名称”、“类型”,同时选择对应的“标注团队”及参与标注的“团队成员”。参数详细介绍请参见创建团队标注任务。 在启用“团队标注”前,需确保您已经在“标注团队”管理页面,添加相应的团队以及成员。如果没有标注团队,可直接从界面链接跳转至“标注团队”页面,添加您的团队并为其添加成员。详细指导请参见团队标注简介。 启用团队标注功能的数据集,在创建完成后,可以在“标注类型”中看到“团队标注”的标识。
  • 表格 图6 表格类型的参数 使用 CS V文件时,需要注意以下两点: 当数据类型选择String时,默认会把双引号内的数据当作一条,所以同一行数据需要保证双引号闭环,否则会导致数据过大,无法显示。 当CSV文件的某一行的列数与定义的Schema不同,则会忽略当前行。 表3 数据集的详细参数 参数名称 说明 存储路径 选择表格数据存储路径(OBS路径),此位置会存放由数据源导入的数据。此位置不能和OBS数据源中的文件路径相同或为其子目录。 创建表格数据集后,在存储路径下会自动生成以下4个目录。 annotation:版本发布目录,每次发布版本,会在此目录下生成和版本名称相同的子目录。 data:数据存放目录,导入的数据会放在此目录。 logs:日志存放目录。 temp:临时工作目录。 是否导入 如果您在其他云服务上存储了表格数据,可启用此功能,现支持将存储在对象存储服务(OBS)、 数据湖 探索(DLI)或MapReduce服务(MRS)的数据导入。 数据源(“OBS”) “文件路径”:单击输入框右侧按钮,可打开当前帐号下的所有OBS桶,请选择需要导入的数据文件所在目录。 “导入是否包含表头”:开启表示导入文件包含表头,此时会将导入文件的第一行作为列名,否则会添加默认列名,自动填写在Schema信息中。 OBS的详细功能说明,请参见《OBS用户指南》。 数据源(“DWS”) “集群名称”:系统自动将当前账号下的DWS集群展现在列表中,您可以在下拉框中选择您所需的DWS集群。 “数据库名称”:根据选择的DWS集群,填写数据所在的数据库名称。 “表名称”:根据选择的数据库,填写数据所在的表。 “用户名”:输入DWS集群管理员用户的用户名。 “密码”:输入DWS集群管理员用户的密码。 DWS的详细功能说明,请参见《DWS用户指南》。 说明: 从DWS导入数据,需要借助DLI的功能,如果用户没有访问DLI服务的权限,需根据页面提示创建DLI的委托。 数据源(“DLI”) “队列名称”:系统自动将当前帐号下的DLI队列展现在列表中,您可以在下拉框中选择您所需的队列。 “数据库名称”:根据选择的队列展现所有的数据库,请在下拉框中选择您所需的数据库。 “表名称”:根据选择的数据库展现此数据库中的所有表。请在下拉框中选择您所需的表。 DLI的详细功能说明,请参见《DLI用户指南》。 数据源(“MRS”) “集群名称”:系统自动将当前帐号下的MRS集群展现在此列表中,但是流式集群不支持导入操作。请在下拉框中选择您所需的集群。 “文件路径”:根据选择的集群,输入对应的文件路径,此文件路径为HDFS路径。 “导入是否包含表头”:开启表示导入时将表头同时导入。 MRS的详细功能说明,请参见《MRS用户指南》。 Schema信息 表格的列名和对应类型,需要跟导入数据的列数保持一致。请根据您导入的数据输入“列名”,同时选择此列的“类型”。其中支持的类型见表4。 单击“添加Schema信息”,即可增加一行列。创建数据集时必须指定schema,且一旦创建不支持修改。 从OBS数据源导入数据,会自动获取文件路径下csv文件的schema,如果多个csv文件的schema不一致会报错。 表4 Schema数据类型说明 类型 描述 存储空间 范围 String 字符串 - - Short 有符号整数 2字节 -32768-32767 Int 有符号整数 4字节 -2147483648~2147483647 Long 有符号整数 8字节 -9223372036854775808~9223372036854775807 Double 双精度浮点型 8字节 - Float 单精度浮点型 4字节 - Byte 有符号整数 1字节 -128-127 Date 日期类型,描述了特定的年月日,格式:yyyy-MM-dd,例如2014-05-29 - - Timestamp 时间戳,表示日期和时间。格式:yyyy-MM-dd HH:mm:ss - - Boolean 布尔类型 1字节 TRUE/FALSE
  • 图片(图像分类、物体检测、图像分割) 图3 图像分类和物体检测类型的参数 表1 数据集的详细参数 参数名称 说明 数据集输入位置 选择数据集输入位置的OBS路径。 说明: 创建数据集时,此OBS路径下的数据会导入数据集,后续若直接在OBS中修改数据,会造成数据集的数据与OBS的数据不一致,可能导致部分数据不可用。如果需要在数据集中修改数据,建议使用同步数据源或导入操作功能。 数据集输出位置 选择数据集输出位置的OBS路径。 说明: “数据集输出位置”不能与“数据集输入位置”为同一路径,且不能是“数据集输入位置”的子目录。“数据集输出位置”最好选择一个空目录。 添加标签集 设置标签名称:在标签名称文本框中,输入标签名称。标签名称只能是中文、字母、数字、下划线或中划线组成的合法字符串。长度为1~32字符。 添加标签:单击“添加标签”可增加多个标签。 设置标签颜色:仅“物体检测”类型数据集需设置此参数。在每个标签右侧的标签颜色区域下,可在色板中选择颜色,或者直接输入十六进制颜色码进行设置。 设置标签属性:针对“物体检测”类型数据集,在设置完标签颜色后,可在右侧单击加号,增加对应的标签属性。标签属性用于区分同一标签物体的不同属性。例如,黄色小猫、黑色小猫。标签为cat,颜色为不同的标签属性。 启用团队标注 选择是否启用团队标注。图像分割暂不支持团队标注,当选择图像分割类型时,界面不显示此参数。 启用团队标注功能,需填写对应的团队标注任务“名称”、“类型”,同时选择对应的“标注团队”及参与标注的“团队成员”。参数详细介绍请参见创建团队标注任务。 在启用“团队标注”前,需确保您已经在“标注团队”管理页面,添加相应的团队以及成员。如果没有标注团队,可直接从界面链接跳转至“标注团队”页面,添加您的团队并为其添加成员。详细指导请参见团队标注简介。 启用团队标注功能的数据集,在创建完成后,可以在“标注类型”中看到“团队标注”的标识。
共100000条