美文网首页
AI也可以同时学习多个任务哦,很简单的!

AI也可以同时学习多个任务哦,很简单的!

作者: Brucezh_b171 | 来源:发表于2019-04-18 22:30 被阅读0次
images.jpeg

上一篇文章讲的什么来着,哦,是关于keras如何拆分网络层的,那我不想拆分网络层为多个输出,我还是不会拆分网络层怎么办,好好的干嘛要把人家拆开就不能不拆嘛..讨厌,那好把好吧,不拆,那我们就合呗..(;′⌒`)

谈谈今天的主题,我们为什么要构建多输出模型?为什么?这么说吧,假如有一天你带着你女朋友去逛动物园,逛到豹子的地盘后,你女朋友突然问你:"哎小浩浩(允许我羞涩一分钟..),你看这里的猫怎么那么大?我从来没见过这种猫哎(好可爱的女朋友)." 这时候你开始得意的说:"亲,那不是猫,那个叫豹子."可爱的女朋友又来了:"哦,不是猫呀,那它是公的还是母的?" 天呐,怎么还问这个问题,我哪知道公的母的,怎么办怎么办,突然看到前面有一个卖小吃的地方,你赶紧说:"亲,前面有卖吃的,走我带你吃东西去." 你女朋友一听到吃的,马上说好呀好呀,这算是躲过一劫(你女朋友可能知道答案,就是故意考考你,你要是不知道,指不定怎么嫌弃你)

为了保证下一次不再出现这种可能有生命危险的事(夸大其词的说),你决定好好学习,天天..看动物,怎么学习呢?首先你要学会辨别很多动物,然后呢你还要学习怎么辨别动物是公的还是母的,是否具有攻击性啊....也就是学习的每一种动物,都对应着很多属性

同样的,对于模型也是如此,你要构建模型预测多种属性任务,这时候可以考虑构建多个输出的方法,也就是很多模型联合训练,解决多个问题,这样就不用分别训练很多模型了

下面以Unet网络和mobileNet网络为例,构建一个双输入双输出的模型

首先构建一个MobileNet网络,用作预测数据的种类(下面的代码仅做说明): image.png

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

image.png
从上面两个网络可以看到,在最后的输出层,我都给它们取了个名字,就是你们看到的name=""这个啦,为什么呢?后面解释,当然你可以不取名字,后面解释

因为这里两个模型的输入大小不一样,所以他们每个有各自的输入,也就是2个输入,如果输入大小可以一样,那么公用一个输入就好了,两个任务的网络构建完了以后,我们怎么样把他们联合到一起呢?通过keras的Moldel方法实现,下面直接上代码了


image.png

看代码看代码,只需要把两个模型的输入和输出分别组合成列表传入Model里面就好了,是不是很简单呐..

模型是结构是有了,接下来干嘛呢,就是编译模型了,这里的编译,说通俗点就是分配每个模型学习的方法

image.png
这里展示的例子,我给每个模型分配了不一样的学习方法,而分配的方法,就是通过我上面给网络取的名字分配的(名字的好处,跟人名一样),loss_weights里面的两个值0.5,0.3(随机设置的),表示我想让模型更关注Unet分割的效果(因为0.5>0.3),用文章开头的例子说,就是你在学习动物知识的时候,你更注重学习哪种属性,如果你更注重学习动物的公母,那你就多花点时间学习这个属性

如果没有取名字,你想让模型自己权衡学习,而且你的模型也能够同时使用一种策略学习,那完全就是常规操作:

image.png

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

打赏.png

相关文章

  • AI也可以同时学习多个任务哦,很简单的!

    上一篇文章讲的什么来着,哦,是关于keras如何拆分网络层的,那我不想拆分网络层为多个输出,我还是不会拆分网络层怎...

  • 2019-05-07 并行处理技术——多核技术

    操作系统可以同时执行多个任务,每个任务就是进程(并发),进程可以同时执行多个任务,每个任务就是线程(并行多核的情况...

  • 多线程

    基本概念: 归纳起来可以这样说:操作系统可以同时执行多个任务,每个任务就是进程;进程可以同时执行多个任务,每个任务...

  • 并发和并行的区别

    并发指的是系统能够同时处理多个任务。并行指的是系统能够同时运行多个任务。 处理未必是运行。多个任务可以先存下来,然...

  • Python多线程

    多线程基础概念 并行与并发 并行:同时处理多个任务,必须在多核环境下 一段时间内同时处理多个任务,单核也可以并发 ...

  • 并发,并行 | 同步,异步 | 阻塞,非阻塞

    并发:一个处理器同时处理多个任务,在多个任务间快速切换,实现多任务同时运行的效果。称为并发 并行:多个任务同时进行...

  • 第1章 走入并行世界(基本概念)

    并发和并行都可以表示两个或者多个任务一起执行,并发偏重于多个任务交替执行(多个任务间还是串行),并行是多个任务同时...

  • 多线程记录

    并发&并行 并发:多个CPU同时执行多个任务. 并行:单个CPU(分配时间片)同时执行多个任务. IllegalT...

  • 第三周总结

    1.什么是多任务: 简单地说,就是操作系统可以同时运行多个任务。比方说就是一个电脑在执行多个任务,如同时登陆QQ,...

  • 多任务-线程

    1.多任务 在计算机中,操作系统可以同时运行多个任务,这就是多任务。那么如何解决多个任务同时运行呢,那就需要用到多...

网友评论

      本文标题:AI也可以同时学习多个任务哦,很简单的!

      本文链接:https://www.haomeiwen.com/subject/bjhxgqtx.html