public EarlyStoppingParallelTrainer(EarlyStoppingConfiguration<T> earlyStoppingConfiguration, T model, DataSetIterator train, MultiDataSetIterator trainMulti, EarlyStoppingListener<T> listener, int workers, int prefetchBuffer, int averagingFrequency, boolean reportScoreAfterAveraging, boolean useLegacyAveraging) { this.esConfig = earlyStoppingConfiguration; this.train = train; this.trainMulti = trainMulti; this.iterator = (train != null ? train : trainMulti); this.listener = listener; this.model = model; // adjust UI listeners AveragingIterationListener trainerListener = new AveragingIterationListener(this); if (model instanceof MultiLayerNetwork) { Collection<IterationListener> listeners = ((MultiLayerNetwork) model).getListeners(); Collection<IterationListener> newListeners = new LinkedList<>(listeners); newListeners.add(trainerListener); model.setListeners(newListeners); } else if (model instanceof ComputationGraph) { Collection<IterationListener> listeners = ((ComputationGraph) model).getListeners(); Collection<IterationListener> newListeners = new LinkedList<>(listeners); newListeners.add(trainerListener); model.setListeners(newListeners); } this.wrapper = new ParallelWrapper.Builder<>(model).workers(workers).prefetchBuffer(prefetchBuffer) .averagingFrequency(averagingFrequency) //.useLegacyAveraging(useLegacyAveraging) .reportScoreAfterAveraging(reportScoreAfterAveraging).build(); }
public EarlyStoppingParallelTrainer(EarlyStoppingConfiguration<T> earlyStoppingConfiguration, T model, DataSetIterator train, MultiDataSetIterator trainMulti, EarlyStoppingListener<T> listener, int workers, int prefetchBuffer, int averagingFrequency, boolean reportScoreAfterAveraging, boolean useLegacyAveraging) { this.esConfig = earlyStoppingConfiguration; this.train = train; this.trainMulti = trainMulti; this.iterator = (train != null ? train : trainMulti); this.listener = listener; this.model = model; // adjust UI listeners AveragingIterationListener trainerListener = new AveragingIterationListener(this); if (model instanceof MultiLayerNetwork) { Collection<IterationListener> listeners = ((MultiLayerNetwork) model).getListeners(); Collection<IterationListener> newListeners = new LinkedList<>(listeners); newListeners.add(trainerListener); model.setListeners(newListeners); } else if (model instanceof ComputationGraph) { Collection<IterationListener> listeners = ((ComputationGraph) model).getListeners(); Collection<IterationListener> newListeners = new LinkedList<>(listeners); newListeners.add(trainerListener); model.setListeners(newListeners); } this.wrapper = new ParallelWrapper.Builder<>(model).workers(workers).prefetchBuffer(prefetchBuffer) .averagingFrequency(averagingFrequency) //.useLegacyAveraging(useLegacyAveraging) .reportScoreAfterAveraging(reportScoreAfterAveraging).build(); }