
上一篇文章讲的什么来着,哦,是关于keras如何拆分网络层的,那我不想拆分网络层为多个输出,我还是不会拆分网络层怎么办,好好的干嘛要把人家拆开就不能不拆嘛..讨厌,那好把好吧,不拆,那我们就合呗..(;′⌒`)
谈谈今天的主题,我们为什么要构建多输出模型?为什么?这么说吧,假如有一天你带着你女朋友去逛动物园,逛到豹子的地盘后,你女朋友突然问你:"哎小浩浩(允许我羞涩一分钟..),你看这里的猫怎么那么大?我从来没见过这种猫哎(好可爱的女朋友)." 这时候你开始得意的说:"亲,那不是猫,那个叫豹子."可爱的女朋友又来了:"哦,不是猫呀,那它是公的还是母的?" 天呐,怎么还问这个问题,我哪知道公的母的,怎么办怎么办,突然看到前面有一个卖小吃的地方,你赶紧说:"亲,前面有卖吃的,走我带你吃东西去." 你女朋友一听到吃的,马上说好呀好呀,这算是躲过一劫(你女朋友可能知道答案,就是故意考考你,你要是不知道,指不定怎么嫌弃你)
为了保证下一次不再出现这种可能有生命危险的事(夸大其词的说),你决定好好学习,天天..看动物,怎么学习呢?首先你要学会辨别很多动物,然后呢你还要学习怎么辨别动物是公的还是母的,是否具有攻击性啊....也就是学习的每一种动物,都对应着很多属性
同样的,对于模型也是如此,你要构建模型预测多种属性任务,这时候可以考虑构建多个输出的方法,也就是很多模型联合训练,解决多个问题,这样就不用分别训练很多模型了
下面以Unet网络和mobileNet网络为例,构建一个双输入双输出的模型

然后再构建一个Unet网络,用于检测数据的边缘(代码仅做说明):

从上面两个网络可以看到,在最后的输出层,我都给它们取了个名字,就是你们看到的
name=""
这个啦,为什么呢?后面解释,当然你可以不取名字,后面解释
因为这里两个模型的输入大小不一样,所以他们每个有各自的输入,也就是2个输入,如果输入大小可以一样,那么公用一个输入就好了,两个任务的网络构建完了以后,我们怎么样把他们联合到一起呢?通过keras的Moldel方法实现,下面直接上代码了

看代码看代码,只需要把两个模型的输入和输出分别组合成列表传入Model
里面就好了,是不是很简单呐..
模型是结构是有了,接下来干嘛呢,就是编译模型了,这里的编译,说通俗点就是分配每个模型学习的方法

这里展示的例子,我给每个模型分配了不一样的学习方法,而分配的方法,就是通过我上面给网络取的名字分配的(名字的好处,跟人名一样),
loss_weights
里面的两个值0.5,0.3(随机设置的),表示我想让模型更关注Unet分割的效果(因为0.5>0.3),用文章开头的例子说,就是你在学习动物知识的时候,你更注重学习哪种属性,如果你更注重学习动物的公母,那你就多花点时间学习这个属性
如果没有取名字,你想让模型自己权衡学习,而且你的模型也能够同时使用一种策略学习,那完全就是常规操作:

希望我把这个方法解释清楚了,23333,为了给大家说清楚为什么需要多输出模型,虽然很简单,但是开头的例子还是让我这只单身汪受到了一万点暴击,哎,容我听首歌,顺便推荐一下歌曲,力宏的<<需要人陪>>

网友评论