深度学习使用Keras进行迁移学习提升网络性能

编程入门 行业动态 更新时间:2024-10-27 14:32:51

<a href=https://www.elefans.com/category/jswz/34/1769690.html style=深度学习使用Keras进行迁移学习提升网络性能"/>

深度学习使用Keras进行迁移学习提升网络性能

上一篇文章我们用自己定义的模型来解决了二分类问题,在20个回合的训练之后得到了大约74%的准确率,一方面是我们的epoch太小的原因,另外一方面也是由于模型太简单,结构简单,故而不能做太复杂的事情,那么怎么提升预测的准确率了?一个有效的方法就是迁移学习。

迁移学习其本质就是移花接木:将其他大数据集(比如ImageNet等)上得到的网络结构及其weights应用到一个新的项目中来,比如此处的猫狗二分类问题。当然,ImageNet中肯定有猫和狗这两个类别,可以说此处的小数据集是ImageNet的一个子集,但是,对于和ImageNet完全没有任何关系的其他数据集,迁移学习也有一定的效果,当然,对于两个数据集的相关性比较差的数据集,使用迁移学习可能效果不太好。

具体做法是:使用一个成熟的网络结构(比如此处用VGG16)和参数,把它的全连接层全部都去掉,只保留卷积层,这些卷积层可以看成是图片的特征提取器(得到的特征被称为bottleneck features),而全连接层是分类器,对这些图片的特征进行有效分类。对于新项目,我们要分类的类别数目并不是ImageNet的1000类,而是比如此处的2类。故而分类器对我们毫无用处,我们需要创建和训练自己的分类器。如下为VGG16网络的结构:


其中的Conv block 1-5 都是卷积层和池化层,组成了图片的特征提取器,而后面的Flatten和Dense组成了分类器。

此处我们将Conv block

更多推荐

深度学习使用Keras进行迁移学习提升网络性能

本文发布于:2023-12-03 21:06:18,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1657646.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:深度   性能   网络   Keras

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!