Path: blob/master/site/pt-br/lite/android/delegates/gpu_task.md
38351 views
Delegado de aceleração de GPU com a Biblioteca Task
O uso de unidades de processamento gráfico (GPUs) para executar seus modelos de aprendizado de máquina (ML) pode melhorar drasticamente o desempenho e a experiência do usuário dos seus aplicativos com tecnologia de ML. Nos dispositivos Android, você pode ativar a execução dos seus modelos com a aceleração de GPU usando um delegado e uma das seguintes APIs:
Esta página descreve como ativar a aceleração de GPU para os modelos do TensorFlow Lite nos apps Android usando a Biblioteca Task. Para mais informações sobre como usar o delegado de GPU para o TensorFlow Lite, incluindo práticas recomendadas e técnicas avançadas, confira a página delegados de GPU.
Use a GPU com o TensorFlow Lite e o Google Play Services
As Task Libraries do TensorFlow Lite fornecem um conjunto de APIs específicas a tarefas para criar aplicativos de aprendizado de máquina. Esta seção descreve como usar o delegado acelerador de GPU com essas APIs usando o TensorFlow Lite com o Google Play Services.
O TensorFlow com o Google Play Services é o método recomendado para usar o TensorFlow Lite no Android. Se o seu aplicativo segmentar dispositivos que não executam o Google Play, confira a seção GPU com a Biblioteca Task e o TensorFlow Lite standalone.
Adicione as dependências do projeto
Para habilitar o acesso ao delegado de GPU com as Task Libraries do TensorFlow usando o Google Play Services, adicione com.google.android.gms:play-services-tflite-gpu às dependências do arquivo build.gradle do seu aplicativo:
Ative a aceleração de GPU
Em seguida, verifique de maneira assíncrona se o delegado de GPU está disponível para o dispositivo usando a classe TfLiteGpu e ative a opção de delegado de GPU para sua classe de modelo da API Task com a classe BaseOptions. Por exemplo, você pode configurar a GPU em ObjectDetector conforme mostrado nos códigos de exemplo abaixo:
Kotlin
val useGpuTask = TfLiteGpu.isGpuDelegateAvailable(context)
Task<Boolean> useGpuTask = TfLiteGpu.isGpuDelegateAvailable(context);
Task<ObjectDetectorOptions> optionsTask = useGpuTask.continueWith({ task ->
BaseOptions baseOptionsBuilder = BaseOptions.builder();
if (task.getResult()) {
baseOptionsBuilder.useGpu();
}
return ObjectDetectorOptions.builder()
.setBaseOptions(baseOptionsBuilder.build())
.setMaxResults(1)
.build()
});
Use a GPU com o TensorFlow Lite standalone {:#standalone}
Se o seu aplicativo segmentar dispositivos que não executam o Google Play, é possível empacotar o delegado de GPU com seu aplicativo e usá-lo com a versão standalone do TensorFlow Lite.
Adicione as dependências do projeto
Para habilitar o acesso ao delegado de GPU com as Task Libraries usando a versão standalone do TensorFlow Lite, adicione org.tensorflow:tensorflow-lite-gpu-delegate-plugin às dependências do arquivo build.gradle:
Ative a aceleração de GPU
Em seguida, ative a opção de delegado de GPU para sua classe de modelo da API Task com a classe BaseOptions. Por exemplo, você pode configurar a GPU em ObjectDetector conforme mostrado nos códigos de exemplo a seguir:
Kotlin
import org.tensorflow.lite.task.core.BaseOptions
import org.tensorflow.lite.task.gms.vision.detector.ObjectDetector import org.tensorflow.lite.task.core.BaseOptions
import org.tensorflow.lite.task.gms.vision.detector.ObjectDetector
BaseOptions baseOptions = BaseOptions.builder().useGpu().build();
ObjectDetectorOptions options =
ObjectDetectorOptions.builder()
.setBaseOptions(baseOptions)
.setMaxResults(1)
.build();
val objectDetector = ObjectDetector.createFromFileAndOptions(
context, model, options);