UNPKG

@webwriter/neural-network

Version:

Deep learning visualization for feed-forward networks with custom datasets, training and prediction.

1,405 lines (1,401 loc) 10.1 MB
var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name); var __typeError = (msg2) => { throw TypeError(msg2); }; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __name = (target, value) => __defProp(target, "name", { value, configurable: true }); var __glob = (map2) => (path) => { var fn3 = map2[path]; if (fn3) return fn3(); throw new Error("Module not found in bundle: " + path); }; var __esm = (fn3, res) => function __init() { return fn3 && (res = (0, fn3[__getOwnPropNames(fn3)[0]])(fn3 = 0)), res; }; var __commonJS = (cb, mod4) => function __require() { return mod4 || (0, cb[__getOwnPropNames(cb)[0]])((mod4 = { exports: {} }).exports, mod4), mod4.exports; }; var __export = (target, all5) => { for (var name in all5) __defProp(target, name, { get: all5[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __reExport = (target, mod4, secondTarget) => (__copyProps(target, mod4, "default"), secondTarget && __copyProps(secondTarget, mod4, "default")); var __toESM = (mod4, isNodeMode, target) => (target = mod4 != null ? __create(__getProtoOf(mod4)) : {}, __copyProps( // If the importer is in node compatibility mode or this is not an ESM // file that has been converted to a CommonJS file using a Babel- // compatible transform (i.e. "__esModule" has not been set), then set // "default" to the CommonJS "module.exports" for node compatibility. isNodeMode || !mod4 || !mod4.__esModule ? __defProp(target, "default", { value: mod4, enumerable: true }) : target, mod4 )); var __toCommonJS = (mod4) => __copyProps(__defProp({}, "__esModule", { value: true }), mod4); var __decoratorStart = (base) => [, , , __create(base?.[__knownSymbol("metadata")] ?? null)]; var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"]; var __expectFn = (fn3) => fn3 !== void 0 && typeof fn3 !== "function" ? __typeError("Function expected") : fn3; var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn3) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn3 || null)) }); var __decoratorMetadata = (array4, target) => __defNormalProp(target, __knownSymbol("metadata"), array4[3]); var __runInitializers = (array4, flags, self2, value) => { for (var i14 = 0, fns = array4[flags >> 1], n16 = fns && fns.length; i14 < n16; i14++) flags & 1 ? fns[i14].call(self2) : value = fns[i14].call(self2, value); return value; }; var __decorateElement = (array4, flags, name, decorators, target, extra) => { var fn3, it2, done, ctx, access, k4 = flags & 7, s12 = !!(flags & 8), p8 = !!(flags & 16); var j4 = k4 > 3 ? array4.length + 1 : k4 ? s12 ? 1 : 2 : 0, key = __decoratorStrings[k4 + 5]; var initializers = k4 > 3 && (array4[j4 - 1] = []), extraInitializers = array4[j4] || (array4[j4] = []); var desc = k4 && (!p8 && !s12 && (target = target.prototype), k4 < 5 && (k4 > 3 || !p8) && __getOwnPropDesc(k4 < 4 ? target : { get [name]() { return __privateGet(this, extra); }, set [name](x5) { return __privateSet(this, extra, x5); } }, name)); k4 ? p8 && k4 < 4 && __name(extra, (k4 > 2 ? "set " : k4 > 1 ? "get " : "") + name) : __name(target, name); for (var i14 = decorators.length - 1; i14 >= 0; i14--) { ctx = __decoratorContext(k4, name, done = {}, array4[3], extraInitializers); if (k4) { ctx.static = s12, ctx.private = p8, access = ctx.access = { has: p8 ? (x5) => __privateIn(target, x5) : (x5) => name in x5 }; if (k4 ^ 3) access.get = p8 ? (x5) => (k4 ^ 1 ? __privateGet : __privateMethod)(x5, target, k4 ^ 4 ? extra : desc.get) : (x5) => x5[name]; if (k4 > 2) access.set = p8 ? (x5, y7) => __privateSet(x5, target, y7, k4 ^ 4 ? extra : desc.set) : (x5, y7) => x5[name] = y7; } it2 = (0, decorators[i14])(k4 ? k4 < 4 ? p8 ? extra : desc[key] : k4 > 4 ? void 0 : { get: desc.get, set: desc.set } : target, ctx), done._ = 1; if (k4 ^ 4 || it2 === void 0) __expectFn(it2) && (k4 > 4 ? initializers.unshift(it2) : k4 ? p8 ? extra = it2 : desc[key] = it2 : target = it2); else if (typeof it2 !== "object" || it2 === null) __typeError("Object expected"); else __expectFn(fn3 = it2.get) && (desc.get = fn3), __expectFn(fn3 = it2.set) && (desc.set = fn3), __expectFn(fn3 = it2.init) && initializers.unshift(fn3); } return k4 || __decoratorMetadata(array4, target), desc && __defProp(target, name, desc), p8 ? k4 ^ 4 ? extra : desc : target; }; var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value); var __accessCheck = (obj, member, msg2) => member.has(obj) || __typeError("Cannot " + msg2); var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the "in" operator on this value') : member.has(obj); var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj)); var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value); var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value); var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method); // (disabled):node_modules/node-fetch/browser.js var require_browser = __commonJS({ "(disabled):node_modules/node-fetch/browser.js"() { } }); // (disabled):util var require_util = __commonJS({ "(disabled):util"() { } }); // (disabled):crypto var require_crypto = __commonJS({ "(disabled):crypto"() { } }); // node_modules/@tensorflow/tfjs-core/dist/tf-core.node.js var require_tf_core_node = __commonJS({ "node_modules/@tensorflow/tfjs-core/dist/tf-core.node.js"(exports) { "use strict"; function _mergeNamespaces(n16, m5) { m5.forEach(function(e19) { e19 && typeof e19 !== "string" && !Array.isArray(e19) && Object.keys(e19).forEach(function(k4) { if (k4 !== "default" && !(k4 in n16)) { var d6 = Object.getOwnPropertyDescriptor(e19, k4); Object.defineProperty(n16, k4, d6.get ? d6 : { enumerable: true, get: function() { return e19[k4]; } }); } }); }); return n16; } var extendStatics = function(d6, b6) { extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d7, b7) { d7.__proto__ = b7; } || function(d7, b7) { for (var p8 in b7) if (Object.prototype.hasOwnProperty.call(b7, p8)) d7[p8] = b7[p8]; }; return extendStatics(d6, b6); }; function __extends(d6, b6) { if (typeof b6 !== "function" && b6 !== null) throw new TypeError("Class extends value " + String(b6) + " is not a constructor or null"); extendStatics(d6, b6); function __() { this.constructor = d6; } d6.prototype = b6 === null ? Object.create(b6) : (__.prototype = b6.prototype, new __()); } function __awaiter(thisArg, _arguments, P4, generator2) { function adopt(value) { return value instanceof P4 ? value : new P4(function(resolve2) { resolve2(value); }); } return new (P4 || (P4 = Promise))(function(resolve2, reject2) { function fulfilled(value) { try { step7(generator2.next(value)); } catch (e19) { reject2(e19); } } function rejected(value) { try { step7(generator2["throw"](value)); } catch (e19) { reject2(e19); } } function step7(result) { result.done ? resolve2(result.value) : adopt(result.value).then(fulfilled, rejected); } step7((generator2 = generator2.apply(thisArg, _arguments || [])).next()); }); } function __generator(thisArg, body) { var _4 = { label: 0, sent: function() { if (t10[0] & 1) throw t10[1]; return t10[1]; }, trys: [], ops: [] }, f8, y7, t10, g4; return g4 = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g4[Symbol.iterator] = function() { return this; }), g4; function verb(n16) { return function(v4) { return step7([n16, v4]); }; } function step7(op3) { if (f8) throw new TypeError("Generator is already executing."); while (_4) try { if (f8 = 1, y7 && (t10 = op3[0] & 2 ? y7["return"] : op3[0] ? y7["throw"] || ((t10 = y7["return"]) && t10.call(y7), 0) : y7.next) && !(t10 = t10.call(y7, op3[1])).done) return t10; if (y7 = 0, t10) op3 = [op3[0] & 2, t10.value]; switch (op3[0]) { case 0: case 1: t10 = op3; break; case 4: _4.label++; return { value: op3[1], done: false }; case 5: _4.label++; y7 = op3[1]; op3 = [0]; continue; case 7: op3 = _4.ops.pop(); _4.trys.pop(); continue; default: if (!(t10 = _4.trys, t10 = t10.length > 0 && t10[t10.length - 1]) && (op3[0] === 6 || op3[0] === 2)) { _4 = 0; continue; } if (op3[0] === 3 && (!t10 || op3[1] > t10[0] && op3[1] < t10[3])) { _4.label = op3[1]; break; } if (op3[0] === 6 && _4.label < t10[1]) { _4.label = t10[1]; t10 = op3; break; } if (t10 && _4.label < t10[2]) { _4.label = t10[2]; _4.ops.push(op3); break; } if (t10[2]) _4.ops.pop(); _4.trys.pop(); continue; } op3 = body.call(thisArg, _4); } catch (e19) { op3 = [6, e19]; y7 = 0; } finally { f8 = t10 = 0; } if (op3[0] & 5) throw op3[1]; return { value: op3[0] ? op3[1] : void 0, done: true }; } } function __values(o21) { var s12 = typeof Symbol === "function" && Symbol.iterator, m5 = s12 && o21[s12], i14 = 0; if (m5) return m5.call(o21); if (o21 && typeof o21.length === "number") return { next: function() { if (o21 && i14 >= o21.length) o21 = void 0; return { value: o21 && o21[i14++], done: !o21 }; } }; throw new TypeError(s12 ? "Object is not iterable." : "Symbol.iterator is not defined."); } function __read(o21, n16) { var m5 = typeof Symbol === "function" && o21[Symbol.iterator]; if (!m5) return o21; var i14 = m5.call(o21), r16, ar = [], e19; try { while ((n16 === void 0 || n16-- > 0) && !(r16 = i14.next()).done) ar.push(r16.value); } catch (error3) { e19 = { error: error3 }; } finally { try { if (r16 && !r16.done && (m5 = i14["return"])) m5.call(i14); } finally { if (e19) throw e19.error; } } return ar; } function __spreadArray(to, from, pack3) { if (pack3 || arguments.length === 2) for (var i14 = 0, l8 = from.length, ar; i14 < l8; i14++) { if (ar || !(i14 in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i14); ar[i14] = from[i14]; } } return to.concat(ar || Array.prototype.slice.call(from)); } var EPSILON_FLOAT323 = 1e-7; var EPSILON_FLOAT163 = 1e-4; var DataStorage3 = ( /** @class */ (function() { function DataStorage4(backend4, dataMover) { this.backend = backend4; this.dataMover = dataMover; this.data = /* @__PURE__ */ new WeakMap(); this.dataIdsCount = 0; } DataStorage4.prototype.get = function(dataId) { if (!this.data.has(dataId)) { this.dataMover.moveData(this.backend, dataId); } return this.data.get(dataId); }; DataStorage4.prototype.set = function(dataId, value) { this.dataIdsCount++; this.data.set(dataId, value); }; DataStorage4.prototype.has = function(dataId) { return this.data.has(dataId); }; DataStorage4.prototype.delete = function(dataId) { this.dataIdsCount--; return this.data.delete(dataId); }; DataStorage4.prototype.numDataIds = function() { return this.dataIdsCount; }; return DataStorage4; })() ); var KernelBackend4 = ( /** @class */ (function() { function KernelBackend5() { } KernelBackend5.prototype.refCount = function(dataId) { return notYetImplemented2("refCount"); }; KernelBackend5.prototype.incRef = function(dataId) { return notYetImplemented2("incRef"); }; KernelBackend5.prototype.timerAvailable = function() { return true; }; KernelBackend5.prototype.time = function(f8) { return notYetImplemented2("time"); }; KernelBackend5.prototype.read = function(dataId) { return notYetImplemented2("read"); }; KernelBackend5.prototype.readSync = function(dataId) { return notYetImplemented2("readSync"); }; KernelBackend5.prototype.readToGPU = function(dataId, options2) { return notYetImplemented2("readToGPU"); }; KernelBackend5.prototype.numDataIds = function() { return notYetImplemented2("numDataIds"); }; KernelBackend5.prototype.disposeData = function(dataId, force) { return notYetImplemented2("disposeData"); }; KernelBackend5.prototype.write = function(values, shape, dtype) { return notYetImplemented2("write"); }; KernelBackend5.prototype.move = function(dataId, values, shape, dtype, refCount) { return notYetImplemented2("move"); }; KernelBackend5.prototype.createTensorFromGPUData = function(values, shape, dtype) { return notYetImplemented2("createTensorFromGPUData"); }; KernelBackend5.prototype.memory = function() { return notYetImplemented2("memory"); }; KernelBackend5.prototype.floatPrecision = function() { return notYetImplemented2("floatPrecision"); }; KernelBackend5.prototype.epsilon = function() { return this.floatPrecision() === 32 ? EPSILON_FLOAT323 : EPSILON_FLOAT163; }; KernelBackend5.prototype.dispose = function() { return notYetImplemented2("dispose"); }; return KernelBackend5; })() ); function notYetImplemented2(kernelName) { throw new Error("'".concat(kernelName, "' not yet implemented or not found in the registry. ") + "This kernel may not be supported by the tfjs backend you have chosen"); } function shuffle(array4) { var counter = array4.length; var index = 0; while (counter > 0) { index = Math.random() * counter | 0; counter--; swap(array4, counter, index); } } function shuffleCombo(array4, array22) { if (array4.length !== array22.length) { throw new Error("Array sizes must match to be shuffled together " + "First array length was ".concat(array4.length) + "Second array length was ".concat(array22.length)); } var counter = array4.length; var index = 0; while (counter > 0) { index = Math.random() * counter | 0; counter--; swap(array4, counter, index); swap(array22, counter, index); } } function clamp4(min11, x5, max14) { return Math.max(min11, Math.min(x5, max14)); } function nearestLargerEven(val) { return val % 2 === 0 ? val : val + 1; } function swap(object3, left, right) { var temp = object3[left]; object3[left] = object3[right]; object3[right] = temp; } function sum$1(arr) { var sum11 = 0; for (var i14 = 0; i14 < arr.length; i14++) { sum11 += arr[i14]; } return sum11; } function randUniform(a8, b6) { var r16 = Math.random(); return b6 * r16 + (1 - r16) * a8; } function distSquared(a8, b6) { var result = 0; for (var i14 = 0; i14 < a8.length; i14++) { var diff2 = Number(a8[i14]) - Number(b6[i14]); result += diff2 * diff2; } return result; } function assert3(expr, msg2) { if (!expr) { throw new Error(typeof msg2 === "string" ? msg2 : msg2()); } } function assertShapesMatch2(shapeA, shapeB, errorMessagePrefix) { if (errorMessagePrefix === void 0) { errorMessagePrefix = ""; } assert3(arraysEqual2(shapeA, shapeB), function() { return errorMessagePrefix + " Shapes ".concat(shapeA, " and ").concat(shapeB, " must match"); }); } function assertNonNull2(a8) { assert3(a8 != null, function() { return "The input to the tensor constructor must be a non-null value."; }); } function sizeFromShape2(shape) { if (shape.length === 0) { return 1; } var size5 = shape[0]; for (var i14 = 1; i14 < shape.length; i14++) { size5 *= shape[i14]; } return size5; } function isScalarShape(shape) { return shape.length === 0; } function arraysEqualWithNull2(n1, n22) { if (n1 === n22) { return true; } if (n1 == null || n22 == null) { return false; } if (n1.length !== n22.length) { return false; } for (var i14 = 0; i14 < n1.length; i14++) { if (n1[i14] !== null && n22[i14] !== null && n1[i14] !== n22[i14]) { return false; } } return true; } function arraysEqual2(n1, n22) { if (n1 === n22) { return true; } if (n1 == null || n22 == null) { return false; } if (n1.length !== n22.length) { return false; } for (var i14 = 0; i14 < n1.length; i14++) { if (n1[i14] !== n22[i14]) { return false; } } return true; } function isInt2(a8) { return a8 % 1 === 0; } function tanh$1(x5) { if (Math.tanh != null) { return Math.tanh(x5); } if (x5 === Infinity) { return 1; } else if (x5 === -Infinity) { return -1; } else { var e2x = Math.exp(2 * x5); return (e2x - 1) / (e2x + 1); } } function sizeToSquarishShape(size5) { var width2 = Math.ceil(Math.sqrt(size5)); return [width2, Math.ceil(size5 / width2)]; } function createShuffledIndices(n16) { var shuffledIndices = new Uint32Array(n16); for (var i14 = 0; i14 < n16; ++i14) { shuffledIndices[i14] = i14; } shuffle(shuffledIndices); return shuffledIndices; } function rightPad2(a8, size5) { if (size5 <= a8.length) { return a8; } return a8 + " ".repeat(size5 - a8.length); } function repeatedTry(checkFn, delayFn, maxCounter, scheduleFn) { if (delayFn === void 0) { delayFn = function(counter) { return 0; }; } return new Promise(function(resolve2, reject2) { var tryCount = 0; var tryFn = function() { if (checkFn()) { resolve2(); return; } tryCount++; var nextBackoff = delayFn(tryCount); if (maxCounter != null && tryCount >= maxCounter) { reject2(); return; } if (scheduleFn != null) { scheduleFn(tryFn, nextBackoff); } else { setTimeout(tryFn, nextBackoff); } }; tryFn(); }); } function inferFromImplicitShape(shape, size5) { var shapeProd = 1; var implicitIdx = -1; for (var i14 = 0; i14 < shape.length; ++i14) { if (shape[i14] >= 0) { shapeProd *= shape[i14]; } else if (shape[i14] === -1) { if (implicitIdx !== -1) { throw Error("Shapes can only have 1 implicit size. " + "Found -1 at dim ".concat(implicitIdx, " and dim ").concat(i14)); } implicitIdx = i14; } else if (shape[i14] < 0) { throw Error("Shapes can not be < 0. Found ".concat(shape[i14], " at dim ").concat(i14)); } } if (implicitIdx === -1) { if (size5 > 0 && size5 !== shapeProd) { throw Error("Size(".concat(size5, ") must match the product of shape ").concat(shape)); } return shape; } if (shapeProd === 0) { throw Error("Cannot infer the missing size in [".concat(shape, "] when ") + "there are 0 elements"); } if (size5 % shapeProd !== 0) { throw Error("The implicit shape can't be a fractional number. " + "Got ".concat(size5, " / ").concat(shapeProd)); } var newShape = shape.slice(); newShape[implicitIdx] = size5 / shapeProd; return newShape; } function parseAxisParam2(axis, shape) { var rank = shape.length; axis = axis == null ? shape.map(function(s12, i14) { return i14; }) : [].concat(axis); assert3(axis.every(function(ax) { return ax >= -rank && ax < rank; }), function() { return "All values in axis param must be in range [-".concat(rank, ", ").concat(rank, ") but ") + "got axis ".concat(axis); }); assert3(axis.every(function(ax) { return isInt2(ax); }), function() { return "All values in axis param must be integers but " + "got axis ".concat(axis); }); return axis.map(function(a8) { return a8 < 0 ? rank + a8 : a8; }); } function squeezeShape2(shape, axis) { var newShape = []; var keptDims = []; var isEmptyArray = axis != null && Array.isArray(axis) && axis.length === 0; var axes = axis == null || isEmptyArray ? null : parseAxisParam2(axis, shape).sort(); var j4 = 0; for (var i14 = 0; i14 < shape.length; ++i14) { if (axes != null) { if (axes[j4] === i14 && shape[i14] !== 1) { throw new Error("Can't squeeze axis ".concat(i14, " since its dim '").concat(shape[i14], "' is not 1")); } if ((axes[j4] == null || axes[j4] > i14) && shape[i14] === 1) { newShape.push(shape[i14]); keptDims.push(i14); } if (axes[j4] <= i14) { j4++; } } if (shape[i14] !== 1) { newShape.push(shape[i14]); keptDims.push(i14); } } return { newShape, keptDims }; } function getTypedArrayFromDType2(dtype, size5) { return getArrayFromDType2(dtype, size5); } function getArrayFromDType2(dtype, size5) { var values = null; if (dtype == null || dtype === "float32") { values = new Float32Array(size5); } else if (dtype === "int32") { values = new Int32Array(size5); } else if (dtype === "bool") { values = new Uint8Array(size5); } else if (dtype === "string") { values = new Array(size5); } else { throw new Error("Unknown data type ".concat(dtype)); } return values; } function checkConversionForErrors2(vals, dtype) { for (var i14 = 0; i14 < vals.length; i14++) { var num = vals[i14]; if (isNaN(num) || !isFinite(num)) { throw Error("A tensor of type ".concat(dtype, " being uploaded contains ").concat(num, ".")); } } } function isValidDtype2(dtype) { return dtype === "bool" || dtype === "complex64" || dtype === "float32" || dtype === "int32" || dtype === "string"; } function hasEncodingLoss(oldType, newType) { if (newType === "complex64") { return false; } if (newType === "float32" && oldType !== "complex64") { return false; } if (newType === "int32" && oldType !== "float32" && oldType !== "complex64") { return false; } if (newType === "bool" && oldType === "bool") { return false; } return true; } function bytesPerElement2(dtype) { if (dtype === "float32" || dtype === "int32") { return 4; } else if (dtype === "complex64") { return 8; } else if (dtype === "bool") { return 1; } else { throw new Error("Unknown dtype ".concat(dtype)); } } function bytesFromStringArray2(arr) { if (arr == null) { return 0; } var bytes = 0; arr.forEach(function(x5) { return bytes += x5.length; }); return bytes; } function isString2(value) { return typeof value === "string" || value instanceof String; } function isBoolean2(value) { return typeof value === "boolean"; } function isNumber2(value) { return typeof value === "number"; } function inferDtype2(values) { if (Array.isArray(values)) { return inferDtype2(values[0]); } if (values instanceof Float32Array) { return "float32"; } else if (values instanceof Int32Array || values instanceof Uint8Array || values instanceof Uint8ClampedArray) { return "int32"; } else if (isNumber2(values)) { return "float32"; } else if (isString2(values)) { return "string"; } else if (isBoolean2(values)) { return "bool"; } return "float32"; } function isFunction2(f8) { return !!(f8 && f8.constructor && f8.call && f8.apply); } function nearestDivisor2(size5, start) { for (var i14 = start; i14 < size5; ++i14) { if (size5 % i14 === 0) { return i14; } } return size5; } function computeStrides2(shape) { var rank = shape.length; if (rank < 2) { return []; } var strides = new Array(rank - 1); strides[rank - 2] = shape[rank - 1]; for (var i14 = rank - 3; i14 >= 0; --i14) { strides[i14] = strides[i14 + 1] * shape[i14 + 1]; } return strides; } function createNestedArray2(offset3, shape, a8, isComplex) { if (isComplex === void 0) { isComplex = false; } var ret = new Array(); if (shape.length === 1) { var d6 = shape[0] * (isComplex ? 2 : 1); for (var i14 = 0; i14 < d6; i14++) { ret[i14] = a8[offset3 + i14]; } } else { var d6 = shape[0]; var rest = shape.slice(1); var len = rest.reduce(function(acc, c11) { return acc * c11; }) * (isComplex ? 2 : 1); for (var i14 = 0; i14 < d6; i14++) { ret[i14] = createNestedArray2(offset3 + i14 * len, rest, a8, isComplex); } } return ret; } function toNestedArray2(shape, a8, isComplex) { if (isComplex === void 0) { isComplex = false; } if (shape.length === 0) { return a8[0]; } var size5 = shape.reduce(function(acc, c11) { return acc * c11; }) * (isComplex ? 2 : 1); if (size5 === 0) { return []; } if (size5 !== a8.length) { throw new Error("[".concat(shape, "] does not match the input size ").concat(a8.length).concat(isComplex ? " for a complex tensor" : "", ".")); } return createNestedArray2(0, shape, a8, isComplex); } function convertBackendValuesAndArrayBuffer(data4, dtype) { if (Array.isArray(data4)) { return data4; } if (dtype === "float32") { return data4 instanceof Float32Array ? data4 : new Float32Array(data4); } else if (dtype === "int32") { return data4 instanceof Int32Array ? data4 : new Int32Array(data4); } else if (dtype === "bool" || dtype === "string") { return Uint8Array.from(new Int32Array(data4)); } else { throw new Error("Unknown dtype ".concat(dtype)); } } function makeOnesTypedArray2(size5, dtype) { var array4 = makeZerosTypedArray2(size5, dtype); for (var i14 = 0; i14 < array4.length; i14++) { array4[i14] = 1; } return array4; } function makeZerosTypedArray2(size5, dtype) { if (dtype == null || dtype === "float32" || dtype === "complex64") { return new Float32Array(size5); } else if (dtype === "int32") { return new Int32Array(size5); } else if (dtype === "bool") { return new Uint8Array(size5); } else { throw new Error("Unknown data type ".concat(dtype)); } } function makeZerosNestedTypedArray(shape, dtype) { var size5 = shape.reduce(function(prev, curr) { return prev * curr; }, 1); if (dtype == null || dtype === "float32") { return toNestedArray2(shape, new Float32Array(size5)); } else if (dtype === "int32") { return toNestedArray2(shape, new Int32Array(size5)); } else if (dtype === "bool") { return toNestedArray2(shape, new Uint8Array(size5)); } else { throw new Error("Unknown data type ".concat(dtype)); } } function assertNonNegativeIntegerDimensions2(shape) { shape.forEach(function(dimSize) { assert3(Number.isInteger(dimSize) && dimSize >= 0, function() { return "Tensor must have a shape comprised of positive integers but got " + "shape [".concat(shape, "]."); }); }); } function locToIndex(locs, rank, strides) { if (rank === 0) { return 0; } else if (rank === 1) { return locs[0]; } var index = locs[locs.length - 1]; for (var i14 = 0; i14 < locs.length - 1; ++i14) { index += strides[i14] * locs[i14]; } return index; } function indexToLoc(index, rank, strides) { if (rank === 0) { return []; } else if (rank === 1) { return [index]; } var locs = new Array(rank); for (var i14 = 0; i14 < locs.length - 1; ++i14) { locs[i14] = Math.floor(index / strides[i14]); index -= locs[i14] * strides[i14]; } locs[locs.length - 1] = index; return locs; } function isPromise2(object3) { return object3 && object3.then && typeof object3.then === "function"; } var TENSORFLOWJS_FLAGS_PREFIX2 = "tfjsflags"; var Environment2 = ( /** @class */ (function() { function Environment3(global2) { this.global = global2; this.flags = {}; this.flagRegistry = {}; this.urlFlags = {}; this.getQueryParams = getQueryParams2; this.populateURLFlags(); } Environment3.prototype.setPlatform = function(platformName, platform2) { if (this.platform != null) { if (!(env55().getBool("IS_TEST") || env55().getBool("PROD"))) { console.warn("Platform ".concat(this.platformName, " has already been set. ") + "Overwriting the platform with ".concat(platformName, ".")); } } this.platformName = platformName; this.platform = platform2; }; Environment3.prototype.registerFlag = function(flagName, evaluationFn, setHook) { this.flagRegistry[flagName] = { evaluationFn, setHook }; if (this.urlFlags[flagName] != null) { var flagValue = this.urlFlags[flagName]; if (!(env55().getBool("IS_TEST") || env55().getBool("PROD"))) { console.warn("Setting feature override from URL ".concat(flagName, ": ").concat(flagValue, ".")); } this.set(flagName, flagValue); } }; Environment3.prototype.getAsync = function(flagName) { return __awaiter(this, void 0, void 0, function() { var _a61, _b; return __generator(this, function(_c) { switch (_c.label) { case 0: if (flagName in this.flags) { return [2, this.flags[flagName]]; } _a61 = this.flags; _b = flagName; return [4, this.evaluateFlag(flagName)]; case 1: _a61[_b] = _c.sent(); return [2, this.flags[flagName]]; } }); }); }; Environment3.prototype.get = function(flagName) { if (flagName in this.flags) { return this.flags[flagName]; } var flagValue = this.evaluateFlag(flagName); if (isPromise2(flagValue)) { throw new Error("Flag ".concat(flagName, " cannot be synchronously evaluated. ") + "Please use getAsync() instead."); } this.flags[flagName] = flagValue; return this.flags[flagName]; }; Environment3.prototype.getNumber = function(flagName) { return this.get(flagName); }; Environment3.prototype.getBool = function(flagName) { return this.get(flagName); }; Environment3.prototype.getString = function(flagName) { return this.get(flagName); }; Environment3.prototype.getFlags = function() { return this.flags; }; Object.defineProperty(Environment3.prototype, "features", { // For backwards compatibility. get: function() { return this.flags; }, enumerable: false, configurable: true }); Environment3.prototype.set = function(flagName, value) { if (this.flagRegistry[flagName] == null) { throw new Error("Cannot set flag ".concat(flagName, " as it has not been registered.")); } this.flags[flagName] = value; if (this.flagRegistry[flagName].setHook != null) { this.flagRegistry[flagName].setHook(value); } }; Environment3.prototype.evaluateFlag = function(flagName) { if (this.flagRegistry[flagName] == null) { throw new Error("Cannot evaluate flag '".concat(flagName, "': no evaluation function found.")); } return this.flagRegistry[flagName].evaluationFn(); }; Environment3.prototype.setFlags = function(flags) { this.flags = Object.assign({}, flags); }; Environment3.prototype.reset = function() { this.flags = {}; this.urlFlags = {}; this.populateURLFlags(); }; Environment3.prototype.populateURLFlags = function() { var _this = this; if (typeof this.global === "undefined" || typeof this.global.location === "undefined" || typeof this.global.location.search === "undefined") { return; } var urlParams = this.getQueryParams(this.global.location.search); if (TENSORFLOWJS_FLAGS_PREFIX2 in urlParams) { var keyValues = urlParams[TENSORFLOWJS_FLAGS_PREFIX2].split(","); keyValues.forEach(function(keyValue) { var _a61 = __read(keyValue.split(":"), 2), key = _a61[0], value = _a61[1]; _this.urlFlags[key] = parseValue2(key, value); }); } }; return Environment3; })() ); function getQueryParams2(queryString) { var params = {}; queryString.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g, function(s12) { var t10 = []; for (var _i = 1; _i < arguments.length; _i++) { t10[_i - 1] = arguments[_i]; } decodeParam2(params, t10[0], t10[1]); return t10.join("="); }); return params; } function decodeParam2(params, name, value) { params[decodeURIComponent(name)] = decodeURIComponent(value || ""); } function parseValue2(flagName, value) { var lowerCaseValue = value.toLowerCase(); if (lowerCaseValue === "true" || lowerCaseValue === "false") { return lowerCaseValue === "true"; } else if ("".concat(+lowerCaseValue) === lowerCaseValue) { return +lowerCaseValue; } else { return value; } } function env55() { return exports.ENV; } exports.ENV = null; function setEnvironmentGlobal2(environment) { exports.ENV = environment; } var globalNameSpace2; function getGlobalNamespace2() { if (globalNameSpace2 == null) { var ns = void 0; if (typeof window !== "undefined") { ns = window; } else if (typeof global !== "undefined") { ns = global; } else if (typeof process !== "undefined") { ns = process; } else if (typeof self !== "undefined") { ns = self; } else { throw new Error("Could not find a global object"); } globalNameSpace2 = ns; } return globalNameSpace2; } function getGlobalMap2() { var ns = getGlobalNamespace2(); if (ns._tfGlobals == null) { ns._tfGlobals = /* @__PURE__ */ new Map(); } return ns._tfGlobals; } function getGlobal2(key, init) { var globalMap = getGlobalMap2(); if (globalMap.has(key)) { return globalMap.get(key); } else { var singleton = init(); globalMap.set(key, singleton); return globalMap.get(key); } } var Abs4 = "Abs"; var Acos4 = "Acos"; var Acosh4 = "Acosh"; var Add5 = "Add"; var AddN4 = "AddN"; var All4 = "All"; var Any4 = "Any"; var ArgMax4 = "ArgMax"; var ArgMin4 = "ArgMin"; var Asin4 = "Asin"; var Asinh4 = "Asinh"; var Atan5 = "Atan"; var Atanh4 = "Atanh"; var Atan24 = "Atan2"; var AvgPool4 = "AvgPool"; var AvgPoolGrad4 = "AvgPoolGrad"; var AvgPool3D4 = "AvgPool3D"; var AvgPool3DGrad4 = "AvgPool3DGrad"; var BatchMatMul4 = "BatchMatMul"; var BatchToSpaceND4 = "BatchToSpaceND"; var Bincount4 = "Bincount"; var BitwiseAnd4 = "BitwiseAnd"; var BroadcastTo2 = "BroadcastTo"; var BroadcastArgs4 = "BroadcastArgs"; var Cast4 = "Cast"; var Ceil4 = "Ceil"; var ClipByValue4 = "ClipByValue"; var Complex4 = "Complex"; var ComplexAbs4 = "ComplexAbs"; var Concat4 = "Concat"; var Conv2D5 = "Conv2D"; var Conv2DBackpropFilter4 = "Conv2DBackpropFilter"; var Conv2DBackpropInput4 = "Conv2DBackpropInput"; var Conv3D5 = "Conv3D"; var Conv3DBackpropFilterV24 = "Conv3DBackpropFilterV2"; var Conv3DBackpropInputV24 = "Conv3DBackpropInputV2"; var Cos4 = "Cos"; var Cosh4 = "Cosh"; var Cumprod4 = "Cumprod"; var Cumsum4 = "Cumsum"; var CropAndResize4 = "CropAndResize"; var DenseBincount4 = "DenseBincount"; var DepthToSpace4 = "DepthToSpace"; var DepthwiseConv2dNative4 = "DepthwiseConv2dNative"; var DepthwiseConv2dNativeBackpropFilter4 = "DepthwiseConv2dNativeBackpropFilter"; var DepthwiseConv2dNativeBackpropInput4 = "DepthwiseConv2dNativeBackpropInput"; var Diag4 = "Diag"; var Dilation2D4 = "Dilation2D"; var Dilation2DBackpropInput3 = "Dilation2DBackpropInput"; var Dilation2DBackpropFilter3 = "Dilation2DBackpropFilter"; var Draw2 = "Draw"; var RealDiv4 = "RealDiv"; var Einsum4 = "Einsum"; var Elu5 = "Elu"; var EluGrad4 = "EluGrad"; var Erf4 = "Erf"; var Equal4 = "Equal"; var Exp4 = "Exp"; var ExpandDims4 = "ExpandDims"; var Expm14 = "Expm1"; var FFT4 = "FFT"; var Fill4 = "Fill"; var FlipLeftRight4 = "FlipLeftRight"; var Floor4 = "Floor"; var FloorDiv4 = "FloorDiv"; var FusedBatchNorm4 = "FusedBatchNorm"; var GatherV24 = "GatherV2"; var GatherNd4 = "GatherNd"; var Greater4 = "Greater"; var GreaterEqual4 = "GreaterEqual"; var Identity5 = "Identity"; var IFFT4 = "IFFT"; var Imag4 = "Imag"; var IsFinite4 = "IsFinite"; var IsInf4 = "IsInf"; var IsNan4 = "IsNan"; var LeakyRelu4 = "LeakyRelu"; var Less4 = "Less"; var LessEqual4 = "LessEqual"; var LinSpace4 = "LinSpace"; var Log4 = "Log"; var Log1p4 = "Log1p"; var LogicalAnd4 = "LogicalAnd"; var LogicalNot4 = "LogicalNot"; var LogicalOr4 = "LogicalOr"; var LogicalXor = "LogicalXor"; var LogSoftmax3 = "LogSoftmax"; var LowerBound = "LowerBound"; var LRN4 = "LRN"; var LRNGrad4 = "LRNGrad"; var MatrixBandPart = "MatrixBandPart"; var Max4 = "Max"; var Maximum5 = "Maximum"; var MaxPool4 = "MaxPool"; var MaxPoolGrad4 = "MaxPoolGrad"; var MaxPool3D4 = "MaxPool3D"; var MaxPool3DGrad4 = "MaxPool3DGrad"; var MaxPoolWithArgmax4 = "MaxPoolWithArgmax"; var Mean4 = "Mean"; var Min4 = "Min"; var Minimum5 = "Minimum"; var MirrorPad4 = "MirrorPad"; var Mod4 = "Mod"; var Multinomial4 = "Multinomial"; var Multiply5 = "Multiply"; var Neg4 = "Neg"; var NotEqual4 = "NotEqual"; var NonMaxSuppressionV34 = "NonMaxSuppressionV3"; var NonMaxSuppressionV44 = "NonMaxSuppressionV4"; var NonMaxSuppressionV54 = "NonMaxSuppressionV5"; var OnesLike4 = "OnesLike"; var OneHot4 = "OneHot"; var Pack4 = "Pack"; var PadV24 = "PadV2"; var Pool = "Pool"; var Pow4 = "Pow"; var Prelu4 = "Prelu"; var Prod4 = "Prod"; var RaggedGather4 = "RaggedGather"; var RaggedRange4 = "RaggedRange"; var RaggedTensorToTensor4 = "RaggedTensorToTensor"; var Range4 = "Range"; var Real4 = "Real"; var Reciprocal4 = "Reciprocal"; var Relu5 = "Relu"; var Reshape5 = "Reshape"; var ResizeNearestNeighbor4 = "ResizeNearestNeighbor"; var ResizeNearestNeighborGrad4 = "ResizeNearestNeighborGrad"; var ResizeBilinear4 = "ResizeBilinear"; var ResizeBilinearGrad4 = "ResizeBilinearGrad"; var Relu65 = "Relu6"; var Reverse4 = "Reverse"; var Round4 = "Round"; var Rsqrt4 = "Rsqrt"; var ScatterNd4 = "ScatterNd"; var TensorScatterUpdate4 = "TensorScatterUpdate"; var SearchSorted4 = "SearchSorted"; var Select4 = "Select"; var Selu5 = "Selu"; var Slice4 = "Slice"; var Sin4 = "Sin"; var Sinh4 = "Sinh"; var Sign4 = "Sign"; var Sigmoid5 = "Sigmoid"; var Softplus5 = "Softplus"; var Sqrt4 = "Sqrt"; var Sum4 = "Sum"; var SpaceToBatchND4 = "SpaceToBatchND"; var SplitV4 = "SplitV"; var Softmax6 = "Softmax"; var SparseFillEmptyRows4 = "SparseFillEmptyRows"; var SparseReshape4 = "SparseReshape"; var SparseSegmentMean4 = "SparseSegmentMean"; var SparseSegmentSum4 = "SparseSegmentSum"; var SparseToDense4 = "SparseToDense"; var SquaredDifference4 = "SquaredDifference"; var Square4 = "Square"; var StaticRegexReplace4 = "StaticRegexReplace"; var StridedSlice4 = "StridedSlice"; var StringNGrams4 = "StringNGrams"; var StringSplit4 = "StringSplit"; var StringToHashBucketFast4 = "StringToHashBucketFast"; var Sub4 = "Sub"; var Tan4 = "Tan"; var Tanh5 = "Tanh"; var Tile4 = "Tile"; var TopK4 = "TopK"; var Transform4 = "Transform"; var Transpose4 = "Transpose"; var Unique4 = "Unique"; var Unpack4 = "Unpack"; var UnsortedSegmentSum4 = "UnsortedSegmentSum"; var UpperBound = "UpperBound"; var ZerosLike4 = "ZerosLike"; var Step4 = "Step"; var FromPixels2 = "FromPixels"; var RotateWithOffset4 = "RotateWithOffset"; var _FusedMatMul4 = "_FusedMatMul"; var FusedConv2D4 = "FusedConv2D"; var FusedDepthwiseConv2D4 = "FusedDepthwiseConv2D"; function warn4() { var msg2 = []; for (var _i = 0; _i < arguments.length; _i++) { msg2[_i] = arguments[_i]; } if (!(env55().getBool("IS_TEST") || env55().getBool("PROD"))) { console.warn.apply(console, __spreadArray([], __read(msg2), false)); } } function log$1() { var msg2 = []; for (var _i = 0; _i < arguments.length; _i++) { msg2[_i] = arguments[_i]; } if (!(env55().getBool("IS_TEST") || env55().getBool("PROD"))) { console.log.apply(console, __spreadArray([], __read(msg2), false)); } } var kernelRegistry2 = getGlobal2("kernelRegistry", function() { return /* @__PURE__ */ new Map(); }); var gradRegistry2 = getGlobal2("gradRegistry", function() { return /* @__PURE__ */ new Map(); }); function getKernel2(kernelName, backendName) { var key = makeKey2(kernelName, backendName); return kernelRegistry2.get(key); } function getGradient2(kernelName) { return gradRegistry2.get(kernelName); } function getKernelsForBackend2(backendName) { var it2 = kernelRegistry2.entries(); var result = []; while (true) { var _a61 = it2.next(), done = _a61.done, value = _a61.value; if (done) { break; } var _b = __read(value, 2), key = _b[0], config = _b[1]; var _c = __read(key.split("_"), 1), backend4 = _c[0]; if (backend4 === backendName) { result.push(config); } } return result; } function registerKernel3(config) { var kernelName = config.kernelName, backendName = config.backendName; var key = makeKey2(kernelName, backendName); if (kernelRegistry2.has(key)) { warn4("The kernel '".concat(kernelName, "' for backend ") + "'".concat(backendName, "' is already registered")); } kernelRegistry2.set(key, config); } function registerGradient2(config) { var kernelName = config.kernelName; if (gradRegistry2.has(kernelName)) { if (env55().getBool("DEBUG")) { warn4("Overriding the gradient for '".concat(kernelName, "'")); } } gradRegistry2.set(kernelName, config); } function unregisterKernel(kernelName, backendName) { var key = makeKey2(kernelName, backendName); if (!kernelRegistry2.has(key)) { throw new Error("The kernel '".concat(kernelName, "' for backend ") + "'".concat(backendName, "' is not registered")); } kernelRegistry2.delete(key); } function unregisterGradient(kernelName) { if (!gradRegistry2.has(kernelName)) { throw new Error("The gradient '".concat(kernelName, "' for backend is not registered")); } gradRegistry2.delete(kernelName); } function copyRegisteredKernels(registeredBackendName, newBackendName) { var kernels = getKernelsForBackend2(registeredBackendName); kernels.forEach(function(kernelConfig) { var newKernelConfig = Object.assign({}, kernelConfig, { backendName: newBackendName }); registerKernel3(newKernelConfig); }); } function makeKey2(kernelName, backendName) { return "".concat(backendName, "_").concat(kernelName); } function isTypedArrayBrowser2(a8) { return a8 instanceof Float32Array || a8 instanceof Int32Array || a8 instanceof Uint8Array || a8 instanceof Uint8ClampedArray; } var commonjsGlobal2 = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {}; function getDefaultExportFromCjs2(x5) { return x5 && x5.__esModule && Object.prototype.hasOwnProperty.call(x5, "default") ? x5["default"] : x5; } var long = Long$1; var wasm = null; try { wasm = new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([ 0, 97, 115, 109, 1, 0, 0, 0, 1, 13, 2, 96, 0, 1, 127, 96, 4, 127, 127, 127, 127, 1, 127, 3, 7, 6, 0, 1, 1, 1, 1, 1, 6, 6, 1, 127, 1, 65, 0, 11, 7, 50, 6, 3, 109, 117, 108, 0, 1, 5, 100, 105, 118, 95, 115, 0, 2, 5, 100, 105, 118, 95,