Я новичок в 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 итераций.
Это правильно?
И что я должен передать в API prefetchBuffer (): Обычно лучше сохранить это значение равным количеству работников
А что конкретно говорит усреднение частоты? (После 100 итераций каждого работника -> объединить модели?)