1. 计算机视觉

1.1. [2.0]Inception

从原理上来说更深和更宽的卷积神经网络具有更强的表征能力,但纯粹增大网络的缺点也显而易见,包括参数太多带来的复杂度太大,容易过拟合和梯度弥散等。Inception 的出现就是为了解决如何在增加网络深度和宽度的同时减小网络参数的问题。最开始的 inception 网络由一个个的 Inception 模块堆叠而成,inception 模块由1 x 1、3 x 3、5 x 5的卷积和3 x 3的 pooling 堆叠,一方面增加了网络的 width,另一方面也增加了网络对尺度的适应性。Inception 网络经过多次迭代和更新已经形成了四个版本,分别为 V1、V2、V3 和 V4。在 TI 的 Inception 模块中可以选择不同版本进行训练。

训练节点

  • 数据形式指出 tfrecord 格式的数据,可通过 convert_to_tfrecord节点将原始 jpg 或 png 图像转换成该形式。

  • 算法 IO 参数

    • 训练数据输入:输入数据(模型训练时则为训练集数据,如${cos}/person/…/train_tfrecord),如训练集太大,可分成多个 record 文件。
    • 验证数据输入:用于模型训练时的验证数据,与训练集格式一致。
    • 模型目录:存放模型文件和日志文件的目录(如果目录中已有模型文件,下次训练时将加载目录中最新的模型文件。因此,如果改变了网络结构或更换了数据,请更换或清空模型目录)。
    • label_map 文件所在目录:记录标签和 ID 对应关系的 label_map.txt 文件所在目录。如使用了 split_dataset 节点,可将 split_dataset 节点的输出连接到此处。
  • 算法参数

    • 模型名称:四个 inception 版本,可选其一。
    • 学习率:训练过程的初始学习率。
    • batch_size:训练过程中的 batch_size。
    • 训练步数:训练过程的总迭代次数。
    • 是否模型微调:支持在已有的训练好的模型上进行微调(通常用于迁移学习),如选“是”请在下方填写完整模型路径 。
    • 优化器:用于优化模型参数的优化算法。

预测节点

与训练节点保持一致。

1.2. [2.0] R-FCN

分类需要特征具有平移不变性,检测则要求对目标的平移做出准确响应。现在的大部分 CNN 在分类上可以做的很好,但用在检测上效果不佳。SPP、Faster R-CNN 类的方法在 ROI pooling 前都是卷积,是具备平移不变性的,但一旦插入 ROI pooling 后,后面的网络结构就不再具备平移不变性了。因此,RFCN 提出来的 Position Sensitive Score Map 可以将目标的位置信息融合进 ROI pooling。详情请参考下文算法示例。

训练节点

  • 数据形式数据形式:tfrecord 格式,可通过 convert_to_tfrecord 节点将原始 jpg 或 png 图像转换成该形式。
  • 算法 IO 参数
    • 数据输入:输入数据(模型训练时则为训练集数据,如${cos}/person/…/train_tfrecord),如训练集太大,可分成多个 record 文件。
    • 模型目录:存放模型文件和日志文件的目录。(如果目录中已有模型文件,下次训练时将加载目录中最新的模型文件。因此,如果改变了网络结构或更换了数据,请更换或清空模型目录)
  • 算法参数
    • 主网络:resnet101,用于提取输入图像特征的卷积网络。
    • 类别个数:目标检测任务中需要检测的类别个数。
    • 训练步数:训练的总步数。

预测节点

  • 数据形式数据形式:tfrecord 格式,可通过 convert_to_tfrecord 节点将原始 jpg 或 png图像转换成该形式。

  • 模型 IO 参数

    • 数据输入:输入数据(模型训练时则为训练集数据,如${cos}/person/…/train_tfrecord),如训练集太大,可分成多个 record 文件。
    • 检测结果输出:将检测到的物体类别和 bounding boxes 保存到 txt 文件。
  • 模型参数
    • 主网络:resnet101,用于提取输入图像特征的卷积网络。
    • 类别个数:目标检测任务中需要检测的类别个数。
    • 标签类别映射:如下示例,ID 从1开始依次编写,name 为需要检测的目标类别。
  1. item {
  2. id: 1
  3. name: 'daisy'
  4. }
  5. item {
  6. id: 2
  7. name: 'sunflowers'
  8. }
  • 预测步数:预测的总步数。
  • 最小分值:只保留高于该得分的检测框。

1.3. [2.0] ResNet

