Вызвано: java.net.UnknownHostException: проблема blob.deeplearning4j.org с deeplearning4j

Я хотел бы запустить dl4jexamples/modelimport/ImportDeepMoji.java, но он выдает исключение

Вызвано: java.net.UnknownHostException: blob.deeplearning4j.org

как я могу решить эту проблему?

это полный журнал ошибок

Downloading model to C:\Users\DELLLA~1\AppData\Local\Temp\dl4j_keras\deepmoji_model.h5
Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.intellij.rt.execution.CommandLineWrapper.main(CommandLineWrapper.java:66)
Caused by: java.net.UnknownHostException: blob.deeplearning4j.org
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at java.net.Socket.connect(Socket.java:538)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:180)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:211)
    at sun.net.www.http.HttpClient.New(HttpClient.java:308)
    at sun.net.www.http.HttpClient.New(HttpClient.java:326)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1202)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1138)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1032)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:966)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1546)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1474)
    at java.net.URL.openStream(URL.java:1045)
    at org.apache.commons.io.FileUtils.copyURLToFile(FileUtils.java:1478)
    at org.deeplearning4j.examples.modelimport.keras.ImportDeepMoji.main(ImportDeepMoji.java:57)
    ... 5 more

заранее спасибо


person explorer    schedule 28.11.2019    source источник


Ответы (6)


Замените это

String modelUrl = "http://blob.deeplearning4j.org/models/deepmoji.h5";

to

String modelUrl = "https://dl4jdata.blob.core.windows.net/models/deepmoji.h5";

Тогда должно работать!

person Blaze Lim    schedule 16.12.2019

Используйте системное свойство https://deeplearning4j.org/api/latest/org/deeplearning4j/config/DL4JSystemProperties.html#DL4J_RESOURCES_BASE_URL_PROPERTY на данный момент.

Для потомков значение: -Dorg.deeplearning4j.resources.baseurl=$YOUR_CUSTOM_URL

при запуске вашего проекта либо в вашей среде IDE, либо в командной строке.

Текущая версия находится здесь: https://github.com/eclipse/deeplearning4j/blob/da4bf0209b5e2dab36f811603a381ac71f99fe66/deeplearning4j/deeplearning4j-common/src/main/java/org/deeplearning4j/common/resources/DL4JResources.java

Вы должны иметь возможность установить значение: https://dl4jdata.blob.core.windows.net/

Таким образом, системное свойство в командной строке будет таким: /dl4jdata.blob.core.windows.net/

Если у вас есть проблемы с этим, и это не работает, сообщите о проблеме по адресу https://github.com/eclipse/deeplearning4j

person Adam Gibson    schedule 29.11.2019
comment
//String modelUrl = blob.deeplearning4j.org/models/deepmoji.h5; DL4JResources.setBaseDownloadURL(dl4jdata.blob.core.windows.net/); Строка modelUrl =DL4JResources.getBaseDownloadURL(); Строка downloadPath = DATA_PATH + deepmoji_model.h5; - person explorer; 29.11.2019
comment
но все же я получаю такую ​​​​ошибку в модели загрузки Intellij в C:\Users\BAP1\AppData\Local\Temp\dl4j_keras\deepmoji_model.h5 Исключение в потоке main java.io.IOException: Сервер вернул код ответа HTTP: 400 для URL: dl4jdata.blob.core.windows.net на java.base/sun.net.www .protocol.http.HttpURLСоединение - person explorer; 29.11.2019
comment
я думаю, мне нужен точный URL-адрес для файла deepmoji_model.h5. то есть: dl4jdata.blob.core.windows.net/deepmoji_model.h5 правильный URL-адрес? если это не так, то какой теперь полный путь? Спасибо - person explorer; 29.11.2019
comment
Указанный URL-адрес недействителен. Это должен быть буквально полный URL. Вы не используете префиксы. Пожалуйста, следуйте точным инструкциям в моем ответе. - person Adam Gibson; 30.11.2019
comment
Я использовал dl4jdata.blob.core.windows.net/deepmoji_model.h5 url в коде, но все же кажется, что файл deepmoji_model.h5 отсутствует в dl4jdata.blob.core. windows.net базовый URL. Не могли бы вы написать мне точную ссылку на файл deepmoji_model.h5, чтобы я мог загрузить его на свой компьютер через браузер Chrome или iexplorer? - person explorer; 01.12.2019
comment
Я использовал https://dl4jdata.blob.core.windows.net/deepmoji_model.h5 этот URL-адрес в коде, но все же кажется, что в базовом URL-адресе dl4jdata.blob.core.windows.net нет файла deepmoji_model.h5. Не могли бы вы написать мне точную ссылку на файл deepmoji_model.h5, чтобы я мог загрузить его на свой компьютер через браузер Chrome или iexplorer? - person explorer; 01.12.2019

Как указал https://stackoverflow.com/users/5131255/adam-gibson, я добавил

import org.deeplearning4j.common.resources.DL4JResources;

а также

DL4JResources.setBaseDownloadURL("https://dl4jdata.blob.core.windows.net/");

в моем проекте Java, и проблема с исключениями исправлена.

Caused by: java.net.UnknownHostException: blob.deeplearning4j.org

Благодарю вас.

person Ping Chia    schedule 03.12.2019
comment
хорошо, большое спасибо, как вы упомянули, точный URL-адрес должен быть String modelUrl = dl4jdata .blob.core.windows.net/models/deepmoji.h5; - person explorer; 04.12.2019

Я решил проблему благодаря вкладу Адама и Пинга. Но теперь я получаю следующее исключение после загрузки необходимых файлов h5 с сервера на локальный компьютер.

