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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
»úÆ÷ѧϰ·Ö²¼Ê½¼Ü¹¹
 
×÷ÕߣºÐ¡ÐÒÔËQ
  2253  次浏览      27
 2021-6-24 
 
±à¼­ÍƼö:
±¾ÎÄÖ÷Òª½éÉÜÁË´óÊý¾Ý¼Ü¹¹¡¢Spark MLib¡¢Parameter Server¡¢TensorflowÀëÏß·Ö²¼Ê½ÑµÁ·¡£
±¾ÎÄÀ´×ÔÓÚ¼òÊ飬ÓÉ»ðÁú¹ûÈí¼þAnna±à¼­¡¢ÍƼö¡£

´óÊý¾Ý¼Ü¹¹

1.Åú´¦Àí

MapReduceÎÞ·¨Ó¦¶Ôʵʱ²»È·¶¨Á¿µÄСÑù±¾´¦Àí£¬Ö»ÄÜÀÛ»ýµ½Ò»¶¨ÊýÁ¿ÔÙ½øÐÐÅú´¦Àí¡£

2.Á÷¼ÆË㣨Storm£¬Spark£¬Flink£©

ʹÓû¬¶¯´°¿Ú£¬ÔÚ»¬¶¯´°¿ÚÄÚµÄÊý¾ÝÈ«²¿Íê³ÉºóÔÙ»¬¶¯µ½ÏÂÒ»¸öʱ¼ä´°¿Ú½øÐÐÐÂÒ»ÂÖµÄÊý¾Ý´¦Àí£¬ÒÔ·ÖÖÓ¼¶±ð¾Ó¶à¡£¶Ô²»Í¬Êý¾ÝÁ÷»¹ÄÜjoin£¬²¢ÔÚͬһ¸öʱ¼ä´°¿ÚÄÚ×öÕûºÏ´¦Àí¡£ »¹¿ÉÒÔ×÷ΪÏÂÓεÄÊäÈë¡£

Áé»î£¬ÑÓ³ÙС¡£µ«ÊÇÒ²Óн϶̴°¿ÚϵÄÈÕÖ¾ÂÒÐò£¬join²Ù×÷µÄÊý¾ÝÒÅ©µÄÎÊÌâ¡£

3.Lambda¼Ü¹¹£¨Á÷+Åú£©

ʵʱÁ÷¼ÆË㣨ÔöÁ¿¼ÆËãΪÖ÷±£Ö¤ÊµÊ±ÐÔ£©+ÀëÏßÅú´¦Àí£¨È«Á¿¼ÆËã±£Ö¤Ò»ÖÂÐÔ£©£¬ÔÚ´æÈë×îÖÕµÄÊý¾Ý¿â֮ǰ»¹»á½«ÊµÊ±Á÷Êý¾ÝÓëÀëÏßÊý¾ÝºÏ²¢¡£

4.Kappa¼Ü¹¹£¨½â¾ö¼ÆËãÈßÓࣩ

ºÜÃ÷ÏÔʵʱ¼ÆËãµÄ´úÂëÂß¼­Æäʵ¿ÉÒÔ¸úÀëÏß¼ÆË㲿·Ö¹²Ïí¡£ËùÒÔ¿ÉÒÔ½«Åú´¦ÀíÒ²ÒÔÁ÷µÄ·½Ê½Ö´ÐС£±ÈÈçÅú´¦Àíʱ¼ä´°¿ÚÉèÖÃΪһÌ죬Á÷´¦Àí5·ÖÖÓ¡£

ʵÏÖÀëÏßÁ÷¼ÆËãµÄ˼·£º

£¨1£©Ô­Ê¼Êý¾Ý´æ´¢£ºÔ­·â²»¶¯½«Î´¾­Á÷¼ÆËãµÄÊý¾Ý¶ªµ½·Ö²¼Ê½ÎļþϵͳÖÐÂýÂý´¦Àí

£¨2£©Êý¾ÝÖØ²¥£º°´Ê±¼ä˳ÐòÖØ²¥£¬²¢ÓÃͬÑùµÄÁ÷´¦Àí¿ò¼Ü½øÐд¦Àí¡£

Spark MLib

