UNPKG

deept.js

Version:

Eine TypeScript/JavaScript Library für ML im Browser

80 lines (79 loc) 2.93 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var matrix_1 = __importDefault(require("../Matrix/matrix")); var neuralnet_1 = __importDefault(require("./neuralnet")); var HiddenLayer = /** @class */ (function () { function HiddenLayer(nodesInFront, numOfNodes) { this.W_F_T = new matrix_1.default(numOfNodes, nodesInFront); this.W_F_T.randomize(); this.biases = new matrix_1.default(numOfNodes, 1); this.biases.randomize(); this.values = new matrix_1.default(numOfNodes, 1); } return HiddenLayer; }()); exports.HiddenLayer = HiddenLayer; var OutputLayer = /** @class */ (function () { function OutputLayer(nodesInFront, numOfNodes) { this.W_F_T = new matrix_1.default(numOfNodes, nodesInFront); this.W_F_T.randomize(); this.biases = new matrix_1.default(numOfNodes, 1); this.biases.randomize(); } return OutputLayer; }()); exports.OutputLayer = OutputLayer; function addHiddenLayer(layer, net) { net.hiddenLayerNodes[net.numHiddenLayers] = layer.nodes; // Check if its the first hidden layer if (net.numHiddenLayers === 0) { net.hiddenLayers[net.numHiddenLayers] = new HiddenLayer(net.inputNodes, net.hiddenLayerNodes[net.numHiddenLayers]); } else { net.hiddenLayers[net.numHiddenLayers] = new HiddenLayer(net.hiddenLayerNodes[net.numHiddenLayers - 1], net.hiddenLayerNodes[net.numHiddenLayers]); } net.numHiddenLayers++; } exports.addHiddenLayer = addHiddenLayer; function addOutputLayer(layer, net) { net.outputNodes = layer.nodes; net.outputLayer = new OutputLayer(net.hiddenLayerNodes[net.numHiddenLayers - 1], net.outputNodes); } exports.addOutputLayer = addOutputLayer; function load(data) { var obj = JSON.parse(data); var net = new neuralnet_1.default(); net.inputNodes = obj.inputNodes; for (var i = 0; i < obj.hiddenLayerNodes.length; i++) { net.hiddenLayerNodes[i] = obj.hiddenLayerNodes[i]; } for (var i = 0; i < obj.hiddenLayers.length; i++) { net.hiddenLayers[i] = obj.hiddenLayers[i]; } net.numHiddenLayers = obj.numHiddenLayers; net.outputNodes = obj.outputNodes; net.outputLayer = obj.outputLayer; net.learningRate = obj.learningRate; return net; } exports.load = load; function pickRandomFromArray(array) { return array[Math.floor(Math.random() * array.length)]; } exports.pickRandomFromArray = pickRandomFromArray; function sigmoid(x) { /* * Activation-Function */ return 1 / (1 + Math.exp(-x)); } exports.sigmoid = sigmoid; function dsigmoid(y) { return y * (1 - y); } exports.dsigmoid = dsigmoid;