Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Éî¶Èѧϰ£ºKerasÈëÃÅ(¶þ)Ö®¾í»ýÉñ¾­ÍøÂç(CNN)
 
×÷Õߣºlc19861217
  3124  次浏览      30
 2020-11-5 
 
±à¼­ÍƼö:
±¾ÎÄÊ×ÏȽéÉÜKeras»ù´¡¡¢KerasµÄÄ£¿é½á¹¹¡¢Ê¹ÓÃKeras´î½¨Ò»¸öÉñ¾­ÍøÂç¡¢Ö÷Òª¸ÅÄîµÈÏà¹ØÄÚÈÝ¡£
±¾ÎÄÀ´×ÔÓÚ²©¿ÍÔ°£¬ÓÉ»ðÁú¹ûÈí¼þAnna±à¼­¡¢ÍƼö¡£

1.¾í»ýÓëÉñ¾­Ôª

1.1 ʲôÊǾí»ý£¿

¼òµ¥À´Ëµ£¬¾í»ý(»òÄÚ»ý)¾ÍÊÇÒ»ÖÖÏȰѶÔӦλÖÃÏà³ËÈ»ºóÔٰѽá¹ûÏà¼ÓµÄÔËËã¡£(¾ßÌ庬Òå»òÕßÊýѧ¹«Ê½¿ÉÒÔ²éÔÄÏà¹Ø×ÊÁÏ)

ÈçÏÂͼ¾Í±íʾ¾í»ýµÄÔËËã¹ý³Ì£º

£¨Í¼1£©

¾í»ýÔËËãÒ»¸öÖØÒªµÄÌØµã¾ÍÊÇ£¬Í¨¹ý¾í»ýÔËË㣬¿ÉÒÔʹԭÐźÅÌØÕ÷ÔöÇ¿£¬²¢ÇÒ½µµÍÔëÒô.

1.2 ¼¤»îº¯Êý

ÕâÀïÒÔ³£Óõļ¤»îº¯ÊýsigmoidΪÀý£º

°ÑÉÏÊöµÄ¼ÆËã½á¹û269´øÈë´Ë¹«Ê½£¬µÃ³öf(x)=1

1.3 Éñ¾­Ôª

ÈçͼÊÇÒ»¸öÈ˹¤Éñ¾­ÔªµÄÄ£ÐÍ£º

£¨Í¼2£©

¶ÔÓÚÿһ¸öÉñ¾­Ôª£¬¶¼°üº¬ÒÔϼ¸²¿·Ö£º

x:±íʾÊäÈë

w:±íÊ¾È¨ÖØ

¦È:±íʾƫÖÃ

¡Æwx:±íʾ¾í»ý(ÄÚ»ý)

f :±íʾ¼¤»îº¯Êý

o:±íʾÊä³ö

1.4 ͼÏñµÄÂ˲¨²Ù×÷

¶ÔÓÚÒ»¸ö»Ò¶ÈͼƬ(ͼ3) ÓÃsobelËã×Ó(ͼ4)½øÐйýÂË£¬½«µÃµ½Èçͼ5ËùʾµÄͼƬ¡£

1.5С½á

ÉÏÃæµÄÄÚÈÝÖ÷ÒªÊÇΪÁËͳһһϸÅÄîÉϵÄÈÏʶ£º

ͼ1µÄÀ¶É«²¿·Ö¡¢Í¼2ÖеÄxn¡¢Í¼3µÄͼÏñ¶¼ÊÇÉñ¾­ÔªµÄÊäÈ벿·Ö;ͼ1µÄºìÉ«²¿·ÖÊýÖµÖµ¡¢Í¼2µÄwnÖµ¡¢Í¼4µÄ¾ØÕóÖµ¶¼¿ÉÒÔ½Ð×öÈ¨ÖØ(»òÕßÂ˲¨Æ÷»òÕß¾í»ýºË£¬ÏÂÎÄͳ³ÆÈ¨ÖØ)¡£¶øÈ¨ÖØ(»ò¾í»ýºË)µÄ´óС(Èçͼ4µÄ3¡Á3)½Ð×ö½ÓÊÜÓò(Ò²½Ð¸ÐÖªÒ°»òÕßÊý¾Ý´°¿Ú£¬ÏÂÎÄͳ³Æ½ÓÊÜÓò)

2.¾í»ýÉñ¾­ÍøÂç

ÔÚ½éÉܾí»ýÉñ¾­ÍøÂ綨Òå֮ǰ£¬ÏÈ˵¼¸ÖֱȽÏÁ÷Ðеľí»ýÉñ¾­ÍøÂçµÄ½á¹¹Í¼¡£

2.1 ³£¼ûµÄ¼¸ÖÖ¾í»ýÉñ¾­ÍøÂç½á¹¹Í¼

(ͼ6)

(ͼ7)

£¨Í¼8£©