·Ö²¼Ê½»úÆ÷ѧϰѵÁ·ÓÐÈý¸öÖ÷ÒªµÄ·½°¸£¬·Ö±ðÊÇSpark MLlib£¬Parameter ServerºÍTensorFlow£¬µ¹²»ÊÇ˵ËûÃÇÊÇΨÈý¿É¹©Ñ¡ÔñµÄƽ̨£¬¶øÊÇÒòΪËûÃÇ·Ö±ð´ú±í×ÅÈýÖÖÖ÷Á÷µÄ½â¾ö·Ö²¼Ê½ÑµÁ··½·¨¡£

Spark£¬ÊÇÒ»¸ö·Ö²¼Ê½µÄ¼ÆËãÆ½Ì¨¡£Ëùν·Ö²¼Ê½£¬Ö¸µÄÊǼÆËã½ÚµãÖ®¼ä²»¹²ÏíÄڴ棬ÐèҪͨ¹ýÍøÂçͨÐŵķ½Ê½½»»»Êý¾Ý¡£ÒªÇå³þµÄÊÇ£¬Spark×îµäÐ͵ÄÓ¦Ó÷½Ê½Êǽ¨Á¢ÔÚ´óÁ¿Á®¼Û¼ÆËã½ÚµãÉÏ£¬ÕâЩ½Úµã¿ÉÒÔÊÇÁ®¼ÛÖ÷»ú£¬Ò²¿ÉÒÔÊÇÐéÄâµÄdocker container£»µ«ÕâÖÖ·½Ê½Çø±ðÓÚCPU+GPUµÄ¼Ü¹¹£¬»òÕß¹²ÏíÄÚ´æ¶à´¦ÀíÆ÷µÄ¸ßÐÔÄÜ·þÎñÆ÷¼Ü¹¹¡£

spark¼Ü¹¹

Spark³ÌÐòÓÉManager node½øÐе÷¶È×éÖ¯£¬ÓÉWorker Node½øÐоßÌåµÄ¼ÆËãÈÎÎñÖ´ÐУ¬×îÖÕ½«½á¹û·µ»Ø¸øDrive Program¡£ÔÚÎïÀíµÄworker nodeÉÏ£¬Êý¾Ý»¹¿ÉÄÜ·ÖΪ²»Í¬µÄpartition£¬¿ÉÒÔ˵partitionÊÇsparkµÄ»ù´¡´¦Àíµ¥Ôª¡£

ÔÚÖ´ÐоßÌåµÄ³ÌÐòʱ£¬Spark»á½«³ÌÐò²ð½â³ÉÒ»¸öÈÎÎñDAG£¨ÓÐÏòÎÞ»·Í¼£©£¬ÔÙ¸ù¾ÝDAG¾ö¶¨³ÌÐò¸÷²½ÖèÖ´Ðеķ½·¨¡£Èçͼ2Ëùʾ£¬¸Ã³ÌÐòÏÈ·Ö±ð´ÓtextFileºÍHadoopFile¶ÁÈ¡Îļþ£¬¾­¹ýһЩÁвÙ×÷ºóÔÙ½øÐÐjoin£¬×îÖյõ½´¦Àí½á¹û¡£

Ôڵõ½×îÖյļÆËã½á¹û֮ǰ£¬³ÌÐòÐèÒª½øÐÐreduceµÄ²Ù×÷£¬´Ó¸÷partitionÉÏ»ã×Üͳ¼Æ½á¹û£¬Ëæ×ÅpartitionµÄÊýÁ¿Öð½¥¼õС£¬reduce²Ù×÷µÄ²¢Ðг̶ÈÖð½¥½µµÍ£¬Ö±µ½½«×îÖյļÆËã½á¹û»ã×ܵ½master½ÚµãÉÏ¡£

