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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 

     
   
 ¶©ÔÄ
  ¾èÖú
·Ö²¼Ê½»úÆ÷ѧϰ¿ò¼Ü£ºMxNet ǰÑÔ
 
À´Ô´£º csdn ·¢²¼ÓÚ£º 2017-8-28
  2320  次浏览      27
 

Ò»¡¢Ç°ÑÔ£º

Minerva: ¸ßЧÁé»îµÄ²¢ÐÐÉî¶ÈѧϰÒýÇæ

²»Í¬ÓÚcxxnet×·Çó¼«ÖÂËٶȺÍÒ×ÓÃÐÔ£¬MinervaÔòÌṩÁËÒ»¸ö¸ßЧÁé»îµÄƽ̨Èÿª·¢Õß¿ìËÙʵÏÖÒ»¸ö¸ß¶È¶¨ÖÆ»¯µÄÉî¶ÈÉñ¾­ÍøÂç¡£

MinervaÔÚϵͳÉè¼ÆÉÏʹÓ÷ֲãµÄÉè¼ÆÔ­Ôò£¬½«¡°ËãµÄ¿ì¡±ÕâÒ»¶ÔÓÚϵͳµ×²ãµÄÐèÇóºÍ¡°ºÃÓá±ÕâÒ»¶ÔÓÚϵͳ½Ó¿ÚµÄÐèÇó¸ôÀ뿪À´£¬Èçͼ3Ëùʾ¡£ÔÚ½Ó¿ÚÉÏ£¬ÎÒÃÇÌṩÀàËÆnumpyµÄÓû§½Ó¿Ú£¬Á¦Í¼×öµ½ÓѺò¢ÇÒÄܳä·ÖÀûÓÃPythonºÍnumpyÉçÇøÒÑÓеÄËã·¨¿â¡£ÔڵײãÉÏ£¬ÎÒÃDzÉÓÃÊý¾ÝÁ÷(Dataflow)¼ÆËãÒýÇæ¡£ÆäÌìÈ»µÄ²¢ÐÐÐÔÄܹ»¸ßЧµØÍ¬Ê±µØÀûÓöàGPU½øÐмÆËã¡£Minervaͨ¹ý¶èÐÔÇóÖµ(Lazy Evaluation)£¬½«Àànumpy½Ó¿ÚºÍÊý¾ÝÁ÷ÒýÇæ½áºÏÆðÀ´£¬Ê¹µÃMinervaÄܹ»¼È¡°ºÃÓá±ÓÖ¡°ËãµÃ¿ì¡±¡£

ͼ 3 MinervaµÄ·Ö²ãÉè¼Æ

¶èÐÔÇóÖµ

Minervaͨ¹ý×Ô¼ºÊµÏÖµÄndarrayÀàÐÍÀ´Ö§³Ö³£ÓõľØÕóºÍ¶àάÏòÁ¿²Ù×÷¡£ÔÚÃüÃûºÍ²ÎÊý¸ñʽÉ϶¼¾¡Á¿ºÍnumpy±£³ÖÒ»Ö¡£Minervaͬʱ֧³Ö¶ÁÈ¡CaffeµÄÅäÖÃÎļþ²¢½øÐÐÍêÕûµÄѵÁ·¡£MinervaÌṩÁËÁ½¸öº¯ÊýÓënumpy½øÐжԽӡ£from_numpyº¯ÊýºÍto_numpyº¯ÊýÄܹ»ÔÚnumpyµÄndarrayÓëMinervaµÄÀàÐÍÖ®¼ä»¥Ïàת»»¡£Òò´Ë£¬½«MinervaºÍnumpy»ìºÏʹÓý«±äµÃ·Ç³£·½±ã¡£

Êý¾ÝÁ÷ÒýÇæºÍ¶àGPU¼ÆËã