ResNet(残差网络)是在2015年为解决训练很深的网络的时候出现的梯度退化的问题而提出的。由于使用了 shortcut,ResNet 把原来需要学习逼近的未知函数 H(x) 进行恒等映射,变成了逼近 F(x) = H(x) - x 的一个函数,两种表达的效果相同,但 F(x) 的优化难度却比 H(x) 小的多。同时针对较深(层数大于等于50)的网络提出了 BottleNeck 结构,可以减少运算的时间复杂度。智能钛机器学习上集成的 resnet 模块有8种网络模式供选择,v1 和 v2 在 shortcut 结构体构建方式上有区别,50、100等数字表示不同的网络深度,具体可参见 resnet 论文。详情请参见下文算法示例。

训练节点

  • 数据形式数据形式:tfrecord 格式,可通过 convert_to_tfrecord 节点将原始 jpg 或 png 图像转换成该形式。

  • 算法 IO 参数

    • 数据输入:输入数据(模型训练时则为训练集数据,如${cos}/person/…/train_tfrecord),如训练集太大,可分成多个 record 文件。
    • 测试数据:用于模型训练时的验证数据,与训练集格式一致。
    • 可视化文件存储路径:存储用于 TensorBoard 可视化的 events 文件的目录。
    • 初始化模型:指定从某个模型继续训练的路径,如为0则从头开始训练(用于模型微调或训练过程被意外打断后的快速恢复)。
    • 类别标签映射文件:图像类别映射到整数标签的文件,也即 split dataset 步骤时产生的类别标签映射文件 label_map.txt。
  • 算法参数

    • 网络名称:8种 resnet 网络模式,可选其一。
    • 类别数:分类任务中的类别数。
    • 批量处理大小:训练过程中的 batch_size。
    • 迭代次数:训练过程的总迭代次数。
    • 初始学习率:训练过程的初始学习率。
    • 学习率衰减步数:每隔 n 轮迭代衰减一次学习率。
    • 学习率衰减因子:每达到衰减步数时会将学习率乘上衰减因子,以此来减小学习率。

预测节点

与训练节点保持一致。

1.4. [2.0] SSD

SSD 算法是一种直接预测 bounding box 的坐标和类别的 object detection算法,没有生成 proposal 的过程,即一阶段算法。SSD 主要特点在于采用了特征融合,详情请参见下文算法示例。

训练节点

  • 数据形式数据形式:tfrecord 格式,可通过 convert_to_tfrecord 节点将原始 jpg 或 png 图像转换成该形式。
  • 算法 IO 参数
    • 数据输入:输入数据(模型训练时则为训练集数据,如${cos}/person/…/train_tfrecord),如训练集太大,可分成多个 record 文件。
    • 模型目录:存放模型文件和日志文件的目录。(如果目录中已有模型文件,下次训练时将加载目录中最新的模型文件。因此,如果改变了网络结构或更换了数据,请更换或清空模型目录)
  • 算法参数
    • 主网络:inception_v2,用于提取输入图像特征的卷积网络。
    • 类别个数:目标检测任务中需要检测的类别个数。
    • 批处理大小:训练过程中的 batch_size。
    • 训练步数:训练的总步数。

预测节点

  • 数据形式数据形式:tfrecord 格式,可通过 convert_to_tfrecord 节点将原始 jpg 或 png 图像转换成该形式。

  • 模型 IO 参数

    • 数据输入:输入数据(模型训练时则为训练集数据,如${cos}/person/…/train_tfrecord),训练集太大时,可分成多个 record 文件。
    • 输出路径:将检测到的物体类别和 bounding boxes 保存到 txt 文件。
  • 模型参数
    • 主网络:inception_v2,用于提取输入图像特征的卷积网络。
    • 类别个数:目标检测任务中需要检测的类别个数。
    • 标签类别映射:如下示例:ID 从1开始依次编写,name 为需要检测的目标类别。
  1. item {
  2. id: 1
  3. name: 'daisy'
  4. }
  5. item {
  6. id: 2
  7. name: 'sunflowers'
  8. }
  • 预测步数:预测的总步数。
  • 最小分值:只保留高于该得分的检测框。

1.5. [2.0] VGG

VGG16 继承了 alexnet 的框架,但其通过加深卷积层数的方法获得了比 AlexNet 更高的图像识别率,是一种比 AlexNet 更深的网络结构。AlexNet 与 VGG 相比有以下不同:

  • 有较多的连续的 convolution 块和较小的 filter size(3 x 3),这样做的好处是减少权重个数,利于网络的训练和泛化。
  • 通道数(channels)增多,使网络可以对输入提取更丰富的特征。VGG 论文发表时根据网络结构的复杂度提出了三种结构:VGG_a、VGG_16 和 VGG_19,在 TI 中可以根据需要进行选择。

