<?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"); 
 
 
?>
 
 |