brain.js
Version:
Neural networks in JavaScript
84 lines • 3.4 kB
TypeScript
import { Filter } from './filter';
import { IConstantsThis, IKernelFunctionThis, IKernelRunShortcut, KernelOutput } from 'gpu.js';
import { ILayer, ILayerSettings } from './base-layer';
export interface IConvolutionConstantsBase extends IConstantsThis {
paddingX: number;
paddingY: number;
strideX: number;
strideY: number;
filterWidth: number;
filterHeight: number;
}
export interface IPredictConstants extends IConvolutionConstantsBase {
inputWidth: number;
inputHeight: number;
inputDepth: number;
}
export declare function predict(this: IKernelFunctionThis<IPredictConstants>, inputs: number[][][], filters: number[][][], biases: number[]): number;
export interface ICompareFilterDeltasConstants extends IConvolutionConstantsBase {
deltaWidth: number;
deltaHeight: number;
inputWidth: number;
inputHeight: number;
deltaZ: number;
}
export declare function compareFilterDeltas(this: IKernelFunctionThis<ICompareFilterDeltasConstants>, filterDeltas: number[][][], inputs: number[][][], deltas: number[][][]): number;
export interface ICompareInputDeltasConstants extends IConvolutionConstantsBase {
deltaHeight: number;
deltaWidth: number;
deltaZ: number;
}
export declare function compareInputDeltas(this: IKernelFunctionThis<ICompareInputDeltasConstants>, inputDeltas: number[][][], filters: number[][][], deltas: number[][][]): number;
export interface ICompareBiasesConstants extends IConstantsThis {
deltaHeight: number;
deltaWidth: number;
}
export declare function compareBiases(this: IKernelFunctionThis<ICompareBiasesConstants>, biasDeltas: number[][][], deltas: number[][][]): number;
export interface IConvolutionSettingsBase {
stride?: number;
strideX?: number;
strideY?: number;
padding?: number;
paddingX?: number;
paddingY?: number;
filterCount?: number;
filterWidth?: number;
filterHeight?: number;
}
export interface IConvolutionSettings extends ILayerSettings, IConvolutionSettingsBase {
bias?: number;
biases?: KernelOutput;
biasDeltas?: KernelOutput;
filters?: KernelOutput;
filterDeltas?: KernelOutput;
}
export declare const defaults: IConvolutionSettings;
export declare class Convolution extends Filter {
settings: Partial<IConvolutionSettings>;
get strideX(): number;
get strideY(): number;
get paddingX(): number;
get paddingY(): number;
get width(): number;
get height(): number;
get bias(): number;
get depth(): number;
get biases(): KernelOutput;
set biases(biases: KernelOutput);
get biasDeltas(): KernelOutput;
set biasDeltas(weights: KernelOutput);
get filters(): KernelOutput;
set filters(filters: KernelOutput);
get filterDeltas(): KernelOutput;
set filterDeltas(filterDeltas: KernelOutput);
constructor(settings: IConvolutionSettings, inputLayer: ILayer);
compareFilterDeltasKernel: IKernelRunShortcut | null;
compareInputDeltasKernel: IKernelRunShortcut | null;
compareBiasesKernel: IKernelRunShortcut | null;
setupKernels(): void;
predict(): void;
compare(): void;
learn(learningRate: number): void;
}
export declare function convolution(settings: IConvolutionSettings, inputLayer: ILayer): Convolution;
//# sourceMappingURL=convolution.d.ts.map