如何在 Android phone GPU 上 运行 TFLite 网络?
How to run TFLite network on Android phone GPU?
我在对象检测中使用了 tensorflow 示例教程并且它有效,但是当我尝试添加 GpuDelegate 时它中断了:
try {
GpuDelegate delegate = new GpuDelegate();
Interpreter.Options options = (new Interpreter.Options()).addDelegate(delegate);
d.tfLite = new Interpreter(loadModelFile(assetManager, modelFilename),options);
} catch (Exception e) {
throw new RuntimeException(e);
}
错误 cannot find symbol class GpuDelegate
我对 Java 和 Android 很陌生,我猜这与进口有关?所以这是我的进口商品:
package org.tensorflow.lite.examples.detection.tflite;
import android.content.res.AssetFileDescriptor;
import android.content.res.AssetManager;
import android.graphics.Bitmap;
import android.graphics.RectF;
import android.os.Trace;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Vector;
import org.tensorflow.lite.Interpreter;
import org.tensorflow.lite.examples.detection.env.Logger;
并且在org.tensorflow.lite
中没有GpuDelegate
我能得到解决这个问题的指导吗?
编辑:
这是 build.gradle(:app)
中的依赖项
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar','*.aar'])
implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'androidx.coordinatorlayout:coordinatorlayout:1.0.0'
implementation 'com.google.android.material:material:1.0.0'
implementation('org.tensorflow:tensorflow-lite:0.0.0-nightly') { changing = true }
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'com.android.support.test:rules:1.0.2'
androidTestImplementation 'com.google.truth:truth:1.0.1'
}
要使用 GpuDelegate class 你必须在应用 build.gradle 文件中导入这些依赖项:
dependencies {
...
implementation 'org.tensorflow:tensorflow-lite:0.0.0-nightly'
implementation 'org.tensorflow:tensorflow-lite-gpu:0.0.0-nightly'
}
我在对象检测中使用了 tensorflow 示例教程并且它有效,但是当我尝试添加 GpuDelegate 时它中断了:
try {
GpuDelegate delegate = new GpuDelegate();
Interpreter.Options options = (new Interpreter.Options()).addDelegate(delegate);
d.tfLite = new Interpreter(loadModelFile(assetManager, modelFilename),options);
} catch (Exception e) {
throw new RuntimeException(e);
}
错误 cannot find symbol class GpuDelegate
我对 Java 和 Android 很陌生,我猜这与进口有关?所以这是我的进口商品:
package org.tensorflow.lite.examples.detection.tflite;
import android.content.res.AssetFileDescriptor;
import android.content.res.AssetManager;
import android.graphics.Bitmap;
import android.graphics.RectF;
import android.os.Trace;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Vector;
import org.tensorflow.lite.Interpreter;
import org.tensorflow.lite.examples.detection.env.Logger;
并且在org.tensorflow.lite
中没有GpuDelegate
我能得到解决这个问题的指导吗?
编辑: 这是 build.gradle(:app)
中的依赖项dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar','*.aar'])
implementation 'androidx.appcompat:appcompat:1.0.0'
implementation 'androidx.coordinatorlayout:coordinatorlayout:1.0.0'
implementation 'com.google.android.material:material:1.0.0'
implementation('org.tensorflow:tensorflow-lite:0.0.0-nightly') { changing = true }
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'com.android.support.test:rules:1.0.2'
androidTestImplementation 'com.google.truth:truth:1.0.1'
}
要使用 GpuDelegate class 你必须在应用 build.gradle 文件中导入这些依赖项:
dependencies {
...
implementation 'org.tensorflow:tensorflow-lite:0.0.0-nightly'
implementation 'org.tensorflow:tensorflow-lite-gpu:0.0.0-nightly'
}