Trying to load a pre-trained Keras functional model by DL4J in Java, if my pre-trained model contains a Conv3D layer with “dilation_rate =2”, it will fail. If “dilation_rate=1”, DL4J will load the model successfully.
conv4_d2 = Conv3D(start_neuron*8, (3,3,3), activation = 'relu', padding = 'same', name='conv4_d2_1', dilation_rate=2)(conv4)
Not sure what cause this, hope I can find the answer here. Thanks.
java.lang.RuntimeException: Op [conv3dnew] execution failed
at org.nd4j.linalg.cpu.nativecpu.ops.NativeOpExecutioner.exec(NativeOpExecutioner.java:1594)
at org.deeplearning4j.nn.layers.convolution.Convolution3DLayer.preOutput(Convolution3DLayer.java:276)
at org.deeplearning4j.nn.layers.convolution.ConvolutionLayer.activate(ConvolutionLayer.java:489)
at org.deeplearning4j.nn.graph.vertex.impl.LayerVertex.doForward(LayerVertex.java:111)
at org.deeplearning4j.nn.graph.ComputationGraph.outputOfLayersDetached(ComputationGraph.java:2380)
at org.deeplearning4j.nn.graph.ComputationGraph.output(ComputationGraph.java:1741)
at org.deeplearning4j.nn.graph.ComputationGraph.output(ComputationGraph.java:1697)
at org.deeplearning4j.nn.graph.ComputationGraph.output(ComputationGraph.java:1627)
Caused by: java.lang.RuntimeException: could not create a descriptor for a dilated convolution forward propagation primitive
at org.nd4j.linalg.cpu.nativecpu.ops.NativeOpExecutioner.exec(NativeOpExecutioner.java:1924)
at org.nd4j.linalg.cpu.nativecpu.ops.NativeOpExecutioner.exec(NativeOpExecutioner.java:1573)
... 16 more