Загрузка обученной сети смешанной плотности в DL4J - PullRequest
0 голосов
/ 24 апреля 2020

Я построил и обучил сеть смешанной плотности с Керасом, в основном следуя этому среднему посту , который содержит реализацию среднего отрицательного логарифмического правдоподобия, который будет использоваться в качестве функции потерь. Теперь я хочу загрузить обученную модель (как структуру net, так и веса) в DL4J для обслуживания прогнозов, но получаю ошибку времени выполнения: UnsupportedKerasConfigurationException: Unknown Keras loss function.

Я ожидал этого, так как Функция потерь не встроена в Keras, однако я вижу, что DL4J имеет для этой цели свой собственный LossMixtureDensity, содержащийся в пакете org.deeplearning4j.nn.modelimport.keras.utils, но я не знаю, как привязать к нему свою пользовательскую функцию потерь. Есть ли способ сделать это?

В качестве альтернативы второго выбора я думал о том, чтобы написать «двойной» MDN непосредственно в DL4J, а затем просто загрузить тренировочные веса, но я впервые использую DL4J, и я не уверен, как это сделать. это: мой выходной слой объединяет коэффициенты смеси, средние значения и стандартные отклонения с различными функциями активации, в то время как пример, представленный в репозитории deeplearning4j-examples , кажется, использует простую идентификацию активации. Честно говоря, я даже не могу понять, как пример может работать, например, без наложения активации softmax для коэффициентов смешивания.

...