@ai-on-browser/data-analysis-models
Version:
Data analysis model package without any dependencies
65 lines (64 loc) • 2.43 kB
TypeScript
/**
* Convolutional layer
*/
export default class ConvLayer extends Layer {
/**
* @param {object} config object
* @param {number | number[]} config.kernel Size of kernel
* @param {number} [config.channel] Number of output channel
* @param {number | number[]} [config.stride] Step of stride
* @param {number | number[] | [number, number][]} [config.padding] size of padding
* @param {number[][] | Tensor | string} [config.w] Weight of kernel
* @param {string | object} [config.activation] Name of activation or activation layer object
* @param {number} [config.l2_decay] L2 decay
* @param {number} [config.l1_decay] L1 decay
* @param {number} [config.channel_dim] Dimension of the channel
*/
constructor({ kernel, channel, stride, padding, w, activation, l2_decay, l1_decay, channel_dim, ...rest }: {
kernel: number | number[];
channel?: number;
stride?: number | number[];
padding?: number | number[] | [number, number][];
w?: number[][] | Tensor | string;
activation?: string | object;
l2_decay?: number;
l1_decay?: number;
channel_dim?: number;
});
_in_channel: number;
_out_channel: number;
_kernel: number | number[];
_stride: number | number[];
_padding: number | number[] | [number, number][];
_channel_dim: 1 | -1;
_w: Tensor<number>;
_wname: string;
_activation: Layer;
_l2_decay: number;
_l1_decay: number;
_index(i: any, c: any, k: any): any[];
calc(x: any): Tensor<number> | import("../../../util/matrix.js").default<number> | (Tensor<number> | import("../../../util/matrix.js").default<number>)[];
_i: any;
_o: Tensor<number>;
grad(bo: any): Tensor<number> | (Tensor<number> | {
[x: string]: Tensor<number>;
})[];
_bo: any;
_bi: Tensor<number>;
_dw: Tensor<number>;
update(optimizer: any): void;
toObject(): {
type: string;
w: string | import("../../../util/tensor.js").NestedArray<number>;
channel: number;
kernel: number | number[];
stride: number | number[];
padding: number | number[] | [number, number][];
activation: import("./index.js").PlainLayerObject;
l2_decay: number;
l1_decay: number;
channel_dim: number;
};
}
import Layer from './base.js';
import Tensor from '../../../util/tensor.js';