(ͼ9)

ͼ8ÖеÄC-²ã¡¢S-²ãÊÇ6ÖеÄConvolutions²ãºÍsubsampling²ãµÄ¼òд£¬C-²ãÊǾí»ý²ã£¬S-²ãÊÇ×Ó³éÑùºÍ¾Ö²¿Æ½¾ù²ã¡£ÔÚͼ6ºÍͼ7ÖÐC-²ã¡¢S-²ã²»ÊÇÖ¸¾ßÌåµÄij Ò»¸ö²ã£¬¶øÊÇÖ¸ÊäÈë²ãºÍÌØÕ÷Ó³Éä²ã¡¢ÌØÕ÷Ó³Éä²ãºÍÌØÕ÷Ó³Éä²ãÖ®¼äµÄ¼ÆËã¹ý³Ì£¬¶øÌØÕ÷Ó³Éä²ãÔò±£³ÖµÄÊǾí»ý¡¢×Ó³éÑù(»òϲÉÑù)ºÍ¾Ö²¿Æ½¾ùµÄÊä³ö½á¹û¡£¶øÍ¼ 6ºÍͼ7µÄÇø±ðÔÚÓÚ×îÖÕ½á¹ûÊä³ö֮ǰÊÇ·ñÓÐÈ«Á¬½Ó²ã£¬¶øÓÐûÓÐÈ«Á¬½Ó²ã»áÓ°Ïìµ½ÊÇ·ñ»¹ÐèÒªÒ»¸ö±âƽ²ã(±âƽ²ãÔÚ¾í»ý²ãºÍÈ«Á¬½Ó²ãÖ®¼ä£¬×÷ÓÃÊǶàάÊý¾Ýһά»¯)¡£

ͼ9ÖÐCONV²ãÊǾí»ý²ã(¼´C-²ã)£¬µ«ÊÇгöÏÖµÄRELU²ãºÍPOOL²ãÊÇÊ²Ã´ÄØ£¿RELU²ãÆäʵÊǼ¤»î²ã£¨reluÖ»ÊǼ¤»îº¯ÊýµÄÒ»ÖÖ£¬sigmoid/tanh±È½Ï³£¼ûÓÚÈ«Á¬½Ó²ã,relu³£¼ûÓÚ¾í»ý²ã)£¬ÎªÊ²Ã´»á¶à³öÀ´Ò»¸ö¼¤»î²ãÄØ£¿Çë¿´ÏÂͼ£º

£¨Í¼10£©

£¨Í¼2£¬·½±ã¶Ô±È¸´ÖÆÁ˹ýÀ´£©

Éñ¾­ÔªµÄÍêÕûµÄÊýѧ½¨Ä£Ó¦¸ÃÊÇͼ10Ëùʾ£¬Óëͼ2Ïà±È£¬°ÑÔ­À´ÔÚÒ»ÆðµÄ²Ù×÷²ð³ÉÁËÁ½¸ö¶ÀÁ¢µÄ²Ù×÷£º¡Æwx(¾í»ý)ºÍf(¼¤»î)£¬Òò´Ë¶à³öÁËÒ»¸ö¼¤»î²ã¡£ËùÒÔ£¬ÔÚKerasÖÐ×齨¾í»ýÉñ¾­ÍøÂçµÄ»°£¬¼´¿ÉÒÔ²ÉÓÃÈçͼ2µÄ·½Ê½(¼¤»îº¯Êý×÷Ϊ¾í»ýº¯ÊýµÄÒ»¸ö²ÎÊý)Ò²¿É²ÉÓÃͼ10ËùʾµÄ·½Ê½(¾í»ý²ãºÍ¼¤»î²ã·Ö¿ª)¡£¼¤»î²ã²»ÐèÒª²ÎÊý¡£

Pool²ã£¬¼´³Ø»¯²ã£¬Æä×÷ÓúÍS-²ãÒ»Ñù£º½øÐÐ×Ó³éÑùÈ»ºóÔÙ½øÐоֲ¿Æ½¾ù¡£ËüûÓвÎÊý£¬Æðµ½½µÎ¬µÄ×÷Ó᣽«ÊäÈëÇзֳɲ»ÖصþµÄһЩ n¡Án ÇøÓò¡£Ã¿Ò»¸öÇøÓò¾Í°üº¬¸öÖµ¡£´ÓÕâ¸öÖµ¼ÆËã³öÒ»¸öÖµ¡£¼ÆËã·½·¨¿ÉÒÔÊÇÇ󯽾ù¡¢È¡×î´ó max µÈµÈ¡£¼ÙÉè n=2£¬ÄÇô4¸öÊäÈë±ä³ÉÒ»¸öÊä³ö¡£Êä³öͼÏñ¾ÍÊÇÊäÈëͼÏñµÄ1/4´óС¡£Èô°Ñ2άµÄ²ãչƽ³ÉһάÏòÁ¿£¬ºóÃæ¿ÉÔÙÁ¬½ÓÒ»¸öÈ«Á¬½ÓǰÏòÉñ¾­ÍøÂç¡£