ÕâÀïµÄshuffleÖ¸µÄÊÇËùÓÐpartition£¨Êý¾Ý·ÖƬ£©µÄÊý¾Ý±ØÐë½øÐÐÏ´ÅÆºó²ÅÄܵõ½ÏÂÒ»²½µÄÊý¾Ý£¬×îµäÐ͵IJÙ×÷¾ÍÊÇͼÖеÄgroupByKeyºÍjoin²Ù×÷¡£ÄÃjoin²Ù×÷À´Ëµ£¬±ØÐëͨ¹ýÔÚtextFileÊý¾ÝÖкÍhadoopFileÊý¾ÝÖÐ×öÈ«Á¿µÄÆ¥Åä²Å¿ÉÒԵõ½joinºóµÄdataframe¡£¶øgroupby²Ù×÷ÐèÒª¶ÔÊý¾ÝÖÐËùÓÐÏàͬµÄkey½øÐкϲ¢£¬Ò²ÐèҪȫ¾ÖµÄshuffle²ÅÄܹ»Íê³É¡£

ËùÒÔ¿ÉÒÔ˵shuffle£¨»ìÏ´£©ºÍreduce²Ù×÷µÄ·¢Éú¾ö¶¨ÁË´¿²¢Ðд¦Àí½×¶ÎµÄ±ß½ç¡£ÈçÏÂͼËùʾ£¬SparkµÄDAG±»·Ö¸î³ÉÁ˲»Í¬µÄ²¢Ðд¦Àí½×¶Î£¨stage£©¡£

±»shuffle²Ù×÷·Ö¸îµÄDAG stages

map£¬filterµÈ²Ù×÷½öÐèÒªÖðÌõµÄ½øÐÐÊý¾Ý´¦ÀíºÍת»»¾Í¿ÉÒÔ£¬²»ÐèÒª½øÐÐÊý¾Ý¼äµÄ²Ù×÷£¬Òò´Ë¸÷partitionÖ®¼ä¿ÉÒÔ²¢Ðд¦Àí¡£

ÐèҪǿµ÷µÄÊÇshuffle²Ù×÷ÐèÒªÔÚ²»Í¬¼ÆËã½ÚµãÖ®¼ä½øÐÐÊý¾Ý½»»»£¬·Ç³£ÏûºÄ¼ÆË㡢ͨÐż°´æ´¢×ÊÔ´£¬Òò´Ëshuffle²Ù×÷ÊÇspark³ÌÐòÓ¦¸Ã¾¡Á¿±ÜÃâµÄ¡£Ò»¾ä»°×ܽáSparkµÄ¼ÆËã¹ý³Ì¾ÍÊÇ£ºStageÄÚ²¿Êý¾Ý¸ßЧ²¢ÐмÆË㣬Stage±ß½ç´¦½øÐÐÏûºÄ×ÊÔ´µÄshuffle²Ù×÷»òÕß×îÖÕµÄreduce²Ù×÷¡£

´úÂëʾÀý£º

while (i <= numIterations) { //µü´ú´ÎÊý²»³¬¹ýÉÏÏÞ
val bcWeights = data.context.broadcast(weights) //¹ã²¥Ä£ÐÍËùÓÐÈ¨ÖØ²ÎÊý
val (gradientSum, lossSum, miniBatchSize) = data.sample (false, miniBatchFraction, 42 + i).treeAggregate() //¸÷½Úµã²ÉÑùºó¼ÆËãÌݶȣ¬Í¨¹ýtreeAggregate»ã×ÜÌݶÈ
val weights = updater.compute (weights, gradientSum / miniBatchSize) //¸ù¾ÝÌݶȸüÐÂÈ¨ÖØ
i += 1 //µü´ú´ÎÊý+1
}

¾­¹ý¾«¼òµÄ´úÂë·Ç³£¼òµ¥£¬SparkµÄmini batch¹ý³ÌÖÆ×÷ÁËÈý¼þÊ£º

°Ñµ±Ç°µÄÄ£ÐͲÎÊý¹ã²¥µ½¸÷¸öÊý¾Ýpartition£¨¿Éµ±×÷ÐéÄâµÄ¼ÆËã½Úµã£©

¸÷¼ÆËã½Úµã½øÐÐÊý¾Ý³éÑùµÃµ½mini batchµÄÊý¾Ý£¬·Ö±ð¼ÆËãÌݶȣ¬ÔÙͨ¹ýtreeAggregate²Ù×÷»ã×ÜÌݶȣ¬µÃµ½×îÖÕÌݶÈgradientSum

