Как настроить «.prefetchBuffer» и «.averagingFrequency» (DL4J-ParallelWrapper)? - PullRequest
0 голосов
/ 08 января 2020

Я новичок в dl4j и ML. Я хотел бы улучшить этот пример: https://github.com/eclipse/deeplearning4j-examples/blob/master/dl4j-examples/src/main/java/org/deeplearning4j/examples/dataexamples/CSVExample.java с помощью ParallelWrapper. Я уже пробовал какую-то конфигурацию на Wrapper, но она не дает того же результата, когда я прогнозирую неклассифицированные данные.

Как в примере:

    MultiLayerNetwork model = new MultiLayerNetwork(conf);
    model.init();
    model.setListeners(new ScoreIterationListener(100));

    for(int i=0; i<1000; i++ ) {
        model.fit(trainingData);
    }

Что я пробовал:

    MultiLayerNetwork model = new MultiLayerNetwork(conf);
    model.init();
    // log after every 100 iterations
    model.setListeners(new ScoreIterationListener(100));

    //Parallel Training
    final ParallelWrapper wrapper = new ParallelWrapper.Builder(model)
        .prefetchBuffer(1000)
        .workers(1000)
        .averagingFrequency(100)
        .reportScoreAfterAveraging(true)
        .build();

    wrapper.fit(new CustomDatasetIterator(trainingData.getFeatures(),
        trainingData.getLabels())); //create customDatasetIterator;

Я думал, используя 1000 рабочих = 1000 итераций.

  1. Это правильно?

  2. И что я должен передать в API prefetchBuffer (): Обычно лучше сохранить это значение равным количеству работников

  3. А что конкретно говорит усреднение частоты? (После 100 итераций каждого работника -> объединить модели?)

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