¤º®e¤j¿û
¥»®Ñ¥Ñ²L¤J²`¦a¤¶²Ð¤F¦p¦ó±N²`«×¾Ç²ß§Þ³NÀ³¥Î¨ì²¾°ÊºÝ¹Bºâ»â°ì¡A®Ñ¤¤ºÉ¶qÁ×§Kù¦C¤½¦¡¡A¹Á¸Õ¥Î²LÅ㪺»y¨¥©M´X¦ó¹Ï§Î¥h¸ÑÄÀ¬ÛÃö¤º®e¡C¥»®Ñ²Ä1³¹®i¥Ü¤F¦b²¾°ÊºÝÀ³¥Î²`«×¾Ç²ß§Þ³NªºDemo¡AÀ°§UŪªÌ«Ø¥ßª½Æ[ªº»{ÃÑ¡F²Ä2³¹¦Ü²Ä4³¹Á¿z¤F¦p¦ó¦b²¾°ÊºÝ¶µ¥Ø¤¤À³¥Î²`«×¾Ç²ß§Þ³N¡F²Ä5³¹¦Ü²Ä8³¹ªºÃø«×²¤¤j¡A¥DnÁ¿z¦p¦ó²`¤J¦a½Õ¾ã®Ø¬[¡A¾A°t¨Ã©w»s¦Û¤vªº®Ø¬[¡C
¥»®Ñ¾A¦X²¾°ÊºÝ¬ãµo¤uµ{®v¾\Ū¡A¤]¾A¦X©Ò¦³¹ï²¾°ÊºÝ¹Bºâ»â°ì·P¿³½ìªºªB¤Í¾\Ū¡C
§@ªÌ¤¶²Ð
§õ¥Ã·|
§õ¥Ã·|¡A¦Ê«×App²¾°Ê¬ãµo³¡¸ê²`¤uµ{®v¡C2015¦~°_¦b¦Ê«×±q¨Æ¹Ï¹³·j¯Á©M»yµ·j¯Á«È¤áºÝ¬ãµo¤u§@¡A¥D«ù¤F¦hÓ«n³Ð·s¶µ¥Ø¡A¥]¬A¦Ê«×Lens¡B¹ê®É½Ķµ¥¡C¦P®Ét³d¶}·½²¾°ÊºÝ²`«×¾Ç²ß®Ø¬[Paddle-Liteªº¶}µo¡Aªø´Á±q¨Æ²¾°ÊºÝAI°ª©Ê¯àpºâÀu¤Æ¤u§@¡A¦b¦hºØ³nµwÅ饥x¤W°ª©Ê¯à¹B¦æ²`«×¾Ç²ß§Þ³N¡C¦b¤u§@¤§¾l¦³Åª¥v¡B®Ñªkµ¥·R¦n¡C
¥Ø¿ý
²Ä1³¹ ªì¿s²¾°ÊºÝ²`«×¾Ç²ß§Þ³NªºÀ³¥Î
1.1 ¥»®Ñ¥Ü¨Ò¥N½X²¤¶
1.1.1 ¦w¸Ë½sͦnªº¤å¥ó
1.1.2 ¦bDemoApp¤¤À³¥Î¯«¸gºô¸ô§Þ³N
1.2 ²¾°ÊºÝ¥DÅéÀË´ú©M¤ÀÃþ
1.3 ¦b½u¤W²£«~¤¤¥H¡u¶³+ºÝpºâ¡vªº¤è¦¡À³¥Î²`«×¾Ç²ß§Þ³N
1.4 ¦b²¾°ÊºÝÀ³¥Î²`«×¾Ç²ß§Þ³Nªº·~¬É®×¨Ò
1.4.1 ´Óª«ªá¥cÃѧO
1.4.2 ©_§®ªº·®æ¤Æ®ÄªG
1.4.3 µøÀW¥DÅéÀË´ú§Þ³N¦bApp¤¤ªºÀ³¥Î
1.5 ¦b²¾°ÊºÝÀ³¥Î²`«×¾Ç²ß§Þ³NªºÃøÂI
1.5.1 ¦b¦øªA¾¹ºÝ©M²¾°ÊºÝÀ³¥Î²`«×¾Ç²ß§Þ³NªºÃøÂI¹ï¤ñ
1.5.2 ¹ê²{AR¹ê®É½Ķ¥\¯à
1.6 ½s͹B¦æ²`«×¾Ç²ßApp
1.6.1 mobile-deep-learning¶µ¥ØÀô¹Ò²¤¶
1.6.2 mobile-deep-learning¶µ¥Ø¾ãÅé¥N½Xµ²ºc
1.6.3 mobile-deep-learning³q¥ÎÀô¹Ò¨Ì¿à
1.7 ¦biOS¥¥x¤W·f«Ø²`«×¾Ç²ß®Ø¬[
1.7.1 ¦biOS¥¥x¤W·f«Ømobile-deep-learning¶µ¥Ø
1.7.2 ¦bOSX¥¥x¤W½sĶmobile-deep-learning¶µ¥Ø
1.7.3 iOS¥¥x¤Wmobile-deep-learning¶µ¥ØªºDemo¥N½Xµ²ºc
1.8 ¦bAndroid¥¥x¤W·f«Ø²`«×¾Ç²ß®Ø¬[
1.8.1 Android¥¥x¤Wmobile-deep-learning¶µ¥ØªºÀô¹Ò¨Ì¿à
1.8.2 Android¥¥x¤Wmobile-deep-learning¶µ¥ØªºDemo¥N½Xµ²ºc
1.8.3 ¥ÎPaddle-Lite®Ø¬[½sĶ»P¶}µoAndroidÀ³¥Î
1.8.4 ¶}µo¤@Ó°ò©ó²¾°ÊºÝ²`«×¾Ç²ß®Ø¬[ªºAndroidApp
²Ä2³¹ ¥H´X¦ó¤è¦¡²z¸Ñ½u©Ê¥N¼Æ°ò¦ª¾ÃÑ
2.1 ½u©Ê¥N¼Æ°ò¦
2.1.1 ¼Ð·Ç¥±ª½¨¤§¤¼Ð¨t
2.1.2 §ïÅܧ¤¼Ð¨tªº°ò¦V¶q
2.2 ¦V¶qªº´X¦ó·N¸q
2.2.1 ¦V¶qªº¥[´î¹Bºâ
2.2.2 ¦V¶qªº¼Æ¼¹Bºâ
2.3 ½u©Ê²Õ¦Xªº´X¦ó·N¸q
2.4 ½u©ÊªÅ¶¡
2.5 ¯x°}©MÅÜ´«
2.6 ¯x°}¼ªk
2.7 ¦æ¦C¦¡
2.8 ¯x°}ªº°f
2.9 ¯´
2.10 ¹sªÅ¶¡
2.11 ÂI¿n©M¤e¿nªº´X¦óªí¥Ü»P§t¸q
2.11.1 ÂI¿nªº´X¦ó·N¸q
2.11.2 ¤e¿nªº´X¦ó·N¸q
2.12 ½u©Ê¥N¼Æªº¯S¼x·§©À
2.13 ©â¶H¦V¶qªÅ¶¡
²Ä3³¹ ¤°»ò¬O¾÷¾¹¾Ç²ß©M¨÷¿n¯«¸gºô¸ô
3.1 ²¾°ÊºÝ¾÷¾¹¾Ç²ßªº¥þ¹Lµ{
3.2 ¹w´ú¹Lµ{
3.3 ¼Æ¾Çªí¹F
3.3.1 ¹w´ú¹Lµ{¯A¤Îªº¼Æ¾Ç¤½¦¡
3.3.2 °V½m¹Lµ{¯A¤Îªº¼Æ¾Ç¤½¦¡
3.4 ¯«¸g¤¸©M¯«¸gºô¸ô
3.4.1 ¯«¸g¤¸
3.4.2 ¯«¸gºô¸ô
3.5 ¨÷¿n¯«¸gºô¸ô
3.6 ¹Ï¹³¨÷¿n®ÄªG
3.6.1 ±q¥þ§½¤F¸ÑµøÄ±¬ÛÃöªº¯«¸gºô¸ô
3.6.2 ¨÷¿n®Ö©M¯x°}¼ªkªºÃö«Y
3.6.3 ¦h³q¹D¨÷¿n®ÖªºÀ³¥Î
3.7 ¨÷¿n¦Zªº¹Ï¤ù®ÄªG
3.8 ¨÷¿n¬ÛÃöªº¨âÓ«n·§©À¡Gpadding©Mstride
3.8.1 Åý¨÷¿n®Ö¡u¥X¬É¡v¡Gpadding
3.8.2 Åý¨÷¿n®Ö¡u¸õÅD¡v¡Gstride
3.9 ¨÷¿n¦Zªº°ºû¾Þ§@¡G¦À¤Æ
3.10 ¨÷¿nªº«n©Ê
²Ä4³¹ ²¾°ÊºÝ±`¨£ºô¸ôµ²ºc
4.1 ¦´Áªº¨÷¿n¯«¸gºô¸ô
4.2 AlexNetºô¸ôµ²ºc
4.3 GoogLeNetºô¸ôµ²ºc
4.3.1 ¼Ò«¬Åé¿n°ÝÃD
4.3.2 pºâ¶q°ÝÃD
4.4 ¹Á¸Õ¦bApp¤¤¹B¦æGoogLeNet
4.4.1 ±N32¦ìfloat°Ñ¼ÆÂà¤Æ¬°8¦ìint°Ñ¼Æ¥H°§C¶Ç¿é¶q
4.4.2 ±NCPUª©¥»¦øªA¾¹ºÝ®Ø¬[²¾´Ó¨ì²¾°ÊºÝ
4.4.3 À³¥Î¦b²£«~¤¤ªº®ÄªG
4.5 »´¶q¤Æ¼Ò«¬SqueezeNet
4.5.1 SqueezeNetªºÀu¤Æµ¦²¤
4.5.2 fire¼Ò¶ô
4.5.3 SqueezeNetªº¥þ§½
4.6 »´¶q°ª©Ê¯àªºMobileNet
4.6.1 ¤°»ò¬O²`«×¥i¤ÀÂ÷¨÷¿n¡]DepthwiseSeparableConvolution¡^
4.6.2 MobileNetv1ºô¸ôµ²ºc
4.6.3 MobileNetv2ºô¸ôµ²ºc
4.7 ²¾°ÊºÝ¯«¸gºô¸ô¼Ò«¬ªºÀu¤Æ¤è¦V
²Ä5³¹ ARMCPU²Õ¦¨
5.1 ²{¥N¹q¸£»PARMCPU¬[ºcªº²{ª¬
5.1.1 ¶¾?¿Õ¨Ì°Ò¹q¸£ªº°ò¥»µ²ºc
5.1.2 ²¾°Êpºâ³]³Æªº¤À¤u
5.2 ²³æªºCPU¼Ò«¬
5.2.1 ¨ú«ü¹Lµ{
5.2.2 ¸Ñ½X¹Lµ{
5.2.3 °õ¦æ¹Lµ{
5.2.4 ¦^¼g¹Lµ{
5.2.5 ²Ó¤Æ¤À¤u¡G¬y¤ô½u§Þ³N
5.3 ·J½s«ü¥Oªì±´
5.3.1 ·J½s»y¨¥µ{§Çªº²Ä¤@¦æ
5.3.2 ³o¨Ç«ü¥O¬O¤°»ò
5.4 ·J½s«ü¥O·§ªp
5.4.1 ARMCPU®a±Ú
5.4.2 ARMv7-A³B²z¾¹¬[ºc
5.4.3 ARMv7·J½s«ü¥O¤¶²Ð
5.5 ARM«ü¥O¶°¬[ºc
5.6 ARM¤â¾÷´¹¤¸ªº²{ª¬»P®æ§½
²Ä6³¹ ¦sÀxª÷¦r¶ð»PARM·J½s
6.1 ARMCPUªº§¹¾ãµ²ºc
6.2 ¦sÀx³]³Æªºª÷¦r¶ðµ²ºc
6.3 ARM´¹¤¸ªº½w¦s³]pì²z
6.3.1 ½w¦sªº°ò¥»²z¸Ñ
6.3.2 ²³æªº½w¦s¬M®gµ²ºc¡Gª½±µ¬M®g
6.3.3 ÆF¬¡°ª®Äªº½w¦sµ²ºc¡G²Õ¬ÛÁp¬M®g
6.3.4 §Q¥Î¤@Ó²³æªº¤½¦¡Àu¤Æ³X¦s©Ê¯à
6.4 ARM·J½sª¾ÃÑ
6.4.1 ARM·J½s¼Æ¾ÚÃþ«¬©M±H¦s¾¹
6.4.2 ARM«ü¥O¶°
6.4.3 ARM·J½sªº¤º¦s¾Þ§@
6.5 NEON·J½s«ü¥O
6.5.1 NEON±H¦s¾¹»P«ü¥OÃþ«¬
6.5.2 NEON¦sÀx¾Þ§@«ü¥O
6.5.3 NEON³q¥Î¼Æ¾Ú¾Þ§@«ü¥O
6.5.4 NEON³q¥Îºâ³N¾Þ§@«ü¥O
6.5.5 NEON¼ªk«ü¥O
6.5.6 ¹B¥ÎNEON«ü¥Opºâ¯x°}¼ªk
²Ä7³¹ ²¾°ÊºÝCPU¹w´ú©Ê¯àÀu¤Æ
7.1 ¤u¨ã¤ÎÅé¿nÀu¤Æ
7.1.1 ¤u¨ã¨Ï¥Î
7.1.2 ¼Ò«¬Åé¿nÀu¤Æ
7.1.3 ²`«×¾Ç²ß®w¤å¥óÅé¿nÀu¤Æ
7.2 CPU°ª©Ê¯à³q¥ÎÀu¤Æ
7.2.1 ½sĶ¿ï¶µÀu¤Æ
7.2.2 ¤º¦s©Ê¯à©M¯Ó¹q¶qÀu¤Æ
7.2.3 ´`Àô®i¶}
7.2.4 ¨Ã¦æÀu¤Æ»P¬y¤ô½u«±Æ
7.3 ¨÷¿n©Ê¯àÀu¤Æ¤è¦¡
7.3.1 ·Æµ¡¨÷¿n©MGEMM©Ê¯à¹ï¤ñ
7.3.2 °ò©óWinogradºtºâªk¶i¦æ¨÷¿n©Ê¯àÀu¤Æ
7.3.3 §Ö³t³Å¨½¸ÅÜ´«
7.3.4 ¨÷¿npºâ°ò¥»Àu¤Æ
7.4 ¶}µo°ÝÃD»P¸gÅçÁ`µ²
²Ä8³¹ ²¾°ÊºÝGPU½sµ{¤Î²`«×¾Ç²ß®Ø¬[¸¨¦a¹ê½î
8.1 ²§ºcpºâ½sµ{®Ø¬[OpenCL
8.1.1 ¶}µo²¾°ÊºÝGPUÀ³¥Îµ{§Ç
8.1.2 OpenCL¤¤ªº¤@¨Ç·§©À
8.2 ²¾°ÊºÝµøÄ±·j¯Á¬ãµo
8.2.1 ªì¦¸±´¯Á²¾°ÊºÝAI¯à¤O
8.2.2 ¨ú®ø©ç·Ó«ö¶s¡A´£¤ÉµøÄ±·j¯ÁÅéÅç
8.2.3 ¨Ï¥Î²`«×¾Ç²ß§Þ³N´£³tµøÄ±·j¯Á
8.2.4 ³q¹LAI¤uµ{§Þ³N´£¤