| 
<?PHP
 ini_set('memory_limit', '1024M'); // Increase the memory limit to 1024MB
 include_once("../../CLASSES/Headers.php");
 use NameSpaceNumpyLight\NumpyLight;
 use NameSpaceRandomGenerator\RandomGenerator;
 use NameSpaceActivationRelu\Activation_Relu;
 use NameSpaceOptimizerSGD\Optimizer_SGD;
 use NameSpaceOptimizerAdagrad\Optimizer_Adagrad;
 use NameSpaceOptimizerRMSprop\Optimizer_RMSprop;
 
 list($X, $y) = NumpyLight::sine_data($samples = 10000);
 $validation = NumpyLight::sine_data($samples = 10000);
 
 // Initialize loss function and optimizer
 $loss_function = new Loss_MeanSquaredError();
 $optimizer = new Optimizer_Adam();
 
 
 echo "\n\n Model Init \n\n";
 echo "\n\n? Training on sine wave dataset will commence ?\n\n";
 
 $Model = new Model();
 $Model->add(new Layer_Dense(1, 512));
 $Model->add(new Activation_ReLU());
 $Model->add(new Layer_Dense(512, 512));
 $Model->add(new Activation_ReLU());
 $Model->add(new Layer_Dense(512, 1));
 $Model->add(new Activation_Linear());
 $Model->set(
 $loss_function = new Loss_MeanSquaredError(),
 $optimizer = new Optimizer_Adam(),
 $accuracy = new Accuracy_Regression()
 );
 
 $Model->finalize();
 
 $Model->train($X, $y,$epoch = 20000, $batch_size = 1000,$print_every = 100,$validation_data = $validation);
 
 list($x_test,$y_test) = $validation;
 
 $y_test = NumpyLight::reshape($y_test,[-1,1]);
 
 $flattened_y_test = array_merge(...array_map('array_values', $y_test));
 $activation2_y = array_merge(...array_map('array_values', NumpyLight::reshape($Model->output_layer_activation->output,[-1,1])));
 
 $lines = [
 [
 'yValues' => $flattened_y_test,
 'color' => 'blue'
 ],
 [
 'yValues' => $activation2_y,
 'color' => 'red'
 ]
 ];
 
 
 $plotterTemp = new LinePlotter(500, 500);
 $plotterTemp->setColor('blue', 0, 0, 255); // Blue color
 $plotterTemp->setColor('red', 255, 0, 0); // Blue color
 
 // Plot multiple lines using only y-values
 $plotterTemp->plotMultipleLinesWithYOnly($lines);
 
 $plotterTemp->save("test-fit.png");
 
 
 ?>
 |