@ai-on-browser/data-analysis-models
Version:
Data analysis model package without any dependencies
143 lines (142 loc) • 4.52 kB
TypeScript
/**
* GRU layer
*/
export default class GRULayer extends Layer {
/**
* @param {object} config object
* @param {number} config.size Size of output
* @param {boolean} [config.return_sequences] Return sequences or not
* @param {number[][] | Matrix | string} [config.w_z] Weight of z from input to sequence
* @param {number[][] | Matrix | string} [config.w_r] Weight of r from input to sequence
* @param {number[][] | Matrix | string} [config.w_h] Weight of h from input to sequence
* @param {number[][] | Matrix | string} [config.u_z] Weight of z from sequence to sequence
* @param {number[][] | Matrix | string} [config.u_r] Weight of r from sequence to sequence
* @param {number[][] | Matrix | string} [config.u_h] Weight of h from sequence to sequence
* @param {number[][] | Matrix | string} [config.b_z] Bias of z of output
* @param {number[][] | Matrix | string} [config.b_r] Bias of r of output
* @param {number[][] | Matrix | string} [config.b_h] Bias of h of output
* @param {number} [config.sequence_dim] Dimension of the timesteps
*/
constructor({ size, return_sequences, w_z, w_r, w_h, u_z, u_r, u_h, b_z, b_r, b_h, sequence_dim, ...rest }: {
size: number;
return_sequences?: boolean;
w_z?: number[][] | Matrix | string;
w_r?: number[][] | Matrix | string;
w_h?: number[][] | Matrix | string;
u_z?: number[][] | Matrix | string;
u_r?: number[][] | Matrix | string;
u_h?: number[][] | Matrix | string;
b_z?: number[][] | Matrix | string;
b_r?: number[][] | Matrix | string;
b_h?: number[][] | Matrix | string;
sequence_dim?: number;
});
_size: number;
_unit: GRUUnitLayer;
_return_sequences: boolean;
_sequence_dim: 0 | 1;
calc(x: any): any;
_x: any[];
grad(bo: any): any[] | Tensor<any>;
_grad_bptt(bo: any): any[] | Tensor<any>;
_bo: any[];
update(optimizer: any): void;
toObject(): {
w_z: string | any[][];
w_r: string | any[][];
w_h: string | any[][];
u_z: string | any[][];
u_r: string | any[][];
u_h: string | any[][];
b_z: string | any[][];
b_r: string | any[][];
b_h: string | any[][];
type: string;
size: number;
return_sequences: boolean;
sequence_dim: number;
};
}
import Layer from './base.js';
declare class GRUUnitLayer extends Layer {
constructor({ layer, size, w_z, w_r, w_h, u_z, u_r, u_h, b_z, b_r, b_h, ...rest }: {
[x: string]: any;
layer: any;
size: any;
w_z?: any;
w_r?: any;
w_h?: any;
u_z?: any;
u_r?: any;
u_h?: any;
b_z?: any;
b_r?: any;
b_h?: any;
});
_size: any;
_w_z: Variable;
_w_r: Variable;
_w_h: Variable;
_u_z: Variable;
_u_r: Variable;
_u_h: Variable;
_b_z: Variable;
_b_r: Variable;
_b_h: Variable;
_s0: Matrix<number>;
_x: any[];
_h: any[];
_s: any[];
_z: any[];
_r: any[];
_bo: any[];
_dy: any[];
_dr: any[];
_dz: any[];
_dh: any[];
_sigmoid(x: any): Matrix<number>;
_grad_sigmoid(y: any): Matrix<number>;
_tanh(x: any): Matrix<number>;
_grad_tanh(y: any): Matrix<number>;
calc(x: any, k: any): any;
grad(bo: any, t: any): any;
_grad_bptt(bo: any, t: any): any;
_diff_bptt(): void;
_dw_r: Matrix<number>;
_dw_z: Matrix<number>;
_dw_h: Matrix<number>;
_db_r: Matrix<number>;
_db_z: Matrix<number>;
_db_h: Matrix<number>;
_du_r: Matrix<number>;
_du_z: Matrix<number>;
_du_h: Matrix<number>;
update(optimizer: any): void;
_update_bptt(optimizer: any): void;
toObject(): {
w_z: string | any[][];
w_r: string | any[][];
w_h: string | any[][];
u_z: string | any[][];
u_r: string | any[][];
u_h: string | any[][];
b_z: string | any[][];
b_r: string | any[][];
b_h: string | any[][];
};
}
import Tensor from '../../../util/tensor.js';
import Matrix from '../../../util/matrix.js';
declare class Variable {
constructor(layer: any, value: any, sizes: any);
_layer: any;
_sizes: any;
_name: string;
_value: Matrix<any>;
get name(): string;
get value(): Matrix<any>;
get sizes(): number[];
get(...sizes: any[]): Matrix<any>;
toObject(): string | any[][];
}
export {};