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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
Éî¶Èѧϰ¿ò¼ÜCaffeÔ´Âë½âÎö
 
À´Ô´£ºÍøÂç´óÊý¾Ý  ·¢²¼ÓÚ£º 2016-12-20
  2684  次浏览      30
 

ÏàÐÅÉçÇøÖкܶàС»ï°éºÍÎÒÒ»ÑùʹÓÃÁ˺ܳ¤Ê±¼äµÄCaffeÉî¶Èѧϰ¿ò¼Ü£¬Ò²·Ç³£Ï£Íû´Ó´úÂë²ã´ÎÀí½âCaffeµÄʵÏÖ´Ó¶øÊµÏÖй¦Ä͍ܵ֯¡£±¾ÎĽ«´ÓÕûÌå¼Ü¹¹ºÍµ×²ãʵÏÖµÄÊӽǣ¬¶ÔCaffeÔ´Âë½øÐнâÎö¡£

Caffe×ÜÌå¼Ü¹¹

Caffe¿ò¼ÜÖ÷ÒªÓÐÎå¸ö×é¼þ£¬Blob£¬Solver£¬Net£¬Layer£¬Proto£¬Æä½á¹¹Í¼ÈçÏÂͼ1Ëùʾ¡£Solver¸ºÔðÉî¶ÈÍøÂçµÄѵÁ·£¬Ã¿¸öSolverÖаüº¬Ò»¸öѵÁ·ÍøÂç¶ÔÏóºÍÒ»¸ö²âÊÔÍøÂç¶ÔÏó¡£Ã¿¸öÍøÂçÔòÓÉÈô¸É¸öLayer¹¹³É¡£Ã¿¸öLayerµÄÊäÈëºÍÊä³öFeature map±íʾΪInput BlobºÍOutput Blob¡£BlobÊÇCaffeʵ¼Ê´æ´¢Êý¾ÝµÄ½á¹¹£¬ÊÇÒ»¸ö²»¶¨Î¬µÄ¾ØÕó£¬ÔÚCaffeÖÐÒ»°ãÓÃÀ´±íʾһ¸öÀ­Ö±µÄËÄά¾ØÕó£¬Ëĸöά¶È·Ö±ð¶ÔÓ¦Batch Size(N)£¬Feature MapµÄͨµÀÊý(C),Feature Map¸ß¶È(H)ºÍ¿í¶È(W)¡£ProtoÔò»ùÓÚGoogleµÄProtobuf¿ªÔ´ÏîÄ¿£¬ÊÇÒ»ÖÖÀàËÆXMLµÄÊý¾Ý½»»»¸ñʽ£¬Óû§Ö»ÐèÒª°´¸ñʽ¶¨Òå¶ÔÏóµÄÊý¾Ý³ÉÔ±£¬¿ÉÒÔÔÚ¶àÖÖÓïÑÔÖÐʵÏÖ¶ÔÏóµÄÐòÁл¯Óë·´ÐòÁл¯£¬ÔÚCaffeÖÐÓÃÓÚÍøÂçÄ£Ð͵Ľṹ¶¨Òå¡¢´æ´¢ºÍ¶ÁÈ¡¡£

ͼ1 CaffeÔ´Âë×ÜÌå¼Ü¹¹Í¼

Blob½âÎö

ÏÂÃæ½éÉÜCaffeÖеĻù±¾Êý¾Ý´æ´¢ÀàBlob¡£BlobʹÓÃSyncedMemoryÀà½øÐÐÊý¾Ý´æ´¢£¬Êý¾Ý³ÉÔ± data_Ö¸Ïòʵ¼Ê´æ´¢Êý¾ÝµÄÄÚ´æ»òÏÔ´æ¿é£¬shape_´æ´¢Á˵±Ç°blobµÄά¶ÈÐÅÏ¢£¬diff_Õâ¸ö±£´æÁË·´Ïò´«µÝʱºòµÄÌݶÈÐÅÏ¢¡£ÔÚBlobÖÐÆäʵ²»ÊÇÖ»ÓÐnum£¬channel£¬height£¬widthÕâÖÖËÄάÐÎʽ£¬ËüÊÇÒ»¸ö²»¶¨Î¬¶ÈµÄÊý¾Ý½á¹¹£¬½«Êý¾ÝÕ¹¿ª´æ´¢£¬¶øÎ¬¶Èµ¥¶À´æÔÚÒ»¸övector ÀàÐ͵Äshape_±äÁ¿ÖУ¬ÕâÑùÿ¸öά¶È¶¼¿ÉÒÔÈÎÒâ±ä»¯¡£

