android — приложение застревает, пока мы создаем предиктор Caffe2

Приложение застревает, пока мы создаем предсказатель Caffe2!

инструменты

Я использую:
Android Studio 3.0.1

Сборка № AI-171.4443003, построена 9 ноября 2017 г.

JRE: 1.8.0_152-release-915-b01 amd64

JVM: 64-разрядная серверная виртуальная машина OpenJDK от JetBrains s.r.o

Linux 4.15.0-29-generic

андроид-NDK-r13b

Код на С ++

#define alog(...) __android_log_print(ANDROID_LOG_ERROR, "F8DEMO", __VA_ARGS__);
void loadToNetDef(AAssetManager* mgr, caffe2::NetDef* net, const char *filename) {
AAsset* asset = AAssetManager_open(mgr, filename, AASSET_MODE_BUFFER);
assert(asset != nullptr);
const void *data = AAsset_getBuffer(asset);
assert(data != nullptr);
off_t len = AAsset_getLength(asset);
assert(len != 0);
if (!net->ParseFromArray(data, len)) {
alog("Couldn't parse net from data.\n");
}
AAsset_close(asset);
}
void Java_initCaffe2(JNIEnv* env, jobject /* this */, jobject assetManager){
AAssetManager *mgr = AAssetManager_fromJava(env, assetManager);
alog("Attempting to load protobuf netdefs...");
loadToNetDef(mgr, &_initNet,   "init_net.pb");
loadToNetDef(mgr, &_predictNet,"predict_net.pb");
alog("done.");
alog("Instantiating predictor...");
_predictor = new caffe2::Predictor(_initNet, _predictNet);
alog("done.")
}

Проследить

08-07 17:10:00.308 897-897/com.example.augustinas.nc2 E/Gideon: Loaded module
08-07 17:10:00.315 897-1110/com.example.augustinas.nc2 E/F8DEMO: Attempting to load protobuf netdefs...
08-07 17:10:07.198 897-1110/com.example.augustinas.nc2 E/F8DEMO: Couldn't parse net from data.
08-07 17:10:07.287 897-1110/com.example.augustinas.nc2 E/F8DEMO: done.
08-07 17:10:07.287 897-1110/com.example.augustinas.nc2 E/F8DEMO: Instantiating predictor...
08-07 17:10:09.251 897-1110/com.example.augustinas.nc2 A/native: [F given_tensor_fill_op.h:27] Check failed: output->size() == values_.size() output size: 22937600 given size: 5348403
08-07 17:10:09.251 897-1110/com.example.augustinas.nc2 A/native: terminating.
08-07 17:10:09.251 897-1110/com.example.augustinas.nc2 A/libc: Fatal signal 6
(SIGABRT), code -6 in tid 1110 (AsyncTask #1)

Первоначальный источник:

Мы используем библиотеки и код, который показан здесь: https://github.com/caffe2/AICamera

Используемая модель

Мы используем собственную модель InceptionResNet. Размеры файлов init_net.pb и Forext_net.pb составляют 155,1 МБ и 6,1 КБ.

2

Решение

Попробуйте собрать Caffe2 на своей машине. Бинарники Caffe2 проекта AICamera немного устарели для новых обученных моделей. Я также столкнулся с похожими проблемами, но теперь у меня есть рабочий код с моими пользовательскими моделями.

Удачного кодирования 🙂

-1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]