UNPKG

@astermind/astermind-elm

Version:

JavaScript Extreme Learning Machine (ELM) library for browser and Node.js.

52 lines (51 loc) 1.9 kB
export interface EncoderLike { /** Return hidden/embedding for a batch of vectors: (N x Din) -> (N x Dout) */ getEmbedding(X: number[][]): number[][]; /** Optional name for debugging / summary */ name?: string; } export interface ChainOptions { /** L2-normalize rows after each encoder (default: false) */ normalizeEach?: boolean; /** L2-normalize rows at the end (default: false) */ normalizeFinal?: boolean; /** Check that each stage receives non-empty batch and consistent dims (default: true) */ validate?: boolean; /** Throw if any encoder throws (default: true). If false, bubbles partial outputs. */ strict?: boolean; /** Optional chain name used in logs & summary */ name?: string; } export declare class ELMChain { private encoders; private opts; private lastDims; constructor(encoders?: EncoderLike[], opts?: ChainOptions); /** Add encoder at end */ add(encoder: EncoderLike): void; /** Insert encoder at position (0..length) */ insertAt(index: number, encoder: EncoderLike): void; /** Remove encoder at index; returns removed or undefined */ removeAt(index: number): EncoderLike | undefined; /** Remove all encoders */ clear(): void; /** Number of stages */ length(): number; /** Human-friendly overview (dims are filled after the first successful run) */ summary(): string; /** * Compute embeddings. * Overloads allow a single vector or a batch. */ getEmbedding(input: number[]): number[]; getEmbedding(input: number[][]): number[][]; /** * Run once to collect per-stage timings (ms) and final dims. * Returns { timings, dims } where dims[i] is input dim to stage i, * dims[i+1] is that stage’s output dim. */ profile(input: number[] | number[][]): { timings: number[]; dims: number[]; }; }