À´Ò»Æð¿´¿´BlobµÄ¹Ø¼üº¯Êý£¬data_atÕâ¸öº¯Êý¿ÉÒÔ¶ÁÈ¡µÄ´æ´¢ÔÚ´ËÀàÖеÄÊý¾Ý£¬diff_at¿ÉÒÔÓÃÀ´¶ÁÈ¡·´Ïò´«»ØÀ´µÄÎó²î¡£Ë³±ã¸ø¸öÌáʾ£¬¾¡Á¿Ê¹ÓÃdata_at(const vector& index)À´²éÕÒÊý¾Ý¡£Reshapeº¯Êý¿ÉÒÔÐÞ¸ÄblobµÄ´æ´¢´óС£¬countÓÃÀ´·µ»Ø´æ´¢Êý¾ÝµÄÊýÁ¿¡£BlobProtoÀฺÔðÁ˽«BlobÊý¾Ý½øÐдò°üÐòÁл¯µ½CaffeµÄÄ£ÐÍÖС£

¹¤³§Ä£Ê½ËµÃ÷

½ÓÏÂÀ´½éÉÜÒ»ÖÖÉè¼ÆÄ£Ê½Factory Pattern£¬Caffe ÖÐSolverºÍLayer¶ÔÏóµÄ´´½¨¾ùʹÓÃÁË´Ëģʽ£¬Ê×ÏÈ¿´¹¤³§Ä£Ê½µÄUMLµÄÀàͼ£º

ͼ2 ¹¤³§Ä£Ê½UMLÀàͼ

ÈçͬFactoryÉú³Éͬһ¹¦Äܵ«ÊDz»Í¬ÐͺŲúÆ·Ò»Ñù£¬ÕâЩ²úƷʵÏÖÁËͬÑùOperation£¬ºÜ¶àÈË¿´Á˹¤³§Ä£Ê½µÄ´úÂ룬»á²úÉúÕâÑùµÄÒÉÎÊΪºÎ²»newÒ»¸ö³öÀ´ÄØ£¬ÕâÑùnewÒ»¸ö³öÀ´ËƺõҲûʲôÎÊÌâ°É¡£ÊÔÏëÈçÏÂÇé¿ö£¬ÓÉÓÚ´úÂëÖØ¹¹ÀàµÄÃû³Æ¸ÄÁË£¬»òÕß¹¹Ô캯Êý²ÎÊý±ä»¯(Ôö¼Ó»ò¼õÉÙ²ÎÊý)¡£¶øÄã´úÂëÖÐÓÖÓÐN´¦newÁËÕâ¸öÀà¡£Èç¹ûÄãÓÖûÓù¤³§£¬¾ÍÖ»ÄÜÒ»¸öÒ»¸öÕÒÀ´¸Ä¡£¹¤³§Ä£Ê½µÄ×÷ÓþÍÊÇÈÃʹÓÃÕß¼õÉÙ¶Ô²úÆ·±¾ÉíµÄÁ˽⣬½µµÍʹÓÃÄѶȡ£Èç¹ûÓù¤³§£¬Ö»ÐèÒªÐ޸Ť³§ÀàµÄ´´½¨¾ßÌå¶ÔÏó·½·¨µÄʵÏÖ£¬¶øÆäËû´úÂë²»»áÊܵ½Ó°Ïì¡£

