预训练模型怎么使用 预训练模型的意义?
预训练模型的意义?
预训练模型是一种深度学习体系结构,经过训练可以对大量数据执行特定任务(例如,识别图像中的分类问题)。这种培训不容易进行,通常需要大量资源。除了许多可以使用深度学习模型的人可以使用的资源之外,我没有大量的gpu。当我们谈论预训练模型时,通常指的是在Imagenet上训练的CNN(视觉相关任务体系结构)。Imagenet数据集包含1400多万张图像,其中120万张图像被分为1000个类别(约100万张图像包含边界框和注释)。
2培训前模型的定义
那么什么是培训前模型?这是一组重量值,在训练结束时效果很好,研究人员分享给其他人使用。我们可以在深度学习lib库中找到许多有权重的库,但是最简单的方法是直接从你选择的深度学习库中获取。
现在,以上是预培训模型的标准定义。您还可以找到预先训练的模型来执行其他任务,如目标检测或姿势估计。
此外,最近研究人员已经开始突破训练前模式的界限。在自然语言处理(使用文本的模型)的上下文中,我们已经使用嵌入层一段时间了。单词嵌入是一组数字的表示,其思想是相似的单词将以某种有用的方式表达出来。例如,我们可以希望“鹰”、“鹰”和“蓝鸦”的表达有一些相似之处,而在其他方面则有所不同。Word2vec是我最喜欢的关于嵌入层的论文之一,它源于Geoffrey Hinton在20世纪80年代的论文。
keras已训练好模型,一段时间后又有新数据,如何在已有模型基础上继续做增量训练?
我也是一个菜鸟,可以用作通信。。。
在我看来,如果网络不需要调整(例如不添加新的类别),只需使用一个小的学习率来微调网络的所有数据。
如果网络结构发生变化(如增加新的类别),在前期(如conv层)固定网络参数,后期(如FC层)直接学习参数。然后放开冻结,微调大局。
如何提高keras模型预测速度?
一旦确定了keras模型,在不修改keras框架的源代码的情况下,什么都不会改变。唯一的出路是扩大GPU。
一般情况下,我们只能尝试修改模型结构、量化剪枝等方式,自行修改框架源代码,没有必要。
通常,为了加快模型的预测速度,只需加载一次模型即可。
当模型的预测时间过长时,通常采用减少卷积核、减少卷积核数、增加步长、增加池单元等方法。一些参数较少的主干也可能被替换。
或者考虑使用移动终端分离卷积和空穴卷积。
最后,默认情况下,我们的模型由floaf32的精度表示,可以适当量化。它以16位、8位甚至2位精度表示。只要模型的精度不显著降低,且满足使用场景,则是合理的。
如果您在这方面还有其他问题,请关注我,一起学习。
预训练模型怎么使用 预训练模型训练自己数据集 keras自带模型
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。