ÀûÓÃgradientSum¸üÐÂÄ£ÐÍÈ¨ÖØ

ÕâÑùÒ»À´£¬Ã¿´Îµü´úµÄStageºÍStageµÄ±ß½ç¾Í·Ç³£Çå³þÁË£¬StageÄÚ²¿µÄ²¢Ðв¿·ÖÊǸ÷½Úµã·Ö±ð²ÉÑù²¢¼ÆËãÌݶȵĹý³Ì£¬StageµÄ±ß½çÊÇ»ã×ܼӺ͸÷½ÚµãÌݶȵĹý³Ì¡£ÕâÀïÔÙÇ¿µ÷һϻã×ÜÌݶȵIJÙ×÷treeAggregate£¬¸Ã²Ù×÷ÊǽøÐÐÀàËÆÊ÷½á¹¹µÄÖð²ã»ã×Ü£¬Õû¸ö²Ù×÷Á÷³ÌÈçÏÂͼËùʾ¡£

ÊÂʵÉÏ£¬treeAggregateÊÇÒ»´Îreduce²Ù×÷£¬±¾Éí²¢²»°üº¬shuffle²Ù×÷£¬ÔÙ¼ÓÉϲÉÓ÷ֲãµÄÊ÷ÐβÙ×÷£¬ÔÚÿ²ãÖж¼ÊDz¢ÐÐÖ´Ðеģ¬Òò´ËÕû¸ö¹ý³ÌÊÇÏà¶Ô¸ßЧµÄ¡£

ÔÚµü´ú´ÎÊý´ïµ½ÉÏÏÞ»òÕßÄ£ÐÍÒѾ­³ä·ÖÊÕÁ²ºó£¬Ä£ÐÍֹͣѵÁ·¡£Õâ¾ÍÊÇSpark MLlib½øÐÐmini batchÌݶÈϽµµÄÈ«¹ý³Ì£¬Ò²ÊÇSpark MLlibʵÏÖ·Ö²¼Ê½»úÆ÷ѧϰµÄ×îµäÐÍ´ú±í¡£

Spark MLlib²¢ÐÐѵÁ·µÄ¾ÖÏÞÐÔ

ʹÓÃSpark MLlibѵÁ·¸´ÔÓÉñ¾­ÍøÂçʱ£¬ÍùÍùÁ¦²»´ÓÐÄ£¬²»½öѵÁ·Ê±¼ä¹ý³¤£¬¶øÇÒÔÚÄ£ÐͲÎÊý¹ý¶àʱ£¬¾­³£»á´æÔÚÄÚ´æÒç³öµÄÎÊÌâ¡£¾ßÌåÀ´½²£¬Spark MLlibµÄ·Ö²¼Ê½ÑµÁ··½·¨ÓÐÏÂÃæ¼¸¸ö±×¶Ë£º

²ÉÓÃÈ«¾Ö¹ã²¥µÄ·½Ê½£¬ÔÚÿÂÖµü´úǰ¹ã²¥È«²¿Ä£ÐͲÎÊý¡£ÖÚËùÖÜÖªSparkµÄ¹ã²¥¹ý³Ì·Ç³£ÏûºÄ´ø¿í×ÊÔ´£¬ÌرðÊǵ±Ä£Ð͵IJÎÊý¹æÄ£¹ý´óʱ£¬¹ã²¥¹ý³ÌºÍÔÚÿ¸ö½Úµã¶¼Î¬»¤Ò»¸öÈ¨ÖØ²ÎÊý¸±±¾µÄ¹ý³Ì¶¼ÊǼ«ÏûºÄ×ÊÔ´µÄ¹ý³Ì£¬Õâµ¼ÖÂÁËSparkÔÚÃæ¶Ô¸´ÔÓÄ£ÐÍʱµÄ±íÏÖ²»¼Ñ£»