´Óͼ7¿ÉÒÔ¿´³ö£¬ÎÞÂÛÊǾí»ý²ã»¹Êdzػ¯²ã¶¼¿ÉÒÔ½Ð×öÌØÕ÷Ó³Éä²ã£¬¶øÁ½²ãÖ®¼äµÄ¼ÆËã¹ý³Ì½Ð×ö¾í»ý»òÕ߳ػ¯£¬µ«ÊÇÕâô±íÊöÈÝÒ×ÔÚ¸ÅÄîÉϲúÉú»ìÏý£¬ËùÒÔ±¾ÎIJ»²ÉÓÃÕâÖÖ±íÊö·½Ê½£¬Ö»ÊÇÄÃÀ´×÷Ϊ¶Ô±ÈÀí½âʹÓá£

ÏÂÃæ¶ÔÉÏÃæµÄÄÚÈÝ×öÒ»ÏÂ×ܽ᣺

¾í»ý²ã(C-²ã»òConvolutions²ã»òCONV²ã»òÌØÕ÷ÌáÈ¡²ã£¬ÏÂÎÄͳ³Æ¾í»ý²ã)£ºÖ÷Òª×÷ÓþÍÊǽøÐÐÌØÕ÷ÌáÈ¡¡£

³Ø»¯²ã(S-²ã»ò×Ó³éÑù¾Ö²¿Æ½¾ù²ã»òϲÉÑù¾Ö²¿Æ½¾ù²ã»òPOOL²ã£¬ÏÂÎÄͳ³Æ³Ø»¯²ã)£ºÖ÷Òª×÷ÓÃÊǼõÐ¡ÌØÕ÷ͼ£¬Æðµ½½µÎ¬µÄ×÷Óᣳ£Óõķ½·¨ÊÇѡȡ¾Ö²¿ÇøÓòµÄ×î´óÖµ»òÕ߯½¾ùÖµ¡£ÈçÏÂͼËùʾ£º

(ͼ11)

¶ÔÓÚµÚÒ»¸ö¾í»ý²ãÀ´Ëµ(ͼ6µÄC1-²ã)£¬Ò»¸öÌØÕ÷¶ÔÓ¦Ò»¸öͨµÀ(»ò½Ðfeature map»òÌØÕ÷Ó³Éä»òÕß½ÐÂ˲¨Æ÷£¬ÏÂÎÄͳ³ÆÌØÕ÷Ó³Éä)£¬ÀýÈçÈýÔ­É«(RGB)µÄͼÏñ¾ÍÐèÒªÈý¸öÌØÕ÷Ó³Éä²ã¡£µ«ÊǾ­¹ýµÚÒ»¸ö³Ø»¯²ã(ͼ6µÄS2-²ã£¬PS:ͼÖдí±ê³ÉÁËS1-²ã)Ö®ºó£¬ÏÂÒ»¸öÌØÕ÷ÌáÈ¡²ã (ͼ6µÄC3-²ã)µÄÌØÕ÷Ó³Éä (feature map)¸öÊý²¢²»Ò»¶¨Ó뿪ʼµÄÏàͬÁË(ͼ6ÖдÓ8ÌØÕ÷±ä³ÉÁË20ÌØÕ÷)£¬Ò»°ãÇé¿öÏ»á±È³õʼµÄÌØÕ÷Ó³Éä¸öÊý¶à£¬ÒòΪ¸ù¾ÝÊÓ¾õϵͳԭÀí----µ×²ãµÄ½á¹¹¹¹³ÉÉϲã¸ü³éÏóµÄ½á¹¹£¬ËùÒÔµ±Ç°²ãµÄÌØÕ÷Ó³ÉäÊÇÉÏÒ»²ãµÄÌØÕ÷Ó³ÉäµÄ×éºÏ£¬Ò²¾ÍÊÇÒ»¸öÌØÕ÷Ó³Éä»á¶ÔÓ¦ÉÏÒ»²ãµÄÒ»¸ö»ò¶à¸öÌØÕ÷Ó³Éä¡£

2.2 ½ÓÊÜÓòºÍ²½³¤

2.2.1 ½ÓÊÜÓò

(ͼ12)

ÈçͼËùʾ£¬ÖмäµÄÕý·½Ðζ¼±íʾ½ÓÊÜÓò£¬Æä´óСΪ5*5¡£ÕâÀïÔÙÖØ¸´Ò»Ï£ºÈ¨ÖØ(¾í»ýºË)Ö¸µÄÊÇÊý×Ö£¬½ÓÊÜÓòÖ¸µÄÊÇÈ¨ÖØ(¾í»ýºË)µÄ´óС¡£

