@ai-on-browser/data-analysis-models
Version:
Data analysis model package without any dependencies
52 lines (51 loc) • 1.35 kB
TypeScript
/**
* Leaky integrate-and-fire layer
*/
export default class SpikeLIFLayer extends Layer {
/**
* @param {object} config object
* @param {number} config.size Size of output
* @param {number[][] | Matrix | string} [config.w] Weight
* @param {number} [config.th] Firing threshold
* @param {number} [config.spike_train_dim] Dimension of the spike train
*/
constructor({ size, w, th, spike_train_dim, ...rest }: {
size: number;
w?: number[][] | Matrix | string;
th?: number;
spike_train_dim?: number;
});
_size: number;
_spike_train_dim: -1;
_rest: number;
_ref: number;
_th: number;
_tc: number;
_peak: number;
_w: Matrix<number>;
_wname: string;
_dt: number;
_tci: number;
_update_method: string;
_a_ltp: number;
_a_ltd: number;
_tc_ltp: number;
_tc_ltd: number;
calc(x: any): Tensor<number>;
_i: any;
_m: Tensor<number>;
_o: Tensor<number>;
grad(): any;
_dw: Matrix<number>;
update(optimizer: any): void;
toObject(): {
type: string;
size: number;
w: string | number[][];
th: number;
spike_train_dim: number;
};
}
import Layer from './base.js';
import Matrix from '../../../util/matrix.js';
import Tensor from '../../../util/tensor.js';