MCPcopy Create free account
hub / github.com/EdwardRaff/JSAT / train

Method train

JSAT/src/jsat/regression/RANSAC.java:311–352  ·  view source on GitHub ↗
(RegressionDataSet dataSet, ExecutorService threadPool)

Source from the content-addressed store, hash-verified

309 }
310
311 @Override
312 public void train(RegressionDataSet dataSet, ExecutorService threadPool)
313 {
314 try
315 {
316
317 int workSize = iterations/SystemInfo.LogicalCores;
318 int leftOver = iterations%SystemInfo.LogicalCores;
319
320 List<Future<RANSACWorker>> futures = new ArrayList<Future<RANSACWorker>>(SystemInfo.LogicalCores+1);
321 if(leftOver != 0)
322 futures.add(threadPool.submit(new RANSACWorker(baseRegressor, leftOver, dataSet)));
323 for(int i = 0; i < SystemInfo.LogicalCores; i++)
324 futures.add(threadPool.submit(new RANSACWorker(baseRegressor, workSize, dataSet)));
325
326 PriorityQueue<RANSACWorker> results = new PriorityQueue<RANSACWorker>(SystemInfo.LogicalCores+1);
327
328 for( Future<RANSACWorker> futureWorker : futures )
329 results.add(futureWorker.get());
330
331 RANSACWorker bestResult = results.peek();
332
333 modelError = bestResult.bestError;
334 if(Double.isInfinite(modelError))
335 throw new FailedToFitException("Model could not be fit, inlier set never reach minimum size");
336 baseRegressor = bestResult.bestModel;
337 consensusSet = bestResult.bestConsensusSet;
338
339
340 }
341 catch (InterruptedException ex)
342 {
343 Logger.getLogger(RANSAC.class.getName()).log(Level.SEVERE, null, ex);
344 throw new FailedToFitException(ex);
345 }
346 catch (ExecutionException ex)
347 {
348 Logger.getLogger(RANSAC.class.getName()).log(Level.SEVERE, null, ex);
349 throw new FailedToFitException(ex);
350 }
351
352 }
353
354 @Override
355 public void train(RegressionDataSet dataSet)

Callers 1

testCloneMethod · 0.95

Calls 6

submitMethod · 0.80
peekMethod · 0.80
logMethod · 0.80
getNameMethod · 0.65
addMethod · 0.45
getMethod · 0.45

Tested by 1

testCloneMethod · 0.76