±à¼ÍƼö: |
±¾ÎÄÖ÷Òª½éÉÜÔÚKerasÖдGANʵÏÖͼÏñȥģºý£¬Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚÀ×·æÍø£¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼¡¢ÍƼö¡£ |
|
2014Äê Ian Goodfellow Ìá³öÁËÉú³É¶Ô¿¹ÍøÂ磨GAN£©¡£ËùÓеÄKeras´úÂë¿Éµã»÷ÕâÀï¡£
¿ìËÙ»ØÒäÉú³É¶Ô¿¹ÍøÂç
GANÖÐÁ½¸öÍøÂçµÄѵÁ·Ï໥¾ºÕù¡£Éú³ÉÆ÷£¨ generator£© ºÏ³É¾ßÓÐ˵·þÁ¦µÄ¼ÙÊäÈëÀ´Îóµ¼ÅбðÆ÷£¨discriminator
£©£¬¶øÅбðÆ÷ÔòÊÇÀ´Ê¶±ðÕâ¸öÊäÈëÊÇÕæµÄ»¹ÊǼٵġ£

Éú³É¶Ô¿¹ÍøÂçѵÁ·¹ý³Ì¡ªÀ´Ô´
ѵÁ·¹ý³ÌÖ÷ÒªÓÐÈý²½
1.¸ù¾ÝÔëÉù£¬Éú³ÉÆ÷ºÏ³É¼ÙµÄÊäÈë
2.ÓÃÕæµÄÊäÈëºÍ¼ÙµÄÊäÈ빲ͬѵÁ·ÅбðÆ÷
3.ѵÁ·Õû¸öÄ£ÐÍ£ºÕû¸öÄ£ÐÍÖÐÅбðÆ÷ÓëÉú³ÉÆ÷Á¬½Ó
×¢Ò⣺ÔÚµÚÈý²½ÖУ¬ÅбðÆ÷µÄÈ¨ÖØÊǹ̶¨µÄ
½«ÕâÁ½¸öÍøÂçÁ¬½ÓÆðÀ´ÊÇÓÉÓÚÉú³ÉÆ÷µÄÊä³öûÓпÉÓõķ´À¡¡£ÎÒÃÇΨһµÄ×¼Ôò¾ÍÊÇ¿´ÅбðÆ÷ÊÇ·ñ½ÓÊÜÉú³ÉÆ÷µÄºÏ³ÉµÄÀý×Ó¡£
ÕâЩֻÊǶÔÉú³É¶Ô¿¹ÍøÂçµÄÒ»¸ö¼òµ¥»Ø¹Ë¡£
Êý¾Ý
Ian GoodfellowÊ×´ÎʹÓÃGANÄ£ÐÍÊÇÉú³ÉMNISTÊý¾Ý¡£ ¶ø±¾ÆªÎÄÕÂÊÇʹÓÃÉú³É¶Ô¿¹ÍøÂç½øÐÐͼÏñȥģºý¡£Òò´ËÉú³ÉÆ÷µÄÊäÈë²»ÊÇÔëÉù£¬¶øÊÇÄ£ºýͼÏñ¡£
Êý¾Ý¼¯À´×ÔGOPROÊý¾Ý£¬Äã¿ÉÒÔÏÂÔØ ¾«¼ò°æÊý¾Ý¼¯£¨9GB£©£¬Ò²¿ÉÒÔÏÂÔØ ÍêÕû°æÊý¾Ý¼¯£¨35GB£©¡£ÆäÖаüº¬ÁËÀ´×Ô²»Í¬½ÖµÀÊӽǵÄÈËÔìÄ£ºýͼÏñ£¬¸ù¾Ý²»Í¬µÄ³¡¾°½«Êý¾Ý¼¯·ÖÔÚ¸÷¸ö×ÓÎļþ¼ÐÖС£
ÎÒÃÇÏȰÑͼÏñ·Öµ½ A £¨Ä£ºý£©ºÍ B £¨ÇåÎú£©Á½¸öÎļþ¼Ð¡£Õâ¸ö A&B ½á¹¹¶ÔÓ¦ÓÚÔʼÎÄÕÂpix2pix
¡£ÎÒ´´½¨ÁËÒ»¸ö ×Ô¶¨Òå½Å±¾À´Ö´ÐÐÕâ¸öÈÎÎñ¡£ ¿´¿´ README ºó³¢ÊÔһϰɡ£
Ä£ÐÍ
ѵÁ·¹ý³Ì»¹ÊÇÒ»Ñù£¬Ê×ÏÈÀ´¿´Ò»ÏÂÉñ¾ÍøÂç½á¹¹¡£
Éú³ÉÆ÷
Éú³ÉÆ÷ÒªÉú³ÉÇåÎúͼÏñ£¬ÍøÂçÊÇ»ùÓÚ ResNet blocksµÄ£¬Ëü¿ÉÒԼǼ¶ÔÔʼģºýͼÏñ²Ù×÷µÄ¹ý³Ì¡£ÔÎÄ»¹Ê¹ÓÃÁË»ùÓÚUNetµÄ°æ±¾£¬µ«ÎÒĿǰ»¹Ã»ÓÐʵÏÖ¡£ÕâÁ½Öֽṹ¶¼¿ÉÒԺܺõؽøÐÐͼÏñȥģºý¡£