¾Ù¸öÀý×Ó£¬Ð´´úÂëÉÙ²»µÃ¶öÁËÒª¼Ó°àÈ¥³ÔÒ¹Ïü£¬Âóµ±À͵靈áºÍ¿ÏµÂ»ùµÄ¼¦³á¶¼ÊÇMM°®³ÔµÄ¶«Î÷£¬ËäÈ»¿ÚζÓÐËù²»Í¬£¬µ«²»¹ÜÄã´øMMÈ¥Âóµ±ÀÍ»ò¿ÏµÂ»ù£¬Ö»¹ÜÏò·þÎñԱ˵¡°À´Ëĸö¼¦³á¡±¾ÍÐÐÁË¡£Âóµ±ÀͺͿϵ»ù¾ÍÊÇÉú²ú¼¦³áµÄFactory¡£

Solver½âÎö

½ÓÏÂÀ´ÇлØÕýÌ⣬ÎÒÃÇ¿´¿´SolverÕâ¸öÓÅ»¯¶ÔÏóÔÚCaffeÖÐÊÇÈçºÎʵÏֵġ£SolverRegistryÕâ¸öÀà¾ÍÊÇÎÒÃÇ¿´µ½µÄÉÏÃæµÄfactoryÀ࣬¸ºÔð¸øÎÒÃÇÒ»¸öÓÅ»¯Ëã·¨µÄ²úÆ·£¬ÍⲿֻÐèÒª°ÑÊý¾ÝºÍÍøÂç½á¹¹¶¨ÒåºÃ£¬Ëü¾Í¿ÉÒÔ×Ô¼ºÓÅ»¯ÁË¡£

Solver* CreateSolver(const SolverParameter& param)Õâ¸öº¯Êý¾ÍÊǹ¤³§Ä£Ê½ÏµÄCreateProductµÄ²Ù×÷£¬ CaffeÖÐÕâ¸öSolverRegistry¹¤³§Àà¿ÉÒÔÌṩ¸øÎÒÃÇ6ÖÖ²úÆ·(ÓÅ»¯Ëã·¨)£º

ÕâÁùÖÖ²úÆ·µÄ¹¦Äܶ¼ÊÇʵÏÖÍøÂçµÄ²ÎÊý¸üУ¬Ö»ÊÇʵÏÖ·½Ê½²»Ò»Ñù¡£ÄÇÎÒÃÇÀ´¿´¿´ËûÃǵÄʹÓÃÁ÷³Ì°É¡£µ±È»ÕâЩ²úÆ·ÀàËÆÉÏÃæProductÀàÖеÄOperation£¬Ã¿Ò»¸öSolver¶¼»á¼Ì³ÐSolveºÍStepº¯Êý£¬¶øÃ¿¸öSolverÖжÀÓеĽö½öÊÇApplyUpdateÕâ¸öº¯ÊýÀïÃæÖ´ÐеÄÄÚÈݲ»Ò»Ñù£¬½Ó¿ÚÊÇÒ»Öµģ¬ÕâÒ²ºÍÎÒÃÇ֮ǰ˵µÄ¹¤³§Éú²ú³öÀ´µÄ²úÆ·Ò»Ñù¹¦ÄÜÒ»Ñù£¬Ï¸½ÚÉÏÓвîÒ죬±ÈÈç´ó¶àÊýµç·¹ìÒ¶¼ÓÐÖ󷹵ŦÄÜ£¬µ«ÊÇÿһÖֵ緹ìÒÖ󷹵ļÓÈÈ·½Ê½¿ÉÄܲ»Í¬£¬Óе×Å̼ÓÈȵϹÓÐÁ¢Ìå¼ÓÈȵĵȡ£½ÓÏÂÀïÎÒÃÇ¿´¿´SolverÖеĹؼüº¯Êý¡£

SolverÖÐSolveº¯ÊýµÄÁ÷³ÌͼÈçÏ£º

ͼ3 SolverÀàSolve·½·¨Á÷³Ìͼ

SolverÀàÖÐStepº¯ÊýÁ÷³Ìͼ£º

ͼ4 SolverÀàStep·½·¨Á÷³Ìͼ

SolverÖйؼüµÄ¾ÍÊǵ÷ÓÃSovleº¯ÊýºÍStepº¯ÊýµÄÁ÷³Ì£¬ÄãÖ»ÐèÒª¶ÔÕÕSolverÀàÖÐÁ½¸öº¯ÊýµÄ¾ßÌåʵÏÖ£¬¿´¶®ÉÏÃæÁ½¸öÁ÷³Ìͼ¾Í¿ÉÒÔÀí½âCaffeѵÁ·Ö´ÐеĹý³ÌÁË¡£