Downloading model to C:\Users\DELLLA~1\AppData\Local\Temp\dl4j_keras\deepmoji_model.h5
Download complete
o.d.n.m.k.l.e.KerasEmbedding - Masking in keras and DL4J work differently. We do not completely support mask_zero flag on Embedding layers. Zero Masking for the Embedding layer only works with unidirectional LSTM for now. If you want to have this behaviour for your imported model in DL4J, apply masking as a pre-processing step to your input.See https://deeplearning4j.org/usingrnns#masking for more on this.
o.d.n.m.k.KerasModel - If enforceTrainingConfig is true, a training configuration object has to be provided. Usually the only practical way to do this is to store your keras model with `model.save('model_path.h5'. If you store model config and weights separately no training configuration is attached.
o.n.l.f.Nd4jBackend - Loaded [CpuBackend] backend
o.n.n.NativeOpsHolder - Number of threads used for OpenMP: 6
o.n.n.Nd4jBlas - Number of threads used for OpenMP BLAS: 6
o.n.l.a.o.e.DefaultOpExecutioner - Backend used: [CPU]; OS: [Windows 8.1]
o.n.l.a.o.e.DefaultOpExecutioner - Cores: [24]; Memory: [3,5GB];
o.n.l.a.o.e.DefaultOpExecutioner - Blas vendor: [MKL]
o.d.n.g.ComputationGraph - Starting ComputationGraph with WorkspaceModes set to [training: ENABLED; inference: ENABLED], cacheMode set to [NONE]
Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.intellij.rt.execution.CommandLineWrapper.main(CommandLineWrapper.java:66)
Caused by: java.lang.UnsupportedOperationException: calculateOutputDataTypes() has not been implemented for org.nd4j.linalg.api.ops.impl.reduce.TensorMmul
    at org.nd4j.autodiff.functions.DifferentialFunction.calculateOutputDataTypes(DifferentialFunction.java:804)
    at org.nd4j.autodiff.samediff.SameDiff.generateOutputVariableForOp(SameDiff.java:4351)
    at org.nd4j.linalg.api.ops.DynamicCustomOp.outputVariables(DynamicCustomOp.java:221)
    at org.nd4j.linalg.api.ops.DynamicCustomOp.outputVariables(DynamicCustomOp.java:204)
    at org.nd4j.autodiff.functions.DifferentialFunction.outputVariable(DifferentialFunction.java:478)
    at org.nd4j.autodiff.functions.DifferentialFunctionFactory.tensorMmul(DifferentialFunctionFactory.java:1875)
    at org.nd4j.autodiff.samediff.ops.SDBaseOps.tensorMmul(SDBaseOps.java:2823)
    at org.nd4j.autodiff.samediff.ops.SDBaseOps.tensorMmul(SDBaseOps.java:2809)
    at org.deeplearning4j.examples.modelimport.keras.DeepMojiAttentionLayer.defineLayer(DeepMojiAttentionLayer.java:86)
    at org.deeplearning4j.nn.layers.samediff.SameDiffLayer.doInit(SameDiffLayer.java:282)
    at org.deeplearning4j.nn.layers.samediff.SameDiffLayer.activate(SameDiffLayer.java:85)
    at org.deeplearning4j.nn.graph.vertex.impl.LayerVertex.doForward(LayerVertex.java:111)
    at org.deeplearning4j.nn.graph.ComputationGraph.outputOfLayersDetached(ComputationGraph.java:2379)
    at org.deeplearning4j.nn.graph.ComputationGraph.output(ComputationGraph.java:1740)
    at org.deeplearning4j.nn.graph.ComputationGraph.output(ComputationGraph.java:1696)
    at org.deeplearning4j.nn.graph.ComputationGraph.output(ComputationGraph.java:1626)
    at org.deeplearning4j.examples.modelimport.keras.ImportDeepMoji.main(ImportDeepMoji.java:64)
    ... 5 more

Процесс завершен с кодом выхода 1 Есть комментарии?

person explorer    schedule 04.12.2019

Уважаемый https://stackoverflow.com/users/5807517/explorer,

На ваш второй вопрос проблема показана в сообщении об ошибке:

Caused by: java.lang.UnsupportedOperationException: calculateOutputDataTypes() has not been implemented for org.nd4j.linalg.api.ops.impl.reduce.TensorMmul

Функция calculateOutputDataTypes() не реализована.

person Ping Chia    schedule 05.12.2019

Если вы пришли к этому вопросу с получением того же исключения Caused by: java.net.UnknownHostException: blob.deeplearning4j.org только из-за других примеров, например. связанных с deeplearning4j со старыми версиями, такими как 1.0.0-alpha, которые используют предварительно обученные модели с жестко запрограммированным именем tiny-yolo-voc_dl4j_inference.v1.zip, выполните следующие действия:

  • Создайте папку в своей домашней папке (например, для Windoz C:\Users\user.name\.deeplearning4j)
  • Загрузите файл: tiny-yolo-voc_dl4j_inference.v1. zip и поместите файл в эту папку
  • Запустите код снова

ZooModel ищет предварительно обученную модель, кэшированную в этом месте, вместо того, чтобы переходить на blob.deeplearning4j.org.

        if (!cachedFile.exists()) {
            log.info("Downloading model to " + cachedFile.toString());
            FileUtils.copyURLToFile(new URL(remoteUrl), cachedFile);
        } else {
            log.info("Using cached model at " + cachedFile.toString());
        }

Для ImportDeepMoji.java здесь находится ссылка для скачивания файла модели deepmoji.h5. Загрузите файл, переименуйте его в deepmoji_model.h5 и переместите в папку кеша: C:\Users\user.name\AppData\Local\Temp\dl4j_keras\deepmoji_model.h5

person M.Uluer    schedule 11.05.2020