Производительность gpu делегата, nnapi tenorflow lite практически одинакова на android мобильных - PullRequest
0 голосов
/ 29 января 2020

Я использую следующие коды для смены делегата на моем телефоне (G3226)

try {     
      if(delegateNum == 1){
        GpuDelegate delegate = new GpuDelegate();
        Interpreter.Options options = (new Interpreter.Options()).addDelegate(delegate);
        d.tfLite = new Interpreter(loadModelFile(assetManager, modelFilename), options);
      }else if(delegateNum == 2){
        NnApiDelegate delegate = new NnApiDelegate();
        Interpreter.Options options = (new Interpreter.Options()).addDelegate(delegate);
        d.tfLite = new Interpreter(loadModelFile(assetManager, modelFilename), options);
      }else{
        d.tfLite = new Interpreter(loadModelFile(assetManager, modelFilename));
      }      

    } catch (Exception e) {
      throw new RuntimeException(e);
    }

Но производительность почти одинакова, не уверен, что произойдет.

  • Телефон G3226
  • версии TFLite

    реализация 'org.tensorflow: tenorflow-lite: 0.0.0-nightly' реализация 'org.tensorflow: tenorflow-lite-gpu: 0.0.0-nightly 'реализация' org.tensorflow: tenorflow-lite-support: 0.0.0-nightly '

  • Ссылка на модель , это квантованная SSD-модель для обнаружения объектов (точность не это хорошо)

Возможные причины, по-моему:

  1. Эта модель слишком маленькая, недостаточно сложная для того, чтобы gpu или nnapi могли похвастаться
  2. gpu или nnapi на моем телефоне век
  3. мой телефон не поддерживает gpu или nnapi, поэтому они возвращаются к процессору

Если это 3, как я могу проверить поддержку моего телефона gpu или ннапи или нет? спасибо

1 Ответ

1 голос
/ 04 февраля 2020

Несколько вещей:

  1. Квантованная модель SSD, вероятно, устарела, пожалуйста, посмотрите эти для большей точности. Вам нужно будет преобразовать их с помощью этих инструкций , чтобы получить версии .tflite.

  2. Модели SSD имеют большой шаг постобработки (NMS), который не требует не ускоряйся. Таким образом, разница для моделей SSD обычно меньше, чем для более простых моделей, таких как Mobil eNet, используемая для классификации.

  3. NNAPI работает только на Android 8.1 или более поздней версии - это правда для вашего телефона? Кроме того, NNAPI может не ускоряться на всех архитектурах, поэтому в этом случае.

  4. Делегат GPU не поддерживает квантованные модели (пока).

...