´ÓMapreduceµ½Sparkµ½Naiad£¬Êý¾ÝÁ÷ÒýÇæÒ»Ö±ÊÇ·Ö²¼Ê½ÏµÍ³ÁìÓòÑо¿µÄÈȵ㡣Êý¾ÝÁ÷ÒýÇæµÄÌØµãÊǼǼÈÎÎñºÍÈÎÎñÖ®¼äµÄÒÀÀµ¹ØÏµ£¬È»ºó¸ù¾ÝÒÀÀµ¹ØÏµ¶ÔÈÎÎñ½øÐе÷¶È¡£Ã»ÓÐÒÀÀµµÄÈÎÎñÔò¿ÉÒÔ²¢ÐÐÖ´ÐУ¬Òò´ËÊý¾ÝÁ÷ÒýÇæ¾ßÓÐÌìÈ»µÄ²¢ÐÐÐÔ¡£ÔÚMinervaÖУ¬ÎÒÃÇÀûÓÃÊý¾ÝÁ÷µÄ˼Ï뽫Éî¶ÈѧϰËã·¨·Ö²¼µ½¶àGPUÉϽøÐмÆË㡣ÿһ¸öndarrayÔËËãÔÚMinervaÖоÍÊÇÒ»¸öÈÎÎñ£¬Minerva×ÔÉíµÄµ÷¶ÈÆ÷»á¸ù¾ÝÒÀÀµ¹ØÏµ½øÐÐÖ´ÐС£Óû§¿ÉÒÔÖ¸¶¨Ã¿¸öÈÎÎñÔÚÄĿ鿨ÉϼÆËã¡£Òò´ËÈç¹ûÁ½¸öÈÎÎñÖ®¼äûÓÐÒÀÀµ²¢ÇÒ±»·ÖÅäµ½²»Í¬GPUÉÏ£¬ÄÇÕâÁ½¸öÈÎÎñ½«Äܹ»²¢ÐÐÖ´ÐС£Í¬Ê±£¬ÓÉÓÚÊý¾ÝÁ÷µ÷¶ÈÊÇÍêÈ«Òì²½µÄ£¬¶à¿¨¼äµÄÊý¾ÝͨÐÅÒ²¿ÉÒÔºÍÆäËûÈÎÎñ²¢ÐÐÖ´ÐС£ÓÉÓÚÕâÑùµÄÉè¼Æ£¬MinervaÔڶ࿨ÉÏÄܹ»×öµ½½Ó½üÏßÐÔ¼ÓËٱȡ£´ËÍ⣬ÀûÓÃÉîÃ˵ÄParameter Server£¬Minerva¿ÉÒÔÇáËɽ«Êý¾ÝÁ÷ÍØÕ¹µ½¶à»úÉÏ£¬´Ó¶øÊµÏֶ࿨¶à»úµÄ·Ö²¼Ê½ÑµÁ·¡£

ͼ4 MinervaºÍCaffeÔÚµ¥¿¨ºÍ¶à¿¨ÉÏѵÁ·GoogLeNetµÄ±È½Ï

±í1 MinervaÔÚ²»Í¬ÍøÂçÄ£ÐͺͲ»Í¬GPUÊýÄ¿ÉϵÄѵÁ·ËÙ¶È

Êý¾ÝÁ÷ÒýÇæºÍ¶àGPU¼ÆËã

Minerva²ÉÓöèÐÔÇóÖµµÄ·½Ê½½«Àànumpy½Ó¿ÚºÍÊý¾ÝÁ÷ÒýÇæ½áºÏÆðÀ´¡£Ã¿´ÎÓû§µ÷ÓÃMinervaµÄndarrayÔËË㣬ϵͳ²¢²»Á¢¼´Ö´ÐÐÕâÒ»ÔËË㣬¶øÊǽ«ÕâÒ»ÔËËã×÷ΪÈÎÎñ£¬Òì²½µØ½»¸øµ×²ãÊý¾ÝÁ÷µ÷¶ÈÆ÷½øÐе÷¶È¡£Ö®ºó£¬Óû§µÄÏ߳̽«¼ÌÐø½øÐÐÖ´ÐУ¬²¢²»»á×èÈû¡£ÕâÒ»×ö·¨´øÀ´ÁËÐí¶àºÃ´¦£º

1.ÔÚÊý¾Ý¹æÄ£½Ï´óµÄ»úÆ÷ѧϰÈÎÎñÖУ¬ÎļþI/O×ÜÊDZȽϷ±Öصġ£¶ø¶èÐÔÇóֵʹµÃÓû§Ï߳̽øÐÐI/OµÄͬʱ£¬ÏµÍ³µ×²ãÄÜͬʱ½øÐмÆËã¡£

2.ÓÉÓÚÓû§Ï̷߳dz£ÇáÁ¿£¬Òò´ËÄܽ«¸ü¶àµÄÈÎÎñ½»¸øÏµÍ³µ×²ã¡£ÆäÖÐÏ໥ûÓÐÒÀÀµµÄÈÎÎñÔòÄܲ¢ÐÐÔËËã¡£

3.Óû§Äܹ»ÔÚ½Ó¿ÚÉϷdz£ÇáËɵØÖ¸¶¨Ã¿¸öGPUÉϵļÆËãÈÎÎñ¡£MinervaÌṩÁËset_device½Ó¿Ú£¬Æä×÷ÓÃÊÇÔÚÏÂÒ»´Îset_deviceµ÷ÓÃǰµÄÔËËã¶¼½«»áÔÚÖ¸¶¨µÄGPUÉϽøÐÐÖ´ÐС£ÓÉÓÚËùÓеÄÔËËã¶¼ÊǶèÐÔÇóÖµµÄ£¬Òò´ËÁ½´Îset_deviceºóµÄÔËËã¿ÉÒÔ¼¸ºõͬʱ½øÐе÷¶È£¬´Ó¶ø´ïµ½¶à¿¨µÄ²¢ÐС£

Parameter Server: һСʱѵÁ·600TÊý¾Ý

