Issues with wekaDeeplearning4j in FIJI - "ND4J is probably missing dependencies."

fiji
weka
imagej
trainable-weka

#1

Hi there,

Has anyone utilized wekaDeeplearning4j (DL4J) within Weka/TrainableWekaSegmentation?

I was having trouble so started with a fresh copy of FIJI, made sure it was up to date, opened Weka GUI Package Manager and installed wekaDeeplearning4j.

When I open TWS it gives the error “Could not insert my own cool classifiers!”

When I try to run a Groovy or Beanshell script that calls DL4J I get the error:

java.lang.ExceptionInInitializerError
at org.nd4j.linalg.cpu.nativecpu.ops.NativeOpExecutioner.(NativeOpExecutioner.java:69)

Caused by: java.lang.RuntimeException: ND4J is probably missing dependencies. For more information, please refer to: http://nd4j.org/getstarted.html
at org.nd4j.nativeblas.NativeOpsHolder.(NativeOpsHolder.java:68)
at org.nd4j.nativeblas.NativeOpsHolder.(NativeOpsHolder.java:36)
… 35 more
Caused by: java.lang.UnsatisfiedLinkError: org.nd4j.nativeblas.Nd4jCpu$NativeOps.allocate()V
at org.nd4j.nativeblas.Nd4jCpu$NativeOps.allocate(Native Method)

I’m sure I’m missing something obvious. It looks like FIJI uses Weka3.9.2-dev while most plugins (wekaDL4J?) expect Weka3.8. I’m not sure if that may be playing a role? Any help is much appreciated!

ImageJ 1.52g, Weka 3.8.3 or weka-dev-3.9.2, fiji-2.0.0-pre-7


#2

Hello, i have gotten this error as well. I actually had to use an older version of fiji to get it to work. An input on this would be great!


#3

Hi Connor,

Could you provide some details on which versions you were able to get to work together? I’ve updated my original post with the versions I have tested unsuccessfully.

Thanks!


#4

Good afternoon,

I was able to find a workaround by renaming the file jars/javacpp-0.11.jar to jars/javacpp-0.11.jarBad (or deleting it), which forced imagej to use the newer version of javacpp (1.4.2) in my C:/Users//wekafiles/packages/wekaDeeplearning4j/lib folder. I installed Weka 3.8.3 manually after ImageJ, so I’m not sure if this is the reason why the newer version of javacpp was in that folder, or if it was installed there when wekaDeeplearning4j wasinstalled through imageJ. I also have not tested this extensively so i’m not sure if using the newer version of javacpp has any adverse effects, but it makes it so that I’m able to use wekaDeeplearning4j inside of the imagej weka image segmentation window.

Best of Luck,
Oliver