名词解释

最近更新时间:2020-04-16 17:40:37

数据集

如果应用场景是对图像进行分析,那么数据集一般是由图片数据组成,每张图片可以称为一个样本,如果仅有图片,而没有标注信息,那么该数据集可以称为非标注数据集,如果有标注信息,那么称为标注数据集。标注就是通过人工等手段,对数据进行有目的性结构化描述,如何标注,标注哪些信息与具体的应用场景相关。比如目标是识别图片中是猫还是狗,那么标注就是对图片进行分类标注是猫还是狗。

如果数据集的用途是用于进行分类识别算法的训练,如上边说的分辨猫和狗,那么该数据集也可称为分类数据集。如果是用于检测算法的训练,如对人脸的位置进行定位,那么该数据集可称为检测数据集。诸如此类的还有语义分割数据集,实例分割数据集,人脸检测数据集,人脸识别数据集等。

数据集在被用于算法之前,常常需要对其进行处理,处理的目的一般有两个,一是为了适应算法对数据集结构化组织的要求,比如标注信息必须以XML进行存放,另一个是为了满足算法对数据读取性能的要求,在算法训练中,数据集越大,对数据的IO要求越高,如果以原始若干小文件的方式存储会拉低整个训练过程的速度。因此会对数据集进行重新序列化为一个或几个大数据文件(二进制),如TensorFlow中的TFRecords文件,进行IO加速。

模型

一般来说深度学习方法就是通过构造足够复杂的神经元节点及其节点连接,然后通过数据训练学习节点间连接的权重参数。最终训练的产出就是神经网络的结构和连接权重,一般我们会将其保存在一个或多个文件中,把这个文件称为模型文件,简称模型。模型就是算法训练过程最重要的产出物。

在训练一个全新的算法时,权重参数可以使用随机初始化。除此之外,还有一个更好的初始化方式,就是通过以往的模型进行初始化权重参数,但是前提是前后的网络结构具有相同部分,这样初始化会使得训练过程更快,而且可能还能取得精度上的提升。这种用途的模型,一般称作预训练模型,往往预训练模型是在一个超大数据集上训练出的高精度模型,能为加载它做参数初始化的算法训练提供很好的加速作用。

算法

算法可以将输入的数据变为可应用于我们期望场景的模型。从使用场景分,可以分为分类识别算法、检测算法、语义分割算法等等,每一大类下都有很多具体的算法。不同的算法几乎都在解决两个对立的问题,速度和精度,这是在生产应用中最关系的两个指标。从算法提供的功能上来看,有算法提供GPU的加速训练,甚至多机多卡的分布式训练,提供指标测试功能,提供API Server功能,提供将模型转换为适配某芯片模型的功能等等。在KPL中,我们将算法提供的功能分为了5种:训练,测试,批量推理,部署API,编译SDK。

Pipeline

Pipeline和下面要介绍的Notebook都是KPL提供的训练算法的两种使用方式。Pipeline通过拖拉拽节点(数据集,模型,算法)的方式构建任务。把模型,数据,算法等按期望的依赖方式进行组装,完成对数据进行预处理和训练算法等。

在下面几个算法例子小节中会专门介绍如何使用。

Notebook

如果希望即开即用的AI开发环境,弹性申请算力资源,编写AI算法代码,以交互式的方式调试代码,可以使用Notebook功能。Notebook是将JupyterLab进行了嵌入,并在环境中预置了不同的AI框架,如TensorFlow,PyTorch,MXNet等,方便您快速构建算法运行环境。

金山云,开启您的云计算之旅

免费注册