2.2.2 ²½³¤

£¨Í¼13£©

½ÓÊÜÓòµÄ¶ÔÓ¦·¶Î§´ÓÊäÈëµÄÇøÓò1ÒÆµ½ÇøÓò2µÄ¹ý³Ì£¬»òÕß´ÓÇøÓò3ÒÆ¶¯µ½ÇøÓò4¶¼Éæ¼°µ½Ò»¸ö²ÎÊý£º²½³¤£¬¼´Ã¿´ÎÒÆ¶¯µÄ·ù¶È¡£ÔÚ´ËÀýÖеIJ½³¤¿ÉÒÔ±íʾ³É3»ò Õß(3,3)£¬µ¥¸ö3±íʾºá×Ý×ø±ê·½Ïò¶¼Òƶ¯3¸ö×ø±êµã£¬Èç¹û(3,2)Ôò±íʾºáÏòÒÆ¶¯3¸ö×ø±êµã£¬×ÝÏòÒÆ¶¯2¸ö×ø±êµã¡£Ã¿´ÎÒÆ¶¯Êǰ´Ò»¸ö·½ÏòÒÆ¶¯£¬²»ÊÇÁ½¸ö·½Ïò¶¼ÒÆ ¶¯(ͼ13ÖУ¬´ÓÇøÓò1ÒÆ¶¯µ½ÇøÓò2¡¢ÇøÓò3£¬È»ºó²ÅÒÆ¶¯µ½ÇøÓò4£¬Èç¹ûÁ½¸ö·½Ïò¶¼Òƶ¯Èý¸ö×ø±êµãÔò´ÓÇøÓò1µ½ÁËÇøÓò5£¬ÊDz»¶ÔµÄ)¡£

2.3¾í»ýÉñ¾­ÍøÂç

2.3.1¾í»ýÉñ¾­ÍøÂ綨Òå

¾í»ýÉñ¾­ÍøÂçÊÇÒ»¸ö¶à²ãµÄÉñ¾­ÍøÂ磬ÿ²ãÓɶà¸ö¶þÎ¬Æ½Ãæ(ÌØÕ÷Ó³Éä)×é³É£¬¶øÃ¿¸öÆ½ÃæÓɶà¸ö¶ÀÁ¢Éñ¾­Ôª×é³É¡£

2.3.2¾í»ýÉñ¾­ÍøÂçÌØµã

¾í»ýÉñ¾­ÍøÂçÊÇΪʶ±ð¶þάÐÎ×´¶øÌØÊâÉè¼ÆµÄÒ»¸ö¶à²ã¸ÐÖªÆ÷£¬ÕâÖÖÍøÂç½á¹¹¶Ô¶þάÐÎ×´µÄÆ½ÒÆ¡¢±ÈÀýËõ·Å¡¢Çãб»òÕß¹²ËûÐÎʽµÄ±äÐξßÓи߶Ȳ»±äÐÔ¡£

¾í»ýÉñ¾­ÍøÂçÊÇǰÀ¡ÐÍÍøÂç¡£

2.3.3 ¾í»ýÉñ¾­ÍøÂçµÄÐÎʽµÄÔ¼Êø

2.3.3.1 ÌØÕ÷ÌáÈ¡

ÿһ¸öÉñ¾­Ôª´ÓÉÏÒ»²ãµÄ¾Ö²¿½ÓÊÜÓòµÃµ½Í»´¥ÊäÈË£¬Òò¶øÆÈʹËüÌáÈ¡¾Ö²¿ÌØÕ÷¡£Ò»µ©Ò»¸öÌØÕ÷±»ÌáÈ¡³öÀ´£¬Ö»ÒªËüÏà¶ÔÓÚÆäËûÌØÕ÷µÄλÖñ»½üËÆµØ±£ÁôÏÂÀ´£¬ËüµÄ¾«È·Î»ÖþͱäµÃûÓÐÄÇÃ´ÖØÒªÁË¡£

ÏÂͼÁ½¸öXËäÈ»ÓеãÉÔ΢±äÐΣ¬µ«ÊÇ»¹ÊÇ¿ÉÒÔʶ±ð³öÀ´¶¼ÊÇX¡£

(ͼ14)

2.3.3.2 ÌØÕ÷Ó³Éä

ÍøÂçµÄÿһ¸ö¼ÆËã²ã¶¼ÊÇÓɶà¸öÌØÕ÷Ó³Éä×é³ÉµÄ£¬Ã¿¸öÌØÕ÷Ó³Éä¶¼ÊÇÆ½ÃæÐÎʽµÄ¡£Æ½ÃæÖе¥¶ÀµÄÉñ¾­ÔªÔÚÔ¼ÊøÏ¹²ÏíÏàͬµÄÍ»´¥È¨Öµ¼¯(È¨ÖØ)£¬ÕâÖֽṹÐÎʽ¾ßÓÐÈçϵÄÓÐÒæÐ§¹û£º

