1

I trained a model in Keras, this is my python code:

model = Sequential()
model.add(Embedding(50000, 128, input_length=10))
model.add(Conv1D(48, 5, activation='relu', padding='valid'))
model.add(GlobalMaxPooling1D())
model.add(Dropout(0.5))
model.add(Flatten())
model.add(Dropout(0.5))

model.add(Dense(7, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

So I import in DL4J and when I try to predict using the imported model:

val modelPath = File("C:/Users/Ayodele/Desktop/Development/classification.h5")
val model: MultiLayerNetwork = 
KerasModelImport.importKerasSequentialModelAndWeights(modelPath.absolutePath)
val list = arrayOf(1,2,3,4,5,6,7,8,9,10)
val inputs = 10
val features = Nd4j.create(1,inputs)
 for (i in 0 until inputs) {
        features.putScalar(intArrayOf(i), list.get(i))
    }
    System.out.println(features)
    val pred = model.predict(features) 

I get the following error:

    Exception in thread "main" org.nd4j.linalg.exception.ND4JIllegalStateException: New 
    shape length doesn't match original length: [288] vs [48]. Original shape: [1, 48] 
    New Shape: [1, 288]
    at org.nd4j.linalg.api.ndarray.BaseNDArray.reshape(BaseNDArray.java:3804)
    at org.nd4j.linalg.api.ndarray.BaseNDArray.reshape(BaseNDArray.java:3749)
    at org.nd4j.linalg.api.ndarray.BaseNDArray.reshape(BaseNDArray.java:3872)
    at org.nd4j.linalg.api.ndarray.BaseNDArray.reshape(BaseNDArray.java:4099)
    at 
org.deeplearning4j.preprocessors.KerasFlattenRnnPreprocessor.preProcess(KerasFlattenRnnPreprocessor.java:49)
    at org.deeplearning4j.nn.multilayer.MultiLayerNetwork.outputOfLayerDetached(MultiLayerNetwork.java:1299)
    at org.deeplearning4j.nn.multilayer.MultiLayerNetwork.output(MultiLayerNetwork.java:2467)
    at org.deeplearning4j.nn.multilayer.MultiLayerNetwork.output(MultiLayerNetwork.java:2430)
    at org.deeplearning4j.nn.multilayer.MultiLayerNetwork.output(MultiLayerNetwork.java:2421)
    at org.deeplearning4j.nn.multilayer.MultiLayerNetwork.output(MultiLayerNetwork.java:2408)
    at org.deeplearning4j.nn.multilayer.MultiLayerNetwork.predict(MultiLayerNetwork.java:2270)

I have combed the internet for any help, didn't find on. So I decided to post the problem here.

HayWhy
  • 11
  • 2
  • Hi, I just want you to know I saw this on our forums already. You gave me a reproducer here I can use. Let me get back to you. Thanks! – Adam Gibson Sep 13 '22 at 04:05

0 Answers0