微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将 Keras 模型导入 DL4J 时出错 - “Batch norm layer expected input of type CNN, CNN Flat or FF...”

如何解决将 Keras 模型导入 DL4J 时出错 - “Batch norm layer expected input of type CNN, CNN Flat or FF...”

我正在尝试使用 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

保存生成错误的简单模型的 Python 代码

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 举报,一经查实,本站将立刻删除。