ÉîÃ˵Ä×é¼þ²ÎÊý·þÎñÆ÷£¨Parameter Server£©¶ÔǰÊöµÄÓ¦ÓÃÌṩ·Ö²¼Ê½µÄϵͳ֧³Ö¡£ÔÚ´ó¹æÄ£»úÆ÷ѧϰӦÓÃÀѵÁ·Êý¾ÝºÍÄ£ÐͲÎÊý¾ù¿É´óµ½µ¥Ì¨»úÆ÷ÎÞ·¨´¦Àí¡£²ÎÊý·þÎñÆ÷µÄ¸ÅÄîÕýÊÇΪ½â¾ö´ËÀàÎÊÌâ¶øÌá³öµÄ¡£Èçͼ5Ëùʾ£¬²ÎÊýÒÔ·Ö²¼Ê½ÐÎʽ´æ´¢ÔÚÒ»×é·þÎñ½ÚµãÖУ¬ÑµÁ·Êý¾ÝÔò±»»®·Öµ½²»Í¬µÄ¼ÆËã½ÚµãÉÏ¡£ÕâÁ½×é½ÚµãÖ®¼äÊý¾ÝͨÐſɹéÄÉΪ·¢ËÍ£¨push£©ºÍ»ñÈ¡£¨pull£©Á½ÖÖ¡£ÀýÈ磬һ¸ö¼ÆËã½Úµã¼È¿ÉÒÔ°Ñ×Ô¼º¼ÆËãµÃµ½µÄ½á¹û·¢Ë͵½ËùÓзþÎñ½ÚµãÉÏ£¬Ò²¿ÉÒÔ´Ó·þÎñ½ÚµãÉÏ»ñÈ¡ÐÂÄ£ÐͲÎÊý¡£ÔÚʵ¼Ê²¿Êðʱ£¬Í¨³£Óжà×鼯Ëã½ÚµãÖ´Ðв»Í¬µÄÈÎÎñ£¬ÉõÖÁÊǸüÐÂͬÑùÒ»×éÄ£ÐͲÎÊý¡£

ͼ5 ²ÎÊý·þÎñÆ÷¼Ü¹¹

ÔÚ¼¼ÊõÉÏ£¬²ÎÊý·þÎñÆ÷Ö÷Òª½â¾öÈçÏÂÁ½¸ö·Ö²¼Ê½ÏµÍ³µÄ¼¼ÊõÄѵ㡣

½µµÍÍøÂçͨÐÅ¿ªÏú

ÔÚ·Ö²¼Ê½ÏµÍ³ÖУ¬»úÆ÷ͨ¹ýÍøÂçͨÐÅÀ´¹²Í¬Íê³ÉÈÎÎñ¡£µ«²»ÂÛÊǰ´ÕÕÑÓʱ»¹Êǰ´ÕÕ´ø¿í£¬ÍøÂçͨÐÅËٶȶ¼ÊDZ¾µØÄÚ´æ¶ÁдµÄÊýÊ®»òÊý°Ù·ÖÖ®Ò»¡£½â¾öÍøÂçͨÐÅÆ¿¾±ÊÇÉè¼Æ·Ö²¼Ê½ÏµÍ³µÄ¹Ø¼ü¡£

Òì²½Ö´ÐÐ

ÔÚÒ»°ãµÄ»úÆ÷ѧϰËã·¨ÖУ¬¼ÆËã½ÚµãµÄÿһÂÖµü´ú¿ÉÒÔ»®·Ö³ÉCPU·±Ã¦ºÍÍøÂ緱æÕâÁ½¸ö½×¶Î¡£Ç°Õßͨ³£ÊÇÔÚ¼ÆËãÌݶȲ¿·Ö£¬ºóÕßÔòÊÇÔÚ´«ÊäÌݶÈÊý¾ÝºÍÄ£ÐͲÎÊý²¿·Ö¡£´®ÐÐÖ´ÐÐÕâÁ½¸ö½×¶Î½«µ¼ÖÂCPUºÍÍøÂç×ÜÓÐÒ»¸ö´¦ÓÚ¿ÕÏÐ״̬¡£ÎÒÃÇ¿ÉÒÔͨ¹ýÒì²½Ö´ÐÐÀ´ÌáÉý×ÊÔ´ÀûÓÃÂÊ¡£ÀýÈ磬µ±Ç°Ò»ÂÖµü´úµÄCPU·±Ã¦½×¶ÎÍê³Éʱ£¬¿ÉÖ±½Ó¿ªÊ¼½øÐÐÏÂÒ»ÂÖµÄCPU·±Ã¦½×¶Î£¬¶ø²»Êǵȵ½Ç°Ò»ÂÖµÄÍøÂ緱æ½×¶ÎÍê³É¡£ÕâÀïÎÒÃÇÒþ²ØÁËÍøÂçͨÐÅ¿ªÏú£¬´Ó¶ø½«CPUµÄʹÓÃÂÊ×î´ó»¯¡£µ«ÓÉÓÚûÓеȴýǰһÂÖ¸üеÄÄ£Ðͱ»È¡»Ø£¬»áµ¼ÖÂÕâ¸ö¼ÆËã½ÚµãµÄÄ£ÐͲÎÊýÓë·þÎñ½Úµã´¦×îеIJÎÊý²»Ò»Ö£¬ÓÉ´Ë¿ÉÄÜ»áÓ°ÏìË㷨ЧÂÊ¡£

Áé»îµÄÊý¾ÝÒ»ÖÂÐÔÄ£ÐÍ