NetÀà½âÎö

·ÖÎö¹ýSolverÖ®ºóÎÒÃÇÀ´·ÖÎöÏÂNetÀàµÄһЩ¹Ø¼ü²Ù×÷¡£Õâ¸öÊÇÎÒÃÇʹÓÃProto´´½¨³öÀ´µÄÉî¶ÈÍøÂç¶ÔÏó£¬Õâ¸öÀฺÔðÁËÉî¶ÈÍøÂçµÄǰÏòºÍ·´Ïò´«µÝ¡£ÒÔÏÂÊÇNetÀàµÄ³õʼ»¯·½·¨NetInitº¯Êýµ÷ÓÃÁ÷³Ì£º

ͼ5 NetÀàNetInit·½·¨Á÷³Ìͼ

NetµÄÀàÖеĹؼüº¯Êý¼òµ¥ÆÊÎö

ForwardBackward£º°´Ë³Ðòµ÷ÓÃÁËForwardºÍBackward¡£

ForwardFromTo(int start, int end)£ºÖ´ÐдÓstart²ãµ½end²ãµÄǰÏò´«µÝ£¬²ÉÓüòµ¥µÄforÑ­»·µ÷Óá£

BackwardFromTo(int start, int end)£ººÍÇ°ÃæµÄForwardFromToº¯ÊýÀàËÆ£¬µ÷ÓôÓstart²ãµ½end²ãµÄ·´Ïò´«µÝ¡£

ToProtoº¯ÊýÍê³ÉÍøÂçµÄÐòÁл¯µ½Îļþ£¬Ñ­»·µ÷ÓÃÁËÿ¸ö²ãµÄToProtoº¯Êý¡£

Layer½âÎö

LayerÊÇNetµÄ»ù±¾×é³Éµ¥Ôª£¬ÀýÈçÒ»¸ö¾í»ý²ã»òÒ»¸öPooling²ã¡£±¾Ð¡½Ú½«½éÉÜLayerÀàµÄʵÏÖ¡£

LayerµÄ¼Ì³Ð½á¹¹

ͼ6 Layer²ãµÄ¼Ì³Ð½á¹¹

LayerµÄ´´½¨

ÓëSolverµÄ´´½¨·½Ê½ºÜÏñ£¬LayerµÄ´´½¨Ê¹ÓõÄÒ²Êǹ¤³§Ä£Ê½£¬ÕâÀï¼òµ¥ËµÃ÷ϼ¸¸öºêº¯Êý£º

REGISTER_LAYER_CREATOR¸ºÔ𽫴´½¨²ãµÄº¯Êý·ÅÈëLayerRegistry¡£

ÎÒÃÇÀ´¿´¿´´ó¶àÊý²ã´´½¨µÄº¯ÊýµÄÉú³ÉºêREGISTER_LAYER_CLASS£¬¿ÉÒÔ¿´µ½ºêº¯Êý±È½Ï¼òµ¥µÄ£¬½«ÀàÐÍ×÷Ϊº¯ÊýÃû³ÆµÄÒ»²¿·Ö£¬ÕâÑù¾Í¿ÉÒÔ²úÉú³öÒ»¸ö´´½¨º¯Êý£¬²¢½«´´½¨º¯Êý·ÅÈëLayerRegistry¡£

