When I open a workflow with Deeplearning4j nodes in it it first starts loading but then stop with an error displayed in the workflow window:
java.lang.ExceptionInInitializerError
If I try to open it again before closing KNIME I get this error:
java.lang.NoClassDefFoundError: Could not initialize class org.nd4j.linalg.factory.Nd4j
See below for the stack trace from knime.log which seems to hint to a memory issue. However I have knime set to 24GB and it stays below 4GB usage before the error even happens. There is also this part of the error:
ND4J is probably missing dependencies. For more information, please refer to: http://nd4j.org/getstarted.html
So how can this be solved?
2017-12-11 06:33:37,235 : DEBUG : Service Thread : MemoryAlertSystem : : : Memory usage below threshold (89%) after GC run, currently 1% (0.15GB/16.00GB)
2017-12-11 06:33:38,017 : DEBUG : Service Thread : MemoryAlertSystem : : : Memory usage below threshold (89%) after GC run, currently 1% (0.14GB/16.00GB)
2017-12-11 06:33:38,517 : DEBUG : Service Thread : MemoryAlertSystem : : : Memory usage below threshold (89%) after GC run, currently 1% (0.14GB/16.00GB)
2017-12-11 06:33:39,079 : DEBUG : Service Thread : MemoryAlertSystem : : : Memory usage below threshold (89%) after GC run, currently 1% (0.14GB/16.00GB)
2017-12-11 06:33:39,517 : DEBUG : Service Thread : MemoryAlertSystem : : : Memory usage below threshold (89%) after GC run, currently 1% (0.14GB/16.00GB)
2017-12-11 06:33:40,079 : DEBUG : Service Thread : MemoryAlertSystem : : : Memory usage below threshold (89%) after GC run, currently 1% (0.14GB/16.00GB)
2017-12-11 06:33:40,485 : DEBUG : Service Thread : MemoryAlertSystem : : : Memory usage below threshold (89%) after GC run, currently 1% (0.14GB/16.00GB)
2017-12-11 06:33:40,907 : DEBUG : Service Thread : MemoryAlertSystem : : : Memory usage below threshold (89%) after GC run, currently 1% (0.14GB/16.00GB)
2017-12-11 06:33:41,501 : DEBUG : Service Thread : MemoryAlertSystem : : : Memory usage below threshold (89%) after GC run, currently 1% (0.14GB/16.00GB)
2017-12-11 06:33:41,938 : DEBUG : Service Thread : MemoryAlertSystem : : : Memory usage below threshold (89%) after GC run, currently 1% (0.14GB/16.00GB)
2017-12-11 06:33:42,048 : ERROR : ModalContext : LoadWorkflowRunnable : : : Workflow could not be loaded. null
2017-12-11 06:33:42,048 : DEBUG : ModalContext : LoadWorkflowRunnable : : : Workflow could not be loaded. null
java.lang.ExceptionInInitializerError
at org.nd4j.linalg.cpu.nativecpu.ops.NativeOpExecutioner.<init>(NativeOpExecutioner.java:53)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.lang.Class.newInstance(Class.java:442)
at org.nd4j.linalg.factory.Nd4j.initWithBackend(Nd4j.java:6185)
at org.nd4j.linalg.factory.Nd4j.initContext(Nd4j.java:6087)
at org.nd4j.linalg.factory.Nd4j.<clinit>(Nd4j.java:201)
at org.deeplearning4j.util.ModelSerializer.restoreMultiLayerNetwork(ModelSerializer.java:188)
at org.deeplearning4j.util.ModelSerializer.restoreMultiLayerNetwork(ModelSerializer.java:270)
at org.knime.ext.dl4j.base.util.DLModelPortObjectUtils.loadPortFromZip(DLModelPortObjectUtils.java:256)
at org.knime.ext.dl4j.base.DLModelPortObject.load(DLModelPortObject.java:120)
at org.knime.core.node.port.AbstractPortObject$AbstractPortObjectSerializer.loadPortObject(AbstractPortObject.java:164)
at org.knime.core.node.port.AbstractPortObject$AbstractPortObjectSerializer.loadPortObject(AbstractPortObject.java:1)
at org.knime.core.node.FileNodePersistor.loadPortObject(FileNodePersistor.java:453)
at org.knime.core.node.FileNodePersistor.loadPort(FileNodePersistor.java:377)
at org.knime.core.node.FileNodePersistor.loadPorts(FileNodePersistor.java:333)
at org.knime.core.node.FileNodePersistor.load(FileNodePersistor.java:1005)
at org.knime.core.node.workflow.FileNativeNodeContainerPersistor.loadNCAndWashModelSettings(FileNativeNodeContainerPersistor.java:268)
at org.knime.core.node.workflow.FileSingleNodeContainerPersistor.loadNodeContainer(FileSingleNodeContainerPersistor.java:267)
at org.knime.core.node.workflow.WorkflowManager.postLoad(WorkflowManager.java:7855)
at org.knime.core.node.workflow.WorkflowManager.loadContent(WorkflowManager.java:7746)
at org.knime.core.node.workflow.WorkflowManager.postLoad(WorkflowManager.java:7871)
at org.knime.core.node.workflow.WorkflowManager.loadContent(WorkflowManager.java:7746)
at org.knime.core.node.workflow.WorkflowManager.load(WorkflowManager.java:7700)
at org.knime.core.node.workflow.WorkflowManager.load(WorkflowManager.java:7621)
at org.knime.core.node.workflow.WorkflowManager.load(WorkflowManager.java:7594)
at org.knime.core.node.workflow.WorkflowManager.loadProject(WorkflowManager.java:7439)
at org.knime.workbench.editor2.LoadWorkflowRunnable.run(LoadWorkflowRunnable.java:168)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)
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.<init>(NativeOpsHolder.java:51)
at org.nd4j.nativeblas.NativeOpsHolder.<clinit>(NativeOpsHolder.java:19)
... 31 more
Caused by: java.lang.OutOfMemoryError: Physical memory usage is too high: physicalBytes = 8G > maxPhysicalBytes = 1G
at org.bytedeco.javacpp.Pointer.deallocator(Pointer.java:576)
at org.bytedeco.javacpp.Pointer.init(Pointer.java:121)
at org.nd4j.nativeblas.Nd4jCpu$NativeOps.allocate(Native Method)
at org.nd4j.nativeblas.Nd4jCpu$NativeOps.<init>(Nd4jCpu.java:65)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at java.lang.Class.newInstance(Class.java:442)
at org.nd4j.nativeblas.NativeOpsHolder.<init>(NativeOpsHolder.java:30)
... 32 more
2017-12-11 06:33:42,282 : DEBUG : main : WorkflowEditor : : : Disposing editor...