Êý¾Ý²»Ò»ÖÂÐÔÐèÒª¿¼ÂÇÌá¸ßË㷨ЧÂʺͷ¢»ÓϵͳÐÔÄÜÖ®¼äµÄƽºâ¡£×îºÃµÄƽºâµãÈ¡¾öÓںܶàÒòËØ£¬ÀýÈçCPU¼ÆËãÄÜÁ¦¡¢ÍøÂç´ø¿íºÍËã·¨µÄÌØÐÔ¡£ÎÒÃÇ·¢ÏÖºÜÄÑÓÐij¸öÒ»ÖÂÐÔÄ£ÐÍÄÜÊʺÏËùÓеĻúÆ÷ѧϰÎÊÌ⡣Ϊ´Ë£¬²ÎÊý·þÎñÆ÷ÌṩÁËÒ»¸öÁé»îµÄ·½Ê½ÓÃÓÚ±í´ïÒ»ÖÂÐÔÄ£ÐÍ¡£

Ê×ÏÈÖ´ÐгÌÐò±»»®·ÖΪ¶à¸öÈÎÎñ¡£Ò»¸öÈÎÎñÀàËÆÓÚÒ»¸öÔ¶³Ì¹ý³Ìµ÷Óã¨Remote Procedure Call, RPC£©£¬¿ÉÒÔÊÇÒ»¸ö·¢ËÍ»òÒ»¸ö»ñÈ¡£¬»òÕßÈÎÒâÒ»¸öÓû§¶¨ÒåµÄº¯Êý£¬ÀýÈçÒ»ÂÖµü´ú¡£ÈÎÎñÖ®¼ä¿ÉÒÔ²¢ÐÐÖ´ÐУ¬Ò²¿ÉÒÔ¼ÓÈëÒÀÀµ¹ØÏµµÄ¿ØÖÆÂß¼­£¬À´´®ÐÐÖ´ÐУ¬ÒÔÈ·±£Êý¾ÝµÄÒ»ÖÂÐÔ¡£ËùÓÐÕâЩÈÎÎñºÍÒÀÀµ¹ØÏµ×é³ÉÒ»¸öÓÐÏòÎÞ»·Í¼£¬´Ó¶ø¶¨ÒåÒ»¸öÊý¾ÝÒ»ÖÂÐÔÄ£ÐÍ£¬Èçͼ6Ëùʾ¡£

ͼ6 ʹÓÃÓÐÏòÎÞ»·Í¼À´¶¨ÒåÊý¾ÝÒ»ÖÂÐÔÄ£ÐÍ

Èçͼ7Ëùʾ£¬ÎÒÃÇ¿ÉÒÔÔÚÏàÁÚÈÎÎñÖ®¼ä¼ÓÈëÒÀÀµ¹ØÏµµÄ¿ØÖÆÂß¼­£¬µÃµ½Ë³ÐòÒ»ÖÂÐÔÄ£ÐÍ£¬»òÕß²»ÒýÈëÈκÎÒÀÀµ¹ØÏµµÄÂß¼­¿ØÖÆ£¬µÃµ½×îÖÕÒ»ÖÂÐÔÄ£ÐÍ¡£ÔÚÕâÁ½¸ö¼«¶ËÄ£ÐÍÖ®¼äÊÇÊÜÏÞÑÓʱģÐÍ¡£ÕâÀïÒ»¸öÈÎÎñ¿ÉÒÔºÍ×î½üµÄÊý¸öÈÎÎñ²¢ÐÐÖ´ÐУ¬µ«±ØÐëµÈ´ý³¬¹ý×î´óÑÓʱµÄδÍê³ÉÈÎÎñµÄÍê³É¡£ÎÒÃÇͨ¹ýʹÓÃ×î´óÔÊÐíµÄÑÓʱÀ´¿ØÖÆ»úÆ÷ÔÚ´Ë֮ǰµÄÊý¾Ý²»Ò»ÖÂÐÔ¡£

ͼ7 ²»Í¬Êý¾ÝÒ»ÖÂÐÔÏÂÔËÐÐʱ¼ä

ͼ8չʾÁËÔÚ¹ã¸æµã»÷Ô¤²âÖУ¨Ï¸½ÚÃèÊö¼ûºóÎÄ£©£¬²»Í¬µÄÒ»ÖÂÐÔÄ£ÐÍϵõ½Í¬Ñù¾«¶È²ÎÊýÄ£ÐÍËù»¨·ÑµÄʱ¼ä¡£µ±Ê¹ÓÃ˳ÐòÒ»ÖÂÐÔÄ£ÐÍʱ£¨0ÑÓʱ£©£¬Ò»°ëµÄÔËÐÐʱ¼ä»¨·ÑÔڵȴýÉÏ¡£µ±ÎÒÃÇÖð½¥·ÅËÉÊý¾ÝÒ»ÖÂÐÔÒªÇ󣬿ÉÒÔ¿´µ½¼ÆËãʱ¼äËæ×Å×î´óÔÊÐíµÄÑÓʱ»ºÂýÉÏÉý£¬ÕâÊÇÓÉÓÚÊý¾ÝÒ»ÖÂÐÔ¼õÂýÁËËã·¨µÄÊÕÁ²ËÙ¶È£¬µ«ÓÉÓÚÄÜÓÐЧµØÒþ²ØÍøÂçͨÐÅ¿ªÏú£¬´Ó¶øÃ÷ÏÔ½µµÍÁ˵ȴýʱ¼ä¡£ÔÚÕâ¸öʵÑéÀ×î¼ÑƽºâµãÊÇ×î´óÑÓʱΪ8¡£