a.Æ½ÒÆ²»±äÐÔ(ͼ14µÄÁ½¸öX)

b.×ÔÓɲÎÊýÊýÁ¿µÄËõ¼õ(ͨ¹ýȨֵ¹²ÏíʵÏÖ)

ÕâÀïÖØµã˵Ϲ²ÏíȨֵ£¬ÒÔ¼°¾í»ý²ãÉñ¾­µ¥Ôª¸öÊýµÄÈ·¶¨ÎÊÌâ¡£

ÒÔͼ12µÄ½á¹¹Îª»ù´¡£¬×öÒÔϼÙÉ裺

¼ÙÉèÒ»£ºÊäÈ뷶ΧÔÚºá×Ý·½ÏòÓë½ÓÊÜÓòÕýºÃÊDZ¶Êý¹ØÏµ

(ͼ15)

ÏÈ˵ûÓнÓÊÜÓòµÄÇé¿ö£¬Èç¹ûÌØÕ÷Ó³ÉäÓÐ9¸öÉñ¾­Ôª£¬Õâ9¸öÉñ¾­ÔªÓë9*9µÄÊäÈë×öÈ«Á¬½Ó£¬ÄÇôÐèÒªµÄÈ¨ÖØ¸öÊýΪ9*9*9=729¸ö¡£Ìí¼ÓÁ˽ÓÊÜÓòºó£¬9¸öÉñ¾­Ôª ·Ö±ðÓë½ÓÊÜÓò×öÁ´½Ó£¬ÕâÖÖÇé¿öÏÂÈç¹ûÒ»¸öÉñ¾­Ôª¶ÔÓ¦Ò»×éÈ¨ÖØ£¬ÔòÓÐ9*9=81¸öÈ¨ÖØÖµ£¬ÔÙ¼ÙÈçÕâÒ»×éÈ¨ÖØµÄÖµÊǹ̶¨µÄ(¿É²Î¿¼Í¼12µÄ½ÓÊÜÓòÖµ£¬Õâ×éÖµ²»±ä£¬¶ø²»ÊÇÿ¸öÖµÏàµÈ)£¬ÄÇô¾ÍֻʣÏÂÁË9¸öÈ¨ÖØÖµ¡£´Ó729¸öÈ¨ÖØÖµ¼õÉÙµ½9¸öÈ¨ÖØÖµ£¬Õâ¸ö¹ý³Ì¾ÍÊÇȨֵ¹²ÏíµÄ¹ý³Ì¡£Ò²Ðí´Ó729¼õÉÙµ½9¸ö£¬²î±ð²»ÊÇÌØ±ð´ó£¬Èç¹ûÊäÈëÊÇ1000*1000£¬Éñ¾­Ôª¸öÊýÊÇ1000ÍòÄØ£¿ÕâÑùµÄ»°ÓÉȨֵ¹²Ïíµ¼ÖµļõÉٵļÆËãÁ¿¾ÍºÜ¿Í¹ÛÁË¡£

¼ÙÉè¶þ£ºÊäÈ뷶ΧÔÚºá×Ý·½ÏòÓë½ÓÊÜÓò²»ÊÇÊDZ¶Êý¹ØÏµ

(ͼ16 )

(ͼ17)

ÒÔͼ15Ϊ²Î¿¼£¬Ö»ÊǰÑÊäÈëÓò±ä³Éͼ16ËùʾµÄ8*8µÄÇé¿ö£¬Èô²½³¤»¹ÊÇ(3,3)£¬ÄÇôºá×ÝÏò¸÷ÒÆ¶¯Ò»´Îºó¾ÍÎÞ·¨Òƶ¯ÁË£¬¼´½ÓÊÜÓòµÄ¿ÉÊÓ·¶Î§Îª·ÛÉ«±ß¿òÄÚµÄ6*6µÄÇøÓò(ͼ16µÄ·Ûºì¿òAÇøÓòºÍBÇøÓò)£¬Íâ²àµÄ2ÐÐ2ÁеÄÊý¾ÝÊǶÁ²»µ½µÄ¡£ÕâÖÖÇé¿öÓÐÁ½ÖÖ´¦Àí·½Ê½£¬Ò»ÊÇÖ±½Ó·ÅÆú£¬µ«ÊÇÕâÖÖ·½Ê½¼¸ºõ²»Óã¬ÁíÍâÒ»ÖÖ·½Ê½ÔÚÖÜΧ²¹0(ͼ17Ëùʾ)£¬Ê¹ÊäÈëÓò±ä³É(3,3)µÄ±¶Êý¡£

