深度学习的宏观框架——训练(training)和推理(inference)及其应用场景

一个完整的深度框架中应该包含两个主要部分,即训练(training)和推理(inference)


训练(Training)

打个比方,你现在想要训练一个能区分苹果还是橘子的模型,你需要搜索一些苹果和橘子的图片,这些图片放在一起称为训练数据集(training dataset),训练数据集是有标签的,苹果图片的标签就是苹果,橘子亦然。一个初始神经网络通过不断的优化自身参数,来让自己变得准确,可能开始10张苹果的照片,只有5张被网络认为是苹果,另外5张认错了,这个时候通过优化参数,让另外5张错的也变成对的。这整个过程就称之为训练(Traning)。

推理(Inference)

你训练好了一个模型,在训练数据集中表现良好,但是我们的期望是它可以对以前没看过的图片进行识别。你重新拍一张图片扔进网络让网络做判断,这种图片就叫做现场数据(live data),如果现场数据的区分准确率非常高,那么证明你的网络训练的是非常好的。我们把训练好的模型拿出来遛一遛的过程,称为推理(Inference)。

部署(deployment)

想要把一个训练好的神经网络模型应用起来,需要把它放在某个硬件平台上并保证其能运行,这个过程称之为部署(deployment)。

应用场景

从研发角度来说,对于一个专门研究算法的人,他的目的是通过训练得到一个效果非常好的模型,所以他的应用场景会在一个高性能的运算平台上,通俗的来说,就是不计成本的使用算力比较牛B的计算机,比如NVIDIA的服务器集群。

从产品应用角度来说,不管你的AI算法是部署在智能手机还是其他的一些特定的应用场景,比如安防用的摄像头,野外工作的机器人,医院的智能诊断读片机,给每个应用都分配一个告诉计算平台显然是不合理也是不可能的,因此目前很多的终端在使用AI的时候都是数据上传到云上,通过高性能服务器获取结果再传给终端,比如支付宝的AI扫福,断网可能就玩不了了,这个还好,有一些场景是很容易或者需要断网的,比如恶劣天气,保密机构,那么在终端上独立完成AI运算就显得很重要,这个又回到我们jetson系列的研究上了,感兴趣的读者可以看一下我的NVIDIA Xaiver系列的介绍。

猜你喜欢

转载自blog.csdn.net/qq_42859149/article/details/123909110