Я не могу найти, как избавиться/решить следующие ошибки, возникающие при загрузке модели нейронной сети с использованием метода DL4J restoreMultiLayerNetwork с использованием Android API >= 24:
Ошибки возникают при вызове следующей строки в методе restoreMultiLayerNetwork:
params = Nd4j.read(ins2);
с
InputStream ins2 = getResources().openRawResource(getResources().getIdentifier("coefficients", "raw", getPackageName()));
а также
«coefficients.bin» — это файл коэффициентов, созданный описанным ниже методом из DL4J при экспорте нейронной сети DL4J:
ModelSerializer.writeModel(model, locationToSave, saveUpdater);
Ошибки: библиотеки недоступны для "classloader-namespace"
E/компоновщик: библиотека "/vendor/lib64/libcutils.so" ("/vendor/lib64/libcutils.so") необходима или удалена "/data/app/com.arai.arai-1/lib/arm64/libjnind4jcpu .so" недоступен для пространства имен: [name="classloader-namespace", ld_library_paths="", default_library_paths="/data/app/com.arai.arai-1/lib/arm64:/system/fake-libs64 :/data/app/com.arai.arai-1/base.apk!/lib/arm64-v8a:/data/app/com.arai.arai-1/split_lib_dependencies_apk.apk!/lib/arm64-v8a:/ data/app/com.arai.arai-1/split_lib_slice_0_apk.apk!/lib/arm64-v8a:/data/app/com.arai.arai-1/split_lib_slice
apk.apk!/lib/arm64-v8a:/data/ app/com.arai.arai-1/split_lib_sliceparams = Nd4j.read(ins2);
apk.apk!/lib/arm64-v8a:/data/app/com.arai.arai-1/split_lib_sliceInputStream ins2 = getResources().openRawResource(getResources().getIdentifier("coefficients", "raw", getPackageName()));
apk.apk!/lib/arm64-v8a:/data/app/ com.arai.arai-1/split_lib_sliceModelSerializer.writeModel(model, locationToSave, saveUpdater);
apk.apk!/lib/arm64-v8a:/data/app/com.arai.arai-1/split_lib_slice_5_apk.apk!/lib/arm64-v8a:/data/app/com. arai.arai-1/split_lib_slice_6_apk.apk!/lib/arm64-v8a:/data/app/com.arai.arai-1/split_lib_slice_7_apk.apk!/lib/arm64-v8a:/data/app/com.arai. араи-1/split_lib_slice_8_apk.apk!android { compileSdkVersion 26 buildToolsVersion "26.0.1" defaultConfig { applicationId "com.arai.arai" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" multiDexEnabled true javaCompileOptions { annotationProcessorOptions { includeCompileClasspath false } } buildTypes { release { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } buildscript { configurations.all { resolutionStrategy { force 'net.sf.proguard:proguard-gradle:5.3.2' } } } packagingOptions { exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/DEPENDENCIES.txt' exclude 'META-INF/LICENSE' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/license.txt' exclude 'META-INF/NOTICE' exclude 'META-INF/NOTICE.txt' exclude 'META-INF/notice.txt' exclude 'META-INF/INDEX.LIST' } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:27.1.0' compile 'com.mcxiaoke.volley:library-aar:1.0.0' compile 'com.android.support:design:27.1.0' compile (group: 'org.deeplearning4j', name: 'deeplearning4j-core', version: '1.0.0-beta2') { exclude group: 'org.bytedeco.javacpp-presets', module: 'opencv-platform' exclude group: 'org.bytedeco.javacpp-presets', module: 'leptonica-platform' exclude group: 'org.bytedeco.javacpp-presets', module: 'hdf5-platform' } compile group: 'org.nd4j', name: 'nd4j-native', version: '1.0.0-beta2' compile group: 'org.nd4j', name: 'nd4j-native', version: '1.0.0-beta2', classifier: "android-arm" compile group: 'org.nd4j', name: 'nd4j-native', version: '1.0.0-beta2', classifier: "android-arm64" compile group: 'org.nd4j', name: 'nd4j-native', version: '1.0.0-beta2', classifier: "android-x86" compile group: 'org.nd4j', name: 'nd4j-native', version: '1.0.0-beta2', classifier: "android-x86_64" compile group: 'org.bytedeco.javacpp-presets', name: 'openblas', version: '0.3.0-1.4.2' compile group: 'org.bytedeco.javacpp-presets', name: 'openblas', version: '0.3.0-1.4.2', classifier: "android-arm" compile group: 'org.bytedeco.javacpp-presets', name: 'openblas', version: '0.3.0-1.4.2', classifier: "android-arm64" compile group: 'org.bytedeco.javacpp-presets', name: 'openblas', version: '0.3.0-1.4.2', classifier: "android-x86" compile group: 'org.bytedeco.javacpp-presets', name: 'openblas', version: '0.3.0-1.4.2', classifier: "android-x86_64" compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '3.4.2-1.4.2' compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '3.4.2-1.4.2', classifier: "android-arm" compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '3.4.2-1.4.2', classifier: "android-arm64" compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '3.4.2-1.4.2', classifier: "android-x86" compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '3.4.2-1.4.2', classifier: "android-x86_64" compile group: 'org.bytedeco.javacpp-presets', name: 'leptonica', version: '1.76.0-1.4.2' compile group: 'org.bytedeco.javacpp-presets', name: 'leptonica', version: '1.76.0-1.4.2', classifier: "android-arm" compile group: 'org.bytedeco.javacpp-presets', name: 'leptonica', version: '1.76.0-1.4.2', classifier: "android-arm64" compile group: 'org.bytedeco.javacpp-presets', name: 'leptonica', version: '1.76.0-1.4.2', classifier: "android-x86" compile group: 'org.bytedeco.javacpp-presets', name: 'leptonica', version: '1.76.0-1.4.2', classifier: "android-x86_64" implementation 'com.google.code.gson:gson:2.8.2' annotationProcessor 'org.projectlombok:lombok:1.16.16' implementation 'com.google.code.findbugs:annotations:3.0.1', { exclude module: 'jsr305' exclude module: 'jcip-annotations' } //This corrects for a junit version conflict. configurations.all { resolutionStrategy.force 'junit:junit:4.12' } }}
библиотека "/vendor/lib64/libutils.so" ("/vendor/lib64/libutils.so") необходима или удалена "/data/app/com.arai.arai-1/lib/arm64/libjnind4jcpu.so" недоступно для пространства имен: [name="classloader-namespace", ld_library_paths="", default_library_paths="/data/app/com.arai.arai-1/lib/arm64:/system/fake-libs64:/data/ app/com.arai.arai-1/base.apk!/lib/arm64-v8a:/data/app/com.arai.arai-1/split_lib_dependencies_apk.apk!/lib/arm64-v8a:/data/app/ com.arai.arai-1/split_lib_slice_0_apk.apk!/lib/arm64-v8a:/data/app/com.arai.arai-1/split_lib_slice
apk.apk!/lib/arm64-v8a:/data/app/com. arai.arai-1/split_lib_sliceparams = Nd4j.read(ins2);
apk.apk!/lib/arm64-v8a:/data/app/com.arai.arai-1/split_lib_sliceInputStream ins2 = getResources().openRawResource(getResources().getIdentifier("coefficients", "raw", getPackageName()));
apk.apk!/lib/arm64-v8a:/data/app/com.arai. arai-1/split_lib_sliceModelSerializer.writeModel(model, locationToSave, saveUpdater);
apk.apk!/lib/arm64-v8a:/data/app/com.arai.arai-1/split_lib_slice_5_apk.apk!/lib/arm64-v8a:/data/app/com.arai.arai- 1/split_lib_slice_6_apk.apk!/lib/arm64-v8a:/data/app/com.arai.arai-1/split_lib_slice_7_apk.apk!/lib/arm64-v8a:/data/app/com.arai.arai -1/split_lib_slice_8_apk.apk!/landroid { compileSdkVersion 26 buildToolsVersion "26.0.1" defaultConfig { applicationId "com.arai.arai" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" multiDexEnabled true javaCompileOptions { annotationProcessorOptions { includeCompileClasspath false } } buildTypes { release { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } buildscript { configurations.all { resolutionStrategy { force 'net.sf.proguard:proguard-gradle:5.3.2' } } } packagingOptions { exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/DEPENDENCIES.txt' exclude 'META-INF/LICENSE' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/license.txt' exclude 'META-INF/NOTICE' exclude 'META-INF/NOTICE.txt' exclude 'META-INF/notice.txt' exclude 'META-INF/INDEX.LIST' } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:27.1.0' compile 'com.mcxiaoke.volley:library-aar:1.0.0' compile 'com.android.support:design:27.1.0' compile (group: 'org.deeplearning4j', name: 'deeplearning4j-core', version: '1.0.0-beta2') { exclude group: 'org.bytedeco.javacpp-presets', module: 'opencv-platform' exclude group: 'org.bytedeco.javacpp-presets', module: 'leptonica-platform' exclude group: 'org.bytedeco.javacpp-presets', module: 'hdf5-platform' } compile group: 'org.nd4j', name: 'nd4j-native', version: '1.0.0-beta2' compile group: 'org.nd4j', name: 'nd4j-native', version: '1.0.0-beta2', classifier: "android-arm" compile group: 'org.nd4j', name: 'nd4j-native', version: '1.0.0-beta2', classifier: "android-arm64" compile group: 'org.nd4j', name: 'nd4j-native', version: '1.0.0-beta2', classifier: "android-x86" compile group: 'org.nd4j', name: 'nd4j-native', version: '1.0.0-beta2', classifier: "android-x86_64" compile group: 'org.bytedeco.javacpp-presets', name: 'openblas', version: '0.3.0-1.4.2' compile group: 'org.bytedeco.javacpp-presets', name: 'openblas', version: '0.3.0-1.4.2', classifier: "android-arm" compile group: 'org.bytedeco.javacpp-presets', name: 'openblas', version: '0.3.0-1.4.2', classifier: "android-arm64" compile group: 'org.bytedeco.javacpp-presets', name: 'openblas', version: '0.3.0-1.4.2', classifier: "android-x86" compile group: 'org.bytedeco.javacpp-presets', name: 'openblas', version: '0.3.0-1.4.2', classifier: "android-x86_64" compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '3.4.2-1.4.2' compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '3.4.2-1.4.2', classifier: "android-arm" compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '3.4.2-1.4.2', classifier: "android-arm64" compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '3.4.2-1.4.2', classifier: "android-x86" compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '3.4.2-1.4.2', classifier: "android-x86_64" compile group: 'org.bytedeco.javacpp-presets', name: 'leptonica', version: '1.76.0-1.4.2' compile group: 'org.bytedeco.javacpp-presets', name: 'leptonica', version: '1.76.0-1.4.2', classifier: "android-arm" compile group: 'org.bytedeco.javacpp-presets', name: 'leptonica', version: '1.76.0-1.4.2', classifier: "android-arm64" compile group: 'org.bytedeco.javacpp-presets', name: 'leptonica', version: '1.76.0-1.4.2', classifier: "android-x86" compile group: 'org.bytedeco.javacpp-presets', name: 'leptonica', version: '1.76.0-1.4.2', classifier: "android-x86_64" implementation 'com.google.code.gson:gson:2.8.2' annotationProcessor 'org.projectlombok:lombok:1.16.16' implementation 'com.google.code.findbugs:annotations:3.0.1', { exclude module: 'jsr305' exclude module: 'jcip-annotations' } //This corrects for a junit version conflict. configurations.all { resolutionStrategy.force 'junit:junit:4.12' } }}
W/компоновщик: библиотека "/system/lib64/libbinder.so" ("/system/lib64/libbinder.so") необходима или удалена "/data/app/com.arai.arai-1/lib/arm64/libjnind4jcpu .so» недоступен для пространства имен «classloader-namespace» — доступ временно предоставляется в качестве обходного пути для http://b/26394120, обратите внимание, что доступ будет удален в будущих версиях Android.
E/linker: библиотека "/vendor/lib64/libnativeloader.so" ("/vendor/lib64/libnativeloader.so") необходима или удалена "/data/app/com.arai.arai-1/lib/arm64/libjnind4jcpu .so" недоступен для пространства имен: [name="classloader-namespace", ld_library_paths="", default_library_paths="/data/app/com.arai.arai-1/lib/arm64:/system/fake-libs64 :/data/app/com.arai.arai-1/base.apk!/lib/arm64-v8a:/data/app/com.arai.arai-1/split_lib_dependencies_apk.apk!/lib/arm64-v8a:/ data/app/com.arai.arai-1/split_lib_slice_0_apk.apk!/lib/arm64-v8a:/data/app/com.arai.arai-1/split_lib_slice
apk.apk!/lib/arm64-v8a:/data/ app/com.arai.arai-1/split_lib_sliceparams = Nd4j.read(ins2);
apk.apk!/lib/arm64-v8a:/data/app/com.arai.arai-1/split_lib_sliceInputStream ins2 = getResources().openRawResource(getResources().getIdentifier("coefficients", "raw", getPackageName()));
apk.apk!/lib/arm64-v8a:/data/app/ com.arai.arai-1/split_lib_sliceModelSerializer.writeModel(model, locationToSave, saveUpdater);
apk.apk!/lib/arm64-v8a:/data/app/com.arai.arai-1/split_lib_slice_5_apk.apk!/lib/arm64-v8a:/data/app/com. arai.arai-1/split_lib_slice_6_apk.apk!/lib/arm64-v8a:/data/app/com.arai.arai-1/split_lib_slice_7_apk.apk!/lib/arm64 -v8a:/data/app/com.arai.arai-1/split_lib_slicandroid { compileSdkVersion 26 buildToolsVersion "26.0.1" defaultConfig { applicationId "com.arai.arai" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" multiDexEnabled true javaCompileOptions { annotationProcessorOptions { includeCompileClasspath false } } buildTypes { release { minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } buildscript { configurations.all { resolutionStrategy { force 'net.sf.proguard:proguard-gradle:5.3.2' } } } packagingOptions { exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/DEPENDENCIES.txt' exclude 'META-INF/LICENSE' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/license.txt' exclude 'META-INF/NOTICE' exclude 'META-INF/NOTICE.txt' exclude 'META-INF/notice.txt' exclude 'META-INF/INDEX.LIST' } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:27.1.0' compile 'com.mcxiaoke.volley:library-aar:1.0.0' compile 'com.android.support:design:27.1.0' compile (group: 'org.deeplearning4j', name: 'deeplearning4j-core', version: '1.0.0-beta2') { exclude group: 'org.bytedeco.javacpp-presets', module: 'opencv-platform' exclude group: 'org.bytedeco.javacpp-presets', module: 'leptonica-platform' exclude group: 'org.bytedeco.javacpp-presets', module: 'hdf5-platform' } compile group: 'org.nd4j', name: 'nd4j-native', version: '1.0.0-beta2' compile group: 'org.nd4j', name: 'nd4j-native', version: '1.0.0-beta2', classifier: "android-arm" compile group: 'org.nd4j', name: 'nd4j-native', version: '1.0.0-beta2', classifier: "android-arm64" compile group: 'org.nd4j', name: 'nd4j-native', version: '1.0.0-beta2', classifier: "android-x86" compile group: 'org.nd4j', name: 'nd4j-native', version: '1.0.0-beta2', classifier: "android-x86_64" compile group: 'org.bytedeco.javacpp-presets', name: 'openblas', version: '0.3.0-1.4.2' compile group: 'org.bytedeco.javacpp-presets', name: 'openblas', version: '0.3.0-1.4.2', classifier: "android-arm" compile group: 'org.bytedeco.javacpp-presets', name: 'openblas', version: '0.3.0-1.4.2', classifier: "android-arm64" compile group: 'org.bytedeco.javacpp-presets', name: 'openblas', version: '0.3.0-1.4.2', classifier: "android-x86" compile group: 'org.bytedeco.javacpp-presets', name: 'openblas', version: '0.3.0-1.4.2', classifier: "android-x86_64" compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '3.4.2-1.4.2' compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '3.4.2-1.4.2', classifier: "android-arm" compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '3.4.2-1.4.2', classifier: "android-arm64" compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '3.4.2-1.4.2', classifier: "android-x86" compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '3.4.2-1.4.2', classifier: "android-x86_64" compile group: 'org.bytedeco.javacpp-presets', name: 'leptonica', version: '1.76.0-1.4.2' compile group: 'org.bytedeco.javacpp-presets', name: 'leptonica', version: '1.76.0-1.4.2', classifier: "android-arm" compile group: 'org.bytedeco.javacpp-presets', name: 'leptonica', version: '1.76.0-1.4.2', classifier: "android-arm64" compile group: 'org.bytedeco.javacpp-presets', name: 'leptonica', version: '1.76.0-1.4.2', classifier: "android-x86" compile group: 'org.bytedeco.javacpp-presets', name: 'leptonica', version: '1.76.0-1.4.2', classifier: "android-x86_64" implementation 'com.google.code.gson:gson:2.8.2' annotationProcessor 'org.projectlombok:lombok:1.16.16' implementation 'com.google.code.findbugs:annotations:3.0.1', { exclude module: 'jsr305' exclude module: 'jcip-annotations' } //This corrects for a junit version conflict. configurations.all { resolutionStrategy.force 'junit:junit:4.12' } }}
W/linker: библиотека "/system/lib64/libandroid_runtime.so" ("/system/lib64/libandroid_runtime.so") необходима или удалена "/data/app/com.arai.arai-1/lib/arm64/libjnind4jcpu .so» недоступен для пространства имен «classloader-namespace» — доступ временно предоставляется в качестве обходного пути для http://b/26394120, обратите внимание, что доступ будет удален в будущих версиях Android.
Версия Android: API >= 24
Извлечение из build.gradle, где установлены зависимости ND4J:
android {
compileSdkVersion 26
buildToolsVersion "26.0.1"
defaultConfig {
applicationId "com.arai.arai"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
multiDexEnabled true
javaCompileOptions {
annotationProcessorOptions {
includeCompileClasspath false
}
}
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
buildscript {
configurations.all {
resolutionStrategy {
force 'net.sf.proguard:proguard-gradle:5.3.2'
}
}
}
packagingOptions {
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/DEPENDENCIES.txt'
exclude 'META-INF/LICENSE'
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/license.txt'
exclude 'META-INF/NOTICE'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/notice.txt'
exclude 'META-INF/INDEX.LIST'
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:27.1.0'
compile 'com.mcxiaoke.volley:library-aar:1.0.0'
compile 'com.android.support:design:27.1.0'
compile (group: 'org.deeplearning4j', name: 'deeplearning4j-core', version: '1.0.0-beta2') {
exclude group: 'org.bytedeco.javacpp-presets', module: 'opencv-platform'
exclude group: 'org.bytedeco.javacpp-presets', module: 'leptonica-platform'
exclude group: 'org.bytedeco.javacpp-presets', module: 'hdf5-platform'
}
compile group: 'org.nd4j', name: 'nd4j-native', version: '1.0.0-beta2'
compile group: 'org.nd4j', name: 'nd4j-native', version: '1.0.0-beta2', classifier: "android-arm"
compile group: 'org.nd4j', name: 'nd4j-native', version: '1.0.0-beta2', classifier: "android-arm64"
compile group: 'org.nd4j', name: 'nd4j-native', version: '1.0.0-beta2', classifier: "android-x86"
compile group: 'org.nd4j', name: 'nd4j-native', version: '1.0.0-beta2', classifier: "android-x86_64"
compile group: 'org.bytedeco.javacpp-presets', name: 'openblas', version: '0.3.0-1.4.2'
compile group: 'org.bytedeco.javacpp-presets', name: 'openblas', version: '0.3.0-1.4.2', classifier: "android-arm"
compile group: 'org.bytedeco.javacpp-presets', name: 'openblas', version: '0.3.0-1.4.2', classifier: "android-arm64"
compile group: 'org.bytedeco.javacpp-presets', name: 'openblas', version: '0.3.0-1.4.2', classifier: "android-x86"
compile group: 'org.bytedeco.javacpp-presets', name: 'openblas', version: '0.3.0-1.4.2', classifier: "android-x86_64"
compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '3.4.2-1.4.2'
compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '3.4.2-1.4.2', classifier: "android-arm"
compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '3.4.2-1.4.2', classifier: "android-arm64"
compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '3.4.2-1.4.2', classifier: "android-x86"
compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '3.4.2-1.4.2', classifier: "android-x86_64"
compile group: 'org.bytedeco.javacpp-presets', name: 'leptonica', version: '1.76.0-1.4.2'
compile group: 'org.bytedeco.javacpp-presets', name: 'leptonica', version: '1.76.0-1.4.2', classifier: "android-arm"
compile group: 'org.bytedeco.javacpp-presets', name: 'leptonica', version: '1.76.0-1.4.2', classifier: "android-arm64"
compile group: 'org.bytedeco.javacpp-presets', name: 'leptonica', version: '1.76.0-1.4.2', classifier: "android-x86"
compile group: 'org.bytedeco.javacpp-presets', name: 'leptonica', version: '1.76.0-1.4.2', classifier: "android-x86_64"
implementation 'com.google.code.gson:gson:2.8.2'
annotationProcessor 'org.projectlombok:lombok:1.16.16'
implementation 'com.google.code.findbugs:annotations:3.0.1', {
exclude module: 'jsr305'
exclude module: 'jcip-annotations'
}
//This corrects for a junit version conflict.
configurations.all {
resolutionStrategy.force 'junit:junit:4.12'
}
}}