²ÉÓÃ×è¶ÏʽµÄÌݶÈϽµ·½Ê½£¨Ë®Í°Ð§Ó¦£©£¬Ã¿ÂÖÌݶÈϽµÓÉ×îÂýµÄ½Úµã¾ö¶¨¡£´ÓÉÏÃæµÄ·ÖÎö¿ÉÖª£¬Spark MLlibµÄmini batchµÄ¹ý³ÌÊÇÔÚËùÓÐ½Úµã¼ÆËãÍê¸÷×ÔµÄÌݶÈÖ®ºó£¬Öð²ãAggregate×îÖÕ»ã×ÜÉú³ÉÈ«¾ÖµÄÌݶȡ£Ò²¾ÍÊÇ˵£¬Èç¹ûÓÉÓÚÊý¾ÝÇãбµÈÎÊÌâµ¼ÖÂij¸ö½Úµã¼ÆËãÌݶȵÄʱ¼ä¹ý³¤£¬ÄÇôÕâÒ»¹ý³Ì½«blockÆäËûËùÓнڵãÎÞ·¨Ö´ÐÐеÄÈÎÎñ¡£ÕâÖÖͬ²½×è¶ÏµÄ·Ö²¼Ê½ÌݶȼÆË㷽ʽ£¬ÊÇSpark MLlib²¢ÐÐѵÁ·Ð§Âʽϵ͵ÄÖ÷ÒªÔ­Òò£»

Spark MLlib²¢²»Ö§³Ö¸´ÔÓÍøÂç½á¹¹ºÍ´óÁ¿¿Éµ÷³¬²Î¡£ÊÂʵÉÏ£¬Spark MLlibÔÚÆä±ê×¼¿âÀïÖ»Ö§³Ö±ê×¼µÄ¶à²ã¸ÐÖª»úÉñ¾­ÍøÂçµÄѵÁ·£¬²¢²»Ö§³ÖRNN£¬LSTMµÈ¸´ÔÓÍøÂç½á¹¹£¬¶øÇÒÒ²ÎÞ·¨Ñ¡Ôñ²»Í¬µÄactivation functionµÈ´óÁ¿³¬²Î¡£Õâ¾Íµ¼ÖÂSpark MLlibÔÚÖ§³ÖÉî¶Èѧϰ·½ÃæµÄÄÜÁ¦Ç·¼Ñ¡£

SparkµÄÎÊÌ⣺

Èç¹ûÏ£ÍûÔÚSparkÉÏѵÁ·Éî¶ÈѧϰģÐÍ£¬ÄãÓÐûÓиĽøSparkµÄ·½·¨£¿Ê¹ÓõÚÈý·½lib£¿»¹ÊÇÐÞ¸ÄSparkÔ´Â룿»¹ÊÇ×ÔÑÐSparkÄ£ÐÍ£¿£¨IntelµÄBigDLºÍÌÚѶµÄSpark on Angel£©

°Ñworkerµ±×÷tfÖÐpserverµÄworker ͨ¹ýspark×öÊý¾Ý·Ö·¢

ÔÚѵÁ·Íê³ÉSparkÄ£Ðͺó£¬Ó¦¸ÃʹÓÃʲô·½Ê½½«SparkÄ£ÐÍdeployµ½ÏßÉÏ»·¾³£¬×öÏßÉϵÄʵʱinference£¿

¹ØÓÚ spark Ä£ÐÍ deploy µ½ÏßÉÏ×öʵʱ inference µÄÎÊÌâ¡£ÎÒÃÇÓÐ xgboost4j µÄ spark °æ±¾ÑµÁ· xgboost Ä£ÐÍ£¬È»ºó dump ³Éµ¥»úµÄÄ£ÐÍ£¬ÏßÉÏÖ±½Ó¼ÓÔØÄ£Ð͵½ÄÚ´æÌṩ serving ¡£²»¹ýÕâ¸öÄ£ÐͲ»ÊÇ spark mllib Ô­ÉúÖ§³ÖµÄ£¬ÖмäÄ£Ð͵ÄÐòÁл¯Ò²ÊÇÀûÓà xgboost ±¾ÉíÌṩµÄÓïÑÔÎ޹صĸñʽ¡£¸ü¶àµÄspark mllib µÄ³¡¾°»¹ÊÇÀëÏßѵÁ· spark Ä£ÐÍ£¬È»ºóÓÃÀ´×öÀëÏß batch Ô¤²âµÄÈÎÎñ¡£