ͨ¹ýÉÏÊöÄÚÈÝ£¬¿ÉÒÔÖªµÀÿ¸öÌØÕ÷Ó³ÉäµÄÉñ¾­ÔªµÄ¸öÊýÊÇÓÉÊäÈëÓò´óС¡¢½ÓÊÜÓò¡¢²½³¤¹²Í¬¾ö¶¨µÄ¡£Èçͼ15£¬9*9µÄÊäÈëÓò¡¢3*3µÄ½ÓÊÜÓò¡¢(3,3)µÄ²½³¤£¬¿É ÒÔ¼ÆËã³öÌØÕ÷Ó³ÉäµÄÉñ¾­Ôª¸öÊýΪ9¸ö¡£

2.3.3.3 ×Ó³éÑù

ÿ¸ö¾í»ý²ãºóÃæ¸ú×ÅÒ»¸öʵÏÖ¾Ö²¿Æ½¾ùºÍ×Ó³éÑùµÄ¼ÆËã²ã(³Ø»¯²ã)£¬ÓÉ´ËÌØÕ÷Ó³ÉäµÄ·Ö±æÂʽµµÍ¡£ÕâÖÖ²Ù×÷¾ßÓÐÊ¹ÌØÕ÷Ó³ÉäµÄÊä³ö¶ÔÆ½ÒÆºÍÆäËûÐÎʽµÄ±äÐÎ µÄÃô¸Ð¶ÈϽµµÄ×÷Óá£

3.ÓÃKeras¹¹½¨Ò»¸ö¾í»ýÉñ¾­ÍøÂç

3.1 ¾í»ýÉñ¾­ÍøÂç½á¹¹Í¼

(ͼ18)

3.2 KerasÖеÄÊäÈë¼°È¨ÖØ

3.2.1 ʾÀý´úÂë(СÊý×Ö·½±ã´òÓ¡ÑéÖ¤)

PS£ºConvolution2D ǰ×îºÃ¼ÓZeroPadding2D£¬·ñÔòÐèÒª×Ô¼º¼ÆËãÊäÈë¡¢kernel_size¡¢stridesÈýÕßÖ®¼äµÄ¹ØÏµ£¬Èç¹û²»ÊDZ¶Êý¹ØÏµ£¬»áÖ±½Ó±¨´í¡£

model = Sequential()

model.add(ZeroPadding2D((1, 1), batch_input_shape=(1, 4, 4, 1)))
model.add(Convolution2D (filters=1,kernel_size=(3,3), strides=(3,3), activation='relu', name='conv1_1'))
model.layers[1].get_weights()

model.add(ZeroPadding2D((1, 1)))
model.add(Convolution2D(filters=1, kernel_size=(2,3),strides=(2,3), activation='relu', name='conv1_2'))
model.layers[3].get_weights()

 

3.2.2 ´úÂë½âÊÍ

1) batch_input_shape=(1, 4, 4, 1)

±íʾ£ºÊäÈë1ÕÅ1ͨµÀ(»òÌØÕ÷Ó³Éä)µÄ4*4µÄÊý¾Ý.ÒòΪÎÒ²ÉÓõÄÊÇÓÃTensorflow×öºó¶Ë£¬ËùÒÔ²ÉÓá°channels_last¡±Êý¾Ý¸ñʽ¡£

2) filters = 1

±íʾ£ºÓÐ1¸öͨµÀ(»òÌØÕ÷Ó³Éä)

3) kernel_size = (2,3)

±íʾ£ºÈ¨ÖØÊÇ2*3µÄ¾ØÕó

4) striders = (2,3)

±íʾ£º²½³¤ÊÇ(2,3)

3.2.3 È¨ÖØ(ĬÈÏ»á³õʼ»¯È¨ÖØ)

3.2.3.1 µÚÒ»¸ömodel.layers[1].get_weights()Êä³ö(¸ñʽÕûÀíºó)

(ͼ19)

3.2.3.2 µÚ¶þ¸ömodel.layers[1].get_weights()Êä³ö

(ͼ20)

3.2.3.3 ÁíÍâÁ½¸öÊä³ö(ûÓÐдµÄ²ÎÊýֵͬÉÏ)

1)batch_input_shape=(1, 4, 4, 3),filters = 1, kernel_size = (3,3)

(ͼ21)

2) batch_input_shape=(1, 4, 4, 3),filters = 3, kernel_size = (2,3)

(ͼ22)

3.2.4 С½á

ͼ19µ½Í¼22µÄÄÚÈÝÊÇΪÁË˵Ã÷ÔÚKerasÖÐÈ¨ÖØµÄ±íʾ·½Ê½£¬ÎªÏÂÃæµÄʵÑé×ö×¼±¸¡£

ͨ¹ýÒÔÉϲÎÊýµÃ³öµÄÈ¨ÖØ¶Ô±È£¬µ±È¨ÖØÊǶþά¾ØÕó(n*n)ʱ£º

1) [[[¡­]]]£º±íʾºáÖáÊýÄ¿

