@mni-ml/framework 0.0.1

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.
Files changed (73) hide show
  1. package/dist/autodiff.d.ts +13 -0
  2. package/dist/autodiff.d.ts.map +1 -0
  3. package/dist/autodiff.js +91 -0
  4. package/dist/autodiff.js.map +1 -0
  5. package/dist/datasets.d.ts +16 -0
  6. package/dist/datasets.d.ts.map +1 -0
  7. package/dist/datasets.js +64 -0
  8. package/dist/datasets.js.map +1 -0
  9. package/dist/fast_ops.d.ts +23 -0
  10. package/dist/fast_ops.d.ts.map +1 -0
  11. package/dist/fast_ops.js +263 -0
  12. package/dist/fast_ops.js.map +1 -0
  13. package/dist/fast_ops_worker.d.ts +2 -0
  14. package/dist/fast_ops_worker.d.ts.map +1 -0
  15. package/dist/fast_ops_worker.js +119 -0
  16. package/dist/fast_ops_worker.js.map +1 -0
  17. package/dist/gpu_backend.d.ts +37 -0
  18. package/dist/gpu_backend.d.ts.map +1 -0
  19. package/dist/gpu_backend.js +163 -0
  20. package/dist/gpu_backend.js.map +1 -0
  21. package/dist/gpu_kernels.d.ts +74 -0
  22. package/dist/gpu_kernels.d.ts.map +1 -0
  23. package/dist/gpu_kernels.js +571 -0
  24. package/dist/gpu_kernels.js.map +1 -0
  25. package/dist/gpu_ops.d.ts +43 -0
  26. package/dist/gpu_ops.d.ts.map +1 -0
  27. package/dist/gpu_ops.js +365 -0
  28. package/dist/gpu_ops.js.map +1 -0
  29. package/dist/index.d.ts +15 -0
  30. package/dist/index.d.ts.map +1 -0
  31. package/dist/index.js +20 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/module.d.ts +23 -0
  34. package/dist/module.d.ts.map +1 -0
  35. package/dist/module.js +97 -0
  36. package/dist/module.js.map +1 -0
  37. package/dist/nn.d.ts +63 -0
  38. package/dist/nn.d.ts.map +1 -0
  39. package/dist/nn.js +234 -0
  40. package/dist/nn.js.map +1 -0
  41. package/dist/operators.d.ts +29 -0
  42. package/dist/operators.d.ts.map +1 -0
  43. package/dist/operators.js +91 -0
  44. package/dist/operators.js.map +1 -0
  45. package/dist/optimizer.d.ts +15 -0
  46. package/dist/optimizer.d.ts.map +1 -0
  47. package/dist/optimizer.js +62 -0
  48. package/dist/optimizer.js.map +1 -0
  49. package/dist/scalar.d.ts +42 -0
  50. package/dist/scalar.d.ts.map +1 -0
  51. package/dist/scalar.js +126 -0
  52. package/dist/scalar.js.map +1 -0
  53. package/dist/scalar_functions.d.ts +62 -0
  54. package/dist/scalar_functions.d.ts.map +1 -0
  55. package/dist/scalar_functions.js +127 -0
  56. package/dist/scalar_functions.js.map +1 -0
  57. package/dist/tensor.d.ts +58 -0
  58. package/dist/tensor.d.ts.map +1 -0
  59. package/dist/tensor.js +288 -0
  60. package/dist/tensor.js.map +1 -0
  61. package/dist/tensor_data.d.ts +29 -0
  62. package/dist/tensor_data.d.ts.map +1 -0
  63. package/dist/tensor_data.js +131 -0
  64. package/dist/tensor_data.js.map +1 -0
  65. package/dist/tensor_functions.d.ts +97 -0
  66. package/dist/tensor_functions.d.ts.map +1 -0
  67. package/dist/tensor_functions.js +465 -0
  68. package/dist/tensor_functions.js.map +1 -0
  69. package/dist/tensor_ops.d.ts +47 -0
  70. package/dist/tensor_ops.d.ts.map +1 -0
  71. package/dist/tensor_ops.js +249 -0
  72. package/dist/tensor_ops.js.map +1 -0
  73. package/package.json +45 -0