DeblurGAN Éú³ÉÆ÷ÍøÂç½á¹¹ ¡ª À´Ô´
ºËÐÄÊDzÉÓÃ9 ¸öResNet blocks¶ÔÔʼͼÏñ½øÐÐÉϲÉÑù¡£À´¿´Ò»ÏÂKerasÉϵÄʵÏÖ£¡

ResNet ²ã¾ÍÊÇÒ»¸ö»ù±¾µÄ¾í»ý²ã£¬ÆäÖÐ,ÊäÈëºÍÊä³öÏà¼Ó£¬ÐγÉ×îÖÕÊä³ö¡£

Éú³ÉÆ÷½á¹¹µÄ Keras ʵÏÖ
°´Õռƻ®£¬ÓÃ9¸öResNet blocks¶ÔÊäÈë½øÐÐÉϲÉÑù¡£ÎÒÃÇÔÚÊäÈëµ½Êä³öÔö¼ÓÒ»¸öÁ¬½Ó£¬È»ºó³ýÒÔ2
À´¶ÔÊä³ö½øÐйéÒ»»¯¡£
Õâ¾ÍÊÇÉú³ÉÆ÷ÁË! ÎÒÃÇÔÙÀ´¿´¿´ÅбðÆ÷µÄ½á¹¹°É¡£
ÅбðÆ÷
ÅбðÆ÷µÄÄ¿±ê¾ÍÊÇҪȷ¶¨Ò»ÕÅÊäÈëͼƬÊÇ·ñΪºÏ³ÉµÄ¡£Òò´ËÅбðÆ÷µÄ½á¹¹²ÉÓþí»ý½á¹¹£¬¶øÇÒÊÇÒ»¸öµ¥ÖµÊä³ö¡£

ÅбðÆ÷½á¹¹µÄ Keras ʵÏÖ
×îºóÒ»²½¾ÍÊǽ¨Á¢ÍêÕûµÄÄ£ÐÍ¡£Õâ¸öGANµÄÒ»¸öÌØµã¾ÍÊÇÊäÈëµÄÊÇÕæÊµÍ¼Æ¬¶ø²»ÊÇÔëÉù ¡£Òò´ËÎÒÃǾÍÓÐÁËÒ»¸ö¶ÔÉú³ÉÆ÷Êä³öµÄÖ±½Ó·´À¡¡£

½ÓÏÂÀ´¿´¿´²ÉÓÃÁ½¸öËðʧÈçºÎ³ä·ÖÀûÓÃÕâ¸öÌØÊâÐÔ¡£
ѵÁ·
Ëðʧ
ÎÒÃÇÌáÈ¡Éú³ÉÆ÷×îºóºÍÕû¸öÄ£ÐÍ×îºóµÄËðʧ¡£
µÚÒ»¸öÊǸÐÖªËðʧ£¬¸ù¾ÝÉú³ÉÆ÷Êä³öÖ±½Ó¿ÉÒÔ¼ÆËãµÃµ½¡£µÚÒ»¸öËðʧ±£Ö¤ GAN Ä£ÐÍÕë¶ÔµÄÊÇȥģºýÈÎÎñ¡£Ëü±È½ÏÁËVGGµÚÒ»´Î¾í»ýµÄÊä³ö¡£