训练节点

  • 数据形式数据形式:tfrecord 格式,可通过 convert_to_tfrecord 节点将原始 jpg 或 png 图像转换成该形式。

  • 算法 IO 参数

    • 训练数据输入:输入数据,模型训练时则为训练集数据,如${cos}/person/…/train_tfrecord,训练集太大时,可分成多个 record 文件。
    • 验证数据输入:用于模型训练时的验证数据,与训练集格式一致。
    • 模型目录:存放模型文件和日志文件的目录(如果目录中已有模型文件,下次训练时将加载目录中最新的模型文件。因此,如果改变了网络结构或更换了数据,请更换或清空模型目录)。
    • label_map 文件所在目录:记录标签和 ID 对应关系的 label_map.txt 文件所在目录。如使用了 split_dataset 节点,可将 split_dataset 节点的输出连接到此处。
  • 算法参数

    • 模型名称:两个 VGG 版本,可选其一。
    • 学习率:训练过程的初始学习率。
    • batch_size:训练过程中的 batch_size。
    • 训练步数:训练过程的总迭代次数。
    • 是否模型微调:支持在已有的训练好的模型上进行微调(通常用于迁移学习),如填是请在下方填写完整模型路径。
    • 优化器:用于优化模型参数的优化算法。

预测节点

与训练节点保持一致。

1.6. [2.0] MobileNet

算法说明

