OpenGADL Model软件基本流程包括:项目管理、模型设计、模型训练、评估部署,您可以通过软件提供的项目样例快速执行各个流程,也可以自行创建您自己的项目。
在此步骤中对创建或打开项目,您可以通过三种方式打开项目:
1)新建项目:点击“新建项目”按钮,按照提示输入内容后,点击“创建”,完成项目的创建并打开;
2)打开项目:点击“打开项目”按钮,在已有的项目路径下选中 “项目名称.gdlproject” 文件并打开;
3)项目样例快速开始:点击各任务类型下的项目样例,可下载云端项目,实现快速开始。
在此步骤中搭建您的模型,可通过下列方式实现模型设计:
1)自定义设计:通过基础算子(输入输出、损失函数等)、模型、宏模块设计您的模型;
2)软件预置模型:直接加载预置神经网络模型,可选择同时下载预训练权重;
3)第三方模型:支持自定义网络模型、网络训练权重加载;
在此步骤中选择训练模型并配置训练超参数,执行模型训练。
在此步骤中选择评估模型并配置评估超参数,执行模型评估;或者配置部署参数,执行模型轻量化部署。
软件后,首先默认位于【项目管理】界面,在该界面点击下方图像分类任务中的 "AlexNet" 项目案例按钮,打开AlexNet项目;
打开项目后软件会自动跳转到 【模型设计】 界面,该界面展示了模型由三个模块组成:Input模块、AlexNet模型模块、Loss模块。(tip:在软件提供的项目样例中,模型设计界面的模型仅供展示使用,若您想自定义设计,请自行创建项目,详细请参考使用手册)
点击软件菜单栏【模型训练】,进入训练界面;
依次对训练界面参数进行配置:
选择模型路径;【本例使用预训练模型,跳过此选项】
选择数据集:本例使用公开数据集CIFAR-10:点击“Use Open Dataset”按钮,在下拉框中选择数据集CIFAR-10;
选择预训练模型:本例使用预训练模型AlexNet,点击按钮“Use pre-training model”,选择model为“alexnet”;
GPU加速:根据设备情况设置,如本例使用单张GPU进行训练,因此点击按钮“Yes, use one CPU”,并指定所使用的GPU;
输入尺寸:选择公开数据集的输入尺寸将自动匹配,也可自行调整(本例中CIFAR-10默认尺寸过小,将其重新设置为64);
训练参数配置界面:选择手动配置按钮 “训练参数设置”:配置迭代次数为50,Batch Size为64(基于显卡存储空间调整),Interval为5,图像均值和方差由于是公开数据集,已自动配置;优化器Optimizer选用Adam算法(参数默认);
配置完成后,点击 “训练” 按钮,开始训练;
训练结束后,在文件夹目录 “当前项目文件夹/project/train” 中,创建一个单次训练的文件夹,保存训练结果;【包括图片、权重和日志】
依次对测试界面的参数进行配置:
选择模型:点击打开文件按钮,在弹出的文件对话框中选择用于测试的模型文件夹;
选择权重文件:选择模型文件夹后,软件会自动将文件夹下所有文件格式匹配的权重回显到该下拉框进行选择。这里resnet18文件夹只有一个训练好的权重,选择即可;
选择数据:选择测试数据;这里我们选择猫狗二分类数据集下 —— 选中“Choose One Dataset”前的单选按钮,点击打开文件按钮,选择数据集路径;【数据加载详细教程请参考使用手册】
测试参数配置:这里使用默认参数配置即可(自动跟随训练界面参数设置),如果有需要调整可自行调整;
配置完成后,点击Test按钮开始测试
测试结束后,以表格的形式显示测试结果,通过分页器可以切换查看不同数据;由于是对数据集进行测试,左下方给出本次测试的测试报告;
测试结束后,将在目录 “当前项目文件夹/project/eval” 中,生成一个单次测试文件夹,包括一个bin文件夹,存放单次测试结果的原始数据;
依次对用于部署的参数进行配置:
选择模型:点击打开文件按钮,在弹出的文件对话框中选择用于测试的模型文件夹AlexNet;
选择权重文件:选择模型文件夹后,软件会自动将文件夹下所有文件格式匹配的权重回显到该下拉框进行选择。这里alexnet文件夹只有一个训练好的权重,选择即可;
选择数据:选择校准数据(用于模型压缩);
GPU加速:选择是否使用GPU加速;
模型部署:选择 “是” 按钮,选择想要部署的平台,选择是否执行模型压缩和对应的压缩算法信息;
配置完成后,点击Deploy按钮开始部署
部署结束后,将在目录 “当前项目文件夹/project/deploy” 中,生成一个单次部署文件夹,包括一个models文件夹,存放单次部署所导出的模型文件;
图像分类是计算机视觉领域中的一种基本任务,其目标是将输入的图像分为不同的预定义类别之一。本部分以ResNet18网络模型和自定义猫狗数据集为例,详细介绍了使用OpenGADL Model软件完成应用于分类任务的网络模型设计、训练、评估和部署。
在软件初始界面点击 “新建项目” 按钮,填入项目名称和项目描述(可不填),选择任务类型为 “图像分类”,选择保存目录后点击 “创建” 按钮,完成图像分类任务的创建。
【若使用预训练模型,可跳过此步骤】
点击上方菜单栏中的 【模型设计】,跳转到模型设计界面(新建项目成功后会自动跳转)。在此界面,您可通过拖曳左侧算子对网络模型进行搭建,具体步骤如下:
【增加可读性,重命名页面名(非必要)】新建项目默认添加一个设计页面到设计面板,双击设计页面名,弹出一个命名窗口,重命名设计页面名为ResNet;也可以关闭默认设计页面,新建一个模型设计页面命名为ResNet;
根据ResNet18网络结构(如表1.1所示),从左侧元件树中选择相应的元件添加到设计页面上;
注意: 模型的输入必须是输入元件Input(已默认添加),模型的损失函数也应该在设计页面上进行添加(使用交叉熵损失函数CrossEntropyLoss);
根据ResNet18模型的参数对页面上的元件参数进行配置:双击元件,在页面右侧弹出参数配置界面;
注意: 输入层Input配置输入尺寸用于模型校验,这里ResNet18配置的输入尺寸为(3,32,32),对应数据集的数据尺寸;
配置完所有参数后,点击校验按钮,校验通过后,在模型保存文件夹下生成设计模型对应的代码;
更多操作详情请参考用户手册。
Input | Layer | Name | Kernel | Stride | Padding | Out Channles |
---|---|---|---|---|---|---|
3×32×32 | Conv | Conv2d | 3 | 1 | 1 | 64 |
64×32×32 | Block1_1 | Conv2d | 3 | 1 | 1 | 64 |
Conv2d | 3 | 1 | 1 | 64 | ||
64×32×32 | Block1_2 | Conv2d | 3 | 1 | 1 | 64 |
Conv2d | 3 | 1 | 1 | 64 | ||
64×32×32 | Block2_1 | Conv2d_1×1 | 1 | 2 | 0 | 128 |
Conv2d | 3 | 2 | 1 | 128 | ||
Conv2d | 3 | 1 | 1 | 128 | ||
128×16×16 | Block1_3 | Conv2d | 3 | 1 | 1 | 128 |
Conv2d | 3 | 1 | 1 | 128 | ||
128×16×16 | Block2_2 | Conv2d_1×1 | 1 | 2 | 0 | 256 |
Conv2d | 3 | 2 | 1 | 256 | ||
Conv2d | 3 | 1 | 1 | 256 | ||
256×8×8 | Block1_4 | Conv2d | 3 | 1 | 1 | 256 |
Conv2d | 3 | 1 | 1 | 256 | ||
256×8×8 | Block2_3 | Conv2d_1×1 | 1 | 2 | 0 | 512 |
Conv2d | 3 | 2 | 1 | 512 | ||
Conv2d | 3 | 1 | 1 | 512 | ||
512×4×4 | Block1_5 | Conv2d | 3 | 1 | 1 | 512 |
Conv2d | 3 | 1 | 1 | 512 | ||
512×4×4 | Pool | AvgPool2d | 4 | 1 | 0 | 512 |
512 | OutPut | Linear | - | - | - | 2 |
2 | Loss | CrossEntropyLoss | - | - | - | - |
使用预训练模型训练可直接点击上方菜单栏中的 【模型训练】,跳转到模型训练界面;
表1.2 展示了OpenGADL Model软件中所提供的分类任务的预训练模型,这些模型均可直接通过软件下载使用,无需自行设计和搭建;
图像分类 | 版本 | 图像分类 | 版本 |
---|---|---|---|
AlexNet | - | ShuffleNet_v2 | "x0_5", "x1_0", "x1_5", "x2_0" |
ConvNext | "tiny", "small", "base", "large" | MobileNet_v2 | |
VGG | "11", "11_bn", "13", "13_bn", "16", "16_bn", "19", "19_bn" | MobileNet_v3 | "large", "small" |
ResNet | "18", "34", "50", "101", "152" | EfficientNet | "b0", "b1", "b2", "b3", "b4", "b5", "b6", "b7" |
SqueezeNet | "1_0", "1_1" | ResNext | "50_32x4d", "101_32x8d" |
DenseNet | "121", "169", "161", "201" | wide_ResNet | "50_2", "101_2" |
Inception_v3 | - | MnasNet | "0_5", "0_75", "1_0", "1_3" |
GoogleNet | - | RegNet | "y_400mf", "y_800mf", "y_1_6gf", "y_3_2gf", "y_8gf", "y_16gf", "y_32gf", "y_128gf", "x_400mf", "x_800mf", "x_1_6gf", "x_3_2gf", "x_8gf", "x_16gf", "x_32gf" |
具体操作将在3.3.2节中介绍,其他内容请参考用户手册。
点击上方菜单栏中的 【模型训练】,切换到训练界面,进行训练参数的配置
选择模型路径:点击打开文件按钮,在弹出的文件对话框中选择目录:“当前项目/project/models/XXX(你的模型名称)”;
选择数据:本案例使用基于OpenGADL Data软件创建的猫狗二分类数据集dogcat,点击打开文件按钮,在弹出的文件对话框中选择保存数据集的目录;【数据加载详细教程请参考使用手册】
选择预训练模型:本例不使用预训练模型,因此点击按钮 “不使用预训练模型”;
GPU加速:本例使用单张GPU进行训练,因此点击按钮 “使用单个GPU训练”,并指定使用的GPU编号;【根据您的机器选择】
输入尺寸:可根据需要自行设置输入图片的尺寸,本例中设为32×32;
训练参数配置界面:选择手动配置 “训练参数设置”:配置迭代次数为50,Batch Size为8(取决于CPU/GPU内存),图像均值和方差由软件自动计算,优化器Optimizer选用Adam算法(参数默认);
配置完成后,点击 “训练” 按钮,开始训练;
训练结束后,在 “当前项目文件夹/project/train” 得到一个单次训练的文件;
1)自动化训练
选择模型路径;【使用预训练模型,跳过此步骤】
选择数据:本案例使用基于OpenGADL Data软件创建的猫狗二分类数据集dogcat,点击打开文件按钮,在弹出的文件对话框中选择保存数据集的目录;【数据加载详细教程请参考使用手册】
选择预训练模型;【自动化训练,跳过此步骤】
GPU加速:本例使用单张GPU进行训练,因此点击按钮 “使用单个GPU训练”,并指定使用的GPU编号;【根据您的机器选择】
输入尺寸:可根据需要自行设置输入图片的尺寸,本例中设为224×224;
训练参数配置界面:选择 “自动化训练”:选择目标为 “高速度”;
配置完成后,点击训练按钮,开始训练;
训练结束后,在 “当前项目文件夹/project/train” 得到一个单次训练的文件;
2)自定义超参数训练
选择模型路径;【使用预训练模型,跳过此步骤】
选择数据:本案例使用基于OpenGADL Data软件创建的猫狗二分类数据集dogcat,点击打开文件按钮,在弹出的文件对话框中选择保存数据集的目录;【数据加载详细教程请参考使用手册】
选择预训练模型;本例使用预训练模型,点击按钮 “使用系统提供的预训练模型”,并在下拉框中选择模型“alexnet”;
GPU加速:本例使用单张GPU进行训练,因此点击按钮 “使用单个GPU训练”,并指定使用的GPU编号;【根据您的机器选择】
输入尺寸:可根据需要自行设置输入图片的尺寸,本例中设为224×224;
训练参数配置界面:选择手动配置 “训练参数设置”:配置迭代次数为50,Batch Size为8(取决于CPU/GPU内存),图像均值和方差由软件自动计算,优化器Optimizer选用Adam算法(参数默认);
配置完成后,点击 “训练” 按钮,开始训练;
训练结束后,在 “当前项目文件夹/project/train” 得到一个单次训练的文件;
点击上方菜单栏中的 【评估部署】,切换到评估部署界面,进行评估部署参数的配置
模型选择:点击打开文件按钮,在弹出的文件对话框中选择用于评估的模型文件夹,本例中选择训练所使用的模型,即选择模型路径为 “当前项目/ project/models/XXX(模型名称)”;
选择权重文件:选择模型文件夹后,软件会自动将文件夹下所有文件格式匹配的权重回显到该下拉框进行选择,根据训练时您使用的模型和数据选取对应的权重文件;
选择数据:选择评估数据;本例选择猫狗二分类数据集—— 选中 “选择数据集” 前的单选按钮,点击打开文件按钮,选择数据集路径;
评估参数配置:这里使用默认参数配置即可(自动跟随训练界面参数设置),如果有需要调整可自行调整;
模型部署:选择 “否” 按钮;
配置完成后,点击测试按钮,开始评估;
评估完成后,在 “当前项目文件夹/project/eval” 得到一个单次评估的文件;
模型选择:点击打开文件按钮,在弹出的文件对话框中选择用于部署的模型文件夹,本例中选择训练所使用的模型,即选择模型路径为 “当前项目/ project/models/XXX(模型名称)”;
选择权重文件:选择模型文件夹后,软件会自动将文件夹下所有文件格式匹配的权重回显到该下拉框进行选择,根据训练时您使用的模型和数据选取对应的权重文件;
选择数据:选择部署数据;本例选择猫狗二分类数据集—— 选中 “选择数据集” 前的单选按钮,点击打开文件按钮,选择数据集路径;
部署参数配置:无需修改;
模型部署:选中 “是” 按钮,选择部署平台为 “GPU”;
模型压缩:选中 “选择数据集” 按钮,选择使用的量化算法为 “MinMaxPTQ”,量化比特为4bit;不使用剪枝算法,即选择剪枝算法为 “Not Use”;
配置完成后,点击部署按钮,开始部署;
部署完成后,在 “当前项目文件夹/project/deploy” 得到一个单次部署的文件;
图像分割是计算机视觉领域中的一种基本任务,其目标是将输入的图像切分为独立部分。本部分详细介绍了使用OpenGADL Model软件完成应用于分割任务的网络模型设计、训练、评估和部署。
在软件初始界面点击 “新建项目” 按钮,填入项目名称和项目描述(可不填),选择任务类型为 “图像分割”,选择保存目录后点击 “创建” 按钮,完成图像分割任务的创建。
点击上方菜单栏中的 【模型设计】,跳转到模型设计界面(新建项目成功后会自动跳转)。在此界面,您可通过拖曳左侧算子对网络模型进行搭建,具体步骤与图像分类任务相同,操作详情请参考用户手册。下表是以VGG16为模型backbone的FCN网络模型结构:
Input | Name | Kernel | Stride | Padding &Outputpadding | Out Channles |
---|---|---|---|---|---|
3×224×224 | Conv | 3 | 1 | 1 | 64 |
64×224×224 | Conv | 3 | 1 | 1 | 64 |
64×112×112 | MaxPooling2d | 2 | 2 | 0 | - |
64×112×112 | Conv | 3 | 1 | 1 | 128 |
128×112×112 | Conv | 3 | 1 | 1 | 128 |
128×112×112 | MaxPooling2d | 2 | 2 | 0 | - |
128×56×56 | Conv | 3 | 1 | 1 | 256 |
256×56×56 | Conv | 3 | 1 | 1 | 256 |
256×56×56 | Conv | 3 | 1 | 1 | 256 |
256×56×56 | MaxPooling2d | 2 | 2 | 0 | - |
256×28×28 | Conv | 3 | 1 | 1 | 512 |
512×28×28 | Conv | 3 | 1 | 1 | 512 |
512×28×28 | Conv | 3 | 1 | 1 | 512 |
512×28×28 | MaxPooling2d | 2 | 2 | 0 | - |
512×14×14 | Conv | 3 | 1 | 1 | 512 |
512×14×14 | Conv | 3 | 1 | 1 | 512 |
512×14×14 | Conv | 3 | 1 | 1 | 512 |
512×14×14 | MaxPooling2d | 2 | 2 | 0 | - |
512×7×7 | ConvTranspose | 3 | 2 | 1 | 512 |
512×14×14 | Conv | 3 | 1 | 1 | 512 |
512×14×14 | Add | - | - | - | - |
512×28×28 | ConvTranspose | 3 | 2 | 1 | 512 |
512×28×28 | Conv | 3 | 1 | 1 | 512 |
512×28×28 | Add | - | - | - | - |
512×28×28 | ConvTranspose | 3 | 2 | 1 | 256 |
256×56×56 | Conv | 3 | 1 | 1 | 256 |
256×56×56 | Add | - | - | - | - |
256×56×56 | ConvTranspose | 3 | 2 | 1 | 128 |
128×112×112 | Conv | 3 | 1 | 1 | 128 |
128×112×112 | ConvTranspose | 3 | 2 | 1 | 21 |
21×224×224 | Conv | 3 | 1 | 1 | 21 |
21×224×224 | CrossEntropyLoss | - | - | - | - |
使用预训练模型训练可直接点击上方菜单栏中的**【模型训练】**,跳转到模型训练界面;
表2.2 展示了OpenGADL Model软件中所提供的分割任务的预训练模型,这些模型均可直接通过软件下载使用,无需自行设计和搭建;
图像分割 | backbone |
---|---|
FCN | "resnet50", "resnet101" |
DeepLabV3 | "resnet50", "resnet101", "_mobilenet_v3_large" |
LRASPP | "mobilenet_v3_large" |
略,与分类任务步骤一致。
略
略
目标检测是计算机视觉领域中的一种基本任务,其作用是定位和识别图像目标。本部分详细介绍了使用OpenGADL Model软件完成应用于目标检测任务的网络模型设计、训练、评估和部署。
在软件初始界面点击 “新建项目” 按钮,填入项目名称、项目描述(可不填),在任务类型中选择 “目标检测”,此时,软件会弹窗提醒选择希望使用的目标检测算法,包括FasterRCNN、SSD和FCOS,选择保存目录后点击 “创建” 按钮,完成目标检测任务的创建;
确定检测算法后,本项目使用该算法执行网络的训练、评估;
您可以通过模型设计界面自定义目标检测模型中的backbone,或者在训练界面中加载带有预训练权重的backbone。
点击上方菜单栏中的“模型设计”,跳转到模型设计界面(新建项目成功后会自动跳转)。在此界面,您可通过拖曳左侧算子对网络模型进行搭建,操作详情请参考用户手册。
使用预训练模型训练可直接点击上方菜单栏中的 【模型训练】,跳转到模型训练界面;
在目标检测任务中,训练界面的目标检测算法已在创建项目时选择,在训练界面无法修改,仅可修改模型的backbone;
表3.2 展示了OpenGADL Model软件中所提供的检测任务的预训练模型,这些模型均可直接通过软件下载使用,无需自行设计和搭建。
目标检测 | backbone |
---|---|
FasterRCNN | "resnet50_fpn", "mobilenet_v3_large_320_fpn", "mobilenet_v3_large_fpn" |
SSD300 | "_vgg16" |
FCOS | "resnet50_fpn" |
略
略
略