@buley/neural 4.1.1 → 4.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bench/benchmark.d.ts +2 -0
- package/dist/bench/benchmark.d.ts.map +1 -0
- package/dist/db/repository.d.ts +13 -0
- package/dist/db/repository.d.ts.map +1 -0
- package/dist/db/schema.d.ts +2 -0
- package/dist/db/schema.d.ts.map +1 -0
- package/dist/engine/gpu.d.ts +33 -0
- package/dist/engine/gpu.d.ts.map +1 -0
- package/dist/engine/translator.d.ts +12 -0
- package/dist/engine/translator.d.ts.map +1 -0
- package/dist/engine/webnn.d.ts +14 -0
- package/dist/engine/webnn.d.ts.map +1 -0
- package/dist/index.d.ts +117 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +539 -0
- package/{src/types.ts → dist/types.d.ts} +1 -1
- package/dist/types.d.ts.map +1 -0
- package/package.json +17 -4
- package/index.html +0 -12
- package/src/bench/benchmark.ts +0 -107
- package/src/db/repository.test.ts +0 -67
- package/src/db/repository.ts +0 -44
- package/src/db/schema.ts +0 -40
- package/src/engine/gpu.test.ts +0 -120
- package/src/engine/gpu.ts +0 -266
- package/src/engine/shaders/brain.wgsl +0 -59
- package/src/engine/shaders/training.wgsl +0 -102
- package/src/engine/training.test.ts +0 -107
- package/src/engine/translator.test.ts +0 -58
- package/src/engine/translator.ts +0 -54
- package/src/engine/webnn.ts +0 -118
- package/src/index.ts +0 -216
- package/src/vite-env.d.ts +0 -6
- package/src/webnn-types.d.ts +0 -43
- package/tsconfig.json +0 -24
- package/vite.config.ts +0 -22
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"benchmark.d.ts","sourceRoot":"","sources":["../../src/bench/benchmark.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Neuron, Synapse } from "../types";
|
|
2
|
+
export declare class NeuronRepository {
|
|
3
|
+
create(neuron: Neuron): Promise<void>;
|
|
4
|
+
createWithSemantics(neuron: Neuron, description: string): Promise<void>;
|
|
5
|
+
getAll(): Promise<Neuron[]>;
|
|
6
|
+
delete(id: string): Promise<void>;
|
|
7
|
+
}
|
|
8
|
+
export declare class SynapseRepository {
|
|
9
|
+
create(synapse: Synapse): Promise<void>;
|
|
10
|
+
getAll(): Promise<Synapse[]>;
|
|
11
|
+
delete(id: string): Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=repository.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"repository.d.ts","sourceRoot":"","sources":["../../src/db/repository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAE3C,qBAAa,gBAAgB;IACnB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQrC,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOvE,MAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI3B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG1C;AAED,qBAAa,iBAAiB;IACpB,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAOvC,MAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAI5B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG1C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAGA,wBAAsB,gBAAgB,kBAoCrC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export declare class GPUEngine {
|
|
2
|
+
device: GPUDevice | null;
|
|
3
|
+
pipeline: GPUComputePipeline | null;
|
|
4
|
+
bindGroup: GPUBindGroup | null;
|
|
5
|
+
deltaBuffer: GPUBuffer | null;
|
|
6
|
+
targetBuffer: GPUBuffer | null;
|
|
7
|
+
paramBuffer: GPUBuffer | null;
|
|
8
|
+
trainingPipeline: GPUComputePipeline | null;
|
|
9
|
+
deltaPipeline: GPUComputePipeline | null;
|
|
10
|
+
trainingBindGroup: GPUBindGroup | null;
|
|
11
|
+
weightBuffer: GPUBuffer | null;
|
|
12
|
+
inputBuffer: GPUBuffer | null;
|
|
13
|
+
biasBuffer: GPUBuffer | null;
|
|
14
|
+
outputBuffer: GPUBuffer | null;
|
|
15
|
+
uniformBuffer: GPUBuffer | null;
|
|
16
|
+
networkSize: number;
|
|
17
|
+
batchSize: number;
|
|
18
|
+
init(): Promise<void>;
|
|
19
|
+
prepareBuffers(size: number, weights: Float32Array, biases: Float32Array, batchSize?: number): void;
|
|
20
|
+
private createBuffer;
|
|
21
|
+
runTick(inputs: Float32Array): Promise<Float32Array>;
|
|
22
|
+
prepareTrainingBuffers(targets: Float32Array, learningRate: number): void;
|
|
23
|
+
private subscribers;
|
|
24
|
+
subscribe(callback: (event: {
|
|
25
|
+
type: 'loss' | 'epoch';
|
|
26
|
+
value: number;
|
|
27
|
+
}) => void): () => void;
|
|
28
|
+
private emit;
|
|
29
|
+
train(inputs: Float32Array, targets: Float32Array): Promise<Float32Array>;
|
|
30
|
+
trainTick(deltas?: Float32Array): Promise<void>;
|
|
31
|
+
injectInput(data: Float32Array): Promise<void>;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=gpu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gpu.d.ts","sourceRoot":"","sources":["../../src/engine/gpu.ts"],"names":[],"mappings":"AAIA,qBAAa,SAAS;IAClB,MAAM,EAAE,SAAS,GAAG,IAAI,CAAQ;IAChC,QAAQ,EAAE,kBAAkB,GAAG,IAAI,CAAQ;IAC3C,SAAS,EAAE,YAAY,GAAG,IAAI,CAAQ;IAGtC,WAAW,EAAE,SAAS,GAAG,IAAI,CAAQ;IACrC,YAAY,EAAE,SAAS,GAAG,IAAI,CAAQ;IACtC,WAAW,EAAE,SAAS,GAAG,IAAI,CAAQ;IAErC,gBAAgB,EAAE,kBAAkB,GAAG,IAAI,CAAQ;IACnD,aAAa,EAAE,kBAAkB,GAAG,IAAI,CAAQ;IAChD,iBAAiB,EAAE,YAAY,GAAG,IAAI,CAAQ;IAG9C,YAAY,EAAE,SAAS,GAAG,IAAI,CAAQ;IACtC,WAAW,EAAE,SAAS,GAAG,IAAI,CAAQ;IACrC,UAAU,EAAE,SAAS,GAAG,IAAI,CAAQ;IACpC,YAAY,EAAE,SAAS,GAAG,IAAI,CAAQ;IACtC,aAAa,EAAE,SAAS,GAAG,IAAI,CAAQ;IAEvC,WAAW,EAAE,MAAM,CAAK;IACxB,SAAS,EAAE,MAAM,CAAK;IAEhB,IAAI;IA4BV,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,GAAE,MAAU;IAgC/F,OAAO,CAAC,YAAY;IAgBd,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IA4C1D,sBAAsB,CAAC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM;IA6BlE,OAAO,CAAC,WAAW,CAAsE;IAEzF,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI;IAO9E,OAAO,CAAC,IAAI;IAIN,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAmCzE,SAAS,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA8B/C,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;CAUvD"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Neuron, Synapse } from "../types";
|
|
2
|
+
export declare class Translator {
|
|
3
|
+
private idToIndex;
|
|
4
|
+
private indexToId;
|
|
5
|
+
flatten(neurons: Neuron[], synapses: Synapse[]): {
|
|
6
|
+
size: number;
|
|
7
|
+
weights: Float32Array;
|
|
8
|
+
biases: Float32Array;
|
|
9
|
+
initialValues: Float32Array;
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=translator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"translator.d.ts","sourceRoot":"","sources":["../../src/engine/translator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAE3C,qBAAa,UAAU;IAEnB,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,SAAS,CAAgB;IAGjC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG;QAC7C,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,YAAY,CAAC;QACtB,MAAM,EAAE,YAAY,CAAC;QACrB,aAAa,EAAE,YAAY,CAAA;KAC9B;CAwCJ"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare class WebNNEngine {
|
|
2
|
+
context: MLContext | null;
|
|
3
|
+
builder: MLGraphBuilder | null;
|
|
4
|
+
graph: MLGraph | null;
|
|
5
|
+
networkSize: number;
|
|
6
|
+
batchSize: number;
|
|
7
|
+
weights: Float32Array | null;
|
|
8
|
+
biases: Float32Array | null;
|
|
9
|
+
isReady: boolean;
|
|
10
|
+
init(): Promise<void>;
|
|
11
|
+
prepareModel(size: number, weights: Float32Array, biases: Float32Array, batchSize?: number): Promise<void>;
|
|
12
|
+
runTick(inputs: Float32Array): Promise<Float32Array>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=webnn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webnn.d.ts","sourceRoot":"","sources":["../../src/engine/webnn.ts"],"names":[],"mappings":"AAGA,qBAAa,WAAW;IACpB,OAAO,EAAE,SAAS,GAAG,IAAI,CAAQ;IACjC,OAAO,EAAE,cAAc,GAAG,IAAI,CAAQ;IACtC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAQ;IAG7B,WAAW,EAAE,MAAM,CAAK;IACxB,SAAS,EAAE,MAAM,CAAK;IAItB,OAAO,EAAE,YAAY,GAAG,IAAI,CAAQ;IACpC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAQ;IAEnC,OAAO,UAAS;IAEV,IAAI;IAqBJ,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,GAAE,MAAU;IA4D7F,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;CAiB7D"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { NeuronRepository, SynapseRepository } from "./db/repository";
|
|
2
|
+
import { GPUEngine } from "./engine/gpu";
|
|
3
|
+
import { WebNNEngine } from "./engine/webnn";
|
|
4
|
+
import { Neuron, Synapse } from "./types";
|
|
5
|
+
export type { Neuron, Synapse } from "./types";
|
|
6
|
+
export declare class NeuralEngine {
|
|
7
|
+
gpu: GPUEngine;
|
|
8
|
+
npu: WebNNEngine;
|
|
9
|
+
neuronRepo: NeuronRepository;
|
|
10
|
+
synapseRepo: SynapseRepository;
|
|
11
|
+
private translator;
|
|
12
|
+
activeBackend: 'gpu' | 'npu';
|
|
13
|
+
constructor();
|
|
14
|
+
private neurons;
|
|
15
|
+
private synapses;
|
|
16
|
+
init(): Promise<{
|
|
17
|
+
nodeCount: number;
|
|
18
|
+
nodes: {
|
|
19
|
+
id: string;
|
|
20
|
+
index: number;
|
|
21
|
+
type: "input" | "hidden" | "output" | "cloud";
|
|
22
|
+
}[];
|
|
23
|
+
edges: {
|
|
24
|
+
id: string;
|
|
25
|
+
source: number;
|
|
26
|
+
target: number;
|
|
27
|
+
weight: number;
|
|
28
|
+
}[];
|
|
29
|
+
}>;
|
|
30
|
+
compile(): Promise<{
|
|
31
|
+
size: number;
|
|
32
|
+
weights: Float32Array;
|
|
33
|
+
biases: Float32Array;
|
|
34
|
+
initialValues: Float32Array;
|
|
35
|
+
}>;
|
|
36
|
+
deployToCloud(): Promise<{
|
|
37
|
+
nodeCount: number;
|
|
38
|
+
nodes: {
|
|
39
|
+
id: string;
|
|
40
|
+
index: number;
|
|
41
|
+
type: "input" | "hidden" | "output" | "cloud";
|
|
42
|
+
}[];
|
|
43
|
+
edges: {
|
|
44
|
+
id: string;
|
|
45
|
+
source: number;
|
|
46
|
+
target: number;
|
|
47
|
+
weight: number;
|
|
48
|
+
}[];
|
|
49
|
+
}>;
|
|
50
|
+
getGraphData(): {
|
|
51
|
+
nodeCount: number;
|
|
52
|
+
nodes: {
|
|
53
|
+
id: string;
|
|
54
|
+
index: number;
|
|
55
|
+
type: "input" | "hidden" | "output" | "cloud";
|
|
56
|
+
}[];
|
|
57
|
+
edges: {
|
|
58
|
+
id: string;
|
|
59
|
+
source: number;
|
|
60
|
+
target: number;
|
|
61
|
+
weight: number;
|
|
62
|
+
}[];
|
|
63
|
+
};
|
|
64
|
+
deleteSynapse(id: string): Promise<{
|
|
65
|
+
nodeCount: number;
|
|
66
|
+
nodes: {
|
|
67
|
+
id: string;
|
|
68
|
+
index: number;
|
|
69
|
+
type: "input" | "hidden" | "output" | "cloud";
|
|
70
|
+
}[];
|
|
71
|
+
edges: {
|
|
72
|
+
id: string;
|
|
73
|
+
source: number;
|
|
74
|
+
target: number;
|
|
75
|
+
weight: number;
|
|
76
|
+
}[];
|
|
77
|
+
}>;
|
|
78
|
+
exportGraph(): {
|
|
79
|
+
version: string;
|
|
80
|
+
neurons: Neuron[];
|
|
81
|
+
synapses: Synapse[];
|
|
82
|
+
};
|
|
83
|
+
importGraph(data: {
|
|
84
|
+
neurons: Neuron[];
|
|
85
|
+
synapses: Synapse[];
|
|
86
|
+
}): Promise<{
|
|
87
|
+
nodeCount: number;
|
|
88
|
+
nodes: {
|
|
89
|
+
id: string;
|
|
90
|
+
index: number;
|
|
91
|
+
type: "input" | "hidden" | "output" | "cloud";
|
|
92
|
+
}[];
|
|
93
|
+
edges: {
|
|
94
|
+
id: string;
|
|
95
|
+
source: number;
|
|
96
|
+
target: number;
|
|
97
|
+
weight: number;
|
|
98
|
+
}[];
|
|
99
|
+
}>;
|
|
100
|
+
injectInput(data: Float32Array): Promise<void>;
|
|
101
|
+
runTick(inputs: Float32Array): Promise<Float32Array>;
|
|
102
|
+
}
|
|
103
|
+
export declare function init(): Promise<{
|
|
104
|
+
nodeCount: number;
|
|
105
|
+
nodes: {
|
|
106
|
+
id: string;
|
|
107
|
+
index: number;
|
|
108
|
+
type: "input" | "hidden" | "output" | "cloud";
|
|
109
|
+
}[];
|
|
110
|
+
edges: {
|
|
111
|
+
id: string;
|
|
112
|
+
source: number;
|
|
113
|
+
target: number;
|
|
114
|
+
weight: number;
|
|
115
|
+
}[];
|
|
116
|
+
}>;
|
|
117
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAE1C,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAE/C,qBAAa,YAAY;IACrB,GAAG,EAAE,SAAS,CAAC;IACf,GAAG,EAAE,WAAW,CAAC;IACjB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,WAAW,EAAE,iBAAiB,CAAC;IAC/B,OAAO,CAAC,UAAU,CAAa;IAE/B,aAAa,EAAE,KAAK,GAAG,KAAK,CAAS;;IAWrC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,QAAQ,CAAiB;IAE3B,IAAI;;;;;;;;;;;;;;IAsDJ,OAAO;;;;;;IAgBP,aAAa;;;;;;;;;;;;;;IAoBnB,YAAY;;;;;;;;;;;;;;IA0BN,aAAa,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;;;;IAa9B,WAAW;;;;;IAQL,WAAW,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,OAAO,EAAE,CAAA;KAAE;;;;;;;;;;;;;;IA0B5D,WAAW,CAAC,IAAI,EAAE,YAAY;IAQ9B,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;CAO7D;AAGD,wBAAsB,IAAI;;;;;;;;;;;;;GAGzB"}
|