MobileNet是卷积神经网络的一种,能对图片进行分类。论文链接:(https://arxiv.org/pdf/1707.07012.pdf>)。

参数设置

  • 数据形式

数据形式:tfrecord 格式,可通过 convert_to_tfrecord 节点将原始 jpg 或 png 图像转换成该形式。

算法 IO 参数
  • 训练数据输入:输入数据(模型训练时则为训练集数据,如${cos}/person/…/train_tfrecord),如训练集太大,可分成多个record文件。
  • 验证数据输入:用于模型训练时的验证数据,与训练集格式一致。
  • 模型目录:存放模型文件和日志文件的目录。(如果目录中已有模型文件,下次训练时将加载目录中最新的模型文件。因此,如果改变了网络结构或更换了数据,请更换或清空模型目录)
  • label_map文件所在目录:记录标签和id对应关系的label_map.txt文件所在目录。如使用了split_dataset节点,可将split_dataset节点的输出连接到此处。
算法参数
  • 模型名称:四个MobileNet版本,可选其一。
  • 学习率:训练过程的初始学习率。
  • batch_size:训练过程中的 batch_size。
  • 训练步数:训练过程的总迭代次数。
  • 是否模型微调:支持在已有的训练好的模型上进行微调(通常用于迁移学习),如填是请在下方填写完整模型路径
  • 优化器:用于优化模型参数的优化算法。
预测节点

与训练节点保持一致。

1.6.1. [2.0] SqueezeNet

算法说明

SqueezeNet是卷积神经网络的一种,能对图片进行分类。论文链接:(https://arxiv.org/pdf/1602.07360.pdf>)。

参数设置

  • 数据形式

数据形式:tfrecord 格式,可通过 convert_to_tfrecord 节点将原始 jpg 或 png 图像转换成该形式。

算法 IO 参数
  • 训练数据输入:输入数据(模型训练时则为训练集数据,如${cos}/person/…/train_tfrecord),如训练集太大,可分成多个record文件。
  • 验证数据输入:用于模型训练时的验证数据,与训练集格式一致。
  • 模型目录:存放模型文件和日志文件的目录。(如果目录中已有模型文件,下次训练时将加载目录中最新的模型文件。因此,如果改变了网络结构或更换了数据,请更换或清空模型目录)
  • label_map文件所在目录:记录标签和id对应关系的label_map.txt文件所在目录。如使用了split_dataset节点,可将split_dataset节点的输出连接到此处。
算法参数
  • 模型名称:四个MobileNet版本,可选其一。
  • 学习率:训练过程的初始学习率。
  • batch_size:训练过程中的 batch_size。
  • 训练步数:训练过程的总迭代次数。
  • 是否模型微调:支持在已有的训练好的模型上进行微调(通常用于迁移学习),如填是请在下方填写完整模型路径
  • 优化器:用于优化模型参数的优化算法。
预测节点

与训练节点保持一致。

1.6.2. [2.0] ShuffleNet

算法说明

ShuffleNet是卷积神经网络的一种,能对图片进行分类。论文链接:(https://arxiv.org/pdf/1807.11164.pdf>)。

参数设置

  • 数据形式

数据形式:tfrecord 格式,可通过 convert_to_tfrecord 节点将原始 jpg 或 png 图像转换成该形式。

算法 IO 参数
  • 训练数据输入:输入数据(模型训练时则为训练集数据,如${cos}/person/…/train_tfrecord),如训练集太大,可分成多个record文件。
  • 验证数据输入:用于模型训练时的验证数据,与训练集格式一致。
  • 模型目录:存放模型文件和日志文件的目录。(如果目录中已有模型文件,下次训练时将加载目录中最新的模型文件。因此,如果改变了网络结构或更换了数据,请更换或清空模型目录)
  • label_map文件所在目录:记录标签和id对应关系的label_map.txt文件所在目录。如使用了split_dataset节点,可将split_dataset节点的输出连接到此处。
算法参数
  • 模型名称:四个ShuffleNet版本,可选其一。
  • 学习率:训练过程的初始学习率。
  • batch_size:训练过程中的 batch_size。
  • 训练步数:训练过程的总迭代次数。
  • 是否模型微调:支持在已有的训练好的模型上进行微调(通常用于迁移学习),如填是请在下方填写完整模型路径
  • 优化器:用于优化模型参数的优化算法。
预测节点

与训练节点保持一致。

1.7. [2.0] NASNet

NasNet 是卷积神经网络的一种,能对图片进行分类。详情请参考 权威论文

训练节点

  • 数据形式支持 tfrecord 格式的数据,可通过 convert_to_tfrecord 节点将原始 jpg 或 png 图像转换成该格式。
  • 算法 IO 参数
    • 训练数据输入:输入数据(模型训练时则为训练集数据,如${cos}/person/…/train_tfrecord),如训练集太大,可分成多个 record 文件。
    • 验证数据输入:用于模型训练时的验证数据,与训练集格式一致。
    • 模型目录:存放模型文件和日志文件的目录。(如果目录中已有模型文件,下次训练时将加载目录中最新的模型文件。因此,如果改变了网络结构或更换了数据,请更换或清空模型目录)。
    • label_map 文件所在目录:记录标签和 ID 对应关系的 label_map.txt 文件所在目录。如使用了 split_dataset 节点,可将 split_dataset 节点的输出连接到此处。
  • 算法参数
    • 学习率:训练过程的初始学习率。
    • batch_size:训练过程中的 batch_size。
    • 训练步数:训练过程的总迭代次数。
    • 是否模型微调:支持在已有的训练好的模型上进行微调(通常用于迁移学习),如填是请在下方填写完整模型路径。
    • 优化器:用于优化模型参数的优化算法。

预测节点

与训练节点保持一致。

1.8. Faster-rcnn

Faster RCNN 是继 RCNN 和 Fast RCCN 之后的改进网络。Faster RCNN 是两阶段目标检测算法。第一阶段:提出区域建议网络 RPN,快速生成候选区域。第二阶段:通过交替训练,使 RPN 和 Fast-RCNN 网络共享参数。详情请参见下文的算法示例。

训练节点

  • 数据形式数据形式:tfrecord 格式,可通过 convert_to_tfrecord 节点将原始 jpg 或 png 图像转换成该形式。
  • 算法 IO 参数
  • 数据输入:输入数据(模型训练时则为训练集数据,如${cos}/person/…/train_tfrecord),如训练集太大,可分成多个 record 文件。
  • logs 存储路径:指定存储 logs 的路径。
  • 算法参数
  • 主网络:resnet50 或 resnet101,用于提取输入图像特征的卷积网络。
  • 类别个数:目标检测任务中需要检测的类别个数。
  • 训练步数:训练的总步数。

预测节点

  • 数据形式数据形式:tfrecord 格式,可通过 convert_to_tfrecord 节点将原始 jpg 或 png 图像转换成该形式。
  • 模型 IO 参数
  • 数据输入:输入数据(模型训练时则为训练集数据,如${cos}/person/…/train_tfrecord),如训练集太大,可分成多个 record 文件。
  • 检测结果输出:将检测到的物体类别和 bounding boxes 保存到 txt 文件。
  • logs 存储路径:指定存储 logs 的路径。
  • 模型参数
  • 主网络:resnet50 或 resnet101,用于提取输入图像特征的卷积网络。
  • 类别个数:目标检测任务中需要检测的类别个数。
  • 标签类别映射:如下示例,ID 从1开始依次编写,name 为需要检测的目标类别。
  1. item {
  2. id: 1
  3. name: 'daisy'
  4. }
  5. item {
  6. id: 2
  7. name: 'sunflowers'
  8. }
  • 预测步数:预测的总步数。
  • 最小分值:只保留高于该得分的检测框。