REGISTER_LAYER_CREATOR(type, Creator_##type##Layer)

Õâ¶Î´úÂëÔÚsplit_layer.cppÎļþÖÐ

REGISTER_LAYER_CLASS(Split)¡£

ÕâÑùÎÒÃǽ«typeÌæ»»¹ýÒÔºó¸ø´ó¼Ò×ö¸ö·¶Àý£¬²Î¿¼ÏÂÃæµÄ´úÂë¡£

µ±È»ÕâÀïµÄ´´½¨º¯ÊýºÃÏñÊÇÖ±½Óµ÷Óã¬Ã»ÓÐÉæ¼°µ½ÎÒÃÇ֮ǰ¹¤³§Ä£Ê½µÄһЩÎÊÌâ¡£ËùÓеIJãµÄÀà¶¼ÊÇÕâÑùÂð?µ±È»²»ÊÇ£¬ÎÒÃÇ×Ðϸ¹Û²ì¾í»ýÀà¡£

¾í»ý²ãÔõôûÓд´½¨º¯ÊýÄØ£¬µ±È»²»ÊÇ£¬¾í»ýµÄ²ãµÄ´´½¨º¯ÊýÔÚLayerFactory.cppÖУ¬½ØÍ¼¸ø´ó¼Ò¿´Ï£¬¾ßÌå´úÂëÈçÏ£º

ÕâÑùÁ½ÖÖÀàÐ͵ÄLayerµÄ´´½¨º¯Êý¶¼ÓÐÁ˶ÔÓ¦µÄÉùÃ÷¡£ÕâÀïÖ±½Ó˵Ã÷³ýÁËÓÐcudnnʵÏֵIJ㣬ÆäËû²ã¶¼ÊDzÉÓõÚÒ»ÖÖ·½Ê½ÊµÏֵĴ´½¨º¯Êý£¬¶ø´øÓÐcudnnʵÏֵIJ㶼²ÉÓõĵڶþÖÖ·½Ê½ÊµÏֵĴ´½¨º¯Êý¡£

LayerµÄ³õʼ»¯

½éÉÜÍê´´½¨ÎÒÃÇ¿´¿´²ãÀïÃæµÄ¼¸¸öº¯Êý¶¼ÊÇʲôʱºò±»µ÷Óõġ£

¹Ø¼üº¯ÊýSetup´Ëº¯ÊýÔÚ֮ǰµÄÁ÷³ÌͼÖеÄNetInitʱºò±»µ÷Ó㬴úÂëÈçÏ£º

ÕâÑùÕû¸öLayer³õʼ»¯µÄ¹ý³ÌÖУ¬CheckBlobCounts±»×îÏȵ÷Óã¬È»ºó½ÓÏÂÀ´ÊÇLayerSetUp£¬ºóÃæ²ÅÊÇReshape£¬×îºó²ÅÊÇSetLossWeights¡£ÕâÑùLayer³õʼ»¯µÄÉúÃüÖÜÆÚ´ó¼Ò¾ÍÓÐÁËÁ˽⡣

LayerµÄÆäËûº¯ÊýµÄ½éÉÜ

LayerµÄForwardº¯ÊýºÍBackwardº¯ÊýÍê³ÉÁËÍøÂçµÄǰÏòºÍ·´Ïò´«µÝ£¬ÕâÁ½¸öº¯ÊýÔÚ×Ô¼ºÊµÏÖÐÂµÄ²ã±ØÐëҪʵÏÖ¡£ÆäÖÐBackward»áÐÞ¸ÄbottomÖÐblobµÄdiff_£¬ÕâÑù¾ÍÍê³ÉÁËÎó²îµÄ·½Ïò´«µ¼¡£

Protobuf½éÉÜ

CaffeÖеÄCaffe.protoÎļþ¸ºÔðÁËÕû¸öCaffeÍøÂçµÄ¹¹½¨£¬ÓÖ¸ºÔðÁËCaffemodelµÄ´æ´¢ºÍ¶ÁÈ¡¡£ÏÂÃæÓÃÒ»¸öÀý×Ó½éÉÜProtobufµÄ¹¤×÷·½Ê½£º

ÀûÓÃprotobuffer¹¤¾ß´æ´¢512ά¶ÈͼÏñÌØÕ÷£º

message ±àд£ºÐ½¨txtÎļþºó׺Ãû¸ÄΪproto,±àд×Ô¼ºµÄmessageÈçÏ£¬²¢·ÅÈë½âѹµÄprotobuffµÄÎļþ¼ÐÀï;

ÆäÖУ¬dwFaceFeatSize±íÊ¾ÌØÕ÷µãÊýÁ¿;pfFaceFeat±íʾÈËÁ³ÌØÕ÷¡£

´ò¿ªwindowsÃüÁî´°¿Ú(cmd.exe)¡ª->cd¿Õ¸ñ£¬°ÑprotobuffµÄÎļþ·¾¶¸´ÖÆÕ³Ìù½øÈ¥¡ª¡ª>enter;

ÊäÈëÖ¸Áîprotoc *.proto ¨Ccpp_out=. ¡ª¡ª¡ª>enter

¿ÉÒÔ¿´µ½Îļþ¼ÐÀïÃæÉú³É¡° .pb.h¡±ºÍ¡°.pb.cpp¡±Á½¸öÎļþ£¬ËµÃ÷³É¹¦ÁË

ÏÂÃæ¿ÉÒÔºÍ×Ô¼ºµÄ´úÂëÕûºÏÁË£º

н¨Äã×Ô¼ºµÄ¹¤³Ì£¬°Ñ¡° .pb.h¡±ºÍ¡°.pb.cpp¡±Á½¸öÎļþÌí¼Óµ½×Ô¼ºµÄ¹¤³ÌÀ²¢Ð´ÉÏ#include¡± *.pb.h¡±

°´ÕÕÅä¿âµÄ½Ì³Ì°Ñ¿âÅäÖÃϾͿÉÒÔÁË

VSÏÂProtobufµÄÅä¿â·½·¨£º

½â¾ö·½°¸¡ª->ÓÒ»÷¹¤³ÌÃû¡ª->ÊôÐÔ

(1)c/c++¡ª>³£¹æ¡ª>¸½¼Ó°üº¬Ä¿Â¼¡ª>

($your protobuffer include path)\protobuffer

(2)c/c++¡ª>Á´½ÓÆ÷¨C>³£¹æ¡ª>¸½¼Ó¿âĿ¼¨C>

($your protobuffer lib path)\protobuffer

(3) c/c++¡ª>Á´½ÓÆ÷¨C>ÊäÈ롪>¸½¼ÓÒÀÀµÏî¨C>

libprotobufd.lib;(´ødµÄΪdebugģʽ)

»òlibprotobuf.lib;(²»´ød,Ϊreleaseģʽ)

ʹÓÃprotobuf½øÐдò°üµÄ·½·¨ÈçÏ´úÂ룺

CaffeµÄÄ£ÐÍÐòÁл¯

BlobProtoÆäʵ¾ÍÊÇBlobÐòÁл¯³ÉProtoµÄÀ࣬CaffeÄ£ÐÍÎļþʹÓÃÁ˸ÃÀà¡£Netµ÷ÓÃÿ¸ö²ãµÄToproto·½·¨£¬Ã¿¸ö²ãµÄToproto·½·¨µ÷ÓÃÁËBlobÀàµÄToProto·½·¨£¬ÕâÑùÍêÕûµÄÄ£Ð;ͱ»¶¼ÐòÁл¯µ½protoÀïÃæÁË¡£×îºóÖ»Òª½«Õâ¸öproto¼Ì³ÐÓÚmessageÀàµÄ¶ÔÏóÐòÁл¯µ½Îļþ¾ÍÍê³ÉÁËÄ£ÐÍдÈëÎļþ¡£Caffe´ò°üÄ£Ð͵Äʱºò¾ÍÖ»ÊǼòµ¥µ÷ÓÃÁËWriteProtoToBinaryFileÕâ¸öº¯Êý£¬¶øÕâ¸öº¯ÊýÀïÃæµÄÄÚÈÝÈçÏ£º

Proto.txtµÄ¼òµ¥ËµÃ÷

CaffeÍøÂçµÄ¹¹½¨ºÍSolverµÄ²ÎÊý¶¨Òå¾ùÓÉ´ËÀàÐÍÎļþÍê³É¡£Net¹¹½¨¹ý³ÌÖе÷ÓÃReadProtoFromTextFile½«ËùÓеÄÍøÂç²ÎÊý¶ÁÈ롣Ȼºóµ÷ÓÃÉÏÃæµÄÁ÷³Ì½øÐÐÕû¸öcaffeÍøÂçµÄ¹¹½¨¡£Õâ¸öÎļþ¾ö¶¨ÁËÔõÑùʹÓôæÔÚcaffe modelÖеÄÿ¸öblobÊÇÓÃÀ´×öʲôµÄ£¬Èç¹ûûÓÐÁËÕâ¸öÎļþcaffeµÄÄ£ÐÍÎļþ½«ÎÞ·¨Ê¹Óã¬ÒòΪģÐÍÖÐÖ»´æ´¢Á˸÷ÖÖ¸÷ÑùµÄblobÊý¾Ý£¬ÀïÃæÖ»ÓÐfloatÖµ£¬¶øÔõÑùÇзÖÕâЩÊý¾ÝÊÇÓÉprototxtÎļþ¾ö¶¨µÄ¡£

CaffeµÄ¼Ü¹¹ÔÚ¿ò¼ÜÉϲÉÓÃÁË·´Éä»úÖÆÈ¥¶¯Ì¬´´½¨²ãÀ´¹¹½¨Net£¬Protobuf±¾ÖÊÉ϶¨ÒåÁËgraph£¬·´Éä»úÖÆÊÇÓɺêÅäºÏmap½á¹¹Ðγɵģ¬È»ºóʹÓù¤³§Ä£Ê½È¥ÊµÏÖ¸÷ÖÖ¸÷Ñù²ãµÄ´´½¨£¬µ±È»Çø±ðÓÚÒ»°ã¶¨ÒåÅäÖòÉÓÃxml»òÕßjson£¬¸ÃÏîÄ¿µÄд·¨²ÉÓÃÁËprotoÎļþ¶Ô×é¼þ½øÐÐ×é×°¡£

×ܽá

ÒÔÉÏΪCaffe´úÂë¼Ü¹¹µÄÒ»¸ö×ÜÌå½éÉÜ£¬Ï£ÍûÄܽè´Ë°ïÖúÉçÇøµÄС»ï°éÕÒµ½´ò¿ª¶¨ÖÆ»¯Caffe´óÃŵÄÔ¿³×¡£±¾ÎÄ×÷ÕßÏ£Íû½è´ËÅ×שÒýÓñ£¬Óë¸ü¶àÆÚÍûÁ˽âCaffeºÍÉî¶Èѧϰ¿ò¼Üµ×²ãʵÏÖµÄͬÐн»Á÷¡£

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

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

APPÍÆ¹ãÖ®ÇÉÓù¤¾ß½øÐÐÊý¾Ý·ÖÎö
Hadoop Hive»ù´¡sqlÓï·¨
Ó¦Óö༶»º´æÄ£Ê½Ö§³Åº£Á¿¶Á·þÎñ
HBase ³¬Ïêϸ½éÉÜ
HBase¼¼ÊõÏêϸ½éÉÜ
Spark¶¯Ì¬×ÊÔ´·ÖÅä

HadoopÓëSpark´óÊý¾Ý¼Ü¹¹
HadoopÔ­ÀíÓë¸ß¼¶Êµ¼ù
HadoopÔ­Àí¡¢Ó¦ÓÃÓëÓÅ»¯
´óÊý¾ÝÌåϵ¿ò¼ÜÓëÓ¦ÓÃ
´óÊý¾ÝµÄ¼¼ÊõÓëʵ¼ù
Spark´óÊý¾Ý´¦Àí¼¼Êõ

GE Çø¿éÁ´¼¼ÊõÓëʵÏÖÅàѵ
º½Ìì¿Æ¹¤Ä³×Ó¹«Ë¾ Nodejs¸ß¼¶Ó¦Óÿª·¢
ÖÐÊ¢Òæ»ª ׿Խ¹ÜÀíÕß±ØÐë¾ß±¸µÄÎåÏîÄÜÁ¦
ijÐÅÏ¢¼¼Êõ¹«Ë¾ PythonÅàѵ
ij²©²ÊITϵͳ³§ÉÌ Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À
ÖйúÓÊ´¢ÒøÐÐ ²âÊÔ³ÉÊì¶ÈÄ£Ðͼ¯³É(TMMI)
ÖÐÎïÔº ²úÆ·¾­ÀíÓë²úÆ·¹ÜÀí