如何在DL4J中加载Keras模型文件,该文件是使用自定义丢失函数在Python中训练的

2024-06-29 00:11:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用的是一个Keras模型,它是在DL4J的Java过程中用Python训练的。这通常工作得很好,但现在改为使用自定义损失函数

该模型使用Python进行训练,并带有一个自定义损失函数:

model = load_model('modelFile' , custom_objects={'loss': my_custom_loss_function(weight)})

我尝试在Java中与dl4j(版本:1.0.0-beta6)一起使用它来加载模型:

String modelFile = "<location of hdf5 file on disk>";
MultiLayerNetwork multiLayerNetwork = KerasModelImport.importKerasSequentialModelAndWeights(modelFile);

但这就产生了这个错误:

org.deeplearning4j.nn.modelimport.keras.exceptions.UnsupportedKerasConfigurationException: 
Unknown Keras loss function loss. Please file an issue at https://github.com/eclipse/deeplearning4j/issues.

我如何在java中给它一个loss函数?或者有没有一种方法可以在不给它损失函数的情况下加载它

谢谢


Tags: 函数模型model过程customloadfunctionjava
1条回答
网友
1楼 · 发布于 2024-06-29 00:11:40

不幸的是,从beta6开始,DL4J不支持为keras导入注册自定义损失函数

如果您只想加载经过训练的模型进行推理,那么您应该能够通过将keras中的loss函数更改为支持的函数之一(请参见https://deeplearning4j.konduit.ai/keras-import/supported-features#losses),然后再次导出它来解决问题

相关问题 更多 >