Ñ¡ÔñÐÔͨÐÅ

ÈÎÎñÖ®¼äµÄÒÀÀµ¹ØÏµ¿ÉÒÔ¿ØÖÆÈÎÎñ¼äµÄÊý¾ÝÒ»ÖÂÐÔ¡£¶øÔÚÒ»¸öÈÎÎñÄÚ£¬ÎÒÃÇ¿ÉÒÔͨ¹ý×Ô¶¨Òå¹ýÂËÆ÷À´Ï¸Á£¶ÈµØ¿ØÖÆÊý¾ÝÒ»ÖÂÐÔ¡£ÕâÊÇÒòΪһ¸ö½Úµãͨ³£ÔÚÒ»¸öÈÎÎñÄÚÓÐÊý°Ù»òÕ߸ü¶à¶ÔµÄ¹Ø¼ü×ÖºÍÖµ(key, value)ÐèҪͨÐÅ´«Ê䣬¹ýÂËÆ÷¶ÔÕâЩ¹Ø¼ü×ÖºÍÖµ½øÐÐÑ¡ÔñÐÔµÄͨÐÅ¡£ÀýÈçÎÒÃÇ¿ÉÒÔ½«½ÏÉÏ´Îͬ²½¸Ä±äֵСÓÚij¸öÌØ¶¨ãÐÖµµÄ¹Ø¼ü×ÖºÍÖµ¹ýÂ˵ô¡£ÔÙÈ磬ÎÒÃÇÉè¼ÆÁËÒ»¸ö»ùÓÚËã·¨×îÓÅÌõ¼þµÄKKT¹ýÂËÆ÷£¬Ëü¿É¹ýÂ˵ô¶Ô²ÎÊýÓ°ÏìÈõµÄÌݶȡ£ÎÒÃÇÔÚʵ¼ÊÖÐʹÓÃÁËÕâ¸ö¹ýÂËÆ÷£¬¿ÉÒÔ¹ýÂ˵ôÖÁÉÙ95%µÄÌݶÈÖµ£¬´Ó¶ø½ÚÔ¼ÁË´óÁ¿´ø¿í¡£

»º³åÓëѹËõ

ÎÒÃÇΪ²ÎÊý·þÎñÆ÷Éè¼ÆÁË»ùÓÚÇø¶ÎµÄ·¢ËͺͻñȡͨÐŽӿڣ¬¼ÈÄÜÁé»îµØÂú×ã»úÆ÷ѧϰËã·¨µÄͨÐÅÐèÇó£¬ÓÖ¾¡¿ÉÄܵؽøÐÐÅúÁ¿Í¨ÐÅ¡£ÔÚѵÁ·¹ý³ÌÖУ¬Í¨³£ÊÇÖµ·¢Éú±ä»¯£¬¶ø¹Ø¼ü×Ö²»±ä¡£Òò´Ë¿ÉÒÔÈ÷¢ËͺͽÓÊÕË«·½»º³å¹Ø¼ü×Ö£¬±ÜÃâÖØ¸´·¢ËÍ¡£´ËÍ⣬¿¼Âǵ½Ëã·¨»òÕß×Ô¶¨Òå¹ýÂËÆ÷µÄÌØÐÔ£¬ÕâЩͨÐÅËù´«ÊäµÄÊýÖµÀï¿ÉÄÜ´æÔÚ´óÁ¿¡°0¡±£¬Òò´Ë¿ÉÒÔÀûÓÃÊý¾ÝѹËõÓÐЧ¼õÉÙͨÐÅÁ¿¡£

ÈÝÔÖ

´ó¹æÄ£»úÆ÷ѧϰÈÎÎñͨ³£ÐèÒª´óÁ¿»úÆ÷ÇÒºÄʱ³¤£¬ÔËÐйý³ÌÖÐÈÝÒ×·¢Éú»úÆ÷¹ÊÕÏ»ò±»ÆäËûÓÅÏȼ¶¸ßµÄÈÎÎñÇÀÕ¼×ÊÔ´¡£Îª´Ë£¬ÎÒÃÇÊÕ¼¯ÁËÒ»¸öÊý¾ÝÖÐÐÄÖÐ3¸öÔÂÄÚËùÓеĻúÆ÷ѧϰÈÎÎñ¡£¸ù¾Ý¡°»úÆ÷Êý¡ÁÓÃʱ¡±µÄÖµ£¬ÎÒÃǽ«ÈÎÎñ·Ö³É´óÖÐСÈýÀ࣬²¢·¢ÏÖСÈÎÎñ£¨100»úÆ÷ʱ£©µÄƽ¾ùʧ°ÜÂÊÊÇ6.5%£»ÖÐÈÎÎñ£¨1000»úÆ÷ʱ£©µÄʧ°ÜÂʳ¬¹ýÁË13%£»¶ø¶ÔÓÚ´óÈÎÎñ£¨1Íò»úÆ÷ʱ£©£¬Ã¿4¸öÖÐÖÁÉÙÓÐ1¸ö»áÖ´ÐÐʧ°Ü¡£Òò´Ë»úÆ÷ѧϰϵͳ±ØÐë¾ß±¸ÈÝÔÖ¹¦ÄÜ¡£

