@ai-on-browser/data-analysis-models
Version:
Data analysis model package without any dependencies
110 lines (109 loc) • 5.22 kB
TypeScript
export { default as Layer } from "./nns/layer/base.js";
export { default as ComputationalGraph } from "./nns/graph.js";
/**
* @ignore
* @typedef {import("./nns/graph").LayerObject} LayerObject
*/
/**
* Exception for neuralnetwork class
*/
export class NeuralnetworkException extends Error {
/**
* @param {string} message Error message
* @param {*} value Some value
*/
constructor(message: string, value: any);
value: any;
}
/**
* Neuralnetwork
*/
export default class NeuralNetwork {
/**
* Returns neuralnetwork.
* @param {LayerObject[]} layers Network layers
* @param {string} [loss] Loss name
* @param {'sgd' | 'adam' | 'momentum' | 'adagrad' | 'rmsprop' | 'adadelta' | 'rmspropgraves' | 'smorms3' | 'adamax' | 'nadam'} [optimizer] Optimizer of the network
* @returns {NeuralNetwork} Created Neuralnetwork
*/
static fromObject(layers: LayerObject[], loss?: string, optimizer?: "sgd" | "adam" | "momentum" | "adagrad" | "rmsprop" | "adadelta" | "rmspropgraves" | "smorms3" | "adamax" | "nadam"): NeuralNetwork;
/**
* Load onnx model.
* @param {Uint8Array | ArrayBuffer | File} buffer File
* @returns {Promise<NeuralNetwork>} Loaded NeuralNetwork
*/
static fromONNX(buffer: Uint8Array | ArrayBuffer | File): Promise<NeuralNetwork>;
/**
* @param {ComputationalGraph} graph Graph of a network
* @param {'sgd' | 'adam' | 'momentum' | 'adagrad' | 'rmsprop' | 'adadelta' | 'rmspropgraves' | 'smorms3' | 'adamax' | 'nadam' | 'santae' | 'santasss' | 'amsgrad' | 'adabound' | 'amsbound' | 'adabelief'} [optimizer] Optimizer of the network
*/
constructor(graph: ComputationalGraph, optimizer?: "sgd" | "adam" | "momentum" | "adagrad" | "rmsprop" | "adadelta" | "rmspropgraves" | "smorms3" | "adamax" | "nadam" | "santae" | "santasss" | "amsgrad" | "adabound" | "amsbound" | "adabelief");
_graph: ComputationalGraph;
_optimizer: "sgd" | "adam" | "momentum" | "adagrad" | "rmsprop" | "adadelta" | "rmspropgraves" | "smorms3" | "adamax" | "nadam" | "santae" | "santasss" | "amsgrad" | "adabound" | "amsbound" | "adabelief";
_opt: opt.adabelief | opt.adabound | opt.adadelta | opt.adagrad | opt.adam | opt.adamax | opt.amsbound | opt.amsgrad | opt.momentum | opt.nadam | opt.rmsprop | opt.rmspropgraves | opt.santae | opt.santasss | opt.sgd | opt.smorms3;
_opt_managers: {
readonly lr: any;
delta(_: any, value: any): any;
}[];
_getDatasize(x: any): number;
/**
* Returns a copy of this.
* @returns {NeuralNetwork} Copied network
*/
copy(): NeuralNetwork;
/**
* Returns object representation.
* @returns {LayerObject[]} Object represented this neuralnetwork
*/
toObject(): LayerObject[];
/**
* Returns calculated values.
* @param {Array<Array<number | Array<number>>> | Matrix | Tensor | {[key: string]: Array<Array<number | Array<number>>> | Matrix | Tensor}} x Input value
* @param {Matrix} [t] Supervised value
* @param {string[]} [out] Name of node from which to get output
* @param {object} [options] Option
* @returns {Matrix | {[key: string]: Matrix}} Calculated values
*/
calc(x: Array<Array<number | Array<number>>> | Matrix | Tensor | {
[key: string]: Array<Array<number | Array<number>>> | Matrix | Tensor;
}, t?: Matrix, out?: string[], options?: object): Matrix | {
[key: string]: Matrix;
};
/**
* Returns gradient values.
* @param {Matrix} [e] Input of gradient
* @returns {Matrix} Output of gradient
*/
grad(e?: Matrix): Matrix;
/**
* Update model parameters.
* @param {number} learning_rate Learning rate
*/
update(learning_rate: number): void;
/**
* Fit model.
* @param {Array<Array<number | Array<number>>> | Matrix | Tensor | {[key: string]: Array<Array<number | Array<number>>> | Matrix | Tensor}} x Training data
* @param {Array<Array<number>> | Matrix} t Target values
* @param {number} [epoch] Iteration count
* @param {number} [learning_rate] Learning rate
* @param {number} [batch_size] Batch size
* @param {object} [options] Option
* @returns {number[]} Loss value
*/
fit(x: Array<Array<number | Array<number>>> | Matrix | Tensor | {
[key: string]: Array<Array<number | Array<number>>> | Matrix | Tensor;
}, t: Array<Array<number>> | Matrix, epoch?: number, learning_rate?: number, batch_size?: number, options?: object): number[];
/**
* Returns predicted values.
* @param {Array<Array<number | Array<number>>> | Matrix | Tensor | {[key: string]: Array<Array<number | Array<number>>> | Matrix | Tensor}} x Sample data
* @returns {Array<Array<number>>} Predicted values
*/
predict(x: Array<Array<number | Array<number>>> | Matrix | Tensor | {
[key: string]: Array<Array<number | Array<number>>> | Matrix | Tensor;
}): Array<Array<number>>;
}
export type LayerObject = import("./nns/graph").LayerObject;
import * as opt from './nns/optimizer.js';
import Matrix from '../util/matrix.js';
import Tensor from '../util/tensor.js';
import ComputationalGraph from './nns/graph.js';