Исключение при загрузке модели Keras в Java с deeplearning4j - PullRequest
0 голосов
/ 23 мая 2019

В настоящее время я пытаюсь реализовать это руководство: https://towardsdatascience.com/deploying-keras-deep-learning-models-with-java-62d80464f34a

Я уже обучил модель с помощью tf и Keras и экспортировал ее в файл.Я хочу использовать модель в Java и попытался загрузить ее с deeplearning4j.

. Я уже просматривал другие посты, и никто, похоже, не получил такого же исключения.

Модель обучения:

model = keras.Sequential()
...
model.compile(optimizer='adam',
              loss='categorical_crossentropy',
              metrics=['accuracy'])
...
history = model.fit(X, y, epochs=30, batch_size=512, validation_split=0.1)
model.save("model.h5")

Загрузка в Java:

...
String simpleMlp = new ClassPathResource(path).getFile().getPath();
model = KerasModelImport.importKerasSequentialModelAndWeights(simpleMlp);
...

ИЛИ

...
String json = new ClassPathResource(path1).getFile().getPath();
String weights = new ClassPathResource(path2).getFile().getPath();
model = KerasModelImport.importKerasSequentialModelAndWeights(json, weights);
...

Я получаю следующее исключение(для обоих кодов Java):

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "main" java.lang.ClassCastException: class java.util.LinkedHashMap cannot be cast to class java.util.List (java.util.LinkedHashMap and java.util.List are in module java.base of loader 'bootstrap')
    at org.deeplearning4j.nn.modelimport.keras.KerasSequentialModel.<init>(KerasSequentialModel.java:102)
    at org.deeplearning4j.nn.modelimport.keras.KerasSequentialModel.<init>(KerasSequentialModel.java:61)
    at org.deeplearning4j.nn.modelimport.keras.utils.KerasModelBuilder.buildSequential(KerasModelBuilder.java:320)
    at org.deeplearning4j.nn.modelimport.keras.KerasModelImport.importKerasSequentialModelAndWeights(KerasModelImport.java:195)
    at seminar.java_model_loading.machinelearning.Predictor.<init>(Predictor.java:19)
    at seminar.java_model_loading.App.main(App.java:27)

1 Ответ

0 голосов
/ 24 мая 2019

Оказывается, мне пришлось обновить свои maven-зависимости для deeplearning4j:

Используйте

...
version>1.0.0-beta4</version>
...

вместо

...
version>1.0.0-beta2</version>
...

Так что руководство устарело и ошибочно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...