神经网络的训练与部署

时间:2024-05-19 13:27:29

训练

一个网络的三要素:结构、算法、权值

网络模型一旦选定,三要素中结构算法就确定了,接下来要对权值进行调整。
神经网络是将一组训练集(training set)送入网络,根据网络的实际输出与期望输出间的差别来调整权值。

训练模型的步骤:

  1. 选择样本集合的一个样本(Ai Bi) (数据 标签)
  2. 送入网络,计算网络的实际输出Y(此时网络中的权重都是随机的)
  3. 计算D=Bi -Y(预测值与实际值的差)
  4. 根据误差D调整权值矩阵W
  5. 对每个样本重复上述过程,直到对整个样本集来说,误差不超过规定范围。

使用

神经网络框架

Caffe是一种开源的软件框架,利用这套框架,我们可以实现新的网络、修改已有的神经网络、训练网络、编写网络使用。
实现新的网络
1 数据打包
2 编写网络结构文件
3 编写网络求解文件
4 开始训练
caffe的文件结构
神经网络的训练与部署

data 用于存放下载的训练数据
例如安装后会有 mnist ilsvrc12 cifar10

docs example 使用的帮助文档和代码样例


使用与部署

神经网络的训练与部署

直接使用caffe神经网络框架比较复杂,可以使用NVIDIA推出的DIGIST可视化工具进行网络的训练。

TensorRT 网络框架 采取“”精度换速度“”的策略,在精度无明显下降的前提下,其对inference的加速明显,往往有1倍以上的性能提升,它能根据prototxt文件和caffemodel权值,转化为支持半精度的新的模型。其工作流程:

  • 构建:构建一个网络、进行优化
  • 执行:引擎运行推理任务

使用TensorRT部署神经网络

训练对于深度学习来说是为了获得一个性能优异的模型,其主要的关注点在于模型的准确度等指标。推理则不一样,其没有了训练中的反向迭代过程,是针对新的数据进行预测,而我们日常生活中使用的AI服务都是推理服务。相较于训练,推理的关注点不一样,从而也给现在有技术带来了新的挑战:

推理 需求 现有框架的局限性 影响
高吞吐率 无法处理大量和高速的数据 增加了单次推理的开销
低响应时间 应用无法提供实时的结果 损害了用户体验(语音识别、个性化推荐和实时目标检测)
高效的功耗以及显存消耗控制 非最优效能 增加了推理的开销甚至无法进行推理部署
专业部署级别的解决方案 非专用于部署使用 框架复杂度和配置增加了部署难度以及生产率

推理更关注的是高吞吐率、低响应时间、低资源消耗以及简便的部署流程,而TensorRT就是用来解决推理所带来的挑战以及影响的部署级的解决方案。