JAVA_HOME is correctly to set to a ARM64 JDK as it is seen from the file description above. But when I run gradle, it is downloading tensorflow libraries build for x86-64.
(base) 2033000768:pneumonia-detection$ ./gradlew run
> Task :run
[main] INFO com.examples.PneumoniaDetection - Input image not specified, using image:
https://djl-ai.s3.amazonaws.com/resources/images/chest_xray.jpg
Exception in thread "main" ai.djl.engine.EngineException: Failed to load TensorFlow native library
at ai.djl.tensorflow.engine.TfEngine.newInstance(TfEngine.java:75)
at ai.djl.tensorflow.engine.TfEngineProvider.getEngine(TfEngineProvider.java:41)
at ai.djl.engine.Engine.getEngine(Engine.java:190)
at ai.djl.Model.newInstance(Model.java:99)
at ai.djl.repository.zoo.BaseModelLoader.createModel(BaseModelLoader.java:196)
at ai.djl.repository.zoo.BaseModelLoader.loadModel(BaseModelLoader.java:159)
at ai.djl.repository.zoo.Criteria.loadModel(Criteria.java:172)
at com.examples.PneumoniaDetection.main(PneumoniaDetection.java:81)
Caused by: java.lang.UnsatisfiedLinkError: no jnitensorflow in java.library.path: /Users/xxx/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2434)
at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:818)
at java.base/java.lang.System.loadLibrary(System.java:1993)
at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:1832)
at org.bytedeco.javacpp.Loader.load(Loader.java:1423)
at org.bytedeco.javacpp.Loader.load(Loader.java:1234)
at org.bytedeco.javacpp.Loader.load(Loader.java:1210)
at org.tensorflow.internal.c_api.global.tensorflow.<clinit>(tensorflow.java:12)
at org.tensorflow.internal.c_api.AbstractTFE_ContextOptions.newContextOptions(AbstractTFE_ContextOptions.java:51)
at ai.djl.tensorflow.engine.javacpp.JavacppUtils.createEagerSession(JavacppUtils.java:210)
at ai.djl.tensorflow.engine.TfEngine.newInstance(TfEngine.java:56)
... 7 more
Caused by: java.lang.UnsatisfiedLinkError: ~/.djl.ai/tensorflow/2.10.1-cpu-osx-aarch64/libjnitensorflow.dylib: dlopen(~.djl.ai/tensorflow/2.10.1-cpu-osx-aarch64/libjnitensorflow.dylib, 0x0001): tried: '~/.djl.ai/tensorflow/2.10.1-cpu-osx-aarch64/libjnitensorflow.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/Users/xxx/.djl.ai/tensorflow/2.10.1-cpu-osx-aarch64/libjnitensorflow.dylib' (no such file), '/Users/xxx.djl.ai/tensorflow/2.10.1-cpu-osx-aarch64/libjnitensorflow.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64'))
at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:388)
at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:232)
at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:174)
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2394)
at java.base/java.lang.Runtime.load0(Runtime.java:755)
at java.base/java.lang.System.load(System.java:1957)
at org.bytedeco.javacpp.Loader.loadLibrary(Loader.java:1779)
Although the path into which the library is downloading to indicated it is aarch64, the dylib itself is x86-64.
I am trying to runt he demos on Mac M2 and the build script is downloading the wrong libraries.
JAVA_HOME is correctly to set to a ARM64 JDK as it is seen from the file description above. But when I run gradle, it is downloading tensorflow libraries build for x86-64.
Although the path into which the library is downloading to indicated it is aarch64, the dylib itself is x86-64.
Appreciate any suggestions for fixing this. Thanks.