²ÎÊý·þÎñÆ÷ÖзþÎñ½ÚµãºÍ¼ÆËã½Úµã²ÉÓò»Í¬µÄÈÝÔÖ²ßÂÔ¡£¶ÔÓÚ¼ÆËã½Úµã£¬¿ÉÒÔ²ÉÓÃÖØÆôÈÎÎñ£¬¶ªÆúʧ°Ü½Úµã£¬»òÕ߯äËûÓëËã·¨Ïà¹ØµÄ²ßÂÔ¡£¶ø·þÎñ½Úµãά»¤µÄÊÇÈ«¾Ö²ÎÊý£¬ÈôÊý¾Ý¶ªÊ§ºÍÏÂÏß»áÑÏÖØÓ°ÏìÓ¦ÓõÄÔËÐУ¬Òò´Ë¶ÔÆäÊý¾ÝÒ»ÖÂÐԺͻָ´Ê±Ð§ÐÔÒªÇó¸ü¸ß¡£

²ÎÊý·þÎñÆ÷ÖзþÎñ½ÚµãµÄÈÝÔÖ²ÉÓõÄÊÇÒ»ÖÂÐÔ¹þÏ£ºÍÁ´±¸·Ý¡£·þÎñ½ÚµãÔڴ洢ģÐͲÎÊýʱ£¬Í¨¹ýÒ»ÖÂÐÔ¹þϣЭÒéά»¤Ò»¶Î»òÕßÊý¶Î²ÎÊý¡£Õâ¸öЭÒéÓÃÓÚÈ·±£µ±ÓзþÎñ½Úµã·¢Éú±ä»¯Ê±£¬Ö»ÓÐά»¤ÏàÁÚ²ÎÊý¶ÎµÄ·þÎñ½Úµã»áÊܵ½Ó°Ï졣ÿ¸ö·þÎñ½Úµãά»¤µÄ²ÎÊýͬʱ»áÔÚÊý¸öÆäËû·þÎñ½ÚµãÉϱ¸·Ý¡£µ±Ò»¸ö·þÎñ½ÚµãÊÕµ½À´×Ô¼ÆËã½ÚµãµÄÊý¾Ýʱ£¬Ëü»áÏȽ«´ËÊý¾Ý±¸·Ýµ½Æä±¸·Ý½ÚµãÉÏ£¬È»ºóÔÙ֪ͨ¼ÆËã½Úµã²Ù×÷Íê³É¡£ÖмäµÄÈκÎʧ°Ü¶¼»áµ¼ÖÂÕâ´Î·¢ËÍʧ°Ü£¬µ«²»»áÔì³ÉÊý¾ÝµÄ²»Ò»Ö¡£

Á´±¸·ÝÊÊÓÃÓÚÈκλúÆ÷ѧϰËã·¨£¬µ«»áÊ¹ÍøÂçͨÐÅÁ¿³É±¶Ôö³¤£¬´Ó¶ø¿ÉÄÜÐγÉÐÔÄÜÆ¿¾±¡£¶ÔÓÚijЩËã·¨£¬ÎÒÃÇ¿ÉÒÔ²ÉÓÃÏȾۺÏÔÙ±¸·ÝµÄ²ßÂÔÀ´¼õÉÙͨÐÅ¡£ÀýÈ磬ÔÚÌݶÈϽµËã·¨Àÿ¸ö·þÎñ½ÚµãÏȾۺÏÀ´×ÔËùÓмÆËã½ÚµãµÄÌݶȣ¬Ö®ºóÔÙ¸üÐÂÄ£ÐͲÎÊý£¬Òò´Ë¿ÉÒÔÖ»±¸·Ý¾ÛºÏºóµÄÌݶȶø·ÇÀ´×Ôÿ¸ö¼ÆËã½ÚµãµÄÌݶȡ£¾ÛºÏ¿ÉÒÔÓÐЧ¼õÉÙ±¸·ÝËùÐèͨÐÅÁ¿£¬µ«¾ÛºÏ»áʹµÃͨÐŵÄÑÓ³ÙÔö¼Ó¡£²»¹ýÕâ¿ÉÒÔͨ¹ýÇ°ÃæÃèÊöµÄÒì²½Ö´ÐÐÀ´ÓÐЧµØÒþ²Ø¡£