µÚ¶þ¸öËðʧÊǶÔÕû¸öÄ£ÐÍÊä³ö¼ÆËãµÄWasserstein loss£¬¼ÆËãÁËÁ½ÕÅͼÏñµÄƽ¾ù²îÖµ¡£ÖÚËùÖÜÖª£¬ÕâÖÖËðʧ¿ÉÒÔÌá¸ßÉú³É¶Ô¿¹ÍøÂçµÄÊÕÁ²ÐÔ¡£

ѵÁ·Á÷³Ì
µÚÒ»²½ÊǼÓÔØÊý¾Ý²¢³õʼ»¯Ä£ÐÍ¡£ÎÒÃÇʹÓÃ×Ô¶¨Ò庯Êý¼ÓÔØÊý¾Ý¼¯£¬È»ºó¶ÔÄ£ÐÍʹÓà Adam ÓÅ»¯Æ÷¡£ÎÒÃÇÉèÖÃ
Keras ¿ÉѵÁ·Ñ¡ÏîÀ´·ÀÖ¹ÅбðÆ÷½øÐÐѵÁ·¡£

È»ºóÎÒÃǽøÐÐepochs£¨Ò»¸öÍêÕûµÄÊý¾Ý¼¯Í¨¹ýÁËÉñ¾ÍøÂçÒ»´Î²¢ÇÒ·µ»ØÁËÒ»´ÎµÄ¹ý³Ì£¬³ÆÎªÒ»¸öepoch£©£¬²¢½«Õû¸öÊý¾Ý¼¯·ÖÅú´Î£¨batches£©¡£

×îºó¸ù¾ÝÁ½ÕßµÄËðʧ£¬¿ÉÒÔÏà¼ÌѵÁ·ÅбðÆ÷ºÍÉú³ÉÆ÷¡£ÓÃÉú³ÉÆ÷Éú³É¼ÙµÄÊäÈ룬ѵÁ·ÅбðÆ÷Çø±ðÕæ¼ÙÊäÈ룬²¢¶ÔÕû¸öÄ£ÐͽøÐÐѵÁ·¡£

Äã¿ÉÒԲο¼GithubÀ´²é¿´ÍêÕûµÄÑ»·¡£
ʵÑé
ÎÒʹÓõÄÊÇÔÚAWS ʵÀý£¨p2.xlarge£©ÉÏÅäÖÃÉî¶Èѧϰ AMI £¨version 3.0£©½øÐеÄ
¡£¶ÔGOPRO ¾«¼ò°æÊý¾Ý¼¯µÄѵÁ·Ê±¼ä´óÔ¼ÓÐ 5 ¸öСʱ£¨50¸öepochs£©¡£
ͼÏñȥģºý½á¹û

´Ó×óµ½ÓÒ£ºÔʼͼÏñ£¬Ä£ºýͼÏñ£¬GAN Êä³ö
ÉÏÃæµÄÊä³ö½á¹û¶¼ÊÇÎÒÃÇÓà Keras ½øÐÐ Deblur GAN µÄ½á¹û¡£¼´Ê¹ÊǶԸ߶ÈÄ£ºý£¬ÍøÂçÒ²¿ÉÒÔ¼õСģºý£¬²úÉúÒ»ÕžßÓиü¶àÐÅÏ¢µÄͼƬ£¬Ê¹µÃ³µµÆ¸ü¼Ó»ã¾Û£¬Ê÷Ö¦¸ü¼ÓÇåÎú¡£

×óͼ£º GOPRO ²âÊÔͼÏñ£¬ÓÒͼ£ºGAN Êä³ö½á¹û
ÒòΪÒýÈëÁËVGGÀ´¼ÆËãËðʧ£¬ËùÒÔ»á²úÉúͼÏñ¶¥²¿³öÏÖ¸ÐÓ¦ÌØÕ÷µÄ¾ÖÏÞ¡£

×óͼ£º GOPRO ²âÊÔͼÏñ£¬ÓÒͼ£ºGAN Êä³ö½á¹û
Ï£ÍûÄãÃÇ¿ÉÒÔϲ»¶ÕâÆª¹ØÓÚÉú³É¶Ô¿¹ÍøÂçÓÃÓÚͼÏñȥģºýµÄÎÄÕ¡£ ¡£
ÏÂÃæÊÇÉú³É¶Ô¿¹ÍøÂç×ÊÔ´µÄÁÐ±í¡£

×óͼ£º GOPRO ²âÊÔͼÏñ£¬ÓÒͼ£ºGAN Êä³ö½á¹û |