Path: blob/master/site/ja/lite/android/acceleration_service.md
25118 views
Android çšã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ãµãŒãã¹ïŒããŒã¿çïŒ
ããŒã¿ç: Android çšã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ãµãŒãã¹ã¯çŸåšããŒã¿æ®µéã«ãããŸãã詳现ã«ã€ããŠã¯ããã®ããŒãžã®æ³šæäºé ãš [å©çšèŠçŽ] (#terms_privacy) ã»ã¯ã·ã§ã³ãã芧ãã ããã
ããŒããŠã§ã¢ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ã« GPUãNPUãDSP ãªã©ã®å°çšããã»ããµã䜿çšãããšãMLå¯Ÿå¿ Android ã¢ããªã±ãŒã·ã§ã³ã®æšè«ããã©ãŒãã³ã¹ïŒäžéšã®ã±ãŒã¹ã§ã¯æå€§ 10 åã®é床ïŒãšãŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãå€§å¹ ã«æ¹åãããŸãããã ãããŠãŒã¶ãŒã䜿çšããããŒããŠã§ã¢ãšãã©ã€ããŒã¯æ§ã ã§ããããããŠãŒã¶ãŒã®ããã€ã¹ã«æé©ãªããŒããŠã§ã¢ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³æ§æãéžæããã®ã¯å°é£ã§ãããŸããããã€ã¹ã§èª€ã£ãæ§æãæå¹ã«ããŠããŸããšãããŒããŠã§ã¢ã®çžæ§ã«ãããé«ãé å»¶ããäžéšã®ã±ãŒã¹ã§ã¯ã©ã³ã¿ã€ã ãšã©ãŒãŸãã¯ç²ŸåºŠã«é¢ããåé¡ãçºçãããŠãŒã¶ãŒãšã¯ã¹ããªãšã³ã¹ãæãªãããŠããŸãå¯èœæ§ããããŸãã
Android çšã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ãµãŒãã¹ã¯ãã©ã³ã¿ã€ã ãšã©ãŒã粟床åé¡ã®ãªã¹ã¯ãæå°éã«æããªãããç¹å®ã®ãŠãŒã¶ãŒããã€ã¹ãš .tflite
ã¢ãã«ã«æé©ãªããŒããŠã§ã¢ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³æ§æãéžæã§ããããã«ãã API ã§ãã
ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ãµãŒãã¹ã¯ãTensorFlow Lite ã¢ãã«ã§å éšæšè«ãã³ãããŒã¯ãå®è¡ããŠããŠãŒã¶ãŒããã€ã¹äžã§æ§ã ãªã¢ã¯ã»ã©ã¬ãŒã·ã§ã³æ§æãè©äŸ¡ããŸãããããã®ãã¹ãã®å®è¡ã¯ãã¢ãã«ã«ããããŸãããéåžžæ°ç§ã§å®äºããŸãããã³ãããŒã¯åãŠãŒã¶ãŒã®ããã€ã¹äžã§æšè«æéã®åã«å®è¡ãããã£ãã·ã¥ããã°ãæšè«äžã«äœ¿çšã§ããŸãããããã®ãã³ãããŒã¯ã¯ããã»ã¹å€ã§å®è¡ããããããã¢ããªãã¯ã©ãã·ã¥ãããªã¹ã¯ãæå°éã«æããããŸãã
ã¢ãã«ãããŒã¿ãµã³ãã«ãããã³æåŸ ãããçµæïŒããŽãŒã«ãã³ãå ¥åãšåºåïŒãæäŸããã°ãã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ãµãŒãã¹ãå éšã® TFLite æšè«ãã³ãããŒã¯ãå®è¡ããããŒããŠã§ã¢ã®æšå¥šãæç€ºããŸãã
ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ãµãŒãã¹ã¯ Android ã®ã«ã¹ã¿ã ML ã¹ã¿ãã¯ã®äžéšã§ãããGoogle Play Services ã® TensorFlow Lite ãšé£æºããŸãã
ãããžã§ã¯ãã«äŸåé¢ä¿ã远å ãã
ã¢ããªã±ãŒã·ã§ã³ã® build.gradle ãã¡ã€ã«ã«ã以äžã®äŸåé¢ä¿ã远å ããŸãã
Acceleration Service API 㯠Google Play Services ã§ TensorFlow Lite ãšé£æºããŸããPlay Services çµç±ã§æäŸããã TensorFlow Lite ããŸã 䜿çšããŠããªãå Žåã¯ãäŸåé¢ä¿ãæŽæ°ããå¿ èŠããããŸãã
Acceleration Service API ã®äœ¿ç𿹿³
ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ãµãŒãã¹ã䜿çšããã«ã¯ãã¢ãã«ã«å¯ŸããŠè©äŸ¡ãããã¢ã¯ã»ã©ã¬ãŒã·ã§ã³æ§æïŒOpenGL ã«ãã GPU ãªã©ïŒãäœæããããšããå§ããŸããæ¬¡ã«ãã¢ãã«ããµã³ãã«ããŒã¿ãããã³æåŸ
ãããã¢ãã«ã®åºåã«ãã£ãŠãæ€èšŒæ§æãäœæããŸããæåŸã«ãvalidateConfig()
ãåŒã³åºããŠãã¢ã¯ã»ã©ã¬ãŒã·ã§ã³æ§æãšæ€èšŒæ§æãæž¡ããŸãã
ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³æ§æãäœæãã
ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³æ§æã¯ãå®è¡æã«ããªã²ãŒãã«å€æãããããŒããŠã§ã¢æ§æã®è¡šçŸã§ããã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ãµãŒãã¹ã¯ããããã®æ§æãå éšçã«äœ¿çšããŠããã¹ãæšè«ãå®è¡ããŸãã
çŸæç¹ã§ã¯ãã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ãµãŒãã¹ã§ã¯ãGPU æ§æïŒå®è¡æã« GPU ããªã²ãŒãã«å€æãããïŒã GpuAccelerationConfig ãš CPU æšè«ïŒCpuAccelerationConfig ã䜿çšïŒã«ãã£ãŠè©äŸ¡ããããšãã§ããŸããä»åŸãä»ã®ããŒããŠã§ã¢ã«ãã¢ã¯ã»ã¹ã§ããããã«ããå€ãã®ããªã²ãŒãã®ãµããŒãã«åãçµãã§ããŸãã
GPU ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³æ§æ
以äžã®ããã«ãGPU ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³æ§æãäœæããŸãã
setEnableQuantizedInference()
ã§ãã¢ãã«ãéååã䜿çšããŠãããã©ãããæå®ããå¿
èŠããããŸãã
CPU ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³æ§æ
以äžã®ããã«ãCPU ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ãäœæããŸãã
setNumThreads()
ã¡ãœããã䜿ã£ãŠãCPU æšè«ã®è©äŸ¡ã«äœ¿çšããã¹ã¬ããæ°ãå®çŸ©ããŸãã
æ€èšŒæ§æãäœæãã
æ€èšŒæ§æã«ãã£ãŠãã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ãµãŒãã¹ãæšè«ãè©äŸ¡ããæ¹æ³ãå®çŸ©ã§ããŸãããã®æ§æã«ãã£ãŠã以äžã®æ å ±ãæž¡ããŸãã
å ¥åãµã³ãã«
æåŸ ãããåºå
ç²ŸåºŠã®æ€èšŒããžãã¯
ã¢ãã«ã®æé©ãªããã©ãŒãã³ã¹ãæåŸ ã§ããå ¥åãµã³ãã«ãå¿ ãæäŸããŠãã ããïŒããŽãŒã«ãã³ããµã³ãã«ãšããŠãç¥ãããŠããŸãïŒã
以äžã®ããã«ãCustomValidationConfig.Builder
ã§ ValidationConfig
ãäœæããŸãã
setBatchSize()
ã§ãŽãŒã«ãã³ãµã³ãã«ã®æ°ãæå®ããŸãããŽãŒã«ãã³ãµã³ãã«ã®å
¥åã¯ãsetGoldenInputs()
ã§æž¡ããŸããå
¥åã«æåŸ
ãããåºåã¯ãsetGoldenOutputs()
ã§æå®ããŸãã
æå€§æšè«æéã setInferenceTimeoutMillis()
ã§å®çŸ©ã§ããŸãïŒããã©ã«ã㯠5000 msïŒãæšéãå®çŸ©ããæéãããé·ãæããå Žåããã®æ§æã¯æåŠãããŸãã
ãªãã·ã§ã³ãšããŠã以äžã®ããã«ã«ã¹ã¿ã ã® AccuracyValidator
ãäœæããããšãã§ããŸãã
å¿ ããŠãŒã¹ã±ãŒã¹ã«åã£ãæ€èšŒããžãã¯ãæ€èšŒããããã«ããŠãã ããã
æ€èšŒããŒã¿ããã§ã«ã¢ãã«ã«åã蟌ãŸããŠããå Žåã¯ãEmbeddedValidationConfig
ã䜿çšã§ããããšã«æ³šæããŠãã ããã
æ€èšŒåºåãçæãã
ãŽãŒã«ãã³åºåã¯ãªãã·ã§ã³ã§ããããŽãŒã«ãã³å
¥åãæå®ããéããã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ãµãŒãã¹ã¯ãŽãŒã«ãã³åºåãå
éšã§çæã§ããŸãããŸã setGoldenConfig()
ãåŒã³åºããšããããã®ãŽãŒã«ãã³åºåã®çæã«äœ¿çšãããã¢ã¯ã»ã©ã¬ãŒã·ã§ã³æ§æãå®çŸ©ããããšãã§ããŸãã
ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³æ§æãæ€èšŒãã
ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³æ§æãšæ€èšŒæ§æãäœæããããã¢ãã«ã§ããããæ€èšŒã§ããŸãã
以äžãå®è¡ããŠãPlay Services ã©ã³ã¿ã€ã ã䜿çšãã TensorFlow Lite ãé©åã«åæåããGPU ããªã²ãŒããããã€ã¹ã§äœ¿çšã§ããããšã確èªããŠãã ããã
AccelerationService.create()
ãå®è¡ããŠãAccelerationService
ãã€ã³ã¹ã¿ã³ã¹åããŸãã
次㫠validateConfig()
ãåŒã³åºããšãã¢ãã«ã®ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³æ§æãæ€èšŒã§ããŸãã
validateConfigs()
ãåŒã³åºããŠããã©ã¡ãŒã¿ãŒãšã㊠Iterable<AccelerationConfig>
ãªããžã§ã¯ããæž¡ããšãè€æ°ã®æ§æãæ€èšŒããããšãã§ããŸãã
validateConfig()
ã¯ãåæã¿ã¹ã¯ãæå¹ã«ãã Google Play ãµãŒãã¹ã® Task Api ãã Task<
ValidatedAccelerationConfigResult
>
ãè¿ããŸãã
æ€èšŒåŒã³åºãããçµæãååŸããã«ã¯ãaddOnSuccessListener()
ã³ãŒã«ããã¯ã远å ããŸãã
ã€ã³ã¿ãŒããªã¿ãŒã§æ€èšŒæžã¿ã®æ§æã䜿çšãã
ã³ãŒã«ããã¯ã§è¿ããã ValidatedAccelerationConfigResult
ãæå¹ã§ããããšã確èªããããinterpreterOptions.setAccelerationConfig()
ãåŒã³åºããŠãã€ã³ã¿ãŒããªã¿ãŒã®ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³æ§æãšããŠæ€èšŒæžã¿ã®æ§æãèšå®ã§ããŸãã
æ§æã®ãã£ãã·ã¥
ã¢ãã«ã«æé©åãããã¢ã¯ã»ã©ã¬ãŒã·ã§ã³æ§æãããã€ã¹ã§å€æŽãããããšã¯ã»ãšãã©ãããŸããããããã£ãŠãæºè¶³ã®ããã¢ã¯ã»ã©ã¬ãŒã·ã§ã³æ§æãåŸããããã以éã®ã»ãã·ã§ã³ã§å¥ã®æ€èšŒãå®è¡ãã代ããã«ãã¢ããªã±ãŒã·ã§ã³ããã®æ§æååŸã㊠InterpreterOptions
ã®äœæã«äœ¿çšã§ããããã«ãããã€ã¹ã«ä¿åããããšããå§ãããŸããä¿åãšååŸã®ããã»ã¹ã¯ãValidatedAccelerationConfigResult
ã® serialize()
ãš deserialize()
ã¡ãœããã䜿ããšããç°¡åã«è¡ããŸãã
ãµã³ãã«ã¢ããªã±ãŒã·ã§ã³
ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ãµãŒãã¹ã®ãã®å Žã§ã®çµ±åãã¬ãã¥ãŒããã«ã¯ããµã³ãã«ã¢ããªãã芧ãã ããã
å¶éäºé
çŸåšã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ãµãŒãã¹ã«ã¯ä»¥äžã®å¶éããããŸãã
çŸæç¹ã§ã¯ãCPU ãš GPU ã¢ã¯ã»ã©ã¬ãŒã·ã§ã³æ§æã®ã¿ããµããŒããããŠããŸãã
Google Play ãµãŒãã¹ã® TensorFlow Lite ã®ã¿ããµããŒããããŠããããã³ãã«çã® TensorFlow Lite ã䜿çšããŠããå Žåã¯å©çšã§ããŸããã
ValidatedAccelerationConfigResult
ãªããžã§ã¯ãã§çŽæ¥BaseOptions
ãåæåã§ããªããããTensorFlow Lite Task ã©ã€ãã©ãªã¯ãµããŒããããŠããŸãããAcceleration Service SDK 㯠API ã¬ãã« 22 ããã³ãã以éã®ã¿ããµããŒãããŠããŸãã
泚æäºé {:#caveats}
ç¹ã«ããã® SDK ãæ¬çªã§äœ¿çšããäºå®ã§ããå Žåã¯ã以äžã®æ³šæäºé ããã確èªããŠãã ããã
Acceleration Service API ã®ããŒã¿çãçµäºããŠå®å®çããªãªãŒã¹ãããåã«ãæ°ãã SDK ãå ¬éããŸããããã¯çŸåšã®ããŒã¿çãšã¯å€å°ç°ãªãå¯èœæ§ããããŸããã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ãµãŒãã¹ã®äœ¿çšãç¶ç¶ããã«ã¯ã驿ã«ãã®æ°ãã SDK ã«ç§»è¡ããã¢ããªã®ã¢ããããŒããããã·ã¥ããå¿ èŠããããŸããå®å®çããªãªãŒã¹ãããåŸãããŒã¿çã® SDK ãš Google Play ãµãŒãã¹ã®äºææ§ãç¡ããªãå¯èœæ§ãããããããããè¡ããªãå Žåã«ã¢ããªãåäœããªããªãå¯èœæ§ããããŸãã
Acceleration Service API å ã®ç¹å®ã®æ©èœãŸãã¯å š API ãäžè¬ã«å©çšã§ããããã«ãªããšããä¿èšŒã¯ãããŸãããç¡æéã«ããŒã¿çã®ãŸãŸã«ãªãå¯èœæ§ãããµãŒãã¹çµäºããŸãã¯ä»ã®æ©èœãšåãããŠç¹å®ã®éçºè ãªãŒãã£ãšã³ã¹ã察象ãšããããã±ãŒãžã«å«ãŸããå¯èœæ§ããããŸããAcceleration Service API ãŸã㯠API èªäœãæçµçã«äžè¬ã«æäŸãããå¯èœæ§ã¯ãããŸããããã®ã¹ã±ãžã¥ãŒã«ã¯ãŸã確å®ããŠããŸããã
èŠçŽãšãã©ã€ãã·ãŒ {:#terms_privacy}
å©çšèŠçŽ
Acceleration Service API ã®å©çšã¯ãGoogle API å©çšèŠçŽã®å¯Ÿè±¡ã§ãã
ãŸããAcceleration Service API ã¯çŸåšããŒã¿çã§ãããããããã䜿çšããããšã§ãäžèšã®ã泚æäºé
ãã»ã¯ã·ã§ã³ã«èšèŒãããæœåšçãªèª²é¡ãçè§£ããã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ãµãŒãã¹ãå¿
ãããæå®ã®ãšããã«åäœããªãå¯èœæ§ãããããšã«åæãããã®ãšããŸãã
ãã©ã€ãã·ãŒ
Acceleration Service API ã䜿çšããéãå
¥åããŒã¿ïŒç»åãåç»ãããã¹ããªã©ïŒã®åŠçã¯å®å
šã«ããã€ã¹äžã§è¡ãããã¢ã¯ã»ã©ã¬ãŒã·ã§ã³ãµãŒãã¹ã Google ãµãŒããŒã«ããŒã¿ãéä¿¡ããããšã¯ãããŸããããããã£ãŠããã® API ã䜿çšããŠãããã€ã¹ãã転éãããã¹ãã§ã¯ãªãå
¥åããŒã¿ãåŠçããããšãã§ããŸãã
Acceleration Service API ã¯ããã°ä¿®æ£ãã¢ãã«ã®æŽæ°ãããã³ããŒããŠã§ã¢ã¢ã¯ã»ã©ã¬ãŒã¿ã®äºææ§ã«é¢ããæŽæ°æ
å ±ãªã©ãåä¿¡ããããã«ãGoogle ãµãŒããŒã«æ¥ç¶ããããšããããŸããAcceleration Service API ã¯ãŸãããã©ã€ãã·ãŒããªã·ãŒã«è©³ãã説æãããŠãããšãããããªãã®ã¢ããªã«ããã API ã®ããã©ãŒãã³ã¹ãšäœ¿çšç¶æ³ã«é¢ããææšã Google ã«éä¿¡ããŸããGoogle ã¯ãã®ææšããŒã¿ã䜿çšããŠããã©ãŒãã³ã¹ã枬å®ããAPI ã®ãããã°ãä¿å®ãããã³æ¹åãè¡ãã誀䜿çšãäžæ£äœ¿çšãæ€åºããŸãã
é©çšæ³ã§å®ããããŠãããšãããããªãã«ã¯ãã¢ããªã®ãŠãŒã¶ãŒã«å¯ŸããGoogle ã«ãã Acceleration Service ææšã®åŠçã«ã€ããŠèª¬æãã矩åããããŸãã
Google ãåéããããŒã¿ã«ã¯ã以äžã®é
ç®ãå«ãŸããŸãã
ããã€ã¹æ å ±ïŒã¡ãŒã«ãŒãã¢ãã«ãOS ããŒãžã§ã³ããã«ããªã©ïŒãšäœ¿çšå¯èœãª ML ããŒããŠã§ã¢ã¢ã¯ã»ã©ã¬ãŒã¿ïŒGPU ããã³ DSPïŒã蚺æããã³äœ¿çšç¶æ³åæã§äœ¿çšãããŸãã
ã¢ããªæ å ±ïŒããã±ãŒãžå / ãã³ãã« IDãã¢ããªããŒãžã§ã³ïŒã蚺æããã³äœ¿çšç¶æ³åæã§äœ¿çšãããŸãã
API æ§æïŒç»åã®åœ¢åŒãè§£å床ãªã©ïŒã蚺æããã³äœ¿çšç¶æ³åæã§äœ¿çšãããŸãã
ã€ãã³ãã¿ã€ãïŒåæåãã¢ãã«ã®ããŠã³ããŒããæŽæ°ãå®è¡ãæ€åºãªã©ïŒã蚺æããã³äœ¿çšç¶æ³åæã§äœ¿çšãããŸãã
ãšã©ãŒã³ãŒãã蚺æã§äœ¿çšãããŸãã
ããã©ãŒãã³ã¹ææšã蚺æã§äœ¿çšãããŸãã
ãŠãŒã¶ãŒãŸãã¯ç©çããã€ã¹ãäžæã«èå¥ããªããã€ã³ã¹ããŒã«åäœã®èå¥åããªã¢ãŒãæ§æã®æäœãšäœ¿çšç¶æ³åæã§äœ¿çšãããŸãã
ãããã¯ãŒã¯ãªã¯ãšã¹ãéä¿¡è IP ã¢ãã¬ã¹ããªã¢ãŒãæ§æã®èšºæã«äœ¿çšãããŸããåéããã IP ã¢ãã¬ã¹ã¯äžæçã«ä¿æãããŸãã
ãµããŒããšãã£ãŒãããã¯
TensorFlow 課é¡ãã©ãã«ãŒã䜿çšãããšããã£ãŒãããã¯ãæåºãããµããŒããåããããšãã§ããŸããã䜿çšããŠãåé¡ã®å ±åãšãµããŒããªã¯ãšã¹ãã«ã¯ãGoogle Play ãµãŒãã¹ã® TensorFlow Lite çšã®èª²é¡ãã³ãã¬ãŒãããå©çšãã ããã