Spark¶ÔÓÚ¸ßάÀëÉ¢ÌØÕ÷Ö§³Ö²»¹»£¬´ó¸ÅÌØÕ÷µ½ÁË5ǧÍò£¬ÑµÁ·³ÌÐò¾Í»á¹Òµô¡£´ó¹«Ë¾»ù±¾¶¼ÊÇ»ùÓÚmpiµÄ·Ö²¼Ê½»úÆ÷ѧϰѵÁ·µÄÄ£ÐÍ¡£SparkÕâÖÖµ¥master½ÚµãµÄ¼Ü¹¹£¬º£Á¿Ï¡ÊèÌØÕ÷¿Ï¶¨»á¹ÒÔÚÌݶÈaggregateºÍ²ÎÊýbroadcastµÄ¹ý³ÌÖС££¨×îÖÕ»¹ÊǵÃÉ϶àmaster£©

Parameter Server

´øÕýÔò»¯ÏîµÄloss function

ÓÉÓÚ¹«Ê½ÖÐÕýÔò»¯ÏîµÄ´æÔÚÐèÒª»ã×ÜËùÓÐÄ£ÐͲÎÊý²ÅÄܹ»ÕýÈ·¼ÆË㣬Òò´Ë½ÏÄѽøÐÐÄ£ÐͲÎÊýµÄ²¢ÐÐѵÁ·£¬Òò´ËParameter Server²ÉÈ¡Á˺ÍSpark MLlibÒ»ÑùµÄÊý¾Ý²¢ÐÐѵÁ·²úÉú¾Ö²¿Ìݶȣ¬ÔÙ»ã×ÜÌݶȸüвÎÊýÈ¨ÖØµÄ²¢Ðл¯ÑµÁ··½°¸¡£

Parameter ServerÓÉserver½ÚµãºÍworker½Úµã×é³É£¬ÆäÖ÷Òª¹¦ÄÜ·Ö±ðÈçÏ£º

£¨1£©server½ÚµãµÄÖ÷Òª¹¦ÄÜÊDZ£´æÄ£ÐͲÎÊý¡¢½ÓÊÜworker½Úµã¼ÆËã³öµÄ¾Ö²¿Ìݶȡ¢»ã×ܼÆËãÈ«¾ÖÌݶȣ¬²¢¸üÐÂÄ£ÐͲÎÊý

£¨2£©worker½ÚµãµÄÖ÷Òª¹¦ÄÜÊǸ÷±£´æ²¿·ÖѵÁ·Êý¾Ý£¬´Óserver½ÚµãÀ­È¡×îеÄÄ£ÐͲÎÊý£¬¸ù¾ÝѵÁ·Êý¾Ý¼ÆËã¾Ö²¿Ìݶȣ¬ÉÏ´«¸øserver½Úµã¡£

PS×ÜÁ÷³Ì£º

£¨1£©Ã¿¸öworkerÔØÈëÒ»²¿·ÖѵÁ·Êý¾Ý

£¨2£©worker½Úµã´Óserver½Úµãpull×îеÄÈ«²¿Ä£ÐͲÎÊý

£¨3£©worker½ÚµãÀûÓñ¾½ÚµãÊý¾Ý¼ÆËãÌݶÈ

£¨4£©worker½Úµã½«ÌݶÈpushµ½server½Úµã

£¨5£©server½Úµã»ã×ÜÌݶȸüÐÂÄ£ÐÍ

£¨6£©goto step2 Ö±µ½µü´ú´ÎÊýÉÏÏÞ»òÄ£ÐÍÊÕÁ²

¶ÔÓÚÏ¡ÊèLRÕâÖÖÄ£ÐÍ£¬¿ÉÒÔ¶ÔËüµÄ²ÎÊýpull»·½Ú½øÐÐÑ¡ÔñÐÔÀ­È¡·Ç0²ÎÊý¡£

ʵÔڵȲ»¼°£¬Äܲ»ÄÜÏÈËãÏÂÒ»²½£¿£¨Ò»ÖÂÐÔÓë²¢ÐÐЧÂÊÖ®¼äµÄÈ¡Éᣩ

