Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 3.11.x will end 14 Nov 2022 (12 months plus 6 months extension).
  • Bug fixes for security issues in 3.11.x will end 13 Nov 2023 (18 months plus 12 months extension).
  • PHP version: minimum PHP 7.3.0 Note: minimum PHP version has increased since Moodle 3.10. PHP 7.4.x is supported too.
<?php

declare(strict_types=1);

namespace Phpml\NeuralNetwork\Node\Neuron;

use Phpml\NeuralNetwork\Node;

class Synapse
{
    /**
     * @var float
     */
    protected $weight;

    /**
     * @var Node
     */
    protected $node;

    /**
     * @param float|null $weight
     */
    public function __construct(Node $node, ?float $weight = null)
    {
        $this->node = $node;
< $this->weight = $weight ?: $this->generateRandomWeight();
> $this->weight = $weight ?? $this->generateRandomWeight();
} public function getOutput(): float { return $this->weight * $this->node->getOutput(); } public function changeWeight(float $delta): void { $this->weight += $delta; } public function getWeight(): float { return $this->weight; } public function getNode(): Node { return $this->node; } protected function generateRandomWeight(): float { return (1 / random_int(5, 25) * random_int(0, 1)) > 0 ? -1 : 1; } }