ÔÚʵÏÖ¾ÛºÏÁ´±¸·Ýʱ£¬ÎÒÃÇ¿ÉÒÔʹÓÃÏòÁ¿ÖÓ(vector clock)À´¼Ç¼ÊÕµ½ÁËÄÄЩ½ÚµãµÄÊý¾Ý¡£ÏòÁ¿ÖÓÔÊÐíÎÒÃÇ׼ȷ¶¨Î»Î´Íê³ÉµÄ½Úµã£¬´Ó¶ø¶Ô½Úµã±ä¸ü´øÀ´µÄÓ°Ïì½øÐÐ×îС»¯¡£ÓÉÓÚ²ÎÊý·þÎñÆ÷µÄͨÐŽӿÚÊÇ»ùÓÚÇø¶Î·¢Ë͵ģ¬ËùÓÐÇø¶ÎÄڵĹؼü×Ö¿ÉÒÔ¹²Ïíͬһ¸öÏòÁ¿ÖÓÀ´Ñ¹ËõÆä´æ´¢¿ªÏú¡£

ͼ8 Èý¸öϵͳÔÚѵÁ·µÃµ½Í¬Ñù¾«¶ÈµÄÄ£ÐÍʱËù¸÷»¨·ÑµÄʱ¼ä

²ÎÊý·þÎñÆ÷²»½öΪÉîÃËÆäËû×é¼þÌṩ·Ö²¼Ê½Ö§³Ö£¬Ò²¿ÉÒÔÖ±½ÓÔÚÉÏÃæ¿ª·¢Ó¦Óá£ÀýÈ磬ÎÒÃÇʵÏÖÁËÒ»¸ö·Ö¿éµÄProximal GradientËã·¨À´½â¾öÏ¡ÊèµÄLogistic Regression£¬ÕâÊÇ×î³£ÓõÄÒ»¸öÏßÐÔÄ£ÐÍ£¬±»´óÁ¿µÄʹÓÃÔÚµã»÷Ô¤²âµÈ·ÖÀàÎÊÌâÖС£

ΪÁ˲âÊÔËã·¨ÐÔÄÜ£¬ÎÒÃDzɼ¯ÁË636TBÕæÊµ¹ã¸æµã»÷Êý¾Ý£¬ÆäÖк¬ÓÐ1700ÒÚÑù±¾ºÍ650ÒÚÌØÕ÷£¬²¢Ê¹ÓÃ1000̨»úÆ÷¹²1.6ÍòºËÀ´½øÐÐѵÁ·¡£ÎÒÃÇʹÓÃÁ½¸ö·þÎñ²úÆ·µÄ˽ÓÐϵͳ£¨¾ù»ùÓÚ²ÎÊý·þÎñÆ÷¼Ü¹¹£©×÷Ϊ»ùÏß¡£Í¼8չʾµÄÊÇÕâ3¸öϵͳΪÁ˴ﵽͬÑù¾«¶ÈµÄÄ£ÐÍËù»¨·ÑµÄʱ¼ä¡£ÏµÍ³AʹÓÃÁËÀàÌݶÈϽµµÄËã·¨£¨L-BFGS£©£¬µ«ÓÉÓÚʹÓÃÁ¬ÐøÒ»ÖÂÐÔÄ£ÐÍ£¬ÓÐ30%µÄʱ¼ä»¨·ÑÔڵȴýÉÏ¡£ÏµÍ³BÔòʹÓÃÁË·Ö¿é×ø±êϽµËã·¨£¬ÓÉÓÚ±ÈϵͳAʹÓõÄËã·¨¸ü¼ÓÓÐЧ£¬Òò´ËÓÃʱ±ÈϵͳAÉÙ¡£µ«ÏµÍ³BҲʹÓÃÁ¬ÐøÒ»ÖÂÐÔÄ£ÐÍ£¬²¢ÇÒËùÐèÈ«¾Öͬ²½´ÎÊýÒª±ÈϵͳA¸ü¶à£¬ËùÒÔϵͳBµÄµÈ´ýʱ¼äÔö¼Óµ½ÁË50%ÒÔÉÏ¡£ÎÒÃÇÔÚ²ÎÊý·þÎñÆ÷ʵÏÖÁËÓëϵͳBͬÑùµÄËã·¨£¬µ«½«Ò»ÖÂÐÔÄ£ÐÍ·ÅËÉÖÁÊÜÏÞÑÓʱһÖÂÐÔÄ£ÐͲ¢Ó¦ÓÃÁËKKT¹ýÂË¡£ÓëϵͳBÏà±È£¬²ÎÊý·þÎñÆ÷ÐèÒªÂÔ¶àµÄ¼ÆËãʱ¼ä£¬µ«ÆäµÈ´ýʱ¼ä´ó·ù½µµÍ¡£ÓÉÓÚÍøÂ翪ÏúÊÇÕâ¸öËã·¨µÄÖ÷Ҫƿ¾±£¬·ÅËɵÄÒ»ÖÂÐÔÄ£ÐÍʹµÃ²ÎÊý·þÎñÆ÷µÄ×ÜÌåÓÃʱֻÊÇϵͳBµÄÒ»°ë¡£

.Rabit£ºÁé»î¿É¿¿µÄͬ²½Í¨ÐÅ

³ýÁËParameter ServerÌṩµÄÒ첽ͨÐÅÖ®Í⣬ÒÔGBDTºÍL-BFGSΪ´ú±íµÄÐí¶à»úÆ÷ѧϰËã·¨ÒÀÈ»ÊʺϲÉÓÃͬ²½Í¨ÐÅ (BSP)µÄ·½Ê½½øÐн»»¥¡£ÉîÃ˵ĵڶþ¸öͨÐÅ¿ò¼ÜRabitÌṩÁËÕâһѡÔñ¡£