2) [[¡­]]:±íʾ×ÝÖáÊýÄ¿

3) [¡­]:±íʾͨµÀµÄ¸öÊý¡£Í¼21ºÍͼ22µÄÇø±ð£ºÒòΪͼ22ÊÇ3ͨµÀ3filter£¬ËùÒÔÿ¸öͨµÀ¶ÔÓ¦Ò»¸öfilter(ͼ20)£¬¶øÍ¼22Ï൱ÓÚ°Ñ3¸öͼ20ºÏÒ»ÆðÁË¡£

4) [¡­]ÄÚ¶ººÅ¸ô¿ªµÄÊý£ºfilterµÄ¸öÊý

5) [[[[¡­]]]]£ºÕâ¸ö¿ÉÄÜ´ú±í²ãÊý(Ç°Ãæ¼¸¸ö²ÎÊýÊÇÆ½ÃæµÄ£¬Õâ¸ö²ÎÊýÊÇÁ¢ÌåµÄ¡£ÔÚÏÂÃæµÄʵÑéÖÐûÓеõ½¾ßÌåÑéÖ¤£¬Ö»ÊǸù¾Ý×îÍâ²ãÊÇ5¸ö·½À¨ºÅÍÆ²âµÄ)

3.3 sobelËã×Óת»¯³ÉÈ¨ÖØ

ÓÉ3.2.4µÄ½áÂÛ£¬¿ÉÒÔ°Ñͼ4µÄsobelËã×Óת»»³ÉKerasÖеÄÈ¨ÖØ£º

weights = [[[[[-1]],[[0]],[[1]]], [[[-2]],[[0]],[[2]]],[[[-1]],[[0]],[[1]]]]]

weights =np.array(weights)

PS£º×¢Òâ×îÍâΧÊÇ5¸ö·½À¨ºÅ

3.4 ʵÑé´úÂë

from PIL import Image
import numpy as np
from keras.models import Sequential
from keras.layers import Convolution2D, ZeroPadding2D, MaxPooling2D
from keras.optimizers import SGD

'''
µÚÒ»²½£º¶ÁȡͼƬÊý¾Ý
˵Ã÷£ºÕâ¸ö¹ý³ÌÐèÒª°²×°pillowÄ£¿é£ºpip install pillow
'''
##1ÕÅ1ͨµÀµÄ256*256µÄ»Ò¶ÈͼƬ
##data[0,0,0,0]£º±íʾµÚÒ»ÕÅͼƬµÄµÚÒ»¸öͨµÀµÄ×ø±êΪ(0,0)µÄÏñËØÖµ
img_width, img_height = 256, 256
data = np.empty((1,1,img_width,img_height),dtype="float32")
##´ò¿ªÍ¼Æ¬
img = Image.open("D:\\keras\\lena.jpg")
##°ÑͼƬת»»³ÉÊý×éÐÎʽ
arr = np.asarray(img,dtype="float32")
data[0,:,:,:] = arr

'''
µÚ¶þ²½£ºÉèÖÃÈ¨ÖØ
˵Ã÷£º×¢Òâ×îÍâΧÊÇ5¸ö·½À¨ºÅ
'''
weights = [[[[[-1]],[[0]],[[1]]],[[[-2]],[[0]],[[2]]],[[[-1]],[[0]],[[1]]]]]
weights =np.array(weights)

'''
µÚÈý²½£º×éÖ¯¾í»ýÉñ¾­ÍøÂç
˵Ã÷£º
1.ÒòΪʵÑé²ÉÓõÄÊÇĬÈϵÄtensorflowºó¶Ë£¬¶øÊäÈëͼÏñÊÇchannels_firstģʽ£¬ËùÒÔ×¢Òâdata_format²ÎÊýµÄÉèÖÃ
2.ΪÁËʵÑéµÄЧ¹û£¬ËùÒÔstrides¡¢pool_sizeµÈ²ÎÊýÉèÖóÉÁË1
'''

##µÚÒ»´Î¾í»ý
model = Sequential()
model.add(ZeroPadding2D(padding=(2, 2), data_format='channels_first', batch_input_shape=(1, 1,img_width, img_height)))
model.add(Convolution2D(filters=1,kernel_size=(3,3),strides=(1,1), activation='relu', name='conv1_1', data_format='channels_first'))
model.set_weights(weights)

##µÚ¶þ´Î¾í»ý
model.add(ZeroPadding2D((1, 1)))
model.add(Convolution2D (filters=1,kernel_size=(3,3),strides=(1,1), activation='relu', name='conv1_2',data_format='channels_first'))
model.set_weights(weights)

##³Ø»¯²Ù×÷
model.add(ZeroPadding2D((0, 0)))
model.add(MaxPooling2D(pool_size=1, strides=None,data_format='channels_first'))

