问题描述
我正在尝试使用 DL4J 导入在 Python 中训练的 Keras 模型,但出现以下错误:
11:39:22.588 [main] Exception in thread "main" java.lang.IllegalStateException: Invalid input type: Batch norm layer expected input of type CNN,CNN Flat or FF,got InputTypeRecurrent(10,timeSeriesLength=24,format=NWC) for layer index -1,layer name = batch_normalization_1
at org.deeplearning4j.nn.conf.layers.Batchnormalization.getoutputType(Batchnormalization.java:130)
at org.deeplearning4j.nn.modelimport.keras.layers.normalization.KerasBatchnormalization.getoutputType(KerasBatchnormalization.java:165)
at org.deeplearning4j.nn.modelimport.keras.KerasModel.inferOutputTypes(KerasModel.java:473)
at org.deeplearning4j.nn.modelimport.keras.KerasModel.<init>(KerasModel.java:186)
at org.deeplearning4j.nn.modelimport.keras.KerasModel.<init>(KerasModel.java:99)
at org.deeplearning4j.nn.modelimport.keras.utils.KerasModelBuilder.buildModel(KerasModelBuilder.java:311)
at org.deeplearning4j.nn.modelimport.keras.KerasModelImport.importKerasModelAndWeights(KerasModelImport.java:167)
at edu.mit.ll.seamnet.SpeechEnhancement.runBatchnormErrModel(SpeechEnhancement.java:161)
at edu.mit.ll.seamnet.SpeechEnhancement.main(SpeechEnhancement.java:172)
此错误似乎已记录在案,并且根据问题报告,在 DL4J 的更高版本中实施了修复。也就是说,我仍然看到这个错误。我错过了什么吗?
我使用的是 DL4J 版本 1.0.0-M1
in_layer = Input((25,25,))
x = Conv1D(filters=10,kernel_size=2)(in_layer)
out_layer = Batchnormalization()(x)
model = Model(in_layer,out_layer)
model.save("batchnormError.h5")
这是我用来导入模型的 DL4J 代码:
String modelPath ="batchnormError.h5";
computationGraph model = KerasModelImport.importKerasModelAndWeights(modelPath);
任何帮助将不胜感激。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)