´«Í³µÄͬ²½Í¨ÐÅ»úÆ÷ѧϰ³ÌÐòÍùÍù²ÉÓÃMPIµÄAllreduce½øÐмÆË㣬µ«ÊÇÒòΪMPIÌṩµÄ½Ó¿Ú¹ýÓÚ¸´ÔÓʹµÃËü²¢²»ÈÝÒ×ÌṩÈÝÔÖÖ§³Ö¡£Rabit¼ò»¯ÁËMPIµÄÉè¼Æ£¬³éÈ¡³ö»úÆ÷ѧϰ×îÐèÒªµÄAllreduceºÍBroadcast²Ù×÷²¢¼ÓÈëÁËÈÝÔÖµÄÖ§³Ö£¬Ê¹µÃ»ùÓÚ·Ö²¼Ê½BSPµÄ»úÆ÷ѧϰËã·¨¿ÉÒÔÔÚ²¿·Ö½Úµã³ö´í»ò¶ªÊ§µÄÇé¿öÏ¿ìËÙ»Ö¸´¼ÆË㣬Íê³ÉʣϵÄÈÎÎñ¡£Ä¿Ç°µÄGBDTËã·¨xgboost¾ÍÊÇ»ùÓÚRabitÌṩµÄ½Ó¿Ú¡£Í¬Ê±£¬Rabit¾ßÓзdz£Ç¿µÄ¿ÉÒÆÖ²ÐÔ£¬Ä¿Ç°Ö§³ÖÔÚMPI¡¢Hadoop YarnºÍSunGrid EngineµÈ¸÷¸öƽ̨ÏÂÖ±½ÓÖ´ÐС£Òì²½µÄParameter Server ½Ó¿Ú¼ÓÉÏͬ²½µÄRabit½Ó¿Ú»ù±¾º­¸ÇÁ˸÷ÖÖ·Ö²¼Ê½»úÆ÷ѧϰËã·¨ÐèÒªµÄͨÐÅÐèÇó£¬Ê¹µÃÎÒÃÇ¿ÉÒÔºÜ¿ìµØÊµÏÖ¸÷ÖÖ¸ßЧµÄ·Ö²¼Ê½»úÆ÷ѧϰËã·¨¡£

¶þ¡¢MxNet

caffeÊǺÜÓÅÐãµÄdlƽ̨¡£Ó°ÏìÁ˺óÃæºÜ¶àÏà¹Ø¿ò¼Ü¡£

cxxnet½è¼øÁ˺ܶàcaffeµÄ˼Ïë¡£Ïà±È֮ϣ¬cxxnetÔÚʵÏÖÉϸü¼Ó¸É¾»£¬ÀýÈçÒÀÀµºÜÉÙ£¬Í¨¹ýmshadowµÄÄ£°å»¯Ê¹µÃgpuºÍcpu´úÂëÖ»ÓÃдһ·Ý£¬·Ö²¼Ê½½Ó¿ÚÒ²ºÜ¸É¾»¡£

mxnetÊÇcxxnetµÄÏÂÒ»´ú£¬Ä¿Ç°ÊµÏÖÁËcxxnetËùÓй¦ÄÜ£¬µ«½è¼øÁËminerva/torch7/theano£¬¼ÓÈë¸ü¶àÐµĹ¦ÄÜ¡£

1.ndarray±à³Ì½Ó¿Ú£¬ÀàËÆmatlab/numpy.ndarray/torch.tensor¡£¶ÀÓÐÓÅÊÆÔÚÓÚͨ¹ý±³ºóµÄengine¿ÉÒÔÔÚÐÔÄÜÉϺÍÄÚ´æÊ¹ÓÃÉϸüÓÅ

2.symbolic½Ó¿Ú¡£Õâ¸ö¿ÉÒÔʹµÃ¿ìËÙ¹¹½¨Ò»¸öÉñ¾­ÍøÂ磬ºÍ×Ô¶¯Ç󵼡£

3.¸ü¶àbinding Ŀǰ֧³Ö±È½ÏºÃµÄÊÇpython£¬ÂíÉÏ»áÓÐjuliaºÍR

4.¸ü¼Ó·½±ãµÄ¶à¿¨ºÍ¶à»úÔËÐÐ

5.ÐÔÄÜÉϸüÓÅ¡£Ä¿Ç°mxnet±Ècxxnet¿ì40%£¬¶øÇÒgpuÄÚ´æÊ¹ÓÃÉÙÁËÒ»°ë¡£

   
2320 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

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

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

È˹¤ÖÇÄÜ¡¢»úÆ÷ѧϰ&TensorFlow
»úÆ÷ÈËÈí¼þ¿ª·¢¼¼Êõ
È˹¤ÖÇÄÜ£¬»úÆ÷ѧϰºÍÉî¶Èѧϰ
ͼÏñ´¦ÀíËã·¨·½·¨Óëʵ¼ù