@@ -0,0 +1,131 @@
1
+ export class IndexingError extends Error {
2
+ constructor(message) {
3
+ super(message);
4
+ this.name = 'IndexingError';
5
+ }
6
+ }
7
+ export function indexToPosition(idx, strides) {
8
+ let position = 0;
9
+ for (let i = 0; i < idx.length; i++) {
10
+ position += idx[i] * strides[i];
11
+ }
12
+ return position;
13
+ }
14
+ export function toIndex(ordinal, shape, outIndex) {
15
+ let remaining = ordinal;
16
+ for (let i = shape.length - 1; i >= 0; i--) {
17
+ const dimSize = shape[i];
18
+ outIndex[i] = remaining % dimSize;
19
+ remaining = Math.floor(remaining / dimSize);
20
+ }
21
+ }
22
+ export function shapeProduct(shape) {
23
+ let product = 1;
24
+ for (const dim of shape) {
25
+ product *= dim;
26
+ }
27
+ return product;
28
+ }
29
+ export function strides(shape) {
30
+ const result = new Array(shape.length);
31
+ let stride = 1;
32
+ for (let i = shape.length - 1; i >= 0; i--) {
33
+ result[i] = stride;
34
+ stride *= shape[i];
35
+ }
36
+ return result;
37
+ }
38
+ export function createSharedStorage(size) {
39
+ const buffer = new SharedArrayBuffer(size * Float64Array.BYTES_PER_ELEMENT);
40
+ return new Float64Array(buffer);
41
+ }
42
+ export class TensorData {
43
+ storage;
44
+ shape;
45
+ strides;
46
+ size;
47
+ dims;
48
+ constructor(storage, shape, inputStrides) {
49
+ this.storage = storage;
50
+ this.shape = shape;
51
+ this.strides = inputStrides ?? strides(shape);
52
+ this.size = shapeProduct(shape);
53
+ this.dims = shape.length;
54
+ if (this.strides.length !== this.dims) {
55
+ throw new Error(`Strides length (${this.strides.length}) must match shape length (${this.dims})`);
56
+ }
57
+ }
58
+ static zeros(shape) {
59
+ const size = shapeProduct(shape);
60
+ const storage = createSharedStorage(size);
61
+ return new TensorData(storage, shape);
62
+ }
63
+ get(idx) {
64
+ return this.storage[indexToPosition(idx, this.strides)];
65
+ }
66
+ set(idx, value) {
67
+ this.storage[indexToPosition(idx, this.strides)] = value;
68
+ }
69
+ permute(...order) {
70
+ if (order.length !== this.dims) {
71
+ throw new Error(`Permutation length(${order.length}) must match number of dimensions (${this.dims})`);
72
+ }
73
+ const seen = new Set();
74
+ for (const i of order) {
75
+ if (i < 0 || i >= this.dims) {
76
+ throw new Error(`Invalid dimension index: ${i}`);
77
+ }
78
+ if (seen.has(i)) {
79
+ throw new Error(`Duplicate dimension in permutation: ${i}`);
80
+ }
81
+ seen.add(i);
82
+ }
83
+ const newShape = new Array(this.dims);
84
+ const newStrides = new Array(this.dims);
85
+ for (let i = 0; i < this.dims; i++) {
86
+ newShape[i] = this.shape[order[i]];
87
+ newStrides[i] = this.strides[order[i]];
88
+ }
89
+ return new TensorData(this.storage, newShape, newStrides);
90
+ }
91
+ toString() {
92
+ return `TensorData(shape=${JSON.stringify(this.shape)}, strides=${JSON.stringify(this.strides)})`;
93
+ }
94
+ }
95
+ export function shapeBroadcast(shape1, shape2) {
96
+ const maxDims = Math.max(shape1.length, shape2.length);
97
+ const result = new Array(maxDims);
98
+ for (let i = 0; i < maxDims; i++) {
99
+ const idx1 = shape1.length - 1 - i;
100
+ const idx2 = shape2.length - 1 - i;
101
+ const dim1 = idx1 >= 0 ? shape1[idx1] : 1;
102
+ const dim2 = idx2 >= 0 ? shape2[idx2] : 1;
103
+ if (dim1 == dim2) {
104
+ result[maxDims - 1 - i] = dim1;
105
+ }
106
+ else if (dim1 === 1) {
107
+ result[maxDims - 1 - i] = dim2;
108
+ }
109
+ else if (dim2 === 1) {
110
+ result[maxDims - 1 - i] = dim1;
111
+ }
112
+ else {
113
+ throw new IndexingError(`Cannot broadcast shapes [${shape1.join(', ')}] and [${shape2.join(', ')}]: ` +
114
+ `dimension mismatch at position ${-i - 1} (${dim1} vs ${dim2})`);
115
+ }
116
+ }
117
+ return result;
118
+ }
119
+ export function broadcastIndex(bigIndex, bigShape, shape, outIndex) {
120
+ const offset = bigShape.length - shape.length;
121
+ for (let i = 0; i < shape.length; i++) {
122
+ const bigI = i + offset;
123
+ if (shape[i] === 1) {
124
+ outIndex[i] = 0;
125
+ }
126
+ else {
127
+ outIndex[i] = bigIndex[bigI];
128
+ }
129
+ }
130
+ }
131
+ //# sourceMappingURL=tensor_data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tensor_data.js","sourceRoot":"","sources":["../src/tensor_data.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,97 @@
1
+ import type { Shape } from './tensor_data.js';
2
+ import { TensorData } from './tensor_data.js';
3
+ import { Tensor } from './tensor.js';
4
+ export declare function neg(a: TensorData): TensorData;
5
+ export declare function sigmoid(a: TensorData): TensorData;
6
+ export declare function relu(a: TensorData): TensorData;
7
+ export declare function log(a: TensorData): TensorData;
8
+ export declare function exp(a: TensorData): TensorData;
9
+ export declare function id(a: TensorData): TensorData;
10
+ export declare function inv(a: TensorData): TensorData;
11
+ export declare function add(a: TensorData, b: TensorData): TensorData;
12
+ export declare function mul(a: TensorData, b: TensorData): TensorData;
13
+ export declare function lt(a: TensorData, b: TensorData): TensorData;
14
+ export declare function eq(a: TensorData, b: TensorData): TensorData;
15
+ export declare function isClose(a: TensorData, b: TensorData): TensorData;
16
+ export declare function sum(a: TensorData, dim: number): TensorData;
17
+ export declare function prod(a: TensorData, dim: number): TensorData;
18
+ export declare function max(a: TensorData, dim: number): TensorData;
19
+ export declare function permute(a: TensorData, order: number[]): TensorData;
20
+ export declare function view(a: TensorData, shape: Shape): TensorData;
21
+ export declare function contiguous(a: TensorData): TensorData;
22
+ export declare class TensorContext {
23
+ private _savedTensors;
24
+ saveForBackward(...tensors: Tensor[]): void;
25
+ get savedTensors(): Tensor[];
26
+ }
27
+ export declare class TensorHistory {
28
+ lastFn: typeof TensorFunction | null;
29
+ ctx: TensorContext | null;
30
+ inputs: Tensor[];
31
+ constructor(lastFn?: typeof TensorFunction | null, ctx?: TensorContext | null, inputs?: Tensor[]);
32
+ }
33
+ export declare abstract class TensorFunction {
34
+ static forward(ctx: TensorContext, ...inputs: Tensor[]): Tensor;
35
+ static backward(ctx: TensorContext, gradOutput: Tensor): Tensor[];
36
+ }
37
+ export declare class Neg extends TensorFunction {
38
+ static forward(ctx: TensorContext, a: Tensor): Tensor;
39
+ static backward(ctx: TensorContext, gradOutput: Tensor): Tensor[];
40
+ }
41
+ export declare class Sigmoid extends TensorFunction {
42
+ static forward(ctx: TensorContext, a: Tensor): Tensor;
43
+ static backward(ctx: TensorContext, gradOutput: Tensor): Tensor[];
44
+ }
45
+ export declare class ReLU extends TensorFunction {
46
+ static forward(ctx: TensorContext, a: Tensor): Tensor;
47
+ static backward(ctx: TensorContext, gradOutput: Tensor): Tensor[];
48
+ }
49
+ export declare class Log extends TensorFunction {
50
+ static forward(ctx: TensorContext, a: Tensor): Tensor;
51
+ static backward(ctx: TensorContext, gradOutput: Tensor): Tensor[];
52
+ }
53
+ export declare class Exp extends TensorFunction {
54
+ static forward(ctx: TensorContext, a: Tensor): Tensor;
55
+ static backward(ctx: TensorContext, gradOutput: Tensor): Tensor[];
56
+ }
57
+ export declare class Inv extends TensorFunction {
58
+ static forward(ctx: TensorContext, a: Tensor): Tensor;
59
+ static backward(ctx: TensorContext, gradOutput: Tensor): Tensor[];
60
+ }
61
+ export declare class Add extends TensorFunction {
62
+ static forward(ctx: TensorContext, a: Tensor, b: Tensor): Tensor;
63
+ static backward(ctx: TensorContext, gradOutput: Tensor): Tensor[];
64
+ }
65
+ export declare class Mul extends TensorFunction {
66
+ static forward(ctx: TensorContext, a: Tensor, b: Tensor): Tensor;
67
+ static backward(ctx: TensorContext, gradOutput: Tensor): Tensor[];
68
+ }
69
+ export declare class LT extends TensorFunction {
70
+ static forward(ctx: TensorContext, a: Tensor, b: Tensor): Tensor;
71
+ static backward(ctx: TensorContext, gradOutput: Tensor): Tensor[];
72
+ }
73
+ export declare class EQ extends TensorFunction {
74
+ static forward(ctx: TensorContext, a: Tensor, b: Tensor): Tensor;
75
+ static backward(ctx: TensorContext, gradOutput: Tensor): Tensor[];
76
+ }
77
+ export declare function Sum(dim: number): typeof TensorFunction;
78
+ export declare function Max(dim: number): typeof TensorFunction;
79
+ export declare function Permute(order: number[]): typeof TensorFunction;
80
+ export declare function View(newShape: Shape): typeof TensorFunction;
81
+ export declare class Contiguous extends TensorFunction {
82
+ static forward(ctx: TensorContext, a: Tensor): Tensor;
83
+ static backward(ctx: TensorContext, gradOutput: Tensor): Tensor[];
84
+ }
85
+ export declare class MatMul extends TensorFunction {
86
+ static forward(ctx: TensorContext, a: Tensor, b: Tensor): Tensor;
87
+ static backward(ctx: TensorContext, gradOut: Tensor): Tensor[];
88
+ }
89
+ export declare class Conv1d extends TensorFunction {
90
+ static forward(ctx: TensorContext, input: Tensor, weight: Tensor): Tensor;
91
+ static backward(ctx: TensorContext, gradOut: Tensor): Tensor[];
92
+ }
93
+ export declare class Conv2d extends TensorFunction {
94
+ static forward(ctx: TensorContext, input: Tensor, weight: Tensor): Tensor;
95
+ static backward(ctx: TensorContext, gradOut: Tensor): Tensor[];
96
+ }
97
+ //# sourceMappingURL=tensor_functions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tensor_functions.d.ts","sourceRoot":"","sources":["../src/tensor_functions.ts"],"names":[],"mappings":"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"}