我使用的是一个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函数?或者有没有一种方法可以在不给它损失函数的情况下加载它
谢谢
不幸的是,从beta6开始,DL4J不支持为keras导入注册自定义损失函数
如果您只想加载经过训练的模型进行推理,那么您应该能够通过将keras中的loss函数更改为支持的函数之一(请参见https://deeplearning4j.konduit.ai/keras-import/supported-features#losses),然后再次导出它来解决问题
相关问题 更多 >
编程相关推荐