PSÒì²½·Ç×è¶ÏʽÌݶÈϽµ£º½ÚµãÔÚ×öµÚ11´Îµü´ú£¨iter11£©¼ÆËãʱ£¬µÚ10´Îµü´úºóµÄpush&pull¹ý³Ì²¢Ã»ÓнáÊø£¬Ò²¾ÍÊÇ˵×îеÄÄ£ÐÍÈ¨ÖØ²ÎÊý»¹Ã»Óб»À­È¡µ½±¾µØ£¬¸Ã½ÚµãÈÔʹÓõÄÊÇiter10µÄÈ¨ÖØ²ÎÊý¼ÆËãµÄiter11µÄÌݶȡ£

Òì²½ÌݶȸüÐÂ

Òì²½Ìݶȸüеķ½Ê½ËäÈ»´ó·ù¼Ó¿ìÁËѵÁ·ËÙ¶È£¬µ«´øÀ´µÄÊÇÄ£ÐÍÒ»ÖÂÐÔµÄɥʧ£¬Ò²¾ÍÊÇ˵²¢ÐÐѵÁ·µÄ½á¹ûÓëÔ­À´µÄµ¥µã´®ÐÐѵÁ·µÄ½á¹ûÊDz»Ò»Öµģ¬ÕâÑùµÄ²»Ò»Ö»á¶ÔÄ£ÐÍÊÕÁ²µÄËÙ¶ÈÔì³ÉÒ»¶¨Ó°Ïì¡£ËùÒÔ×îÖÕѡȡͬ²½¸üл¹ÊÇÒì²½¸üÐÂÈ¡¾öÓÚ²»Í¬Ä£ÐͶÔÓÚÒ»ÖÂÐÔµÄÃô¸Ð³Ì¶È¡£ÕâÀàËÆÓÚÒ»¸öÄ£Ðͳ¬²ÎÊýѡȡµÄÎÊÌ⣬ÐèÒªÕë¶Ô¾ßÌåÎÊÌâ½øÐоßÌåµÄÑéÖ¤¡£

¶àserver½ÚµãµÄЭͬºÍЧÂÊÎÊÌ⣨һÖÂÐÔhash·ÖÅäserver£©

µ¥master½Úµã×÷Ϊһ¸öÆ¿¾±½Úµã£¬ÊÜ´ø¿íÌõ¼þµÄÖÆÔ¼£¬·¢ËÍÈ«²¿Ä£ÐͲÎÊýµÄЧÂʲ»¸ß£»Í¬²½µØ¹ã²¥·¢ËÍËùÓÐÈ¨ÖØ²ÎÊý£¬Ê¹ÏµÍ³ÕûÌåµÄÍøÂç¸ºÔØ·Ç³£´ó¡£

PS²ÉÓÃÁËserver groupÄÚ¶àserverµÄ¼Ü¹¹£¬Ã¿¸öserverÖ÷Òª¸ºÔðÒ»²¿·ÖµÄÄ£ÐͲÎÊý¡£Ä£ÐͲÎÊýʹÓÃkey valueµÄÐÎʽ£¬Ã¿¸öserver¸ºÔðÒ»¸ökeyµÄrange¾Í¿ÉÒÔÁË¡£

ÏÖÔÚijworker½ÚµãÏ£ÍûpullеÄÄ£ÐͲÎÊýµ½±¾µØ£¬worker½Úµã½«·¢ËͲ»Í¬µÄrange pullµ½²»Í¬µÄserver½Úµã£¬server½Úµã¿ÉÒÔ²¢Ðеķ¢ËÍ×Ô¼º¸ºÔðµÄweightµ½worker½Úµã¡£

TensorflowÀëÏß·Ö²¼Ê½ÑµÁ·

tf»ùÓÚÈÎÎñ¹ØÏµÍ¼½øÐÐÈÎÎñµ÷¶ÈºÍ²¢ÐмÆËã¡£

tfѵÁ··ÖÁ½²ã£¬Ò»²ãÊÇ·Ö²¼Ê½µÄPS¼Ü¹¹£¬Ò»²ãÊǵ¥»úµÄworker½ÚµãÄÚ²¿µÄCPU+GPUµÄ²¢ÐмÆËã¼Ü¹¹¡£

 

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

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

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

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