gpt4 book ai didi

java - 如何在 DL4J 中加载使用自定义损失函数在 Python 中训练的 Keras 模型文件

转载 作者:行者123 更新时间:2023-12-01 17:52:33 24 4
gpt4 key购买 nike

我使用的是 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中给它一个损失函数?或者有没有办法在不给它损失函数的情况下加载它?

谢谢

最佳答案

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

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

关于java - 如何在 DL4J 中加载使用自定义损失函数在 Python 中训练的 Keras 模型文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60770315/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com