'''
µÚËIJ½£º ÉèÖÃÓÅ»¯²ÎÊý²¢±àÒëÍøÂç
'''

# ÓÅ»¯º¯Êý£¬É趨ѧϰÂÊ£¨lr£©µÈ²ÎÊý
sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
# ʹÓÃmse×÷Ϊlossº¯Êý
model.compile(loss='mse', optimizer=sgd, class_mode='categorical')

'''
µÚÎå²½£ºÔ¤²â½á¹û
'''
result = model.predict(data,batch_size=1,verbose=0)

'''
µÚÁù²½£º±£´æ½á¹ûµ½Í¼Æ¬
'''
img_new=Image.fromarray(result[0][0]).convert('L')
img_new.save("D:\\keras\\tt123.jpg")

3.5 ʵÑéЧ¹û

(ͼ23)

(ͼ24)

ͼ24Êdzػ¯²ã²ÎÊý¸ÄΪpool_size=2ʱµÄЧ¹û¡£

 

   
3124 ´Îä¯ÀÀ       30
Ïà¹ØÎÄÕÂ

»ùÓÚͼ¾í»ýÍøÂçµÄͼÉî¶Èѧϰ
×Ô¶¯¼ÝÊ»ÖеÄ3DÄ¿±ê¼ì²â
¹¤Òµ»úÆ÷ÈË¿ØÖÆÏµÍ³¼Ü¹¹½éÉÜ
ÏîĿʵս£ºÈçºÎ¹¹½¨ÖªÊ¶Í¼Æ×
 
Ïà¹ØÎĵµ

5GÈ˹¤ÖÇÄÜÎïÁªÍøµÄµäÐÍÓ¦ÓÃ
Éî¶ÈѧϰÔÚ×Ô¶¯¼ÝÊ»ÖеÄÓ¦ÓÃ
ͼÉñ¾­ÍøÂçÔÚ½»²æÑ§¿ÆÁìÓòµÄÓ¦ÓÃÑо¿
ÎÞÈË»úϵͳԭÀí
Ïà¹Ø¿Î³Ì

È˹¤ÖÇÄÜ¡¢»úÆ÷ѧϰ&TensorFlow
»úÆ÷ÈËÈí¼þ¿ª·¢¼¼Êõ
È˹¤ÖÇÄÜ£¬»úÆ÷ѧϰºÍÉî¶Èѧϰ
ͼÏñ´¦ÀíËã·¨·½·¨Óëʵ¼ù
×îл¼Æ»®
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢ 6-12[ÏÃÃÅ]
È˹¤ÖÇÄÜ.»úÆ÷ѧϰTensorFlow 6-22[Ö±²¥]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 6-30[±±¾©]
ǶÈëʽÈí¼þ¼Ü¹¹-¸ß¼¶Êµ¼ù 7-9[±±¾©]
Óû§ÌåÑé¡¢Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À 7-25[Î÷°²]
ͼÊý¾Ý¿âÓë֪ʶͼÆ× 8-23[±±¾©]
 
×îÐÂÎÄÕÂ
¶àÄ¿±ê¸ú×Ù£ºAI²úÆ·¾­ÀíÐèÒªÁ˽âµÄCVͨʶ
Éî¶Èѧϰ¼Ü¹¹
¾í»ýÉñ¾­ÍøÂç֮ǰÏò´«²¥Ëã·¨
´Ó0µ½1´î½¨AIÖÐ̨
¹¤Òµ»úÆ÷ÈË¿ØÖÆÏµÍ³¼Ü¹¹½éÉÜ
×îпγÌ
È˹¤ÖÇÄÜ£¬»úÆ÷ѧϰºÍÉî¶Èѧϰ
È˹¤ÖÇÄÜÓë»úÆ÷ѧϰӦÓÃʵս
È˹¤ÖÇÄÜ-ͼÏñ´¦ÀíºÍʶ±ð
È˹¤ÖÇÄÜ¡¢»úÆ÷ѧϰ& TensorFlow+Keras¿ò¼Üʵ¼ù
È˹¤ÖÇÄÜ+Python£«´óÊý¾Ý
³É¹¦°¸Àý
ij×ÛºÏÐÔ¿ÆÑлú¹¹ È˹¤ÖÇÄÜÓë»úÆ÷ѧϰӦÓÃ
Ä³ÒøÐÐ È˹¤ÖÇÄÜ+Python+´óÊý¾Ý
±±¾© È˹¤ÖÇÄÜ¡¢»úÆ÷ѧϰ& TensorFlow¿ò¼Üʵ¼ù
ijÁìÏÈÊý×ÖµØÍ¼ÌṩÉÌ PythonÊý¾Ý·ÖÎöÓë»úÆ÷ѧϰ
ÖйúÒÆ¶¯ È˹¤ÖÇÄÜ¡¢»úÆ÷ѧϰºÍÉî¶Èѧϰ