Added Limited Epoch Event Buffer
for better frontend performance when using big max epoch number
This commit is contained in:
@@ -8,6 +8,7 @@ use App\Models\SimpleBinaryPerceptronTraining;
|
||||
use App\Services\DataSetReader;
|
||||
use App\Services\ISynapticWeightsProvider;
|
||||
use App\Services\PerceptronIterationEventBuffer;
|
||||
use App\Services\PerceptronLimitedEpochEventBuffer;
|
||||
use App\Services\ZeroSynapticWeights;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
@@ -91,8 +92,15 @@ class PerceptronController extends Controller
|
||||
case 'simple':
|
||||
$dataset['defaultLearningRate'] = 0.015;
|
||||
break;
|
||||
case 'gradientdescent':
|
||||
$dataset['defaultLearningRate'] = 0.001;
|
||||
$dataset['defaultMinError'] = 2.0;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 'table_2_11':
|
||||
$dataset['defaultMinError'] = 1.0;
|
||||
break;
|
||||
}
|
||||
$datasets[] = $dataset;
|
||||
}
|
||||
@@ -121,9 +129,14 @@ class PerceptronController extends Controller
|
||||
$synapticWeightsProvider = new ZeroSynapticWeights();
|
||||
}
|
||||
|
||||
$iterationEventBuffer = new PerceptronIterationEventBuffer($sessionId, $trainingId);
|
||||
if ($maxIterations > config('perceptron.limited_broadcast_iterations')) {
|
||||
$iterationsInterval = (int)($maxIterations / config('perceptron.limited_broadcast_iterations'));
|
||||
$iterationEventBuffer = new PerceptronLimitedEpochEventBuffer($sessionId, $trainingId, $iterationsInterval);
|
||||
}
|
||||
|
||||
$dataSetReader = $this->getDataSetReader($dataSet);
|
||||
|
||||
$iterationEventBuffer = new PerceptronIterationEventBuffer($sessionId, $trainingId);
|
||||
|
||||
$networkTraining = match ($perceptronType) {
|
||||
'simple' => new SimpleBinaryPerceptronTraining($dataSetReader, $learningRate, $maxIterations, $synapticWeightsProvider, $iterationEventBuffer, $sessionId, $trainingId),
|
||||
|
||||
Reference in New Issue
Block a user