diff --git a/build/package.json b/build/package.json index e75fee2..8583591 100644 --- a/build/package.json +++ b/build/package.json @@ -1,6 +1,6 @@ { "name": "@vladmandic/face-api", - "version": "0.5.3", + "version": "0.6.2", "description": "JavaScript module for Face Detection and Face Recognition Using Tensorflow/JS", "main": "build/src/index.js", "browser": "dist/face-api.js", @@ -10,7 +10,7 @@ }, "type": "module", "scripts": { - "build-esm": "esbuild --bundle --format=esm --target=esnext --platform=browser --sourcemap --outfile=./dist/face-api.esm.js --external:@tensorflow/tfjs --log-level=error --tsconfig=./tsconfig.json build/src/index.js", + "build-esm": "esbuild --bundle --format=esm --target=esnext --platform=browser --sourcemap --outfile=./dist/face-api.esm.js --minify --log-level=error --tsconfig=./tsconfig.json build/src/index.js", "build-iife": "esbuild --bundle --format=iife --target=esnext --platform=browser --sourcemap --outfile=./dist/face-api.js --global-name=faceapi --minify --log-level=error --tsconfig=./tsconfig.json build/src/index.js", "build": "rimraf build/ dist/ && tsc && npm run build-esm && npm run build-iife" }, diff --git a/build/src/index.js b/build/src/index.js index 9e2e5f1..7b8d3a7 100644 --- a/build/src/index.js +++ b/build/src/index.js @@ -24,7 +24,6 @@ import * as pkg from '../package.json'; const node = (typeof process !== 'undefined'); const browser = (typeof navigator !== 'undefined') && (typeof navigator.userAgent !== 'undefined'); export const version = { faceapi: pkg.version, node, browser }; -import { PlatformBrowser } from './Platform'; -if (!tf.env().platform && tf.env().get('IS_BROWSER')) - tf.env().setPlatform('browser', new PlatformBrowser); +// import {PlatformBrowser} from './Platform'; +// if (!tf.env().platform && tf.env().get('IS_BROWSER')) tf.env().setPlatform('browser', new PlatformBrowser); //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/build/src/index.js.map b/build/src/index.js.map index bf1867b..8b8bb69 100644 --- a/build/src/index.js.map +++ b/build/src/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,sCAAsC;AAEtC,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AAE3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAEhC,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AACvC,MAAM,IAAI,GAAG,CAAC,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC;AAC9C,MAAM,OAAO,GAAG,CAAC,OAAO,SAAS,KAAK,WAAW,CAAC,IAAI,CAAC,OAAO,SAAS,CAAC,SAAS,KAAK,WAAW,CAAC,CAAC;AACnG,MAAM,CAAC,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAE/D,OAAO,EAAC,eAAe,EAAC,MAAM,YAAY,CAAC;AAC3C,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC;IAAE,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,eAAe,CAAC,CAAC"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,sCAAsC;AAEtC,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AAE3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,2BAA2B,CAAC;AAC1C,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAEhC,OAAO,KAAK,GAAG,MAAM,iBAAiB,CAAC;AACvC,MAAM,IAAI,GAAG,CAAC,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC;AAC9C,MAAM,OAAO,GAAG,CAAC,OAAO,SAAS,KAAK,WAAW,CAAC,IAAI,CAAC,OAAO,SAAS,CAAC,SAAS,KAAK,WAAW,CAAC,CAAC;AACnG,MAAM,CAAC,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AAE/D,8CAA8C;AAC9C,8GAA8G"} \ No newline at end of file diff --git a/dist/face-api.esm.js b/dist/face-api.esm.js index 1de231a..03f37b2 100644 --- a/dist/face-api.esm.js +++ b/dist/face-api.esm.js @@ -1,4560 +1,3976 @@ -var __defineProperty = Object.defineProperty; -var __hasOwnProperty = Object.prototype.hasOwnProperty; -var __commonJS = (callback, module) => () => { - if (!module) { - module = {exports: {}}; - callback(module.exports, module); - } - return module.exports; -}; -var __markAsModule = (target) => { - return __defineProperty(target, "__esModule", {value: true}); -}; -var __export = (target, all) => { - __markAsModule(target); - for (var name in all) - __defineProperty(target, name, {get: all[name], enumerable: true}); -}; -var __exportStar = (target, module) => { - __markAsModule(target); - if (typeof module === "object" || typeof module === "function") { - for (let key in module) - if (!__hasOwnProperty.call(target, key) && key !== "default") - __defineProperty(target, key, {get: () => module[key], enumerable: true}); - } - return target; -}; -var __toModule = (module) => { - if (module && module.__esModule) - return module; - return __exportStar(__defineProperty({}, "default", {value: module, enumerable: true}), module); -}; +var zu=Object.defineProperty,fE=Object.prototype.hasOwnProperty,ln=(e,t)=>()=>(t||(t={exports:{}},e(t.exports,t)),t.exports),pL=e=>zu(e,"__esModule",{value:!0}),Ee=(e,t)=>{pL(e);for(var s in t)zu(e,s,{get:t[s],enumerable:!0})},gE=(e,t)=>{if(pL(e),typeof t=="object"||typeof t=="function")for(let s in t)!fE.call(e,s)&&s!=="default"&&zu(e,s,{get:()=>t[s],enumerable:!0});return e},mc=e=>e&&e.__esModule?e:gE(zu({},"default",{value:e,enumerable:!0}),e);var hL=ln((uL,cg)=>{(function(e,t,s){function n(a){var l=this,c=o();l.next=function(){var p=2091639*l.s0+l.c*23283064365386963e-26;return l.s0=l.s1,l.s1=l.s2,l.s2=p-(l.c=p|0)},l.c=1,l.s0=c(" "),l.s1=c(" "),l.s2=c(" "),l.s0-=c(a),l.s0<0&&(l.s0+=1),l.s1-=c(a),l.s1<0&&(l.s1+=1),l.s2-=c(a),l.s2<0&&(l.s2+=1),c=null}function i(a,l){return l.c=a.c,l.s0=a.s0,l.s1=a.s1,l.s2=a.s2,l}function r(a,l){var c=new n(a),p=l&&l.state,u=c.next;return u.int32=function(){return c.next()*4294967296|0},u.double=function(){return u()+(u()*2097152|0)*11102230246251565e-32},u.quick=u,p&&(typeof p=="object"&&i(p,c),u.state=function(){return i(c,{})}),u}function o(){var a=4022871197,l=function(c){c=c.toString();for(var p=0;p>>0,u-=a,u*=a,a=u>>>0,u-=a,a+=u*4294967296}return(a>>>0)*23283064365386963e-26};return l}t&&t.exports?t.exports=r:s&&s.amd?s(function(){return r}):this.alea=r})(uL,typeof cg=="object"&&cg,typeof define=="function"&&define)});var mL=ln((dL,pg)=>{(function(e,t,s){function n(o){var a=this,l="";a.x=0,a.y=0,a.z=0,a.w=0,a.next=function(){var p=a.x^a.x<<11;return a.x=a.y,a.y=a.z,a.z=a.w,a.w^=a.w>>>19^p^p>>>8},o===(o|0)?a.x=o:l+=o;for(var c=0;c>>0)/4294967296};return p.double=function(){do var u=l.next()>>>11,h=(l.next()>>>0)/4294967296,d=(u+h)/(1<<21);while(d===0);return d},p.int32=l.next,p.quick=p,c&&(typeof c=="object"&&i(c,l),p.state=function(){return i(l,{})}),p}t&&t.exports?t.exports=r:s&&s.amd?s(function(){return r}):this.xor128=r})(dL,typeof pg=="object"&&pg,typeof define=="function"&&define)});var gL=ln((fL,ug)=>{(function(e,t,s){function n(o){var a=this,l="";a.next=function(){var p=a.x^a.x>>>2;return a.x=a.y,a.y=a.z,a.z=a.w,a.w=a.v,(a.d=a.d+362437|0)+(a.v=a.v^a.v<<4^(p^p<<1))|0},a.x=0,a.y=0,a.z=0,a.w=0,a.v=0,o===(o|0)?a.x=o:l+=o;for(var c=0;c>>4),a.next()}function i(o,a){return a.x=o.x,a.y=o.y,a.z=o.z,a.w=o.w,a.v=o.v,a.d=o.d,a}function r(o,a){var l=new n(o),c=a&&a.state,p=function(){return(l.next()>>>0)/4294967296};return p.double=function(){do var u=l.next()>>>11,h=(l.next()>>>0)/4294967296,d=(u+h)/(1<<21);while(d===0);return d},p.int32=l.next,p.quick=p,c&&(typeof c=="object"&&i(c,l),p.state=function(){return i(l,{})}),p}t&&t.exports?t.exports=r:s&&s.amd?s(function(){return r}):this.xorwow=r})(fL,typeof ug=="object"&&ug,typeof define=="function"&&define)});var bL=ln((yL,hg)=>{(function(e,t,s){function n(o){var a=this;a.next=function(){var c=a.x,p=a.i,u,h,d;return u=c[p],u^=u>>>7,h=u^u<<24,u=c[p+1&7],h^=u^u>>>10,u=c[p+3&7],h^=u^u>>>3,u=c[p+4&7],h^=u^u<<7,u=c[p+7&7],u=u^u<<13,h^=u^u<<9,c[p]=h,a.i=p+1&7,h};function l(c,p){var u,h,d=[];if(p===(p|0))h=d[0]=p;else for(p=""+p,u=0;u0;--u)c.next()}l(a,o)}function i(o,a){return a.x=o.x.slice(),a.i=o.i,a}function r(o,a){o==null&&(o=+new Date);var l=new n(o),c=a&&a.state,p=function(){return(l.next()>>>0)/4294967296};return p.double=function(){do var u=l.next()>>>11,h=(l.next()>>>0)/4294967296,d=(u+h)/(1<<21);while(d===0);return d},p.int32=l.next,p.quick=p,c&&(c.x&&i(c,l),p.state=function(){return i(l,{})}),p}t&&t.exports?t.exports=r:s&&s.amd?s(function(){return r}):this.xorshift7=r})(yL,typeof hg=="object"&&hg,typeof define=="function"&&define)});var xL=ln((wL,dg)=>{(function(e,t,s){function n(o){var a=this;a.next=function(){var c=a.w,p=a.X,u=a.i,h,d;return a.w=c=c+1640531527|0,d=p[u+34&127],h=p[u=u+1&127],d^=d<<13,h^=h<<17,d^=d>>>15,h^=h>>>12,d=p[u]=d^h,a.i=u,d+(c^c>>>16)|0};function l(c,p){var u,h,d,m,f,g=[],y=128;for(p===(p|0)?(h=p,p=null):(p=p+"\0",h=0,y=Math.max(y,p.length)),d=0,m=-32;m>>15,h^=h<<4,h^=h>>>13,m>=0&&(f=f+1640531527|0,u=g[m&127]^=h+f,d=u==0?d+1:0);for(d>=128&&(g[(p&&p.length||0)&127]=-1),d=127,m=4*128;m>0;--m)h=g[d+34&127],u=g[d=d+1&127],h^=h<<13,u^=u<<17,h^=h>>>15,u^=u>>>12,g[d]=h^u;c.w=f,c.X=g,c.i=d}l(a,o)}function i(o,a){return a.i=o.i,a.w=o.w,a.X=o.X.slice(),a}function r(o,a){o==null&&(o=+new Date);var l=new n(o),c=a&&a.state,p=function(){return(l.next()>>>0)/4294967296};return p.double=function(){do var u=l.next()>>>11,h=(l.next()>>>0)/4294967296,d=(u+h)/(1<<21);while(d===0);return d},p.int32=l.next,p.quick=p,c&&(c.X&&i(c,l),p.state=function(){return i(l,{})}),p}t&&t.exports?t.exports=r:s&&s.amd?s(function(){return r}):this.xor4096=r})(wL,typeof dg=="object"&&dg,typeof define=="function"&&define)});var SL=ln((LL,mg)=>{(function(e,t,s){function n(o){var a=this,l="";a.next=function(){var p=a.b,u=a.c,h=a.d,d=a.a;return p=p<<25^p>>>7^u,u=u-h|0,h=h<<24^h>>>8^d,d=d-p|0,a.b=p=p<<20^p>>>12^u,a.c=u=u-h|0,a.d=h<<16^u>>>16^d,a.a=d-p|0},a.a=0,a.b=0,a.c=2654435769|0,a.d=1367130551,o===Math.floor(o)?(a.a=o/4294967296|0,a.b=o|0):l+=o;for(var c=0;c>>0)/4294967296};return p.double=function(){do var u=l.next()>>>11,h=(l.next()>>>0)/4294967296,d=(u+h)/(1<<21);while(d===0);return d},p.int32=l.next,p.quick=p,c&&(typeof c=="object"&&i(c,l),p.state=function(){return i(l,{})}),p}t&&t.exports?t.exports=r:s&&s.amd?s(function(){return r}):this.tychei=r})(LL,typeof mg=="object"&&mg,typeof define=="function"&&define)});var IL=ln(()=>{});var vL=ln((JG,Pu)=>{(function(e,t){var s=this,n=256,i=6,r=52,o="random",a=t.pow(n,i),l=t.pow(2,r),c=l*2,p=n-1,u;function h(x,T,A){var _=[];T=T==!0?{entropy:!0}:T||{};var E=g(f(T.entropy?[x,w(e)]:x??y(),3),_),F=new d(_),D=function(){for(var M=F.g(i),P=a,B=0;M=c;)M/=2,P/=2,B>>>=1;return(M+B)/P};return D.int32=function(){return F.g(4)|0},D.quick=function(){return F.g(4)/4294967296},D.double=D,g(w(F.S),e),(T.pass||A||function(M,P,B,Y){return Y&&(Y.S&&m(Y,F),M.state=function(){return m(F,{})}),B?(t[o]=M,P):M})(D,E,"global"in T?T.global:this==t,T.state)}t["seed"+o]=h;function d(x){var T,A=x.length,_=this,E=0,F=_.i=_.j=0,D=_.S=[];for(A||(x=[A++]);E{var yE=hL(),bE=mL(),wE=gL(),xE=bL(),LE=xL(),SE=SL(),fo=vL();fo.alea=yE;fo.xor128=bE;fo.xorwow=wE;fo.xorshift7=xE;fo.xor4096=LE;fo.tychei=SE;TL.exports=fo});var AL=ln(()=>{});var NL=ln(()=>{});var RL=ln((IE,CL)=>{Ee(IE,{isNodejs:()=>vE});function vE(){return typeof global=="object"&&!0&&typeof CL!="undefined"&&typeof process!="undefined"&&!!process.version}});const TE=1e-7,AE=1e-4;class gc{constructor(e,t){this.backend=e,this.dataMover=t,this.data=new WeakMap,this.dataIdsCount=0}get(e){return this.data.has(e)||this.dataMover.moveData(this.backend,e),this.data.get(e)}set(e,t){this.dataIdsCount++,this.data.set(e,t)}has(e){return this.data.has(e)}delete(e){return this.dataIdsCount--,this.data.delete(e)}numDataIds(){return this.dataIdsCount}}class go{time(e){return z("time")}read(e){return z("read")}readSync(e){return z("readSync")}numDataIds(){return z("numDataIds")}disposeData(e){return z("disposeData")}write(e,t,s){return z("write")}move(e,t,s,n){return z("move")}memory(){return z("memory")}floatPrecision(){return z("floatPrecision")}epsilon(){return this.floatPrecision()===32?TE:AE}batchMatMul(e,t,s,n){return z("batchMatMul")}fusedBatchMatMul({a:e,b:t,transposeA:s,transposeB:n,bias:i,activation:r,preluActivationWeights:o}){return z("fusedBatchMatMul")}slice(e,t,s){return z("slice")}stridedSlice(e,t,s,n){return z("stridedSlice")}unstack(e,t){return z("unstack")}reverse(e,t){return z("reverse")}concat(e,t){return z("concat")}neg(e){return z("neg")}add(e,t){return z("add")}addN(e){return z("addN")}subtract(e,t){return z("subtract")}multiply(e,t){return z("multiply")}realDivide(e,t){return z("realDivide")}floorDiv(e,t){return z("floorDiv")}sum(e,t){return z("sum")}prod(e,t){return z("prod")}unsortedSegmentSum(e,t,s){return z("unsortedSegmentSum")}argMin(e,t){return z("argMin")}argMax(e,t){return z("argMax")}equal(e,t){return z("equal")}notEqual(e,t){return z("notEqual")}less(e,t){return z("less")}lessEqual(e,t){return z("lessEqual")}greater(e,t){return z("greater")}greaterEqual(e,t){return z("greaterEqual")}logicalNot(e){return z("logicalNot")}logicalAnd(e,t){return z("logicalAnd")}logicalOr(e,t){return z("logicalOr")}where(e){return z("where")}select(e,t,s){return z("select")}topk(e,t,s){return z("topk")}min(e,t){return z("min")}minimum(e,t){return z("minimum")}mod(e,t){return z("mod")}max(e,t){return z("max")}maximum(e,t){return z("maximum")}all(e,t){return z("all")}any(e,t){return z("any")}squaredDifference(e,t){return z("squaredDifference")}ceil(e){return z("ceil")}floor(e){return z("floor")}round(e){return z("round")}sign(e){return z("sign")}isNaN(e){return z("isNaN")}isInf(e){return z("isInf")}isFinite(e){return z("isFinite")}pow(e,t){return z("pow")}exp(e){return z("exp")}expm1(e){return z("expm1")}softmax(e,t){return z("softmax")}log(e){return z("log")}log1p(e){return z("log1p")}sqrt(e){return z("sqrt")}rsqrt(e){return z("rsqrt")}square(e){return z("square")}reciprocal(e){return z("reciprocal")}relu(e){return z("relu")}relu6(e){return z("relu6")}prelu(e,t){return z("prelu")}elu(e){return z("elu")}eluDer(e,t){return z("eluDer")}selu(e){return z("selu")}int(e){return z("int")}clip(e,t,s){return z("clip")}abs(e){return z("abs")}complexAbs(e){return z("complexAbs")}sigmoid(e){return z("sigmoid")}softplus(e){return z("softplus")}sin(e){return z("sin")}cos(e){return z("cos")}tan(e){return z("tan")}asin(e){return z("asin")}acos(e){return z("acos")}atan(e){return z("atan")}atan2(e,t){return z("atan2")}sinh(e){return z("sinh")}cosh(e){return z("cosh")}tanh(e){return z("tanh")}asinh(e){return z("asinh")}acosh(e){return z("acosh")}atanh(e){return z("atanh")}erf(e){return z("erf")}step(e,t){return z("step")}fusedConv2d({input:e,filter:t,convInfo:s,bias:n,activation:i,preluActivationWeights:r}){return z("fusedConv2d")}conv2d(e,t,s){return z("conv2d")}conv2dDerInput(e,t,s){return z("conv2dDerInput")}conv2dDerFilter(e,t,s){return z("conv2dDerFilter")}fusedDepthwiseConv2D({input:e,filter:t,convInfo:s,bias:n,activation:i,preluActivationWeights:r}){return z("fusedDepthwiseConv2D")}depthwiseConv2D(e,t,s){return z("depthwiseConv2D")}depthwiseConv2DDerInput(e,t,s){return z("depthwiseConv2DDerInput")}depthwiseConv2DDerFilter(e,t,s){return z("depthwiseConv2DDerFilter")}conv3d(e,t,s){return z("conv3d")}conv3dDerInput(e,t,s){return z("conv3dDerInput")}conv3dDerFilter(e,t,s){return z("conv3dDerFilter")}maxPool(e,t){return z("maxPool")}maxPoolBackprop(e,t,s,n){return z("maxPoolBackprop")}avgPool(e,t){return z("avgPool")}avgPoolBackprop(e,t,s){return z("avgPoolBackprop")}avgPool3d(e,t){return z("avgPool3d")}avgPool3dBackprop(e,t,s){return z("avgPool3dBackprop")}maxPool3d(e,t){return z("maxPool3d")}maxPool3dBackprop(e,t,s,n){return z("maxPool3dBackprop")}reshape(e,t){return z("reshape")}cast(e,t){return z("cast")}tile(e,t){return z("tile")}pad(e,t,s){return z("pad")}transpose(e,t){return z("transpose")}gather(e,t,s){return z("gather")}gatherND(e,t){return z("gatherND")}scatterND(e,t,s){return z("scatterND")}batchToSpaceND(e,t,s){return z("batchToSpaceND")}spaceToBatchND(e,t,s){return z("spaceToBatchND")}resizeBilinear(e,t,s,n){return z("resizeBilinear")}resizeBilinearBackprop(e,t,s){return z("resizeBilinearBackprop")}resizeNearestNeighbor(e,t,s,n){return z("resizeNearestNeighbor")}resizeNearestNeighborBackprop(e,t,s){return z("resizeNearestNeighborBackprop")}batchNorm(e,t,s,n,i,r){return z("batchNorm")}localResponseNormalization4D(e,t,s,n,i){return z("localResponseNormalization4D")}LRNGrad(e,t,s,n,i,r,o){return z("LRNGrad")}multinomial(e,t,s,n){return z("multinomial")}oneHot(e,t,s,n){return z("oneHot")}cumsum(e,t,s,n){return z("cumsum")}nonMaxSuppression(e,t,s,n,i){return z("nonMaxSuppression")}fft(e){return z("fft")}ifft(e){return z("ifft")}complex(e,t){return z("complex")}real(e){return z("real")}imag(e){return z("imag")}cropAndResize(e,t,s,n,i,r){return z("cropAndResize")}depthToSpace(e,t,s){return z("depthToSpace")}split(e,t,s){return z("split")}sparseToDense(e,t,s,n){return z("sparseToDense")}diag(e){return z("diag")}fill(e,t,s){return z("fill")}onesLike(e){return z("onesLike")}zerosLike(e){return z("zerosLike")}linspace(e,t,s){return z("linspace")}dispose(){return z("dispose")}}function z(e){throw new Error(`'${e}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}const OL="tfjsflags";class fg{constructor(e){this.global=e,this.flags={},this.flagRegistry={},this.urlFlags={},this.populateURLFlags()}setPlatform(e,t){this.platform!=null&&console.warn(`Platform ${this.platformName} has already been set. Overwriting the platform with ${t}.`),this.platformName=e,this.platform=t}registerFlag(e,t,s){if(this.flagRegistry[e]={evaluationFn:t,setHook:s},this.urlFlags[e]!=null){const n=this.urlFlags[e];console.warn(`Setting feature override from URL ${e}: ${n}.`),this.set(e,n)}}async getAsync(e){return e in this.flags?this.flags[e]:(this.flags[e]=await this.evaluateFlag(e),this.flags[e])}get(e){if(e in this.flags)return this.flags[e];const t=this.evaluateFlag(e);if(t instanceof Promise)throw new Error(`Flag ${e} cannot be synchronously evaluated. Please use getAsync() instead.`);return this.flags[e]=t,this.flags[e]}getNumber(e){return this.get(e)}getBool(e){return this.get(e)}getFlags(){return this.flags}get features(){return this.flags}set(e,t){if(this.flagRegistry[e]==null)throw new Error(`Cannot set flag ${e} as it has not been registered.`);this.flags[e]=t,this.flagRegistry[e].setHook!=null&&this.flagRegistry[e].setHook(t)}evaluateFlag(e){if(this.flagRegistry[e]==null)throw new Error(`Cannot evaluate flag '${e}': no evaluation function found.`);return this.flagRegistry[e].evaluationFn()}setFlags(e){this.flags=Object.assign({},e)}reset(){this.flags={},this.urlFlags={},this.populateURLFlags()}populateURLFlags(){if(typeof this.global=="undefined"||typeof this.global.location=="undefined"||typeof this.global.location.search=="undefined")return;const e=NE(this.global.location.search);if(OL in e){const t=e[OL].split(",");t.forEach(s=>{const[n,i]=s.split(":");this.urlFlags[n]=CE(n,i)})}}}function NE(e){const t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(s,...n)=>(RE(t,n[0],n[1]),n.join("="))),t}function RE(e,t,s){e[decodeURIComponent(t)]=decodeURIComponent(s||"")}function CE(e,t){if(t=t.toLowerCase(),t==="true"||t==="false")return t==="true";if(`${+t}`===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${e}.`)}function W(){return gg}let gg=null;function EL(e){gg=e}let yg;function bg(){if(yg==null){let e;if(typeof window!="undefined")e=window;else if(typeof global!="undefined")e=global;else if(typeof process!="undefined")e=process;else if(typeof self!="undefined")e=self;else throw new Error("Could not find a global object");yg=e}return yg}function OE(){const e=bg();return e._tfGlobals==null&&(e._tfGlobals=new Map),e._tfGlobals}function wg(e,t){const s=OE();if(s.has(e))return s.get(e);{const n=t();return s.set(e,n),s.get(e)}}const yo="Abs",nr="Acos",ir="Acosh",Kn="Add",yc="AddN",xg="All",Lg="Any",bc="ArgMax",wc="ArgMin",rr="Asin",or="Asinh",ar="Atan",lr="Atanh",bo="Atan2",Si="AvgPool",wo="AvgPoolBackprop",xc="AvgPool3D",Sg="AvgPool3DBackprop",Lc="BatchMatMul",Sc="BatchToSpaceND",Ic="BroadcastTo",Ii="Cast",cr="Ceil",pr="ClipByValue",vc="Complex",xo="Concat",Tc="Conv2D",Ig="Conv2DBackpropFilter",Ac="Conv2DBackpropInput",Nc="Conv3D",vg="Conv3DBackpropFilterV2",Tg="Conv3DBackpropInputV2",Xn="Cos",ur="Cosh",Cc="Cumsum",Ag="CropAndResize",Ng="DepthToSpace",Rc="DepthwiseConv2dNative",Cg="DepthwiseConv2dNativeBackpropFilter",Rg="DepthwiseConv2dNativeBackpropInput",Og="Diag",Lo="Dilation2D",Oa="Dilation2DBackpropInput",Ea="Dilation2DBackpropFilter",Jn="Div",hr="Elu",Eg="EluGrad",dr="Erf",_g="Equal",mr="Exp",fr="Expm1",Oc="FFT",kg="Fill",So="FlipLeftRight",gr="Floor",Ec="FloorDiv",vi="FusedBatchNorm",_c="GatherV2",Dg="GatherNd",Fg="Greater",kc="GreaterEqual",Ti="Identity",Dc="IFFT",Fc="Imag",yr="IsFinite",br="IsInf",wr="IsNan",Mg="Less",Ug="LessEqual",$g="LinSpace",xr="Log",Lr="Log1p",Wg="LogicalAnd",_a="LogicalNot",zg="LogicalOr",Mc="LogSoftmax",Uc="LRN",Pg="LRNBackprop",Ai="Max",$c="Maximum",Ni="MaxPool",Io="MaxPoolBackprop",Wc="MaxPool3D",Bg="MaxPool3DBackprop",vo="MaxPoolWithArgmax",EE="Mean",zc="Min",Pc="Minimum",Bc="Mod",Sr="Multiply",jc="Negate",ka="NotEqual",Vc="NonMaxSuppressionV3",To="NonMaxSuppressionV4",Ao="NonMaxSuppressionV5",Gc="OnesLike",qc="OneHot",No="PadV2",_E="Pool",Hc="Pow",Yc="Prelu",jg="Prod",Vg="Range",Kc="Real",Ir="Reciprocal",Xc="Relu",Ci="Reshape",Jc="ResizeNearestNeighbor",Gg="ResizeNearestNeighborGrad",Zc="ResizeBilinear",qg="ResizeBilinearGrad",Qc="Relu6",ep="Reverse",vr="Round",Tr="Rsqrt",Hg="ScatterNd",tp="SelectV2",Ar="Selu",Co="Slice",Zn="Sin",Nr="Sinh",Cr="Sign",Rr="Sigmoid",Or="Softplus",Er="Sqrt",sp="Sum",Ro="SpaceToBatchND",np="SplitV",ip="Softmax",Qn="SquaredDifference",Oo="Square",_r="Sub",Yg="SparseToDense",Kg="StridedSlice",ei="Tan",kr="Tanh",rp="Tile",Xg="TopK",Ri="Transpose",Eo="Unique",op="Unpack",ap="UnsortedSegmentSum",lp="ZerosLike",Dr="Step",Da="FromPixels",_o="RotateWithOffset",Bu="_FusedMatMul",ju="FusedConv2D",Vu="FusedDepthwiseConv2D";const Fa=wg("kernelRegistry",()=>new Map),cp=wg("gradRegistry",()=>new Map);function pp(e,t){const s=Jg(e,t);return Fa.get(s)}function Gu(e){return cp.get(e)}function up(e){const t=Fa.entries(),s=[];for(;;){const{done:n,value:i}=t.next();if(n)break;const[r,o]=i,[a]=r.split("_");a===e&&s.push(o)}return s}function Ma(e){const{kernelName:t,backendName:s}=e,n=Jg(t,s);Fa.has(n)&&console.warn(`The kernel '${t}' for backend '${s}' is already registered`),Fa.set(n,e)}function Zg(e){const{kernelName:t}=e;cp.has(t)&&(W().getBool("DEBUG")&&console.warn(`Overriding the gradient for '${t}'`)),cp.set(t,e)}function kE(e,t){const s=Jg(e,t);if(!Fa.has(s))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);Fa.delete(s)}function DE(e){if(!cp.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);cp.delete(e)}function FE(e,t){const s=up(e);s.forEach(n=>{const i=Object.assign({},n,{backendName:t});Ma(i)})}function Jg(e,t){return`${t}_${e}`}const N={};Ee(N,{arraysEqual:()=>Nt,assert:()=>I,assertNonNegativeIntegerDimensions:()=>dp,assertNonNull:()=>qs,assertShapesMatch:()=>Se,bytesFromStringArray:()=>ry,bytesPerElement:()=>iy,checkConversionForErrors:()=>kL,clamp:()=>Ua,computeStrides:()=>ni,createScalarValue:()=>GE,createShuffledIndices:()=>jE,decodeString:()=>Yu,distSquared:()=>WE,encodeString:()=>qu,fetch:()=>YE,flatten:()=>ti,getArrayFromDType:()=>ty,getTypedArrayFromDType:()=>$a,hasEncodingLoss:()=>ny,indexToLoc:()=>XE,inferDtype:()=>Wa,inferFromImplicitShape:()=>Qg,isBoolean:()=>DL,isFunction:()=>si,isInt:()=>ke,isNumber:()=>FL,isScalarShape:()=>zE,isString:()=>kn,isTypedArray:()=>Dt,isValidDtype:()=>sy,locToIndex:()=>KE,makeOnesTypedArray:()=>hp,makeZerosNestedTypedArray:()=>HE,makeZerosTypedArray:()=>ii,nearestDivisor:()=>za,nearestLargerEven:()=>ME,now:()=>Hu,parseAxisParam:()=>Ne,randUniform:()=>$E,repeatedTry:()=>VE,rightPad:()=>ko,shuffle:()=>_L,sizeFromShape:()=>We,sizeToSquarishShape:()=>BE,squeezeShape:()=>ey,sum:()=>UE,tanh:()=>PE,toNestedArray:()=>Do,toTypedArray:()=>Pa});function _L(e){let t=e.length,s=0,n=0;for(;t>0;)n=Math.random()*t|0,t--,s=e[t],e[t]=e[n],e[n]=s}function Ua(e,t,s){return Math.max(e,Math.min(t,s))}function ME(e){return e%2===0?e:e+1}function UE(e){let t=0;for(let s=0;ss+` Shapes ${e} and ${t} must match`)}function qs(e){I(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function ti(e,t=[],s=!1){if(t==null&&(t=[]),Array.isArray(e)||Dt(e)&&!s)for(let n=0;n0,s){return new Promise((n,i)=>{let r=0;const o=()=>{if(e()){n();return}r++;const a=t(r);if(s!=null&&r>=s){i();return}setTimeout(o,a)};o()})}function Qg(e,t){let s=1,n=-1;for(let r=0;r=0)s*=e[r];else if(e[r]===-1){if(n!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${n} and dim ${r}`);n=r}else if(e[r]<0)throw Error(`Shapes can not be < 0. Found ${e[r]} at dim ${r}`);if(n===-1){if(t>0&&t!==s)throw Error(`Size(${t}) must match the product of shape ${e}`);return e}if(s===0)throw Error(`Cannot infer the missing size in [${e}] when there are 0 elements`);if(t%s!==0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${s}`);const i=e.slice();return i[n]=t/s,i}function Ne(e,t){const s=t.length;return e=e==null?t.map((n,i)=>i):[].concat(e),I(e.every(n=>n>=-s&&n`All values in axis param must be in range [-${s}, ${s}) but got axis ${e}`),I(e.every(n=>ke(n)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(n=>n<0?s+n:n)}function ey(e,t){const s=[],n=[],i=t!=null&&Array.isArray(t)&&t.length===0,r=t==null||i?null:Ne(t,e).sort();let o=0;for(let a=0;aa)&&e[a]===1&&(s.push(e[a]),n.push(a)),r[o]<=a&&o++}e[a]!==1&&(s.push(e[a]),n.push(a))}return{newShape:s,keptDims:n}}function $a(e,t){let s=null;if(e==null||e==="float32")s=new Float32Array(t);else if(e==="int32")s=new Int32Array(t);else if(e==="bool")s=new Uint8Array(t);else throw new Error(`Unknown data type ${e}`);return s}function ty(e,t){let s=null;if(e==null||e==="float32")s=new Float32Array(t);else if(e==="int32")s=new Int32Array(t);else if(e==="bool")s=new Uint8Array(t);else if(e==="string")s=new Array(t);else throw new Error(`Unknown data type ${e}`);return s}function kL(e,t){for(let s=0;st+=s.length),t}function kn(e){return typeof e=="string"||e instanceof String}function DL(e){return typeof e=="boolean"}function FL(e){return typeof e=="number"}function Wa(e){return Array.isArray(e)?Wa(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array?"int32":FL(e)?"float32":kn(e)?"string":DL(e)?"bool":"float32"}function si(e){return!!(e&&e.constructor&&e.call&&e.apply)}function za(e,t){for(let s=t;s=0;--n)s[n]=s[n+1]*e[n+1];return s}function GE(e,t){return t==="string"?qu(e):Pa([e],t)}function Pa(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=ti(e)),W().getBool("DEBUG")&&kL(e,t),qE(e,t))return e;if(t==null||t==="float32"||t==="complex64")return new Float32Array(e);if(t==="int32")return new Int32Array(e);if(t==="bool"){const s=new Uint8Array(e.length);for(let n=0;na*l);for(let a=0;an*i);if(s===0)return[];if(s!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}.`);return ML(0,e,t)}function qE(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function hp(e,t){const s=ii(e,t);for(let n=0;nn*i,1);if(t==null||t==="float32")return Do(e,new Float32Array(s));if(t==="int32")return Do(e,new Int32Array(s));if(t==="bool")return Do(e,new Uint8Array(s));throw new Error(`Unknown data type ${t}`)}function Hu(){return W().platform.now()}function dp(e){e.forEach(t=>{I(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function YE(e,t){return W().platform.fetch(e,t)}function qu(e,t="utf-8"){return t=t||"utf-8",W().platform.encode(e,t)}function Yu(e,t="utf-8"){return t=t||"utf-8",W().platform.decode(e,t)}function KE(e,t,s){if(t===0)return 0;if(t===1)return e[0];let n=e[e.length-1];for(let i=0;i{n=s()},r=this.backendTimer.time(i);for(let a=0;a{JE(c,l.dtype,e)})}const o={kernelName:e,outputs:n,inputs:t,timeMs:r.then(a=>a.kernelMs),extraInfo:r.then(a=>a.getExtraProfileInfo!=null?a.getExtraProfileInfo():"")};return o}logKernelProfile(e){const{kernelName:t,outputs:s,timeMs:n,inputs:i,extraInfo:r}=e;s.forEach(o=>{Promise.all([o.data(),n,r]).then(a=>{this.logger.logKernelProfile(t,o,a[0],a[1],i,a[2])})})}}function JE(e,t,s){if(t!=="float32")return!1;for(let n=0;n0?m:""} `}}console.log(`%c${a} %c${o} %c${l}D ${p} %c${c} %c${u} %c${r}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}}function $L(e,t,s){const n={},i={};for(let l=0;ln[f.id]=!0),d=!0,i[c.id]=!0;break}if(d)break}}const r={};r[s.id]=!0;const o={};for(let l=e.length-1;l>=0;l--){const c=e[l],p=c.inputs;for(let u=0;u=0;i--){const r=t[i],o=[];if(r.outputs.forEach(l=>{const c=e[l.id];c!=null?o.push(c):o.push(null)}),r.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${r.kernelName}.`);const a=r.gradient(o);for(const l in r.inputs){if(!(l in a))throw new Error(`Cannot backprop through input ${l}. Available gradients found: ${Object.keys(a)}.`);const c=s(()=>a[l]());if(c.dtype!=="float32")throw new Error(`Error in gradient for op ${r.kernelName}. The gradient of input ${l} must have 'float32' dtype, but has '${c.dtype}'`);const p=r.inputs[l];if(!Nt(c.shape,p.shape))throw new Error(`Error in gradient for op ${r.kernelName}. The gradient of input '${l}' has shape '${c.shape}', which does not match the shape of the input '${p.shape}'`);if(e[p.id]==null)e[p.id]=c;else{const u=e[p.id];e[p.id]=n(u,c),u.dispose()}}}}const zL=20,mp=3,oy=7;function PL(e,t,s,n){const i=ni(t),r=QE(e,t,s,i),o=t.length,a=Ku(e,t,s,i,r),l=["Tensor"];return n&&(l.push(` dtype: ${s}`),l.push(` rank: ${o}`),l.push(` shape: [${t}]`),l.push(" values:")),l.push(a.map(c=>" "+c).join(` +`)),l.join(` +`)}function QE(e,t,s,n){const i=We(t),r=n[n.length-1],o=new Array(r).fill(0),a=t.length,l=s==="complex64"?gp(e):e;if(a>1)for(let c=0;czL){const g=mp*o;let y=Array.from(e.slice(0,g)),w=Array.from(e.slice((a-mp)*o,a*o));return s==="complex64"&&(y=gp(y),w=gp(w)),["["+y.map((x,T)=>fp(x,i[T],s)).join(", ")+", ..., "+w.map((x,T)=>fp(x,i[a-mp+T],s)).join(", ")+"]"]}const f=s==="complex64"?gp(e):Array.from(e);return["["+f.map((g,y)=>fp(g,i[y],s)).join(", ")+"]"]}const c=t.slice(1),p=n.slice(1),u=n[0]*o,h=[];if(a>zL){for(let f=0;f`Length of values '${n}' does not match the size inferred by the shape '${this.size}'.`)}if(t==="complex64")throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=s||ty(t,this.size),this.strides=ni(e)}set(e,...t){t.length===0&&(t=[0]),I(t.length===this.rank,()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`);const s=this.locToIndex(t);this.values[s]=e}get(...e){e.length===0&&(e=[0]);let t=0;for(const n of e){if(n<0||n>=this.shape[t]){const i=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(i)}t++}let s=e[e.length-1];for(let n=0;nYu(s))}catch(s){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataSync(){this.throwIfDisposed();const e=ri().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>Yu(t))}catch(t){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return e}async bytes(){this.throwIfDisposed();const e=await ri().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){if(this.isDisposed)return;ri().disposeTensor(this),this.isDisposedInternal=!0}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return Ba.print(this,e)}clone(){return this.throwIfDisposed(),Ba.clone(this)}toString(e=!1){const t=this.dataSync();return PL(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),Ba.cast(this,e)}variable(e=!0,t,s){return this.throwIfDisposed(),ri().makeVariable(this,e,t,s)}}Object.defineProperty(me,Symbol.hasInstance,{value:e=>!!e&&e.data!=null&&e.dataSync!=null&&e.throwIfDisposed!=null});class oi extends me{constructor(e,t,s,n){super(e.shape,e.dtype,e.dataId,n);this.trainable=t,this.name=s}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!Nt(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);ri().disposeTensor(this),this.dataId=e.dataId,ri().incRef(this,null)}dispose(){ri().disposeVariable(this),this.isDisposedInternal=!0}}Object.defineProperty(oi,Symbol.hasInstance,{value:e=>e instanceof me&&e.assign!=null&&e.assign instanceof Function});var ay;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(ay||(ay={}));var ly;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})(ly||(ly={}));var cy;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})(cy||(cy={}));var py;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})(py||(py={}));var uy;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})(uy||(uy={}));const t_={float32:py,int32:ly,bool:cy,complex64:uy};function Ft(e,t){if(e==="string"||t==="string"){if(e==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return t_[e][t]}function yp(e){return Ft(e,"int32")}const pn={};Ee(pn,{assertTypesMatch:()=>hy,getTensorsInContainer:()=>bp,isTensorInList:()=>s_,makeTypesMatch:()=>Ce});function Ce(e,t){if(e.dtype===t.dtype)return[e,t];const s=Ft(e.dtype,t.dtype);return[e.cast(s),t.cast(s)]}function hy(e,t){I(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function s_(e,t){return t.some(s=>s.id===e.id)}function bp(e){const t=[],s=new Set;return qL(e,t,s),t}function qL(e,t,s){if(e==null)return;if(e instanceof me){t.push(e);return}if(!n_(e))return;const n=e;for(const i in n){const r=n[i];s.has(r)||(s.add(r),qL(r,t,s))}}function n_(e){return Array.isArray(e)||typeof e=="object"}class HL{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null}}dispose(){for(const e in this.registeredVariables)this.registeredVariables[e].dispose()}}class wp{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new HL}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;const e=this.getSortedBackends();for(let t=0;t{t.setupFunc!=null&&t.setupFunc(this.backendInstance)})}disposeRegisteredKernels(e){const t=up(e);t.forEach(s=>{s.disposeFunc!=null&&s.disposeFunc(this.registry[e])})}initializeBackend(e){const t=this.registryFactory[e];if(t==null)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{const s=t.factory();if(s&&!(s instanceof go)&&typeof s.then=="function"){const n=++this.pendingBackendInitId,i=s.then(r=>n(nthis.registryFactory[t].priority-this.registryFactory[e].priority)}initializeBackendsAndReturnBest(){const e=this.getSortedBackends();for(let t=0;tthis.startScope(s),()=>this.endScope(n),()=>(n=t(),n instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),n))}scopedRun(e,t,s){e();try{const n=s();return t(),n}catch(n){throw t(),n}}nextTensorId(){return wp.nextTensorId++}nextVariableId(){return wp.nextVariableId++}clone(e){const t=this.makeTensorFromDataId(e.dataId,e.shape,e.dtype),s={x:e},n=r=>({x:()=>{const o="float32",a={x:r},l={dtype:o};return v.runKernelFunc(c=>c.cast(r,o),a,null,Ii,l)}}),i=[];return this.addTapeNode(this.state.activeScope.name,s,[t],n,i,{}),t}runKernel(e,t,s,n,i){const r=null,o=null;return this.runKernelFunc(r,t,o,e,s,n,i)}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,s){const n=this.backend.numDataIds();let i=0;s.forEach(a=>{i+=a.dtype==="complex64"?3:1});const r=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],o=n-t-i-r;if(o>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${o} data ids) after running '${e}'`)}runKernelFunc(e,t,s,n,i,r,o){let a,l=[];const c=this.isTapeOn();n==null&&(n=this.state.activeScope!=null?this.state.activeScope.name:"");const p=this.state.numBytes,u=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let h;const d=pp(n,this.backendName);let m;if(d!=null)h=()=>{const g=this.backend.numDataIds();m=d.kernelFunc({inputs:t,attrs:i,backend:this.backend});const y=Array.isArray(m)?m:[m];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(n,g,y);const w=y.map(({dataId:x,shape:T,dtype:A})=>this.makeTensorFromDataId(x,T,A));if(c){let x=this.getTensorsForGradient(n,t,w);if(x==null){o==null&&(o=[]);const T=w.filter((A,_)=>o[_]);x=(r||[]).slice().concat(T)}l=this.saveTensorsForBackwardMode(x)}return w};else{const g=y=>{if(!c)return;l=y.map(w=>this.keep(this.clone(w)))};h=()=>{const y=this.backend.numDataIds();m=this.tidy(()=>e(this.backend,g));const w=Array.isArray(m)?m:[m];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(n,y,w),w}}let f;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?a=h():(f=this.profiler.profileKernel(n,t,()=>h()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(f),a=f.outputs)}),c&&this.addTapeNode(n,t,a,s,l,i),this.state.profiling&&this.state.activeProfile.kernels.push({name:n,bytesAdded:this.state.numBytes-p,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-u,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(t).map(g=>t[g]!=null?t[g].shape:null),outputShapes:a.map(g=>g.shape),kernelTimeMs:f.timeMs,extraInfo:f.extraInfo}),Array.isArray(m)?a:a[0]}saveTensorsForBackwardMode(e){const t=e.map(s=>this.keep(this.clone(s)));return t}getTensorsForGradient(e,t,s){const n=Gu(e);if(n!=null){const i=n.inputsToSave||[],r=n.outputsToSave||[];let o;n.saveAllInputs?(I(Array.isArray(t),()=>"saveAllInputs is true, expected inputs to be an array."),o=Object.keys(t).map(l=>t[l])):o=i.map(l=>t[l]);const a=s.filter((l,c)=>r[c]);return o.concat(a)}return null}makeTensor(e,t,s,n){if(e==null)throw new Error("Values passed to engine.makeTensor() are null");s=s||"float32",n=n||this.backend;let i=e;s==="string"&&kn(e[0])&&(i=e.map(a=>qu(a)));const r=n.write(i,t,s),o=new me(t,s,r,this.nextTensorId());if(this.incRef(o,n),s==="string"){const a=this.state.tensorInfo.get(r),l=ry(i);this.state.numBytes+=l-a.bytes,a.bytes=l}return o}makeTensorFromDataId(e,t,s,n){s=s||"float32";const i=new me(t,s,e,this.nextTensorId());return this.incRef(i,n),i}makeVariable(e,t=!0,s,n){s=s||this.nextVariableId().toString(),n!=null&&n!==e.dtype&&(e=e.cast(n));const i=new oi(e,t,s,this.nextTensorId());if(this.state.registeredVariables[i.name]!=null)throw new Error(`Variable with name ${i.name} was already registered`);return this.state.registeredVariables[i.name]=i,this.incRef(i,this.backend),i}incRef(e,t){const s=this.state.tensorInfo.has(e.dataId)?this.state.tensorInfo.get(e.dataId).refCount:0;if(this.state.numTensors++,e.dtype==="string"&&this.state.numStringTensors++,s===0){this.state.numDataBuffers++;let n=0;e.dtype!=="complex64"&&e.dtype!=="string"&&(n=e.size*iy(e.dtype)),this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:n,refCount:0}),this.state.numBytes+=n}this.state.tensorInfo.get(e.dataId).refCount++,e instanceof oi||this.track(e)}disposeTensor(e){if(!this.state.tensorInfo.has(e.dataId))return;this.state.numTensors--,e.dtype==="string"&&this.state.numStringTensors--;const t=this.state.tensorInfo.get(e.dataId),s=t.refCount;s<=1?(e.dtype!=="complex64"&&(this.state.numBytes-=t.bytes),this.state.numDataBuffers--,t.backend.disposeData(e.dataId),this.state.tensorInfo.delete(e.dataId)):this.state.tensorInfo.get(e.dataId).refCount--}disposeVariables(){for(const e in this.state.registeredVariables){const t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),this.state.registeredVariables[e.name]!=null&&delete this.state.registeredVariables[e.name]}memory(){const e=this.backend.memory();return e.numTensors=this.state.numTensors,e.numDataBuffers=this.state.numDataBuffers,e.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(e.unreliable=!0,e.reasons==null&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;const t=this.state.numBytes,s=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(n=>n.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-s;for(const n of this.state.activeProfile.kernels)n.kernelTimeMs=await n.kernelTimeMs,n.extraInfo=await n.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(e,t,s,n,i,r){const o={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:s,saved:i},a=Gu(e);a!=null&&(n=a.gradFunc),n!=null&&(o.gradient=l=>(l=l.map((c,p)=>{if(c==null){const u=s[p],h=ii(u.size,u.dtype);return this.makeTensor(h,u.shape,u.dtype)}return c}),n(l.length>1?l:l[0],i,r))),this.state.activeTape.push(o)}keep(e){return e.kept=!0,e}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){const t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){const t=bp(e),s=new Set(t.map(i=>i.id));for(let i=0;i{!i.kept&&i.scopeId===n.id&&this.track(i)})}gradients(e,t,s,n=!1){if(I(t.length>0,()=>"gradients() received an empty list of xs."),s!=null&&s.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${s.dtype}'`);const i=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",e));I(i instanceof me,()=>"The result y returned by f() must be a tensor.");const r=$L(this.state.activeTape,t,i);if(!n&&r.length===0&&t.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",()=>{const o={};o[i.id]=s??i_(i.shape),WL(o,r,l=>this.tidy(l),r_);const a=t.map(l=>o[l.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(l=>{for(const c of l.saved)c.dispose()}),this.state.activeTape=null),{value:i,grads:a}})}customGrad(e){return I(si(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{I(t.every(i=>i instanceof me),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let s;const n={};return t.forEach((i,r)=>{n[r]=i}),this.runKernelFunc((i,r)=>(s=e(...t,r),I(s.value instanceof me,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),I(si(s.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),s.value),n,(i,r)=>{const o=s.gradFunc(i,r),a=Array.isArray(o)?o:[o];I(a.length===t.length,()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...)."),I(a.every(c=>c instanceof me),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");const l={};return a.forEach((c,p)=>{l[p]=()=>c}),l})}}readSync(e){const t=this.state.tensorInfo.get(e);return t.backend.readSync(e)}read(e){const t=this.state.tensorInfo.get(e);return t.backend.read(e)}async time(e){const t=Hu(),s=await this.backend.time(e);return s.wallMs=Hu()-t,s}track(e){return this.state.activeScope!=null&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new HL;for(const e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}}wp.nextTensorId=0;wp.nextVariableId=0;function i_(e){const t=hp(We(e),"float32");return v.makeTensor(t,e,"float32")}function dy(){const e=bg();if(e._tfengine==null){const t=new fg(e);e._tfengine=new wp(t)}return EL(e._tfengine.ENV),jL(()=>e._tfengine),e._tfengine}const v=dy();function r_(e,t){const s={a:e,b:t};return v.runKernelFunc((n,i)=>{const r=n.add(e,t);return i([e,t]),r},s,null,Kn)}const ja={};Ee(ja,{isBrowser:()=>my,isMobile:()=>a_});function o_(){return typeof navigator!="undefined"&&navigator!=null}function a_(){if(o_()){const e=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4))}return!1}function my(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}const Oi=W();Oi.registerFlag("DEBUG",()=>!1,e=>{e&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")});Oi.registerFlag("IS_BROWSER",()=>my());Oi.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");Oi.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));Oi.registerFlag("PROD",()=>!1);Oi.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>Oi.getBool("DEBUG"));Oi.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);Oi.registerFlag("IS_TEST",()=>!1);function Zt(e,t){let s=e;if(Dt(e))return t==="string"?[]:[e.length];if(!Array.isArray(e))return[];const n=[];for(;Array.isArray(s)||Dt(s)&&t!=="string";)n.push(s.length),s=s[0];return Array.isArray(e)&&W().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&YL(e,n,[]),n}function YL(e,t,s){if(s=s||[],!Array.isArray(e)&&!Dt(e)){I(t.length===0,()=>`Element arr[${s.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}I(t.length>0,()=>`Element arr[${s.join("][")}] should be a primitive, but is an array of ${e.length} elements`),I(e.length===t[0],()=>`Element arr[${s.join("][")}] should have ${t[0]} elements, but has ${e.length} elements`);const n=t.slice(1);for(let i=0;i=0&&(i=n),KL(n,i,t,s),e==null||!Dt(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string"){const l=e==null?"null":e.constructor.name;throw new Error(`Argument '${t}' passed to '${s}' must be a Tensor or TensorLike, but got '${l}'`)}const r=Zt(e,i);!Dt(e)&&!Array.isArray(e)&&(e=[e]);const o=!0,a=i!=="string"?Pa(e,i):ti(e,[],o);return v.makeTensor(a,r,i)}function Ei(e,t,s,n="numeric"){if(!Array.isArray(e))throw new Error(`Argument ${t} passed to ${s} must be a \`Tensor[]\` or \`TensorLike[]\``);const i=e;return i.map((r,o)=>b(r,`${t}[${o}]`,s),n)}const fy="__op";function S(e){const t=Object.keys(e);if(t.length!==1)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${t.length} keys.`);let s=t[0];const n=e[s];s.endsWith("_")&&(s=s.substring(0,s.length-1)),s=s+fy;const i=(...r)=>{v.startScope(s);try{const o=n(...r);return o instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),v.endScope(o),o}catch(o){throw v.endScope(null),o}};return Object.defineProperty(i,"name",{value:s,configurable:!0}),i}function l_(e,t){const s=b(e,"real","complex"),n=b(t,"imag","complex");Se(s.shape,n.shape,`real and imag shapes, ${s.shape} and ${n.shape}, must match in call to tf.complex().`);const i=o=>o.complex(s,n),r={real:s,imag:n};return v.runKernelFunc(i,r,null,vc)}const Gt=S({complex_:l_});function us(e,t,s,n){if(n==null&&(n=Wa(e)),n==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(!Dt(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string")throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(t!=null){dp(t);const i=We(t),r=We(s);I(i===r,()=>`Based on the provided shape, [${t}], the tensor should have ${i} values but has ${r}`);for(let o=0;o`Error creating a new Tensor. Inferred shape (${s}) does not match the provided shape (${t}). `)}}return!Dt(e)&&!Array.isArray(e)&&(e=[e]),t=t||s,e=n!=="string"?Pa(e,n):ti(e,[],!0),v.makeTensor(e,t,n)}function ze(e,t,s){const n=Zt(e,s);return us(e,t,n,s)}const xp={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};const Xu=4;async function p_(e,t){const s=[],n=[],i=Array.isArray(e)?e.map(o=>o.name):Object.keys(e);for(let o=0;o{const h=await l.bytes(),d=h.reduce((g,y)=>g+y.length,0)+Xu*h.length,m=new Uint8Array(d);let f=0;for(let g=0;g{if(t+=r.byteLength,s.push(r.byteLength===r.buffer.byteLength?r:new r.constructor(r)),!(r instanceof Float32Array||r instanceof Int32Array||r instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${r.constructor.name}`)});const n=new Uint8Array(t);let i=0;return s.forEach(r=>{n.set(new Uint8Array(r.buffer),i),i+=r.byteLength}),n.buffer}const h_=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function XL(e){return h_?Buffer.byteLength(e):new Blob([e]).size}function Lp(e){if(e.length===1)return e[0];let t=0;e.forEach(i=>{t+=i.byteLength});const s=new Uint8Array(t);let n=0;return e.forEach(i=>{s.set(new Uint8Array(i),n),n+=i.byteLength}),s.buffer}function yy(e){const t="/";for(e=e.trim();e.endsWith(t);)e=e.slice(0,e.length-1);const s=e.split(t);return s[s.length-1]}function Sp(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:e.modelTopology==null?0:XL(JSON.stringify(e.modelTopology)),weightSpecsBytes:e.weightSpecs==null?0:XL(JSON.stringify(e.weightSpecs)),weightDataBytes:e.weightData==null?0:e.weightData.byteLength}}function d_(){const e=s=>{let n=s<<13,i=0;for(;(n&8388608)===0;)i-=8388608,n<<=1;return n&=~8388608,i+=947912704,n|i},t=new Uint32Array(2048);t[0]=0;for(let s=1;s<1024;s++)t[s]=e(s);for(let s=1024;s<2048;s++)t[s]=939524096+(s-1024<<13);return t}function m_(){const e=new Uint32Array(64);e[0]=0,e[31]=1199570944,e[32]=2147483648,e[63]=3347054592;for(let t=1;t<31;t++)e[t]=t<<23;for(let t=33;t<63;t++)e[t]=2147483648+(t-32<<23);return e}function f_(){const e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function u_(){const e=d_(),t=m_(),s=f_();return n=>{const i=new ArrayBuffer(4*n.length),r=new Uint32Array(i);for(let o=0;o>10]+(a&1023)]+t[a>>10];r[o]=l}return new Float32Array(i)}}class Ct{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return Ct.instance==null&&(Ct.instance=new Ct),Ct.instance}static registerSaveRouter(e){Ct.getInstance().saveRouters.push(e)}static registerLoadRouter(e){Ct.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return Ct.getHandlers(e,"save")}static getLoadHandlers(e,t){return Ct.getHandlers(e,"load",t)}static getHandlers(e,t,s){const n=[],i=t==="load"?Ct.getInstance().loadRouters:Ct.getInstance().saveRouters;return i.forEach(r=>{const o=r(e,s);o!==null&&n.push(o)}),n}}const g_=e=>Ct.registerSaveRouter(e),y_=e=>Ct.registerLoadRouter(e),b_=e=>Ct.getSaveHandlers(e),w_=(e,t)=>Ct.getLoadHandlers(e,t);const Va="://";class Dn{constructor(){this.managers={}}static getInstance(){return Dn.instance==null&&(Dn.instance=new Dn),Dn.instance}static registerManager(e,t){I(e!=null,()=>"scheme must not be undefined or null."),e.endsWith(Va)&&(e=e.slice(0,e.indexOf(Va))),I(e.length>0,()=>"scheme must not be an empty string.");const s=Dn.getInstance();I(s.managers[e]==null,()=>`A model store manager is already registered for scheme '${e}'.`),s.managers[e]=t}static getManager(e){const t=this.getInstance().managers[e];if(t==null)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(this.getInstance().managers)}}function Ju(e){if(e.indexOf(Va)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Dn.getSchemes().join(",")}`);return{scheme:e.split(Va)[0],path:e.split(Va)[1]}}async function JL(e,t,s=!1){I(e!==t,()=>`Old path and new path are the same: '${e}'`);const n=Ct.getLoadHandlers(e);I(n.length>0,()=>`Copying failed because no load handler is found for source URL ${e}.`),I(n.length<2,()=>`Copying failed because more than one (${n.length}) load handlers for source URL ${e}.`);const i=n[0],r=Ct.getSaveHandlers(t);I(r.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),I(r.length<2,()=>`Copying failed because more than one (${n.length}) save handlers for destination URL ${t}.`);const o=r[0],a=Ju(e).scheme,l=Ju(e).path,c=a===Ju(e).scheme,p=await i.load();s&&c&&await Dn.getManager(a).removeModel(l);const u=await o.save(p);return s&&!c&&await Dn.getManager(a).removeModel(l),u.modelArtifactsInfo}async function ZL(){const e=Dn.getSchemes(),t={};for(const s of e){const n=await Dn.getManager(s).listModels();for(const i in n){const r=s+Va+i;t[r]=n[i]}}return t}async function QL(e){const t=Ju(e),s=Dn.getManager(t.scheme);return s.removeModel(t.path)}async function eS(e,t){const s=!1;return JL(e,t,s)}async function tS(e,t){const s=!0;return JL(e,t,s)}function ge(e,t="float32",s){return t=t||"float32",dp(e),new cn(e,t,s)}function x_(e,t){const s=b(e,"x","cast");if(!sy(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t==="string"&&s.dtype!=="string"||t!=="string"&&s.dtype==="string")throw new Error("Only strings can be casted to strings");const n={x:s},i={dtype:t};return v.runKernelFunc(r=>r.cast(s,t),n,null,Ii,i)}const G=S({cast_:x_});function L_(e){const t=b(e,"x","clone",null),s=()=>v.makeTensorFromDataId(t.dataId,t.shape,t.dtype),n={x:t};return v.runKernelFunc(s,n,null,Ti)}const Ds=S({clone_:L_});function Zu(e,t=!1){console.log(e.toString(t))}dy();const S_={buffer:ge,cast:G,clone:Ds,print:Zu};VL(S_);const I_="model",v_=".json",T_=".weights.bin";function sS(e){return new Promise(t=>setTimeout(t)).then(e)}class Ga{constructor(e){if(!W().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(Ga.URL_SCHEME)&&(e=e.slice(Ga.URL_SCHEME.length)),(e==null||e.length===0)&&(e=I_),this.modelTopologyFileName=e+v_,this.weightDataFileName=e+T_}async save(e){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");const t=window.URL.createObjectURL(new Blob([e.weightData],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{const s=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],n={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:s},i=window.URL.createObjectURL(new Blob([JSON.stringify(n)],{type:"application/json"})),r=this.jsonAnchor==null?document.createElement("a"):this.jsonAnchor;if(r.download=this.modelTopologyFileName,r.href=i,await sS(()=>r.dispatchEvent(new MouseEvent("click"))),e.weightData!=null){const o=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;o.download=this.weightDataFileName,o.href=t,await sS(()=>o.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:Sp(e)}}}}Ga.URL_SCHEME="downloads://";class A_{constructor(e){if(e==null||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.files=e}async load(){const e=this.files[0],t=this.files.slice(1);return new Promise((s,n)=>{const i=new FileReader;i.onload=r=>{const o=JSON.parse(r.target.result),a=o.modelTopology;if(a==null){n(new Error(`modelTopology field is missing from file ${e.name}`));return}t.length===0&&s({modelTopology:a});const l=o.weightsManifest;if(l==null){n(new Error(`weightManifest field is missing from file ${e.name}`));return}let c;try{c=this.checkManifestAndWeightFiles(l,t)}catch(d){n(d);return}const p=[],u=[],h=[];l.forEach(d=>{d.paths.forEach(m=>{u.push(m),h.push(null)}),p.push(...d.weights)}),l.forEach(d=>{d.paths.forEach(m=>{const f=new FileReader;f.onload=g=>{const y=g.target.result,w=u.indexOf(m);h[w]=y,h.indexOf(null)===-1&&s({modelTopology:a,weightSpecs:p,weightData:Lp(h),format:o.format,generatedBy:o.generatedBy,convertedBy:o.convertedBy,userDefinedMetadata:o.userDefinedMetadata})},f.onerror=g=>n(`Failed to weights data from file of path '${m}'.`),f.readAsArrayBuffer(c[m])})})},i.onerror=r=>n(`Failed to read model topology and weights manifest JSON from file '${e.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),i.readAsText(e)})}checkManifestAndWeightFiles(e,t){const s=[],n=t.map(r=>yy(r.name)),i={};for(const r of e)r.paths.forEach(o=>{const a=yy(o);if(s.indexOf(a)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${a}'`);if(s.push(a),n.indexOf(a)===-1)throw new Error(`Weight file with basename '${a}' is not provided.`);i[o]=t[n.indexOf(a)]});if(s.length!==t.length)throw new Error(`Mismatch in the number of files in weights manifest (${s.length}) and the number of weight files provided (${t.length}).`);return i}}const C_=e=>W().getBool("IS_BROWSER")&&(!Array.isArray(e)&&e.startsWith(Ga.URL_SCHEME))?N_(e.slice(Ga.URL_SCHEME.length)):null;Ct.registerSaveRouter(C_);function N_(e="model"){return new Ga(e)}function R_(e){return new A_(e)}function by(e,t,s,n){o(e),s=s??0,n=n??1,a(s,n);let i=0;const r=l=>(l.then(c=>{const p=s+ ++i/e.length*(n-s);return t(p),c}),l);function o(l){I(l!=null&&Array.isArray(l)&&l.length>0,()=>"promises must be a none empty array")}function a(l,c){I(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${l}`),I(c>=0&&c<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${c}`),I(c>=l,()=>`startFraction must be no more than endFraction, but got startFraction ${l} and endFraction ${c}`)}return Promise.all(e.map(r))}async function wy(e,t){t==null&&(t={});const s=t.fetchFunc==null?W().platform.fetch:t.fetchFunc,n=e.map(u=>s(u,t.requestInit,{isBinary:!0})),i=0,r=.5,o=t.onProgress==null?await Promise.all(n):await by(n,t.onProgress,i,r),a=o.map(u=>u.arrayBuffer()),l=.5,c=1,p=t.onProgress==null?await Promise.all(a):await by(a,t.onProgress,l,c);return p}async function O_(e,t="",s,n){const i=o=>wy(o,{requestInit:n}),r=nS(i);return r(e,t,s)}function nS(e){return async(t,s="",n)=>{const i=t.map(()=>!1),r={},o=n!=null?n.map(()=>!1):[],a=[];if(t.forEach((d,m)=>{let f=0;d.weights.forEach(g=>{const y="quantization"in g?g.quantization.dtype:g.dtype,w=xp[y]*We(g.shape),x=()=>{i[m]=!0,r[m]==null&&(r[m]=[]),r[m].push({manifestEntry:g,groupOffset:f,sizeBytes:w})};n!=null?n.forEach((T,A)=>{T===g.name&&(x(),o[A]=!0)}):x(),a.push(g.name),f+=w})}),!o.every(d=>d)){const d=n.filter((m,f)=>!o[f]);throw new Error(`Could not find weights in manifest with names: ${d.join(", ")}. +Manifest JSON has weights with names: ${a.join(", ")}.`)}const l=i.reduce((d,m,f)=>(m&&d.push(f),d),[]),c=[];l.forEach(d=>{t[d].paths.forEach(m=>{const f=s+(s.endsWith("/")?"":"/")+m;c.push(f)})});const p=await e(c),u={};let h=0;return l.forEach(d=>{const m=t[d].paths.length;let f=0;for(let T=0;T{const A=g.slice(T.groupOffset,T.groupOffset+T.sizeBytes),_=gy(A,[T.manifestEntry]);for(const E in _)u[E]=_[E]}),h+=m}),u}}const E_="application/octet-stream",__="application/json";class xy{constructor(e,t){if(this.DEFAULT_METHOD="POST",t==null&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,this.weightUrlConverter=t.weightUrlConverter,t.fetchFunc!=null?(I(typeof t.fetchFunc=="function",()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=t.fetchFunc):this.fetch=W().platform.fetch,I(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&I(e.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`),this.path=e,t.requestInit!=null&&t.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{}}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");const t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;const s=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],n={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,userDefinedMetadata:e.userDefinedMetadata,weightsManifest:s};t.body.append("model.json",new Blob([JSON.stringify(n)],{type:__}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:E_}),"model.weights.bin");const i=await this.fetch(this.path,t);if(i.ok)return{modelArtifactsInfo:Sp(e),responses:[i]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${i.status}.`)}async load(){const e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Request to ${this.path} failed with status code ${e.status}. Please verify this URL points to the model JSON of the model to load.`);let t;try{t=await e.json()}catch(h){let d=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?d+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":d+=" Please make sure the server is serving valid JSON for this request.",new Error(d)}const s=t.modelTopology,n=t.weightsManifest,i=t.generatedBy,r=t.convertedBy,o=t.format,a=t.userDefinedMetadata;if(s==null&&n==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);let l,c;if(n!=null){const h=await this.loadWeights(n);[l,c]=h}const p={modelTopology:s,weightSpecs:l,weightData:c,userDefinedMetadata:a,generatedBy:i,convertedBy:r,format:o},u=t.modelInitializer;return u&&(p.modelInitializer=u),p}async loadWeights(e){const t=Array.isArray(this.path)?this.path[1]:this.path,[s,n]=k_(t),i=this.weightPathPrefix||s,r=[];for(const c of e)r.push(...c.weights);const o=[],a=[];for(const c of e)for(const p of c.paths)this.weightUrlConverter!=null?a.push(this.weightUrlConverter(p)):o.push(i+p+n);this.weightUrlConverter&&o.push(...await Promise.all(a));const l=await wy(o,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[r,Lp(l)]}}xy.URL_SCHEME_REGEX=/^https?:\/\//;function k_(e){const t=e.lastIndexOf("/"),s=e.lastIndexOf("?"),n=e.substring(0,t),i=s>t?e.substring(s):"";return[n+"/",i]}function Ly(e){return e.match(xy.URL_SCHEME_REGEX)!=null}const iS=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let s=!0;if(Array.isArray(e)?s=e.every(n=>Ly(n)):s=Ly(e),s)return Sy(e,t)}return null};Ct.registerSaveRouter(iS);Ct.registerLoadRouter(iS);function Sy(e,t){return new xy(e,t)}function D_(e,t){return Sy(e,t)}class Iy{constructor(e){this.modelArtifacts=e}async load(){return this.modelArtifacts}}class F_{constructor(e){this.saveHandler=e}async save(e){return this.saveHandler(e)}}function M_(e,t,s,n){if(arguments.length===1){const i=e.modelTopology!=null||e.weightSpecs!=null;return i?new Iy(e):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new Iy({modelTopology:e}))}else return console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new Iy({modelTopology:e,weightSpecs:t,weightData:s,trainingConfig:n})}function U_(e){return new F_(e)}const Rt={};Ee(Rt,{browserFiles:()=>R_,browserHTTPRequest:()=>D_,concatenateArrayBuffers:()=>Lp,copyModel:()=>eS,decodeWeights:()=>gy,encodeWeights:()=>p_,fromMemory:()=>M_,getLoadHandlers:()=>w_,getModelArtifactsInfoForJSON:()=>Sp,getSaveHandlers:()=>b_,http:()=>Sy,isHTTPScheme:()=>Ly,listModels:()=>ZL,loadWeights:()=>O_,moveModel:()=>tS,registerLoadRouter:()=>y_,registerSaveRouter:()=>g_,removeModel:()=>QL,weightsLoaderFactory:()=>nS,withSaveHandler:()=>U_});function $_(e,t){const s=b(e,"x","reshape",null),n={x:s},i={shape:t},r=(o,a)=>(t=Qg(t,s.size),I(s.size===We(t),()=>"new shape and old shape must have the same number of elements."),a([s]),o.reshape(s,t));return v.runKernelFunc(r,n,null,Ci,i)}const O=S({reshape_:$_});function W_(e,t,s=!1,n=!1){let i=b(e,"a","matMul"),r=b(t,"b","matMul");[i,r]=Ce(i,r),I(i.rank>=2&&r.rank>=2&&i.rank===r.rank,()=>`Error in matMul: inputs must have the same rank of at least 2, got ranks ${i.rank} and ${r.rank}.`);const o=s?i.shape[i.rank-2]:i.shape[i.rank-1],a=n?r.shape[r.rank-1]:r.shape[r.rank-2],l=s?i.shape[i.rank-1]:i.shape[i.rank-2],c=n?r.shape[r.rank-2]:r.shape[r.rank-1],p=i.shape.slice(0,-2),u=r.shape.slice(0,-2),h=We(p),d=We(u);I(Nt(p,u),()=>`Error in matMul: outer dimensions (${p}) and (${u}) of Tensors with shapes ${i.shape} and ${r.shape} must match.`),I(o===a,()=>`Error in matMul: inner shapes (${o}) and (${a}) of Tensors with shapes ${i.shape} and ${r.shape} and transposeA=${s} and transposeB=${n} must match.`);const m=i.shape.slice(0,-2).concat([l,c]),f=s?O(i,[h,o,l]):O(i,[h,l,o]),g=n?O(r,[d,c,a]):O(r,[d,a,c]),y=(A,_)=>(_([f,g]),A.batchMatMul(f,g,s,n)),w={a:f,b:g},x={transposeA:s,transposeB:n},T=v.runKernelFunc(y,w,null,Lc,x);return O(T,m)}const Te=S({matMul_:W_});function z_(e,t,s=1,n=0){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);const i=b(e,"indices","oneHot","int32"),r=[...i.shape,t],o=(c,p)=>(p([i]),O(c.oneHot(O(i,[i.size]),t,s,n),r)),a={indices:i},l={depth:t,onValue:s,offValue:n};return v.runKernelFunc(o,a,null,qc,l)}const ai=S({oneHot_:z_});function P_(e,t){const s=b(e,"x","transpose");if(t==null&&(t=s.shape.map((r,o)=>o).reverse()),I(s.rank===t.length,()=>`Error in transpose: rank of input ${s.rank} must match length of perm ${t}.`),t.forEach(r=>{I(r>=0&&r`All entries in 'perm' must be between 0 and ${s.rank-1} but got ${t}`)}),s.rank<=1)return s.clone();const n={x:s},i={perm:t};return v.runKernelFunc(r=>r.transpose(s,t),n,null,Ri,i)}const se=S({transpose_:P_});function B_(e,t,s){const n=b(e,"labels","confusionMatrix"),i=b(t,"predictions","confusionMatrix");I(s==null||s>0&&Number.isInteger(s),()=>`If provided, numClasses must be a positive integer, but got ${s}`),I(n.rank===1,()=>`Expected the rank of labels to be 1, but got ${n.rank}`),I(i.rank===1,()=>`Expected the rank of predictions to be 1, but got ${i.rank}`),I(n.shape[0]===i.shape[0],()=>`Mismatch in the number of examples: ${n.shape[0]} vs. ${i.shape[0]}. Labels and predictions should have the same number of elements.`),I(s>0&&Number.isInteger(s),()=>`numClasses is required to be a positive integer, but got ${s}`);const r=ai(G(n,"int32"),s),o=ai(G(i,"int32"),s),a=se(r);return G(Te(a,o),"int32")}const j_=S({confusionMatrix_:B_});const rS={};Ee(rS,{confusionMatrix:()=>j_});function qa(e,t,s){if(qs(e),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");const n=Zt(e,s);if(n.length!==3&&n.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return us(e,t,n,s)}const Fr={};Ee(Fr,{fromPixels:()=>q_,toPixels:()=>G_});let Ha;function V_(e,t=3){if(t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(e==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let s=!1,n=!1,i=!1,r=!1,o=!1;if(e.data instanceof Uint8Array)s=!0;else if(typeof ImageData!="undefined"&&e instanceof ImageData)n=!0;else if(typeof HTMLVideoElement!="undefined"&&e instanceof HTMLVideoElement)i=!0;else if(typeof HTMLImageElement!="undefined"&&e instanceof HTMLImageElement)r=!0;else if(e.getContext!=null)o=!0;else throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${e.constructor.name}`);if(i){const d=2;if(i&&e.readyState element.")}const a=pp(Da,v.backendName);if(a!=null){const d={pixels:e},m={numChannels:t};return v.runKernel(Da,d,m)}const[l,c]=i?[e.videoWidth,e.videoHeight]:[e.width,e.height];let p;o?p=e.getContext("2d").getImageData(0,0,l,c).data:n||s?p=e.data:(r||i)&&(Ha==null&&(Ha=document.createElement("canvas").getContext("2d")),Ha.canvas.width=l,Ha.canvas.height=c,Ha.drawImage(e,0,0,l,c),p=Ha.getImageData(0,0,l,c).data);let u;if(t===4)u=new Int32Array(p);else{const d=l*c;u=new Int32Array(d*t);for(let m=0;m4||r===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${r}`);if(s.dtype!=="float32"&&s.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${s.dtype}. Please use float32 or int32 tensors.`);const o=await s.data(),a=s.dtype==="float32"?255:1,l=new Uint8ClampedArray(i*n*4);for(let c=0;c1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${d}.`)}else if(s.dtype==="int32"&&(d<0||d>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${d}.`);r===1?(p[0]=d*a,p[1]=d*a,p[2]=d*a):p[h]=d*a}const u=c*4;l[u+0]=Math.round(p[0]),l[u+1]=Math.round(p[1]),l[u+2]=Math.round(p[2]),l[u+3]=Math.round(p[3])}if(t!=null){t.width=i,t.height=n;const c=t.getContext("2d"),p=new ImageData(l,i,n);c.putImageData(p,0,0)}return s!==e&&s.dispose(),l}const q_=S({fromPixels_:V_});const oS={};Ee(oS,{prepareAndValidate:()=>aS});function aS(e,t){if(e.rank<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${e.rank}.`);if(t.rank<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${t.rank}.`);if(t.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[t.rank-1]>e.rank)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[t.rank-1]} vs. ${e.rank}`);if(e.size===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${e.shape}.`);const s=t.shape,n=s[s.length-1];let i=1;for(let c=0;cc/a),1].slice(0,n);return[o,i,a,l]}const lS={};Ee(lS,{calculateShapes:()=>cS,validateInput:()=>Qu,validateUpdateShape:()=>vy});function vy(e,t,s){const n=t.rank>1?t.shape[t.rank-1]:1,i=t.rank>1?t.rank-1:1,r=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${s.shape}, indices.shape: ${t.shape}, shape: ${e}, sliceDim: ${n}, and batchDim: ${i}.`;if(s.rank1?t.shape[n-1]:1,r=s.length;let o=1;for(let u=i;uTy,computeFlatOffset:()=>Y_,computeOutShape:()=>Ay,getNormalizedAxes:()=>Ny,isSliceContinous:()=>H_,maskToAxes:()=>Ip,parseSliceParams:()=>vp,startForAxis:()=>gS,startIndicesWithElidedDims:()=>dS,stopForAxis:()=>yS,stopIndicesWithElidedDims:()=>mS,stridesForAxis:()=>fS,stridesWithElidedDims:()=>pS});function Ty(e,t,s){const n=e.shape.length;I(n===t.length,()=>`Error in slice${n}D: Length of begin ${t} must match the rank of the array (${n}).`),I(n===s.length,()=>`Error in slice${n}D: Length of size ${s} must match the rank of the array (${n}).`);for(let i=0;i`Error in slice${n}D: begin[${i}] + size[${i}] (${t[i]+s[i]}) would overflow input.shape[${i}] (${e.shape[i]})`)}function Ip(e){const t=[];let s=0;for(;e>0;)e&1&&t.push(s),e/=2,s++;return t}function Ay(e,t,s){const n=[];for(let i=0;i0){const d=t[0],m=s+1;p=dS(o,d,m,n,e),u=mS(a,d,m,i,e),h=pS(r,d,m,e)}else for(let d=0;d-1)r[a]=0;else{const l=uS(t,s,a);let c=n[l];e&1<-1)r[a]=Number.MAX_SAFE_INTEGER;else{const l=uS(t,s,a);let c=n[l];e&1<0?o=Number.MIN_SAFE_INTEGER:o=Number.MAX_SAFE_INTEGER);const l=n[i];return o<0&&(o+=l),o=Ua(0,o,l-1),o}function yS(e,t,s,n,i,r){let o=t[i];const a=s[i]||1;(e&1<0?o=Number.MAX_SAFE_INTEGER:o=Number.MIN_SAFE_INTEGER);const l=n[i];return o<0&&(o+=l),a>0?o=Ua(0,o,l):o=Ua(-1,o,l-1),o}function H_(e,t,s){let n=s.length;for(let i=0;i1){n=i;break}for(let i=n+1;i0||s[i]!==e[i])return!1;return!0}function Y_(e,t){let s=e.length>0?e[e.length-1]:1;for(let n=0;n{I(o!==-1,()=>"slice() does not support negative begin indexing.")});let r;return s==null?r=new Array(i).fill(-1):typeof s=="number"?r=[s,...new Array(i-1).fill(-1)]:s.lengtho>=0?o:(I(o===-1,()=>`Negative size values should be exactly -1 but got ${o} for the slice() size at index ${a}.`),e.shape[a]-n[a])),[n,r]}const V={};Ee(V,{Serializable:()=>Cy,SerializationMap:()=>Fo,registerClass:()=>vs});class Cy{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}}class Fo{constructor(){this.classNameMap={}}static getMap(){return Fo.instance==null&&(Fo.instance=new Fo),Fo.instance}static register(e){Fo.getMap().classNameMap[e.className]=[e,e.fromConfig]}}function vs(e){I(e.className!=null,()=>"Class being registered does not have the static className property defined."),I(typeof e.className=="string",()=>"className is required to be a string, but got type "+typeof e.className),I(e.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),Fo.register(e)}const bS={};Ee(bS,{TEST_EPSILON_FLOAT16:()=>wS,expectArrayBuffersEqual:()=>tk,expectArraysClose:()=>X_,expectArraysEqual:()=>Z_,expectNumbersClose:()=>Q_,expectPromiseToFail:()=>J_,expectValuesInRange:()=>ek,testEpsilon:()=>Ry});const K_=.001,wS=.1;function X_(e,t,s){return s==null&&(s=Ry()),Oy(e,t,(n,i)=>Ey(n,i,s))}function Ry(){return v.backend.floatPrecision()===32?K_:wS}function Oy(e,t,s){let n=!0;if((Dt(e)||Dt(t))&&(n=!1),Dt(e)&&Dt(t)&&(n=!0),n){const o=e.constructor.name,a=t.constructor.name;if(o!==a)throw new Error(`Arrays are of different type. Actual: ${o}. Expected: ${a}`)}if(Array.isArray(e)&&Array.isArray(t)){const o=Zt(e),a=Zt(t);if(!Nt(o,a))throw new Error(`Arrays have different shapes. Actual: [${o}]. Expected: [${a}]`)}const i=Dt(e)?e:ti(e),r=Dt(t)?t:ti(t);if(i.length!==r.length)throw new Error(`Arrays have different lengths actual: ${i.length} vs expected: ${r.length}. +Actual: ${i}. +Expected: ${r}.`);for(let o=0;ot.fail(),()=>t())}function Z_(e,t){const s=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return kn(e)||kn(e[0])||kn(t)||kn(t[0])?Oy(e,s,(n,i)=>n==i):Oy(e,t,(n,i)=>Ey(n,i,0))}function Q_(e,t,s){if(s==null&&(s=Ry()),!Ey(e,t,s))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`)}function Ey(e,t,s){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>s)}function ek(e,t,s){for(let n=0;ns)throw new Error(`Value out of range:${e[n]} low: ${t}, high: ${s}`)}function tk(e,t){expect(new Float32Array(e)).toEqual(new Float32Array(t))}const _y="2.6.0";function sk(){W().set("PROD",!0)}function nk(){W().set("DEBUG",!0)}function ik(){W().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function It(e){W().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}GL(It);function rk(){v.disposeVariables()}function Ms(){return v}function Ya(){return v.memory()}function ok(e){return v.profile(e)}function C(e,t){return v.tidy(e,t)}function ce(e){const t=bp(e);t.forEach(s=>s.dispose())}function pt(e){return v.keep(e)}function ak(e){return v.time(e)}function xS(e){return v.setBackend(e)}function lk(){return v.ready()}function ck(){return v.backendName}function pk(e){v.removeBackend(e)}function uk(e){return v.findBackend(e)}function hk(e){return v.findBackendFactory(e)}function Tp(e,t,s=1){return v.registerBackend(e,t,s)}function ky(){return v.backend}function dk(e,t){W().setPlatform(e,t)}function mk(e,t){let s=b(e,"a","add"),n=b(t,"b","add");[s,n]=Ce(s,n);const i=(o,a)=>{const l=o.add(s,n);return a([s,n]),l},r={a:s,b:n};return v.runKernelFunc(i,r,null,Kn)}const $=S({add_:mk});function fk(e,t){let s=b(e,"a","floorDiv"),n=b(t,"b","floorDiv");[s,n]=Ce(s,n);const i=(o,a)=>{const l=o.floorDiv(s,n);return a([s,n]),l},r={a:s,b:n};return v.runKernelFunc(i,r,null,Ec)}const Ka=S({floorDiv_:fk});function gk(e,t){let s=b(e,"a","div"),n=b(t,"b","div");if([s,n]=Ce(s,n),s.dtype==="int32"&&n.dtype==="int32")return Ka(s,n);const i=(a,l)=>{const c=a.realDivide(s,n);return l([s,n]),c},r={a:s,b:n},o={};return v.runKernelFunc(i,r,null,Jn,o)}const Z=S({div_:gk});function yk(e,t){let s=b(e,"a","mul"),n=b(t,"b","mul");[s,n]=Ce(s,n);const i=(o,a)=>{const l=o.multiply(s,n);return a([s,n]),l},r={a:s,b:n};return v.runKernelFunc(i,r,null,Sr)}const R=S({mul_:yk});function bk(e){const t=b(e,"x","abs"),s={x:t};return v.runKernelFunc((n,i)=>(i([t]),t.dtype==="complex64"?n.complexAbs(t):n.abs(t)),s,null,yo)}const et=S({abs_:bk});function wk(e){const t=b(e,"x","acos"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.acos(t);return i([t]),r},s,null,nr)}const eh=S({acos_:wk});function xk(e){const t=b(e,"x","acosh"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.acosh(t);return i([t]),r},s,null,ir)}const th=S({acosh_:xk});function Lk(e){I(Array.isArray(e),()=>"The argument passed to tf.addN() must be a list of tensors"),I(e.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`);const t=e.map((r,o)=>b(r,`tensors${o}`,"addN")),s=t[0];t.forEach(r=>{if(r.dtype!==s.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")}),t.forEach(r=>{if(!Nt(r.shape,s.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});const n=(r,o)=>{const a=r.addN(t);return o(t),a},i=t;return v.runKernelFunc(n,i,null,yc)}const sh=S({addN_:Lk});function Dy(e,t){for(let s=0;se[r]);return[s,i]}function bt(e,t){const s=t.map(n=>1);return LS(e,s,t)}function Sk(e,t,s){I(Dy(t,s),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${s} input.`)}function ht(e,t){if(Dy(e,t))return null;const s=[];for(let n=0;ns.push(n)),s}function Mo(e){return e.map((t,s)=>[s,t]).sort((t,s)=>t[1]-s[1]).map(t=>t[0])}function qt(e,t){const s=[];for(let n=t-e;n{const l=Ne(t,n.shape);let c=l;const p=ht(c,n.rank);p!=null&&(n=se(n,p),c=qt(c.length,n.rank));const u=a.all(n,c);if(s){const h=bt(u.shape,l);return O(u,h)}return u},r={x:n},o={axis:t,keepDims:s};return v.runKernelFunc(i,r,null,xg,o)}const Xa=S({all_:Ik});function vk(e,t=null,s=!1){let n=b(e,"x","any","bool");const i=a=>{const l=Ne(t,n.shape);let c=l;const p=ht(c,n.rank);p!=null&&(n=se(n,p),c=qt(c.length,n.rank));const u=a.any(n,c);if(s){const h=bt(u.shape,l);return O(u,h)}return u},r={x:n},o={axis:t,keepDims:s};return v.runKernelFunc(i,r,null,Lg,o)}const Uo=S({any_:vk});function Tk(e,t=0){let s=b(e,"x","argMax");const n=(o,a)=>{a([s]);let l=Ne(t,s.shape);const c=ht(l,s.rank);return c!=null&&(s=se(s,c),l=qt(l.length,s.rank)),o.argMax(s,l[0])},i={x:s},r={axis:t};return v.runKernelFunc(n,i,null,bc,r)}const $o=S({argMax_:Tk});function Ak(e,t=0){let s=b(e,"x","argMin");const n=(o,a)=>{a([s]),t==null&&(t=0);let l=Ne(t,s.shape);const c=ht(l,s.rank);return c!=null&&(s=se(s,c),l=qt(l.length,s.rank)),o.argMin(s,l[0])},i={x:s},r={axis:t};return v.runKernelFunc(n,i,null,wc,r)}const nh=S({argMin_:Ak});function Nk(e){const t=b(e,"x","asin"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.asin(t);return i([t]),r},s,null,rr)}const ih=S({asin_:Nk});function Ck(e){const t=b(e,"x","asinh"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.asinh(t);return i([t]),r},s,null,or)}const rh=S({asinh_:Ck});function Rk(e){const t=b(e,"x","atan"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.atan(t);return i([t]),r},s,null,ar)}const oh=S({atan_:Rk});function Ok(e,t){let s=b(e,"a","atan2"),n=b(t,"b","atan2");[s,n]=Ce(s,n);const i=(o,a)=>{const l=o.atan2(s,n);return a([s,n]),l},r={a:s,b:n};return v.runKernelFunc(i,r,null,bo)}const ah=S({atan2_:Ok});function Ek(e){const t=b(e,"x","atanh"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.atanh(t);return i([t]),r},s,null,lr)}const lh=S({atanh_:Ek});function _k(e,t,s,n,i="NHWC",r){const o=e[3],a=[...t,o],l=Mr(i);return is(e,a,s,r,n,null,null,l)}function Fn(e,t,s,n,i,r,o="channelsLast"){const[a,l]=ch(t);let c;if(o==="channelsLast")c=[a,l,e[3],e[3]];else if(o==="channelsFirst")c=[a,l,e[1],e[1]];else throw new Error(`Unknown dataFormat ${o}`);return is(e,c,s,n,i,r,!1,o)}function _i(e,t,s,n,i,r,o="NDHWC"){const[a,l,c]=My(t);let p,u;if(o==="NDHWC")u="channelsLast",p=[a,l,c,e[4],e[4]];else if(o==="NCDHW")u="channelsFirst",p=[a,l,c,e[1],e[1]];else throw new Error(`Unknown dataFormat ${o}`);return Ur(e,p,s,n,i,!1,u,r)}function is(e,t,s,n,i,r,o=!1,a="channelsLast"){let[l,c,p,u]=[-1,-1,-1,-1];if(a==="channelsLast")[l,c,p,u]=e;else if(a==="channelsFirst")[l,u,c,p]=e;else throw new Error(`Unknown dataFormat ${a}`);const[h,d,,m]=t,[f,g]=ch(s),[y,w]=ch(n),x=Ja(h,y),T=Ja(d,w),{padInfo:A,outHeight:_,outWidth:E}=kk(i,c,p,f,g,x,T,r,a),F=o?m*u:m;let D;return a==="channelsFirst"?D=[l,F,_,E]:a==="channelsLast"&&(D=[l,_,E,F]),{batchSize:l,dataFormat:a,inHeight:c,inWidth:p,inChannels:u,outHeight:_,outWidth:E,outChannels:F,padInfo:A,strideHeight:f,strideWidth:g,filterHeight:h,filterWidth:d,effectiveFilterHeight:x,effectiveFilterWidth:T,dilationHeight:y,dilationWidth:w,inShape:e,outShape:D,filterShape:t}}function Ur(e,t,s,n,i,r=!1,o="channelsLast",a){let[l,c,p,u,h]=[-1,-1,-1,-1,-1];if(o==="channelsLast")[l,c,p,u,h]=e;else if(o==="channelsFirst")[l,h,c,p,u]=e;else throw new Error(`Unknown dataFormat ${o}`);const[d,m,f,,g]=t,[y,w,x]=My(s),[T,A,_]=My(n),E=Ja(d,T),F=Ja(m,A),D=Ja(f,_),{padInfo:M,outDepth:P,outHeight:B,outWidth:Y}=Dk(i,c,p,u,y,w,x,E,F,D,a),q=r?g*h:g;let K;return o==="channelsFirst"?K=[l,q,P,B,Y]:o==="channelsLast"&&(K=[l,P,B,Y,q]),{batchSize:l,dataFormat:o,inDepth:c,inHeight:p,inWidth:u,inChannels:h,outDepth:P,outHeight:B,outWidth:Y,outChannels:q,padInfo:M,strideDepth:y,strideHeight:w,strideWidth:x,filterDepth:d,filterHeight:m,filterWidth:f,effectiveFilterDepth:E,effectiveFilterHeight:F,effectiveFilterWidth:D,dilationDepth:T,dilationHeight:A,dilationWidth:_,inShape:e,outShape:K,filterShape:t}}function Fk(e,t,s,n,i){n==null&&(n=Uy(e,t,s));const r=e[0],o=e[1],a=Wo((r-t+2*n)/s+1,i);I(ke(a),()=>`The output # of rows (${a}) must be an integer. Change the stride and/or zero pad parameters`);const l=Wo((o-t+2*n)/s+1,i);return I(ke(l),()=>`The output # of columns (${l}) must be an integer. Change the stride and/or zero pad parameters`),[a,l]}function Mk(e,t,s,n,i,r){i==null&&(i=Uy(e,t,n));const o=e[0],a=e[1],l=e[2],c=Wo((o-t+2*i)/n+1,r);I(ke(c),()=>`The output # of depths (${c}) must be an integer. Change the stride and/or zero pad parameters`);const p=Wo((a-t+2*i)/n+1,r);I(ke(p),()=>`The output # of rows (${p}) must be an integer. Change the stride and/or zero pad parameters`);const u=Wo((l-t+2*i)/n+1,r);return I(ke(u),()=>`The output # of columns (${u}) must be an integer. Change the stride and/or zero pad parameters`),[c,p,u,s]}function Uy(e,t,s,n=1){const i=Ja(t,n);return Math.floor((e[0]*(s-1)-s+i)/2)}function ch(e){return typeof e=="number"?[e,e,e]:e.length===2?[e[0],e[1],1]:e}function My(e){return typeof e=="number"?[e,e,e]:e}function Ja(e,t){return t<=1?e:e+(e-1)*(t-1)}function kk(e,t,s,n,i,r,o,a,l){let c,p,u;if(typeof e=="number"){const h=e===0?"VALID":"NUMBER";c={top:e,bottom:e,left:e,right:e,type:h};const d=Fk([t,s],r,n,e,a);p=d[0],u=d[1]}else if(e==="same"){p=Math.ceil(t/n),u=Math.ceil(s/i);const h=Math.max(0,(p-1)*n+r-t),d=Math.max(0,(u-1)*i+o-s),m=Math.floor(h/2),f=h-m,g=Math.floor(d/2),y=d-g;c={top:m,bottom:f,left:g,right:y,type:"SAME"}}else if(e==="valid")c={top:0,bottom:0,left:0,right:0,type:"VALID"},p=Math.ceil((t-r+1)/n),u=Math.ceil((s-o+1)/i);else if(typeof e=="object"){const h=l==="channelsLast"?e[1][0]:e[2][0],d=l==="channelsLast"?e[1][1]:e[2][1],m=l==="channelsLast"?e[2][0]:e[3][0],f=l==="channelsLast"?e[2][1]:e[3][1],g=h===0&&d===0&&m===0&&f===0?"VALID":"EXPLICIT";c={top:h,bottom:d,left:m,right:f,type:g},p=Wo((t-r+h+d)/n+1,a),u=Wo((s-o+m+f)/i+1,a)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:c,outHeight:p,outWidth:u}}function Dk(e,t,s,n,i,r,o,a,l,c,p){let u,h,d,m;if(typeof e=="number"){const f=e===0?"VALID":"NUMBER";u={top:e,bottom:e,left:e,right:e,front:e,back:e,type:f};const g=Mk([t,s,n,1],a,1,i,e,p);h=g[0],d=g[1],m=g[2]}else if(e==="same"){h=Math.ceil(t/i),d=Math.ceil(s/r),m=Math.ceil(n/o);const f=(h-1)*i+a-t,g=(d-1)*r+l-s,y=(m-1)*o+c-n,w=Math.floor(f/2),x=f-w,T=Math.floor(g/2),A=g-T,_=Math.floor(y/2),E=y-_;u={top:T,bottom:A,left:_,right:E,front:w,back:x,type:"SAME"}}else if(e==="valid")u={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},h=Math.ceil((t-a+1)/i),d=Math.ceil((s-l+1)/r),m=Math.ceil((n-c+1)/o);else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:u,outDepth:h,outHeight:d,outWidth:m}}function Wo(e,t){if(!t)return e;switch(t){case"round":return Math.round(e);case"ceil":return Math.ceil(e);case"floor":return Math.floor(e);default:throw new Error(`Unknown roundingMode ${t}`)}}function Hs(e){const[t,s,n]=ch(e);return t===1&&s===1&&n===1}function tt(e,t){return Hs(e)||Hs(t)}function Mr(e){if(e==="NHWC")return"channelsLast";if(e==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function Uk(e,t,s,n,i){const r=b(e,"x","avgPool","float32"),o=1;I(tt(s,o),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`);let a=r,l=!1;r.rank===3&&(l=!0,a=O(r,[1,r.shape[0],r.shape[1],r.shape[2]])),I(a.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${a.rank}.`),i!=null&&I(ke(n),()=>`Error in avgPool: pad must be an integer when using, dimRoundingMode ${i} but got pad ${n}.`);const c=(d,m)=>{const f=Fn(a.shape,t,s,1,n,i);return m([a]),f.filterWidth===1&&f.filterHeight===1&&Nt(f.inShape,f.outShape)?a.clone():d.avgPool(a,f)},p={x:a},u={filterSize:t,strides:s,pad:n,dimRoundingMode:i};let h=v.runKernelFunc(c,p,null,Si,u);return h=G(h,r.dtype),l?O(h,[h.shape[1],h.shape[2],h.shape[3]]):h}const hs=S({avgPool_:Uk});function $k(e,t,s,n,i,r="NDHWC",o){o==null?o=[1,1,1]:It("dilations is deprecated, this field will be gone in v3.0.0.");const a=b(e,"x","avgPool3d","float32");let l=a,c=!1;a.rank===4&&(c=!0,l=O(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),I(l.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${l.rank}.`),I(r==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${r}`),I(tt(s,o),()=>`Error in avgPool3d: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`),i!=null&&I(ke(n),()=>`Error in avgPool3d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${n}.`);const p=(m,f)=>{o==null&&(o=[1,1,1]);const g=_i(l.shape,t,s,o,n,i,r);return f([l]),m.avgPool3d(l,g)},u={x:l},h={filterSize:t,strides:s,pad:n,dimRoundingMode:i,dataFormat:r,dilations:o};let d=v.runKernelFunc(p,u,null,xc,h);return d=G(d,l.dtype),c?O(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}const Za=S({avgPool3d_:$k});function $y(e,t){const s=e[0].length;e.forEach((i,r)=>{I(i.length===s,()=>`Error in concat${s}D: rank of tensors[${r}] must be the same as the rank of the rest (${s})`)}),I(t>=0&&t`Error in concat${s}D: axis must be between 0 and ${s-1}.`);const n=e[0];e.forEach((i,r)=>{for(let o=0;o`Error in concat${s}D: Shape of tensors[${r}] (${i}) does not match the shape of the rest (${n}) along the non-concatenated axis ${r}.`)})}function Wy(e,t){const s=e[0].slice();for(let n=1;n=1,()=>"Pass at least one tensor to concat");let s=Ei(e,"tensors","concat");s[0].dtype==="complex64"&&s.forEach(o=>{if(o.dtype!=="complex64")throw new Error(`Cannot concatenate complex64 tensors with a tensor + with dtype ${o.dtype}. `)});const n=(o,a)=>{const l=Ne(t,s[0].shape)[0],c=Wy(s.map(h=>h.shape),l);if(We(c)===0)return ze([],c);if(s=s.filter(h=>h.size>0),s.length===1)return s[0];const p=s.map(h=>h.shape);$y(p,l);const u=o.concat(s,l);return a(s),u},i=s,r={axis:t};return v.runKernelFunc(n,i,null,xo,r)}const be=S({concat_:Wk});function zk(e){const t=b(e,"x","sigmoid"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.sigmoid(t);return i([r]),r},s,null,Rr)}const rs=S({sigmoid_:zk});function Pk(e,t,s){const n=b(e,"x","slice");if(n.rank===0)throw new Error("Slicing scalar is not possible");const i=(a,l)=>{const[c,p]=vp(n,t,s);return Ty(n,c,p),l([n]),a.slice(n,c,p)},r={x:n},o={begin:t,size:s};return v.runKernelFunc(i,r,null,Co,o)}const he=S({slice_:Pk});function Bk(e){const t=b(e,"x","tanh"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.tanh(t);return i([r]),r},s,null,kr)}const ki=S({tanh_:Bk});function jk(e,t,s,n,i,r){const o=b(e,"forgetBias","basicLSTMCell"),a=b(t,"lstmKernel","basicLSTMCell"),l=b(s,"lstmBias","basicLSTMCell"),c=b(n,"data","basicLSTMCell"),p=b(i,"c","basicLSTMCell"),u=b(r,"h","basicLSTMCell"),h=be([c,u],1),d=Te(h,a),m=$(d,l),f=m.shape[0],g=m.shape[1]/4,y=[f,g],w=he(m,[0,0],y),x=he(m,[0,g],y),T=he(m,[0,g*2],y),A=he(m,[0,g*3],y),_=$(R(rs(w),ki(x)),R(p,rs($(o,T)))),E=R(ki(_),rs(A));return[_,E]}const SS=S({basicLSTMCell_:jk});function Vk(e,t,s){const n=b(e,"x","batchToSpaceND"),i=t.reduce((l,c)=>l*c);I(n.rank>=1+t.length,()=>`input rank is ${n.rank} but should be > than blockShape.length ${t.length}`),I(s.length===t.length,()=>`crops.length is ${s.length} but should be equal to blockShape.length ${t.length}`),I(n.shape[0]%i===0,()=>`input tensor batch is ${n.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${i}`);const r=l=>l.batchToSpaceND(n,t,s),o={x:n},a={blockShape:t,crops:s};return v.runKernelFunc(r,o,null,Sc,a)}const $r=S({batchToSpaceND_:Vk});function IS(e){let t;return e.rank===0||e.rank===1?t=O(e,[1,1,1,e.size]):e.rank===2?t=O(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?t=O(e,[1,e.shape[0],e.shape[1],e.shape[2]]):t=e,t}function Gk(e,t,s,n,i,r){r==null&&(r=.001);const o=b(e,"x","batchNorm"),a=b(t,"mean","batchNorm"),l=b(s,"variance","batchNorm");let c;i!=null&&(c=b(i,"scale","batchNorm"));let p;n!=null&&(p=b(n,"offset","batchNorm")),I(a.rank===l.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),I(p==null||a.rank===p.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),I(c==null||a.rank===c.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");const u=IS(o),h=(g,y)=>(y([u,a,l,c]),g.batchNorm(u,ph(a),ph(l),ph(p),ph(c),r)),d={x:u,scale:c,offset:p,mean:a,variance:l},m={varianceEpsilon:r},f=v.runKernelFunc(h,d,null,vi,m);return O(f,o.shape)}function ph(e){return e==null?null:e.rank===0?O(e,[e.size]):e.rank===1?e:e.rank===2?O(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?O(e,[1,e.shape[0],e.shape[1],e.shape[2]]):e}const Ys=S({batchNorm_:Gk});function qk(e,t,s,n,i,r){const o=b(e,"x","batchNorm"),a=b(t,"mean","batchNorm"),l=b(s,"variance","batchNorm");let c;i!=null&&(c=b(i,"scale","batchNorm"));let p;return n!=null&&(p=b(n,"offset","batchNorm")),I(o.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${o.rank}.`),I(a.rank===2||a.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${a.rank}.`),I(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${l.rank}.`),c!=null&&I(c.rank===2||c.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${c.rank}.`),p!=null&&I(p.rank===2||p.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${p.rank}.`),Ys(o,a,l,p,c,r)}const uh=S({batchNorm2d_:qk});function Hk(e,t,s,n,i,r){const o=b(e,"x","batchNorm"),a=b(t,"mean","batchNorm"),l=b(s,"variance","batchNorm");let c;i!=null&&(c=b(i,"scale","batchNorm"));let p;return n!=null&&(p=b(n,"offset","batchNorm")),I(o.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${o.rank}.`),I(a.rank===3||a.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${a.rank}.`),I(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${l.rank}.`),c!=null&&I(c.rank===3||c.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${c.rank}.`),p!=null&&I(p.rank===3||p.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${p.rank}.`),Ys(o,a,l,p,c,r)}const hh=S({batchNorm3d_:Hk});function Yk(e,t,s,n,i,r){const o=b(e,"x","batchNorm"),a=b(t,"mean","batchNorm"),l=b(s,"variance","batchNorm");let c;i!=null&&(c=b(i,"scale","batchNorm"));let p;return n!=null&&(p=b(n,"offset","batchNorm")),I(o.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${o.rank}.`),I(a.rank===4||a.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${a.rank}.`),I(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${l.rank}.`),c!=null&&I(c.rank===4||c.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${c.rank}.`),p!=null&&I(p.rank===4||p.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${p.rank}.`),Ys(o,a,l,p,c,r)}const dh=S({batchNorm4d_:Yk});function Kk(e,t){let s=b(e,"broadcastTo","x");const n=s.shape;if(t.some(p=>!(p>0)||p%1!==0))throw new Error(`broadcastTo(): Invalid broadcast shape [${t}].`);if(t.lengths.rank){const p=s.shape.slice();for(;p.length=0;p--)if(i[p]===t[p])r[p]=1;else if(s.shape[p]!==1)throw new Error(`broadcastTo(): [${n}] cannot be broadcast to [${t}].`);const o=r.map((p,u)=>p>1?u:-1).filter(p=>p>=0);if(o.length===0)return Ds(s);const a=p=>p.tile(s,r),l={x:s},c={shape:t,inputShape:i};return v.runKernelFunc(a,l,null,Ic,c)}const zo=S({broadcastTo_:Kk});function Xk(e){const t=b(e,"x","ceil"),s={x:t};return v.runKernelFunc(n=>n.ceil(t),s,null,cr)}const mh=S({ceil_:Xk});function Jk(e,t,s){const n=b(e,"x","clipByValue");I(t<=s,()=>`Error in clip: min (${t}) must be less than or equal to max (${s}).`);const i={x:n},r={clipValueMin:t,clipValueMax:s};return v.runKernelFunc((o,a)=>{const l=o.clip(n,t,s);return a([n]),l},i,null,pr,r)}const wt=S({clipByValue_:Jk});function Zk(e){return be(e,0)}const fh=S({concat1d_:Zk});function Qk(e,t){return be(e,t)}const gh=S({concat2d_:Qk});function eD(e,t){return be(e,t)}const yh=S({concat3d_:eD});function tD(e,t){return be(e,t)}const bh=S({concat4d_:tD});function sD(e,t,s,n,i="NHWC",r=[1,1],o){const a=b(e,"x","conv2d"),l=b(t,"filter","conv2d");let c=a,p=!1;a.rank===3&&(p=!0,c=O(a,[1,a.shape[0],a.shape[1],a.shape[2]])),I(c.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${c.rank}.`),I(l.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${l.rank}.`),o!=null&&I(ke(n),()=>`Error in conv2d: pad must be an integer when using, dimRoundingMode ${o} but got pad ${n}.`);const u=i==="NHWC"?c.shape[3]:c.shape[1];I(u===l.shape[2],()=>`Error in conv2d: depth of input (${u}) must match input depth for filter ${l.shape[2]}.`),I(tt(s,r),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);const h=(g,y)=>{const w=Mr(i),x=is(c.shape,l.shape,s,r,n,o,!1,w),T=g.conv2d(c,l,x);return y([c,l]),T},d={x:c,filter:l},m={strides:s,pad:n,dataFormat:i,dilations:r,dimRoundingMode:o},f=v.runKernelFunc(h,d,null,Tc,m);return p?O(f,[f.shape[1],f.shape[2],f.shape[3]]):f}const nt=S({conv2d_:sD});function nD(e,t,s,n,i="NWC",r=1,o){const a=b(e,"x","conv1d"),l=b(t,"filter","conv1d");let c=a,p=!1;a.rank===2&&(p=!0,c=O(a,[1,a.shape[0],a.shape[1]])),I(c.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${c.rank}.`),I(l.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${l.rank}.`),o!=null&&I(ke(n),()=>`Error in conv1d: pad must be an integer when using, dimRoundingMode ${o} but got pad ${n}.`),I(c.shape[2]===l.shape[1],()=>`Error in conv1d: depth of input (${c.shape[2]}) must match input depth for filter ${l.shape[1]}.`),I(tt(s,r),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${s} and dilation '${r}'`),I(i==="NWC",()=>`Error in conv1d: got dataFormat of ${i} but only NWC is currently supported.`);const u=O(l,[1,l.shape[0],l.shape[1],l.shape[2]]),h=O(c,[c.shape[0],1,c.shape[1],c.shape[2]]),d=[1,s],m=[1,r],f="NHWC",g=nt(h,u,d,n,f,m,o);return p?O(g,[g.shape[2],g.shape[3]]):O(g,[g.shape[0],g.shape[2],g.shape[3]])}const Qa=S({conv1d_:nD});function iD(e,t,s,n,i,r="NHWC",o){I(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let a=e,l=t,c=!1;t.rank===3&&(c=!0,l=O(t,[1,t.shape[0],t.shape[1],t.shape[2]]),a=[1,e[0],e[1],e[2]]),I(a.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${a.length}.`),I(l.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`),I(s.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${s.rank}`);const p=r==="NHWC"?a[3]:a[1],u=r==="NHWC"?l.shape[3]:l.shape[1];I(p===s.shape[2],()=>`Error in conv2dDerInput: depth of input (${p}) must match input depth for filter ${s.shape[2]}.`),I(u===s.shape[3],()=>`Error in conv2dDerInput: depth of output (${u}) must match output depth for filter ${s.shape[3]}.`),o!=null&&I(ke(i),()=>`Error in conv2dDerInput: pad must be an integer when using, dimRoundingMode ${o} but got pad ${i}.`);const h=(g,y)=>{const w=1,x=Mr(r),T=is(a,s.shape,n,w,i,o,!1,x),A=g.conv2dDerInput(l,s,T);return y([l,s]),A},d={dy:l,filter:s},m={strides:n,pad:i,dataFormat:r,dimRoundingMode:o,inputShape:a},f=v.runKernelFunc(h,d,null,Ac,m);return c?O(f,[f.shape[1],f.shape[2],f.shape[3]]):f}const el=S({conv2DBackpropInput_:iD});function rD(e,t,s,n,i,r){const o=b(e,"x","conv2dTranspose"),a=b(t,"filter","conv2dTranspose");return el(s,o,a,n,i,"NHWC",r)}const tl=S({conv2dTranspose_:rD});function oD(e,t,s,n,i="NDHWC",r=[1,1,1]){const o=b(e,"x","conv3d"),a=b(t,"filter","conv3d");let l=o,c=!1;o.rank===4&&(c=!0,l=O(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]])),I(l.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`),I(a.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${a.rank}.`),I(l.shape[4]===a.shape[3],()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${a.shape[3]}.`),I(tt(s,r),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`),I(i==="NDHWC",()=>`Error in conv3d: got dataFormat of ${i} but only NDHWC is currently supported.`);const p=(m,f)=>{const g=Ur(l.shape,a.shape,s,r,n),y=m.conv3d(l,a,g);return f([l,a]),y},u={x:l,filter:a},h={strides:s,pad:n,dataFormat:i,dilations:r},d=v.runKernelFunc(p,u,null,Nc,h);return c?O(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}const sl=S({conv3d_:oD});function aD(e,t,s,n,i){I(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let r=e,o=t,a=!1;t.rank===4&&(a=!0,o=O(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),r=[1,e[0],e[1],e[2],e[3]]);const l=r[4],c=o.shape[4];I(r.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${r.length}.`),I(o.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${o.rank}`),I(s.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${s.rank}`),I(l===s.shape[3],()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${s.shape[3]}.`),I(c===s.shape[4],()=>`Error in conv3dDerInput: depth of output (${c}) must match output depth for filter ${s.shape[4]}.`);const p=m=>{const f=1,g=Ur(r,s.shape,n,f,i);return m.conv3dDerInput(o,s,g)},u={dy:o},h={pad:i},d=v.runKernelFunc(p,u,null,Tg,h);return a?O(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}const wh=S({conv3DBackpropInput_:aD});function lD(e,t,s,n,i){const r=b(e,"x","conv3dTranspose"),o=b(t,"filter","conv3dTranspose");return wh(s,r,o,n,i)}const vS=S({conv3dTranspose_:lD});function cD(e){const t=b(e,"x","cos"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.cos(t);return i([t]),r},s,null,Xn)}const Wr=S({cos_:cD});function pD(e){const t=b(e,"x","cosh"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.cosh(t);return i([t]),r},s,null,ur)}const nl=S({cosh_:pD});function uD(e,t=0,s=!1,n=!1){const i=b(e,"x","cumsum"),r=(l,c)=>{const p=ht([t],i.rank);let u=i;p!=null&&(u=se(i,p));const h=qt(1,i.rank)[0];let d=l.cumsum(u,h,s,n);if(c([i]),p!=null){const m=Mo(p);d=se(d,m)}return d},o={x:i},a={axis:t,exclusive:s,reverse:n};return v.runKernelFunc(r,o,null,Cc,a)}const il=S({cumsum_:uD});function hD(e,t,s="NHWC"){const n=b(e,"x","depthToSpace"),i=s==="NHWC"?n.shape[1]:n.shape[2],r=s==="NHWC"?n.shape[2]:n.shape[3],o=s==="NHWC"?n.shape[3]:n.shape[1];I(i*t>=0,()=>`Negative dimension size caused by overflow when multiplying + ${i} and ${t} for depthToSpace with input shape + ${n.shape}`),I(r*t>=0,()=>`Negative dimension size caused by overflow when multiplying + ${r} and ${t} for depthToSpace with input shape + ${n.shape}`),I(o%(t*t)===0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${o} for depthToSpace with input shape ${n.shape}`);const a=p=>p.depthToSpace(n,t,s),l={x:n},c={blockSize:t,dataFormat:s};return v.runKernelFunc(a,l,null,Ng,c)}const xh=S({depthToSpace_:hD});function dD(e,t,s,n,i="NHWC",r=[1,1],o){const a=b(e,"x","depthwiseConv2d"),l=b(t,"filter","depthwiseConv2d");let c=a,p=!1;a.rank===3&&(p=!0,c=O(a,[1,a.shape[0],a.shape[1],a.shape[2]])),I(c.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${c.rank}.`),I(l.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${l.rank}.`),I(c.shape[3]===l.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${c.shape[3]}) must match the inChannels dimension in filter ${l.shape[2]}.`),o!=null&&I(ke(n),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${o} but got pad ${n}.`);const u=(f,g)=>{r==null&&(r=[1,1]),I(tt(s,r),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);const y=is(c.shape,l.shape,s,r,n,o,!0),w=f.depthwiseConv2D(c,l,y);return g([c,l]),w},h={x:c,filter:l},d={strides:s,pad:n,dataFormat:i,dilations:r,dimRoundingMode:o},m=v.runKernelFunc(u,h,null,Rc,d);return p?O(m,[m.shape[1],m.shape[2],m.shape[3]]):m}const un=S({depthwiseConv2d_:dD});function mD(e){const t=b(e,"x","diag"),s=i=>{const r=O(t,[t.size]),o=i.diag(r),a=[...e.shape,...e.shape];return O(o,a)},n={x:t};return v.runKernelFunc(s,n,null,Og)}const TS=S({diag_:mD});function fD(e,t,s,n,i=[1,1],r="NHWC"){const o=b(e,"x","dilation2d"),a=b(t,"filter","dilation2d");I(o.rank===3||o.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${o.rank}.`),I(a.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${a.rank}.`),I(r==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${r}`);let l=o,c=!1;o.rank===3&&(l=O(o,[1,o.shape[0],o.shape[1],o.shape[2]]),c=!0);const p={x:l,filter:a},u={strides:s,pad:n,dilations:i},h=v.runKernel(Lo,p,u);return c?O(h,[h.shape[1],h.shape[2],h.shape[3]]):h}const Lh=S({dilation2d_:fD});function gD(e,t){const s=e.length,n=[];for(let i=0;i1&&o===1&&n.unshift(r)}return n}function Ye(e,t){const s=[];for(let n=0;n1)&&s.unshift(r)}return s}function Ie(e,t){const s=[],n=Math.max(e.length,t.length);for(let i=0;io.equal(s,n),r={a:s,b:n};return v.runKernelFunc(i,r,null,_g)}const os=S({equal_:yD});function bD(e,t,s){const n=b(t,"a","where"),i=b(s,"b","where"),r=b(e,"condition","where","bool"),o=Ie(n.shape,i.shape),a=zo(n,o),l=zo(i,o);r.rank===1&&I(r.shape[0]===n.shape[0],()=>"The first dimension of `a` must match the size of `condition`."),r.rank!==1&&Se(r.shape,l.shape,"Error in where: ");const c=(u,h)=>{const d=u.select(r,a,l);return h([r]),d},p={condition:r,t:a,e:l};return v.runKernelFunc(c,p,null,tp)}const dt=S({where_:bD});function wD(e){const t=b(e,"x","zerosLike"),s={x:t};return v.runKernelFunc(n=>n.zerosLike(t),s,null,lp)}const re=S({zerosLike_:wD});function xD(e,t){let s=b(e,"a","div"),n=b(t,"b","div");[s,n]=Ce(s,n);const i=Z(s,n),r=re(i),o=os(n,r);return dt(o,r,i)}const Sh=S({divNoNan_:xD});function LD(e,t){const s=b(e,"t1","dot"),n=b(t,"t2","dot");I((s.rank===1||s.rank===2)&&(n.rank===1||n.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${s.rank} and ${n.rank}.`);const i=s.rank===1?s.size:s.shape[1],r=n.rank===1?n.size:n.shape[0];if(I(i===r,()=>`Error in dot: inner dimensions of inputs must match, but got ${i} and ${r}.`),s.rank===1&&n.rank===1){const o=O(s,[1,-1]),a=O(n,[-1,1]),l=Te(o,a);return O(l,[])}else if(s.rank===1&&n.rank===2){const o=O(s,[1,-1]),a=O(n,[n.shape[0],n.shape[1]]),l=Te(o,a);return O(l,[l.size])}else if(s.rank===2&&n.rank===1){const o=O(n,[-1,1]),a=Te(s,o);return O(a,[a.size])}else{const o=O(n,[n.shape[0],n.shape[1]]),a=Te(s,o);return a}}const AS=S({dot_:LD});function SD(e){const t=b(e,"x","elu"),s=(i,r)=>{const o=i.elu(t);return r([o]),o},n={x:t};return v.runKernelFunc(s,n,null,hr)}const hn=S({elu_:SD});function ID(e){let t=b(e,"x","erf");I(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=G(t,"float32"));const s={x:t};return v.runKernelFunc((n,i)=>{const r=n.erf(t);return i([t]),r},s,null,dr)}const Ih=S({erf_:ID});function vD(e){const t=b(e,"x","exp"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.exp(t);return i([r]),r},s,null,mr)}const ut=S({exp_:vD});function TD(e,t=0){const s=null,n=b(e,"x","expandDims",s);I(t<=n.rank,()=>"Axis must be <= rank of the tensor");const i=n.shape.slice();return t<0&&(I(-(n.rank+1)<=t,()=>`Axis must be in the interval [${-(n.rank+1)}, ${n.rank}]`),t=n.rank+t+1),i.splice(t,0,1),O(n,i)}const Mt=S({expandDims_:TD});function AD(e){const t=b(e,"x","expm1"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.expm1(t);return i([t]),r},s,null,fr)}const vh=S({expm1_:AD});function ND(e,t){const s=null,n=b(e,"x","tile",s);I(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of reps ${t}.`);const i=(l,c)=>{const p=l.tile(n,t);return c([n]),p},r=[n],o={x:n},a={reps:t};return v.runKernelFunc(i,o,null,rp,a,r)}const Us=S({tile_:ND});function CD(e,t,s,n="float32"){t==null&&(t=e);const i=ge([e,t],n),r=e<=t?e:t;for(let a=0;ai.fill(e,t,s),{},null,kg,n)}function RD(e){const t=b(e,"x","floor"),s={x:t};return v.runKernelFunc(n=>n.floor(t),s,null,gr)}const li=S({floor_:RD});const Th=30;function OD(e){return e<=Th?e:za(e,Math.floor(Math.sqrt(e)))}const NS={};Ee(NS,{collectGatherOpShapeInfo:()=>zy,computeOutShape:()=>_D,segOpComputeOptimalWindowSize:()=>ED});function ED(e,t){let s=!1,n;for(e<=Th?(n=e,s=!0):n=za(e,Math.floor(Math.sqrt(e)));!s;)n>t||n===e?s=!0:n=za(e,n+1);return n}function _D(e,t,s){const n=[],i=e.length;for(let r=0;r{const p=Ne(s,n.shape)[0],u=zy(n,i,p),h=l.gather(n,O(i,[i.size]),p);return c([n,i]),O(h,u.outputShape)};return v.runKernelFunc(a,r,null,_c,o)}const ci=S({gather_:kD});function DD(e,t){let s=b(e,"a","greater"),n=b(t,"b","greater");[s,n]=Ce(s,n),Ie(s.shape,n.shape);const i=o=>o.greater(s,n),r={a:s,b:n};return v.runKernelFunc(i,r,null,Fg)}const Ut=S({greater_:DD});function FD(e,t){let s=b(e,"a","greaterEqual"),n=b(t,"b","greaterEqual");[s,n]=Ce(s,n),Ie(s.shape,n.shape);const i=(o,a)=>{const l=o.greaterEqual(s,n);return a([s,n]),l},r={a:s,b:n};return v.runKernelFunc(i,r,null,kc)}const ds=S({greaterEqual_:FD});function MD(e){const t=b(e,"input","imag"),s=i=>i.imag(t),n={input:t};return v.runKernelFunc(s,n,null,Fc)}const dn=S({imag_:MD});function UD(e){const t=b(e,"x","isFinite"),s={x:t};return v.runKernelFunc(n=>n.isFinite(t),s,null,yr)}const CS=S({isFinite_:UD});function $D(e){const t=b(e,"x","isInf"),s={x:t};return v.runKernelFunc(n=>n.isInf(t),s,null,br)}const RS=S({isInf_:$D});function WD(e){const t=b(e,"x","isNaN"),s={x:t};return v.runKernelFunc(n=>n.isNaN(t),s,null,wr)}const OS=S({isNaN_:WD});function zD(e,t){let s=b(e,"a","maximum"),n=b(t,"b","maximum");[s,n]=Ce(s,n),s.dtype==="bool"&&(s=G(s,"int32"),n=G(n,"int32")),Ie(s.shape,n.shape);const i=(o,a)=>{const l=o.maximum(s,n);return a([s,n]),l},r={a:s,b:n};return v.runKernelFunc(i,r,null,$c)}const Ht=S({maximum_:zD});function j(e,t){if((Dt(e)&&t!=="string"||Array.isArray(e))&&t!=="complex64")throw new Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if(t==="string"&&Dt(e)&&!(e instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");const s=[],n=[];return us(e,s,n,t)}function PD(e,t=.2){const s=b(e,"x","leakyRelu");return Ht(R(j(t),s),s)}const rl=S({leakyRelu_:PD});function BD(e,t){let s=b(e,"a","less"),n=b(t,"b","less");[s,n]=Ce(s,n),Ie(s.shape,n.shape);const i=o=>o.less(s,n),r={a:s,b:n};return v.runKernelFunc(i,r,null,Mg)}const zr=S({less_:BD});function jD(e,t){let s=b(e,"a","lessEqual"),n=b(t,"b","lessEqual");[s,n]=Ce(s,n),Ie(s.shape,n.shape);const i=(o,a)=>{const l=o.lessEqual(s,n);return a([s,n]),l},r={a:s,b:n};return v.runKernelFunc(i,r,null,Ug)}const $s=S({lessEqual_:jD});function Ah(e,t,s){if(s<=0)throw new Error("The number of values should be positive.");const n={start:e,stop:t,num:s};return v.runKernelFunc(i=>i.linspace(e,t,s),{},null,$g,n)}function VD(e,t=5,s=1,n=1,i=.5){const r=b(e,"x","localResponseNormalization");I(r.rank===4||r.rank===3,()=>`Error in localResponseNormalization: x must be rank 3 or 4 but got + rank ${r.rank}.`),I(ke(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let o=r,a=!1;r.rank===3&&(a=!0,o=O(r,[1,r.shape[0],r.shape[1],r.shape[2]]));const l=(h,d)=>{const m=h.localResponseNormalization4D(o,t,s,n,i);return d([o,m]),m},c={x:o},p={depthRadius:t,bias:s,alpha:n,beta:i},u=v.runKernelFunc(l,c,null,Uc,p);return a?O(u,[u.shape[1],u.shape[2],u.shape[3]]):u}const Nh=S({localResponseNormalization_:VD});function GD(e){const t=b(e,"x","log"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.log(t);return i([t]),r},s,null,xr)}const zt=S({log_:GD});function qD(e){const t=b(e,"x","log1p"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.log1p(t);return i([t]),r},s,null,Lr)}const ol=S({log1p_:qD});function HD(e){return I(si(e),()=>"The f passed in grad(f) must be a function"),(t,s)=>{const n=b(t,"x","tf.grad",null),i=s!=null?b(s,"dy","tf.grad"):null;return v.tidy(()=>{const{value:r,grads:o}=v.gradients(()=>e(n),[n],i);return i!=null&&Se(r.shape,i.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),Ch(o),o[0]})}}function YD(e){return I(si(e),()=>"The f passed in grads(f) must be a function"),(t,s)=>{I(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");const n=Ei(t,"args","tf.grads",null),i=s!=null?b(s,"dy","tf.grads"):null;return v.tidy(()=>{const{value:r,grads:o}=v.gradients(()=>e(...n),n,i);return i!=null&&Se(r.shape,i.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Ch(o),o})}}function KD(e){return I(si(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,s)=>{I(t instanceof me,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),I(s==null||s instanceof me,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");const{grads:n,value:i}=v.gradients(()=>e(t),[t],s);return Ch(n),{grad:n[0],value:i}}}function XD(e){return I(si(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,s)=>{I(Array.isArray(t)&&t.every(i=>i instanceof me),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),I(s==null||s instanceof me,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");const n=v.gradients(()=>e(...t),t,s);return s!=null&&Se(n.value.shape,s.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Ch(n.grads),n}}function Rh(e,t){I(si(e),()=>"The f passed in variableGrads(f) must be a function"),I(t==null||Array.isArray(t)&&t.every(c=>c instanceof oi),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");const s=t!=null;if(!s){t=[];for(const c in v.registeredVariables)t.push(v.registeredVariables[c])}const n=s?t.filter(c=>!c.trainable):null,i=t.length;t=t.filter(c=>c.trainable),I(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${i} variables is trainable.`);const r=!0,{value:o,grads:a}=v.gradients(e,t,null,r);I(a.some(c=>c!=null),()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize()."),I(o.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${o.rank} tensor`);const l={};return t.forEach((c,p)=>{a[p]!=null&&(l[c.name]=a[p])}),n!=null&&n.forEach(c=>l[c.name]=null),{value:o,grads:l}}function ms(e){return v.customGrad(e)}function Ch(e){const t=e.filter(s=>s==null).length;if(t>0)throw new Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that + the f you passed encloses all operations that lead from x to y.`)}function JD(e){const t=b(e,"x","neg"),s={x:t};return v.runKernelFunc(n=>n.neg(t),s,null,jc)}const _e=S({neg_:JD});function ZD(e){const t=b(e,"x","softplus"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.softplus(t);return i([t]),r},s,null,Or)}const pi=S({softplus_:ZD});function QD(e){const t=b(e,"x","logSigmoid"),s=ms(n=>{const i=_e(pi(_e(n))),r=o=>{const a=R(o,rs(_e(n)));return a};return{value:i,gradFunc:r}});return s(t)}const ES=S({logSigmoid_:QD});function eF(e,t=null,s=!1){const n=b(e,"x","max"),i=(a,l)=>{const c=Ne(t,n.shape);let p=c;const u=ht(p,n.rank);let h=n;u!=null&&(h=se(n,u),p=qt(p.length,h.rank));const d=a.max(h,p);u!=null&&h.dispose();let m=d;if(s){const f=bt(m.shape,Ne(t,n.shape));m=O(m,f),d.dispose()}return l([n,m]),m},r={x:n},o={reductionIndices:t,keepDims:s};return v.runKernelFunc(i,r,null,Ai,o)}const xt=S({max_:eF});function tF(e,t){let s=b(e,"a","sub"),n=b(t,"b","sub");[s,n]=Ce(s,n);const i=(o,a)=>{const l=o.subtract(s,n);return a([s,n]),l},r={a:s,b:n};return v.runKernelFunc(i,r,null,_r)}const X=S({sub_:tF});function sF(e,t=null,s=!1){let n=b(e,"x","sum");n.dtype==="bool"&&(n=G(n,"int32"));const i=(a,l)=>{l([n]);const c=Ne(t,n.shape),p=ht(c,n.rank);let u=c,h=n;p!=null&&(h=se(n,p),u=qt(u.length,n.rank));let d=a.sum(h,u);if(s){const m=bt(d.shape,c);d=O(d,m)}return d},r={x:n},o={axis:t,keepDims:s};return v.runKernelFunc(i,r,null,sp,o)}const te=S({sum_:sF});function nF(e,t=-1){const s=b(e,"logits","logSoftmax");if(t===-1&&(t=s.rank-1),t!==s.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${s.rank} and axis was ${t}`);const n=(o,a)=>{const l=!0,c=xt(e,t,!0),p=X(e,c),u=X(G(p,"float32"),zt(te(ut(p),t,l)));return a([u]),u},i={logits:s},r={axis:t};return v.runKernelFunc(n,i,null,Mc,r)}const al=S({logSoftmax_:nF});function iF(e,t=null,s=!1){const n=b(e,"x","logSumExp"),i=Ne(t,n.shape),r=xt(n,i,!0),o=X(n,r),a=ut(o),l=te(a,i),c=zt(l),p=$(O(r,c.shape),c);if(s){const u=bt(p.shape,i);return O(p,u)}return p}const Oh=S({logSumExp_:iF});function rF(e,t){const s=b(e,"a","logicalAnd","bool"),n=b(t,"b","logicalAnd","bool");Ie(s.shape,n.shape);const i={a:s,b:n};return v.runKernelFunc(r=>r.logicalAnd(s,n),i,null,Wg)}const Yt=S({logicalAnd_:rF});function oF(e){const t=b(e,"x","logicalNot","bool"),s={x:t};return v.runKernelFunc(n=>n.logicalNot(t),s,null,_a)}const Pr=S({logicalNot_:oF});function aF(e,t){const s=b(e,"a","logicalOr","bool"),n=b(t,"b","logicalOr","bool");Ie(s.shape,n.shape);const i={a:s,b:n};return v.runKernelFunc(r=>r.logicalOr(s,n),i,null,zg)}const ll=S({logicalOr_:aF});function lF(e,t){const s=b(e,"a","logicalXor","bool"),n=b(t,"b","logicalXor","bool");return Ie(s.shape,n.shape),Yt(ll(e,t),Pr(Yt(e,t)))}const _S=S({logicalXor_:lF});function cF(e,t,s,n,i){const r=b(e,"x","maxPool"),o=1;let a=r,l=!1;r.rank===3&&(l=!0,a=O(r,[1,r.shape[0],r.shape[1],r.shape[2]])),I(a.rank===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.rank}.`),I(tt(s,o),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`),i!=null&&I(ke(n),()=>`Error in maxPool: pad must be an integer when using, dimRoundingMode ${i} but got pad ${n}.`);const c=(d,m)=>{const f=Fn(a.shape,t,s,1,n,i);let g;return f.filterWidth===1&&f.filterHeight===1&&Nt(f.inShape,f.outShape)?g=a.clone():g=d.maxPool(a,f),m([a,g]),g},p={x:a},u={filterSize:t,strides:s,pad:n,dimRoundingMode:i},h=v.runKernelFunc(c,p,null,Ni,u);return l?O(h,[h.shape[1],h.shape[2],h.shape[3]]):h}const mt=S({maxPool_:cF});function pF(e,t=[1,1,1],s,n,i,r="NDHWC",o){o==null?o=[1,1,1]:It("dilations is deprecated, this field will be gone in v3.0.0.");const a=b(e,"x","maxPool3d");let l=a,c=!1;a.rank===4&&(c=!0,l=O(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),I(l.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${l.rank}.`),I(r==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${r}`),I(tt(s,o),()=>`Error in maxPool3d: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`),i!=null&&I(ke(n),()=>`Error in maxPool3d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${n}.`);const p=(m,f)=>{o==null&&(o=[1,1,1]);const g=_i(l.shape,t,s,o,n,i,r),y=m.maxPool3d(l,g);return f([l,y]),y},u={x:l},h={filterSize:t,strides:s,pad:n,dimRoundingMode:i,dataFormat:r,dilations:o},d=v.runKernelFunc(p,u,null,Wc,h);return c?O(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}const cl=S({maxPool3d_:pF});function uF(e,t,s,n,i=!1){const r=b(e,"x","maxPoolWithArgmax"),o={x:r},a={filterSize:t,strides:s,pad:n,includeBatchInIndex:i},l=v.runKernel(vo,o,a);return{result:l[0],indexes:l[1]}}const Eh=S({maxPoolWithArgmax_:uF});function ye(e,t="float32"){if(t==="complex64"){const n=ye(e,"float32"),i=ye(e,"float32");return Gt(n,i)}const s=ii(We(e),t);return v.makeTensor(s,e,t)}function Kt(e,t="float32"){if(t==="complex64"){const n=Kt(e,"float32"),i=ye(e,"float32");return Gt(n,i)}const s=hp(We(e),t);return v.makeTensor(s,e,t)}function hF(e,t=null,s=!1){const n=b(e,"x","mean"),i=Ne(t,n.shape),r=Fy(n.shape,i),o=r[1],a=We(o),l=ms(c=>{const p=j(a),u=p.dtype===c.dtype?c:G(c,p.dtype),h=Z(u,p),d=te(h,t,s),m=f=>{const g=c.shape.slice();i.forEach(x=>{g[x]=1});const y=O(f,g),w=Z(R(y,Kt(c.shape,"float32")),a);return w};return{value:d,gradFunc:m}});return l(n)}const Ke=S({mean_:hF});function dF(e,t=null,s=!1){const n=b(e,"x","min"),i=(a,l)=>{const c=Ne(t,n.shape);let p=c;const u=ht(p,n.rank);let h=n;u!=null&&(h=se(n,u),p=qt(p.length,n.rank));const d=a.min(h,p);u!=null&&h.dispose();let m=d;if(s){const f=bt(m.shape,c);m=O(d,f),d.dispose()}return l([n,m]),m},r={x:n},o={axis:t,keepDims:s};return v.runKernelFunc(i,r,null,zc,o)}const Di=S({min_:dF});function mF(e,t){let s=b(e,"a","minimum"),n=b(t,"b","minimum");[s,n]=Ce(s,n),s.dtype==="bool"&&(s=G(s,"int32"),n=G(n,"int32")),Ie(s.shape,n.shape);const i=(o,a)=>{const l=o.minimum(s,n);return a([s,n]),l},r={a:s,b:n};return v.runKernelFunc(i,r,null,Pc)}const mn=S({minimum_:mF});function fF(e,t){let s=b(e,"a","mod"),n=b(t,"b","mod");[s,n]=Ce(s,n);const i=(o,a)=>{const l=o.mod(s,n);return a([s,n]),l},r={a:s,b:n};return v.runKernelFunc(i,r,null,Bc)}const pl=S({mod_:fF});function gF(e){const t=b(e,"x","square"),s={},n=[t],i=[];return v.runKernelFunc((r,o)=>(o([t]),r.square(t)),{x:t},null,"Square",s,n,i)}const xe=S({square_:gF});function yF(e,t=null,s=!1){e=b(e,"x","moments");const n=Ne(t,e.shape),i=Ke(e,n,s);let r=i.shape;s||(r=bt(i.shape,n));const o=xe(X(G(e,"float32"),O(i,r))),a=Ke(o,n,s);return{mean:i,variance:a}}const Bo=S({moments_:yF});function bF(e,t,s,n){const i=b(t,"data","multiRNNCell"),r=Ei(s,"c","multiRNNCell"),o=Ei(n,"h","multiRNNCell");let a=i;const l=[];for(let u=0;u2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${o}`);s=s||Math.random();const a=o===1?O(i,[1,-1]):i,l=v.runKernelFunc(c=>c.multinomial(a,n,t,s),{logits2D:a});return o===1?O(l,[l.size]):l}const _h=S({multinomial_:wF});function xF(e,t){let s=b(e,"a","notEqual"),n=b(t,"b","notEqual");[s,n]=Ce(s,n),Ie(s.shape,n.shape);const i=o=>o.notEqual(s,n),r={a:s,b:n};return v.runKernelFunc(i,r,null,ka)}const Ks=S({notEqual_:xF});function LF(e){const t=b(e,"input","real"),s=i=>i.real(t),n={input:t};return v.runKernelFunc(s,n,null,Kc)}const Xs=S({real_:LF});function SF(e){const t=b(e,"x","onesLike"),s=(i,r)=>{if(t.dtype==="complex64"){const o=Ot(Xs(t)),a=re(dn(t));return Gt(o,a)}return i.onesLike(t)},n={x:t};return v.runKernelFunc(s,n,null,Gc)}const Ot=S({onesLike_:SF});function IF(e,t){const s=b(e,"v1","outerProduct"),n=b(t,"v2","outerProduct");I(s.rank===1&&n.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${s.rank} and ${n.rank}.`);const i=O(s,[-1,1]),r=O(n,[1,-1]);return Te(i,r)}const DS=S({outerProduct_:IF});function vF(e,t,s=0){const n=b(e,"x","pad");if(n.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");const i=(a,l)=>(l([n]),a.pad(n,t,s)),r={paddings:t,constantValue:s},o={x:n};return v.runKernelFunc(i,o,null,No,r)}const Pt=S({pad_:vF});function TF(e,t,s=0){return I(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),Pt(e,[t],s)}const FS=S({pad1d_:TF});function AF(e,t,s=0){return I(t.length===2&&t[0].length===2&&t[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),Pt(e,t,s)}const MS=S({pad2d_:AF});function NF(e,t,s=0){return I(t.length===3&&t[0].length===2&&t[1].length===2&&t[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),Pt(e,t,s)}const US=S({pad3d_:NF});function CF(e,t,s=0){return I(t.length===4&&t[0].length===2&&t[1].length===2&&t[2].length===2&&t[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),Pt(e,t,s)}const $S=S({pad4d_:CF});function RF(e,t,s){const n=b(e,"x","spaceToBatchND");I(n.rank>=1+t.length,()=>`input rank ${n.rank} should be > than [blockShape] ${t.length}`),I(s.length===t.length,()=>`paddings.shape[0] ${s.length} must be equal to [blockShape] ${t.length}`),I(n.shape.reduce((a,l,c)=>c>0&&c<=t.length?a&&(l+s[c-1][0]+s[c-1][1])%t[c-1]===0:a,!0),()=>`input spatial dimensions ${n.shape.slice(1)} with paddings ${s.toString()} must be divisible by blockShapes ${t.toString()}`);const i=a=>a.spaceToBatchND(n,t,s),r={x:n},o={blockShape:t,paddings:s};return v.runKernelFunc(i,r,null,Ro,o)}const Br=S({spaceToBatchND_:RF});function _F(e,t,s,n,i,r){i==null&&(i=[1,1]),r==null&&(r=1),n===0&&(n="valid");const o=b(e,"x","maxPool");let a=o,l=!1;o.rank===3&&(l=!0,a=O(o,[1,o.shape[0],o.shape[1],o.shape[2]])),I(tt(r,i),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${r} and dilations '${i}'`);const c=Fn(a.shape,t,r,i,n),p=[c.dilationHeight,c.dilationWidth];let u;n==="same"?u=EF([c.filterHeight,c.filterWidth],p):u=[[0,0],[0,0]];const h=p[0]===1&&p[1]===1,[d,m]=OF([c.inHeight,c.inWidth],p,u),f=h?n:"valid",g=h?a:Br(a,p,d),y=s==="avg"?()=>hs(g,t,r,f):()=>mt(g,t,r,f),w=y(),x=h?w:$r(w,p,m);return l?O(x,[x.shape[1],x.shape[2],x.shape[3]]):x}function OF(e,t,s){const n=s.map(p=>p[0]),i=s.map(p=>p[1]),r=e.concat(n,i),o=t.map((p,u)=>(p-r[u]%p)%p),a=i.map((p,u)=>p+o[u]),l=t.map((p,u)=>[n[u],a[u]]),c=t.map((p,u)=>[0,o[u]]);return[l,c]}function EF(e,t){const s=e.map((o,a)=>o+(o-1)*(t[a]-1)),n=s.map(o=>o-1),i=n.map(o=>Math.floor(o/2)),r=n.map((o,a)=>o-i[a]);return n.map((o,a)=>[i[a],r[a]])}const WS=S({pool_:_F});function kF(e,t){let s=b(e,"base","pow"),n=b(t,"exp","pow");[s,n]=Ce(s,n);const i={a:s,b:n},r=(o,a)=>{const l=o.pow(s,n);return a([s,n,l]),l};return v.runKernelFunc(r,i,null,Hc)}const Qt=S({pow_:kF});function DF(e,t){const s=b(e,"x","prelu"),n=b(t,"alpha","prelu"),i=(o,a)=>{const l=o.prelu(s,n);return a([s,n]),l},r={x:s,alpha:n};return v.runKernelFunc(i,r,null,Yc)}const jr=S({prelu_:DF});function FF(e,t=null,s=!1){let n=b(e,"x","prod");const i=a=>{n.dtype==="bool"&&(n=G(n,"int32"));const l=Ne(t,n.shape),c=ht(l,n.rank);let p=l,u=n;c!=null&&(u=se(n,c),p=qt(p.length,n.rank));let h=a.prod(u,p);if(s){const d=bt(h.shape,l);h=O(h,d)}return h},r={x:n},o={axis:t,keepDims:s};return v.runKernelFunc(i,r,null,jg,o)}const ul=S({prod_:FF});function MF(e,t,s){const n=We(e);let i=null;if(s==null||s==="float32")i=new Float32Array(n);else if(s==="int32")i=new Int32Array(n);else if(s==="bool")i=new Uint8Array(n);else throw new Error(`Unknown data type ${s}`);for(let r=0;r=1||r===0);const o=Math.sqrt(-2*Math.log(r)/r);e=this.mean+this.stdDev*n*o,t=this.mean+this.stdDev*i*o,(!this.truncated||this.isValidTruncated(e))&&(s=!0)}return(!this.truncated||this.isValidTruncated(t))&&(this.nextVal=this.convertValue(t)),this.convertValue(e)}convertValue(e){return this.dtype==null||this.dtype==="float32"?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}}class PS{constructor(e,t,s,n){this.alpha=e,this.beta=1/t,this.dtype=s;const i=n||Math.random();this.randu=kh.alea(i.toString()),this.randn=new Ap(0,1,s,!1,this.randu()),e<1?this.d=e+2/3:this.d=e-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let e,t,s,n,i,r;for(;;){do n=this.randn.nextValue(),r=1+this.c*n;while(r<=0);if(r*=r*r,e=n*n,t=1-.331*e*e,s=.5*e+this.d*(1-r+Math.log(r)),i=this.randu(),ithis.dtype==null||this.dtype==="float32",this.min=e,this.range=t-e,this.dtype=s,n==null&&(n=Math.random()),typeof n=="number"&&(n=n.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=kh.alea(n)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}}function UF(e,t,s=1,n="float32",i){if(s==null&&(s=1),n==null&&(n="float32"),n!=="float32"&&n!=="int32")throw new Error(`Unsupported data type ${n}`);const r=new PS(t,s,n,i),o=ge(e,n);for(let a=0;a{const o=e===t,a=e1;if(o||a||l)return ye([0],n);const c=Math.abs(Math.ceil((t-e)/s)),p=ii(c,n);t{const r=n.reciprocal(t);return i([t]),r},s,null,Ir)}const Dh=S({reciprocal_:zF});function PF(e){const t=b(e,"x","relu"),s=(i,r)=>(r([t]),t.dtype==="bool"?G(t,"int32"):i.relu(t)),n={x:t};return v.runKernelFunc(s,n,null,Xc)}const De=S({relu_:PF});function BF(e){const t=b(e,"x","relu6"),s=(i,r)=>(r([t]),t.dtype==="bool"?G(t,"int32"):i.relu6(t)),n={x:t};return v.runKernelFunc(s,n,null,Qc)}const Fh=S({relu6_:BF});function jF(e,t){const s=b(e,"x","reverse"),n=o=>{const a=Ne(t,s.shape);if(s.rank===0)return Ds(s);const l=o.reverse(s,a);return O(l,s.shape)},i={x:s},r={dims:t};return v.runKernelFunc(n,i,null,ep,r)}const Et=S({reverse_:jF});function VF(e){const t=b(e,"x","reverse");return I(t.rank===1,()=>`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),Et(t,0)}const VS=S({reverse1d_:VF});function GF(e,t){const s=b(e,"x","reverse");return I(s.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${s.rank}.`),Et(s,t)}const GS=S({reverse2d_:GF});function qF(e,t){const s=b(e,"x","reverse");return I(s.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${s.rank}.`),Et(s,t)}const qS=S({reverse3d_:qF});function HF(e,t){const s=b(e,"x","reverse");return I(s.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${s.rank}.`),Et(s,t)}const HS=S({reverse4d_:HF});function YF(e){const t=b(e,"x","round"),s={x:t};return v.runKernelFunc(n=>n.round(t),s,null,vr)}const Mh=S({round_:YF});function KF(e){const t=b(e,"x","rsqrt"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.rsqrt(t);return i([t]),r},s,null,Tr)}const hl=S({rsqrt_:KF});function XF(e){const t=b(e,"x","selu"),s=(i,r)=>{const o=i.selu(t);return r([t]),o},n={x:t};return v.runKernelFunc(s,n,null,Ar)}const dl=S({selu_:XF});function JF(e,t,s,n,i,r=[1,1],o="NHWC"){const a=b(e,"x","separableConv2d"),l=b(t,"depthwiseFilter","separableConv2d"),c=b(s,"pointwiseFilter","separableConv2d");let p=a,u=!1;if(a.rank===3&&(u=!0,p=O(a,[1,a.shape[0],a.shape[1],a.shape[2]])),o==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");I(p.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${p.rank}.`),I(l.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${l.rank}.`),I(c.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${l.rank}.`),I(c.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${c.shape[0]}.`),I(c.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${c.shape[1]}.`);const h=l.shape[2],d=l.shape[3];I(c.shape[2]===h*d,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${h*d}, but got ${c.shape[2]}.`);const m=un(p,l,n,i,o,r),f=1,g=nt(m,c,f,"valid",o);return u?O(g,[g.shape[1],g.shape[2],g.shape[3]]):g}const Vr=S({separableConv2d_:JF});async function ZF(e,t){const s=b(e,"x","setdiff1d"),n=b(t,"y","setdiff1d");I(s.dtype===n.dtype,()=>`x and y should have the same dtype, but got x (${s.dtype}) and y (${n.dtype}).`),I(s.rank===1,()=>`x should be 1D tensor, but got x (${s.shape}).`),I(n.rank===1,()=>`y should be 1D tensor, but got y (${n.shape}).`);const i=await s.data(),r=await n.data(),o=new Set(r);let a=0;for(let p=0;pn.sign(t),s,null,Cr)}const $h=S({sign_:QF});function eM(e){const t=b(e,"x","sin"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.sin(t);return i([t]),r},s,null,Zn)}const ml=S({sin_:eM});function tM(e){const t=b(e,"x","sinh"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.sinh(t);return i([t]),r},s,null,Nr)}const fl=S({sinh_:tM});function sM(e,t,s){const n=b(e,"x","slice1d");return I(n.rank===1,()=>`slice1d expects a rank-1 tensor, but got a rank-${n.rank} tensor`),he(n,[t],[s])}const gl=S({slice1d_:sM});function nM(e,t,s){const n=b(e,"x","slice2d");return I(n.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${n.rank} tensor`),he(n,t,s)}const Cp=S({slice2d_:nM});function iM(e,t,s){const n=b(e,"x","slice3d");return I(n.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${n.rank} tensor`),he(n,t,s)}const Gr=S({slice3d_:iM});function rM(e,t,s){const n=b(e,"x","slice4d");return I(n.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${n.rank} tensor`),he(n,t,s)}const jo=S({slice4d_:rM});function oM(e,t=-1){const s=b(e,"logits","softmax","float32");if(t===-1&&(t=s.rank-1),t!==s.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${s.rank} and dim was ${t}`);const n={logits:s},i={dim:t};return v.runKernelFunc((r,o)=>{const a=r.softmax(s,t);return o([a]),a},n,null,ip,i)}const es=S({softmax_:oM});function aM(e){I(e.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`);const t={input:e};return v.runKernelFunc(s=>{const n=e.shape[e.shape.length-1],i=e.size/n,r=e.as2D(i,n),o=s.fft(r);return o.reshape(e.shape)},t,null,Oc)}const qr=S({fft_:aM});function lM(e){I(e.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`);const t={input:e};return v.runKernelFunc(s=>{const n=e.shape[e.shape.length-1],i=e.size/n,r=O(e,[i,n]),o=s.ifft(r);return O(o,e.shape)},t,null,Dc)}const Mi=S({ifft_:lM});function cM(e){const t=e.shape[e.shape.length-1],s=e.size/t;let n;if(t<=2){const i=O(e,[s,t]);n=Mi(i)}else{const i=[s,2*(t-1)],r=O(Xs(e),[s,t]),o=O(dn(e),[s,t]),a=Et(he(r,[0,1],[s,t-2]),1),l=R(Et(he(o,[0,1],[s,t-2]),1),j(-1)),c=be([r,a],1),p=be([o,l],1),u=O(Gt(c,p),[i[0],i[1]]);n=Mi(u)}if(n=Xs(n),e.rank===3&&e.shape[0]!==0){const i=n,r=e.shape[0];n=O(n,[r,n.shape[0]/r,n.shape[1]]),i.dispose()}return n}const yl=S({irfft_:cM});function Py(e,t,s=0){let n=[];if(typeof t=="number")I(e.shape[s]%t===0,()=>"Number of splits must evenly divide the axis."),n=new Array(t).fill(e.shape[s]/t);else{const i=t.reduce((o,a)=>(a===-1&&(o+=1),o),0);I(i<=1,()=>"There should be only one negative value in split array.");const r=t.indexOf(-1);if(r!==-1){const o=t.reduce((a,l)=>l>0?a+l:a);t[r]=e.shape[s]-o}I(e.shape[s]===t.reduce((o,a)=>o+a),()=>"The sum of sizes must match the size of the axis dimension."),n=t}return n}function pM(e,t,s=0){const n=b(e,"x","split"),i=(a,l)=>{const c=Ne(s,n.shape)[0],p=Py(n,t,c);return a.split(n,p,c)},r={x:n},o={numOrSizeSplits:t,axis:s};return v.runKernelFunc(i,r,null,np,o)}const Bt=S({split_:pM});function uM(e,t){I(e.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${e.dtype}`);let s=e.shape[e.shape.length-1];const n=e.size/s;let i;if(t!=null&&t0),f=e.shape.map(g=>g);f[e.shape.length-1]=t,i=he(e,m,f),s=t}else if(t!=null&&t>s){const m=e.shape.map(f=>f);m[e.shape.length-1]=t-s,i=be([e,ye(m)],e.shape.length-1),s=t}else i=e;const r=re(i),o=O(Gt(i,r),[n,s]),a=qr(o),l=Math.floor(s/2)+1,c=Xs(a),p=dn(a),u=Bt(c,[l,s-l],c.shape.length-1),h=Bt(p,[l,s-l],p.shape.length-1),d=i.shape.slice();return d[i.shape.length-1]=l,O(Gt(u[0],h[0]),d)}const Hr=S({rfft_:uM});function hM(e){const t=b(e,"x","sqrt"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.sqrt(t);return i([t]),r},s,null,Er)}const Xe=S({sqrt_:hM});function dM(e,t){let s=b(e,"a","squaredDifference"),n=b(t,"b","squaredDifference");[s,n]=Ce(s,n),Ie(s.shape,n.shape);const i=(a,l)=>{const c=a.squaredDifference(s,n);return l([s,n]),c},r={a:s,b:n},o={};return v.runKernelFunc(i,r,null,Qn,o)}const Yr=S({squaredDifference_:dM});function mM(e,t){const s=b(e,"x","squeeze");return O(s,ey(s.shape,t).newShape)}const Js=S({squeeze_:mM});function fM(e,t=0){const s=Ei(e,"tensors","stack");if(I(s.length>=1,()=>"Pass at least one tensor to tf.stack"),s.length===1)return Mt(s[0],t);const n=s[0].rank,i=s[0].shape,r=s[0].dtype;I(t<=n,()=>"Axis must be <= rank of the tensor"),s.forEach(a=>{Se(i,a.shape,"All tensors passed to stack must have matching shapes"),I(r===a.dtype,()=>"All tensors passed to stack must have matching dtypes")});const o=s.map(a=>Mt(a,t));return be(o,t)}const Ve=S({stack_:fM});function gM(e,t=0){const s=b(e,"x","step"),n={x:s},i={alpha:t};return v.runKernelFunc(r=>r.step(s,t),n,null,Dr,i)}const ui=S({step_:gM});function yM(e,t,s,n,i=0,r=0,o=0,a=0,l=0){let c=b(e,"x","stridedSlice");const p=d=>{n==null&&(n=new Array(t.length));const m=Ip(o);if(m.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(o!==0&&a!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(o!==0&&l!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");const f=c.rank-t.length,g=Ip(a),y=c.shape.slice();g.forEach(M=>{t[M]=0,s[M]=1,y.splice(M,0,1)}),c=O(c,y);const{begin:w,end:x,strides:T}=Ny(c.shape,m,f,t,s,n,i,r,o);t=w,s=x,n=T;const A=Ip(l);A.forEach(M=>{s[M]=t[M]+1,n[M]=1});const _=Ay(t,s,n),E=_.filter((M,P)=>A.indexOf(P)===-1),F=n.every(M=>M===1);if(F)return O(he(c,t,_),E);const D=d.stridedSlice(c,t,s,n);return O(D,E)},u={x:c},h={begin:t,end:s,strides:n,beginMask:i,endMask:r,ellipsisMask:o,newAxisMask:a,shrinkAxisMask:l};return v.runKernelFunc(p,u,null,Kg,h)}const Wh=S({stridedSlice_:yM});function bM(e){const t=b(e,"x","tan"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.tan(t);return i([t]),r},s,null,ei)}const zh=S({tan_:bM});function as(e,t,s){if(qs(e),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");const n=Zt(e,s);if(n.length!==2&&n.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return us(e,t,n,s)}function ts(e,t,s){if(qs(e),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");const n=Zt(e,s);if(n.length!==4&&n.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return us(e,t,n,s)}function YS(e,t,s){if(qs(e),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");const n=Zt(e,s);if(n.length!==5&&n.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return us(e,t,n,s)}function KS(e,t,s){if(qs(e),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");const n=Zt(e,s);if(n.length!==6&&n.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return t=t||n,us(e,t,n,s)}function wM(e,t=1,s=!0){const n=b(e,"x","topk");if(n.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");const i=n.shape[n.shape.length-1];if(t>i)throw new Error(`'k' passed to topk() must be <= the last dimension (${i}) but got ${t}`);const r={x:n},o={k:t,sorted:s},[a,l]=v.runKernelFunc(c=>c.topk(n,t,s),r,null,Xg,o);return{values:a,indices:l}}const Ph=S({topk_:wM});function xM(e,t=0,s=1,n,i){if(n!=null&&n==="bool")throw new Error("Unsupported data type $ { dtype }");const r=new Ap(t,s,n,!0,i),o=ge(e,n);for(let a=0;a0,()=>"The input tensor must be at least 1D");const n={x:s},i={axis:t},[r,o]=v.runKernel(Eo,n,i);return{values:r,indices:o}}const Rp=S({unique_:LM});function SM(e,t,s){const n=b(e,"x","unsortedSegmentSum"),i=b(t,"segmentIds","unsortedSegmentSum","int32");I(ke(s),()=>"numSegments must be of dtype int");const r={x:n,segmentIds:i},o={numSegments:s},a=(l,c)=>{const p=l.unsortedSegmentSum(n,i,s);return c([i]),p};return v.runKernelFunc(a,r,null,ap,o)}const Bh=S({unsortedSegmentSum_:SM});function IM(e,t=0){const s=b(e,"x","unstack");I(t>=-s.shape.length&&t`Axis = ${t} is not in [-${s.shape.length}, ${s.shape.length})`),t<0&&(t+=s.shape.length);const n={value:s},i={axis:t},r=o=>o.unstack(s,t);return v.runKernelFunc(r,n,null,op,i)}const Ge=S({unstack_:IM});function jh(e,t=!0,s,n){return v.makeVariable(e,t,s,n)}function Vh(e,t){const s=[];for(let r=0;r0,()=>"mask cannot be scalar"),Se(a.slice(r,r+o),i.shape,"mask's shape must match the first K dimensions of tensor's shape,");let l=1;for(let f=r;f"Shape mismatch in v and x");const l=j(1),c=X(l,a);let p=R(X(o,r),c);if(i){I(n!=null,()=>"When using zeroDebias: true, step is required.");const u=b(n,"step","movingAverage");p=Z(p,X(l,Qt(a,u)))}return $(r,p)}const rU=S({movingAverage_:iU});function oU(e,t,s){const n=b(e,"indices","scatterND","int32"),i=b(t,"updates","scatterND");Qu(i,n,s);const r=l=>l.scatterND(n,i,s),o={indices:n,updates:i},a={shape:s};return v.runKernelFunc(r,o,null,Hg,a)}const By=S({scatterND_:oU});function JS(e,t,s,n){if(e.dtype!=="int32")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${e.dtype}.`);if(e.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${e.shape}.`);const i=e.rank>0?e.shape[0]:1,r=e.rank>1?e.shape[1]:1;if(s.length!==r)throw new Error(`outputShape has incorrect number of elements:, ${s.length}, should be: ${r}.`);const o=t.size;if(!(t.rank===0||t.rank===1&&o===i))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${i}]`);if(t.dtype!==n.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function aU(e,t,s,n=0){const i=b(e,"sparseIndices","sparseToDense","int32"),r=b(t,"sparseValues","sparseToDense"),o=b(n,"defaultValue","sparseToDense",r.dtype);JS(i,r,s,o);const a={sparseIndices:i,sparseValues:r,defaultValue:o},l={outputShape:s};return v.runKernelFunc(c=>c.sparseToDense(i,r,s,o),a,null,Yg,l)}const Ep=S({sparseToDense_:aU});function lU(e,t){const s=b(t,"indices","gatherND","int32"),n=b(e,"x","gatherND"),i=o=>o.gatherND(n,s),r={params:n,indices:s};return v.runKernelFunc(i,r,null,Dg)}const jy=S({gatherND_:lU});function ZS(e,t){if(t==null)return e.shape.slice();if(Nt(e.shape,t))return t;if(e.shape.length===t.length){const s=[];for(let n=0;n`x has to be a floating point tensor since it's going to be scaled, but got a ${i.dtype} tensor instead.`),I(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return e instanceof me?i.clone():i;const r=ZS(i,s),o=1-t,a=Z(li($(fn(r,0,1,"float32",n),o)),o);return R(i,a)}const Vy=S({dropout_:cU});function Gy(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function _p(e,t,s){const n=1-e%2,i=new Float32Array(e);for(let r=0;r1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${n.rank}`),I(n.rank-1===i.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${n.rank} and targets rank ${i.rank}`),Se(n.shape.slice(0,n.shape.length-1),i.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");const r=n.shape[n.shape.length-1];I(s>0&&s<=r,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${r}), but got ${s}`);const o=await n.data(),a=await i.data(),[l,c]=[o.length/r,r],p=$a("bool",l);for(let u=0;ug.value-f.value),p[u]=0;for(let f=0;f`Error in conv2dDerFilter: input must be rank 4, but got shape ${a.shape}.`),I(l.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`),I(s.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${s}.`);const c=r==="NHWC"?a.shape[3]:a.shape[1],p=r==="NHWC"?l.shape[3]:l.shape[1];I(c===s[2],()=>`Error in conv2dDerFilter: depth of input ${c}) must match input depth in filter (${s[2]}.`),I(p===s[3],()=>`Error in conv2dDerFilter: depth of dy (${p}) must match output depth for filter (${s[3]}).`),o!=null&&I(ke(i),()=>`Error in conv2dDerFilter: pad must be an integer when using, dimRoundingMode ${o} but got pad ${i}.`);const u=m=>{const f=1,g=Mr(r),y=is(a.shape,s,n,f,i,o,!1,g);return m.conv2dDerFilter(a,l,y)},h={x:a,dy:l},d={strides:n,pad:i,dataFormat:r,dimRoundingMode:o};return v.runKernelFunc(u,h,null,Ig,d)}const wl=S({conv2DBackpropFilter_:hU});function Vo(e,t,s){if(s==null||s==="linear")return e;if(s==="relu")return R(e,ui(t));throw new Error(`Cannot compute gradient for fused activation ${s}.`)}function Go(e,t){let s=t;const n=Ye(e.shape,t.shape);return n.length>0&&(s=te(s,n)),O(s,e.shape)}function qo(e,t,s){if(t==="linear")return e;if(t==="relu")return De(e);if(t==="elu")return hn(e);if(t==="relu6")return Fh(e);if(t==="prelu")return jr(e,s);throw new Error(`Unknown fused activation ${t}.`)}const Ho=(e,t)=>{const s=e>0;return!s||t==="linear"};function dU({x:e,filter:t,strides:s,pad:n,dataFormat:i="NHWC",dilations:r=[1,1],dimRoundingMode:o,bias:a,activation:l="linear",preluActivationWeights:c}){if(l=l||"linear",Ho(v.state.gradientDepth,l)===!1){let A=nt(e,t,s,n,i,r,o);return a!=null&&(A=$(A,a)),qo(A,l,c)}const p=b(e,"x","conv2d"),u=b(t,"filter","conv2d");let h=p,d=!1;p.rank===3&&(d=!0,h=O(p,[1,p.shape[0],p.shape[1],p.shape[2]])),I(h.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${h.rank}.`),I(u.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${u.rank}.`),o!=null&&I(ke(n),()=>`Error in fused conv2d: pad must be an integer when using, dimRoundingMode ${o} but got pad ${n}.`),I(h.shape[3]===u.shape[2],()=>`Error in conv2d: depth of input (${h.shape[3]}) must match input depth for filter ${u.shape[2]}.`),I(tt(s,r),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`),I(i==="NHWC",()=>`Error in conv2d: got dataFormat of ${i} but only NHWC is currently supported.`);const m=is(h.shape,u.shape,s,r,n,o);let f;a!=null&&(f=b(a,"bias","fused conv2d"),[f]=Ce(f,p),Ie(m.outShape,f.shape));let g;c!=null&&(g=b(c,"prelu weights","fused conv2d"));const y=(A,_)=>{const[E,F,D,M]=_,P=Vo(A,D,l);I(Hs(r),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${r}'`);const B=el(F.shape,P,E,s,n),Y=wl(F,P,E.shape,s,n),q=[B,Y];if(M!=null){const K=Go(M,P);q.push(K)}return q},w=A=>{const _=A.fusedConv2d({input:h,filter:u,convInfo:m,bias:f,activation:l,preluActivationWeights:g});return _},x={x:h,filter:u,bias:f,preluActivationWeights:g},T={strides:s,pad:n,dataFormat:i,dilations:r,dimRoundingMode:o,activation:l};if(a==null){const A=ms((_,E,F)=>{let D=v.runKernelFunc(w,x,null,ju,T);return F([E,_,D]),d&&(D=O(D,[D.shape[1],D.shape[2],D.shape[3]])),{value:D,gradFunc:y}});return A(h,u)}else{const A=ms((_,E,F,D)=>{let M=v.runKernelFunc(w,x,null,ju,T);return D([E,_,M,F]),d&&(M=O(M,[M.shape[1],M.shape[2],M.shape[3]])),{value:M,gradFunc:y}});return A(h,u,f)}}const mU=S({fusedConv2d_:dU});function fU(e,t,s,n){let i=e;e.rank===3&&(i=O(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let r=t;r.rank===3&&(r=O(t,[1,t.shape[0],t.shape[1],t.shape[2]]));const o=l=>l.depthwiseConv2DDerFilter(i,r,n),a={x:i,dy:r};return v.runKernelFunc(o,a,null,Cg)}const Gh=S({depthwiseConv2dNativeBackpropFilter_:fU});function gU(e,t,s,n){let i=t,r=!1;t.rank===3&&(r=!0,i=O(t,[1,t.shape[0],t.shape[1],t.shape[2]]));const o=c=>c.depthwiseConv2DDerInput(i,s,n),a={dy:i},l=v.runKernelFunc(o,a,null,Rg);return r?O(l,[l.shape[1],l.shape[2],l.shape[3]]):l}const qh=S({depthwiseConv2dNativeBackpropInput_:gU});function yU({x:e,filter:t,strides:s,pad:n,dataFormat:i="NHWC",dilations:r=[1,1],dimRoundingMode:o,bias:a,activation:l="linear",preluActivationWeights:c}){if(Ho(v.state.gradientDepth,l)===!1){let A=un(e,t,s,n,i,r,o);return a!=null&&(A=$(A,a)),qo(A,l,c)}const p=b(e,"x","depthwiseConv2d"),u=b(t,"filter","depthwiseConv2d");let h=p,d=!1;p.rank===3&&(d=!0,h=O(p,[1,p.shape[0],p.shape[1],p.shape[2]])),I(h.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${h.rank}.`),I(u.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${u.rank}.`),I(h.shape[3]===u.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${h.shape[3]}) must match the inChannels dimension in filter ${u.shape[2]}.`),r==null&&(r=[1,1]),I(tt(s,r),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`),o!=null&&I(ke(n),()=>`Error in fused depthwiseConv2d: pad must be an integer when using dimRoundingMode ${o} but got pad ${n}.`);const m=is(h.shape,u.shape,s,r,n,o,!0);let f;a!=null&&(f=b(a,"bias","fused conv2d"),[f]=Ce(f,p),Ie(m.outShape,f.shape));let g;c!=null&&(g=b(c,"prelu weights","fused depthwiseConv2d"));const y=(A,_)=>{I(Hs(r),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${r}'`);const[E,F,D,M]=_,P=Vo(A,D,l),B=qh(F.shape,P,E,m),Y=Gh(F,P,E.shape,m);if(M!=null){const q=Go(f,P);return[B,Y,q]}return[B,Y]},w=A=>{const _=A.fusedDepthwiseConv2D({input:h,filter:u,convInfo:m,bias:f,activation:l,preluActivationWeights:g});return _},x={x:h,filter:u,bias:f,preluActivationWeights:g},T={strides:s,pad:n,dataFormat:i,dilations:r,dimRoundingMode:o,activation:l};if(a==null){const A=ms((_,E,F)=>{let D=v.runKernelFunc(w,x,null,Vu,T);return F([E,_,D]),d&&(D=O(D,[D.shape[1],D.shape[2],D.shape[3]])),{value:D,gradFunc:y}});return A(h,u)}else{const A=ms((_,E,F,D)=>{let M=v.runKernelFunc(w,x,null,Vu,T);return D([E,_,M,F]),d&&(M=O(M,[M.shape[1],M.shape[2],M.shape[3]])),{value:M,gradFunc:y}});return A(h,u,f)}}const bU=S({fusedDepthwiseConv2d_:yU});function wU({a:e,b:t,transposeA:s=!1,transposeB:n=!1,bias:i,activation:r="linear",preluActivationWeights:o}){if(Ho(v.state.gradientDepth,r)===!1){let M=Te(e,t,s,n);return i!=null&&(M=$(M,i)),qo(M,r,o)}let a=b(e,"a","fused matMul"),l=b(t,"b","fused matMul");[a,l]=Ce(a,l);const c=s?a.shape[a.rank-2]:a.shape[a.rank-1],p=n?l.shape[l.rank-1]:l.shape[l.rank-2],u=s?a.shape[a.rank-1]:a.shape[a.rank-2],h=n?l.shape[l.rank-2]:l.shape[l.rank-1],d=a.shape.slice(0,-2),m=l.shape.slice(0,-2),f=We(d),g=We(m);I(a.rank>=2&&l.rank>=2&&a.rank===l.rank,()=>`Error in fused matMul: inputs must have the same rank of at least 2, got ranks ${a.rank} and ${l.rank}.`),I(Nt(d,m),()=>`Error in fused matMul: outer dimensions (${d}) and (${m}) of Tensors with shapes ${a.shape} and ${l.shape} must match.`),I(c===p,()=>`Error in fused matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${a.shape} and ${l.shape} and transposeA=${s} and transposeB=${n} must match.`);const y=a.shape.slice(0,-2).concat([u,h]),w=s?O(a,[f,c,u]):O(a,[f,u,c]),x=n?O(l,[g,h,p]):O(l,[g,p,h]);let T;i!=null&&(T=b(i,"bias","fused matMul"),[T]=Ce(T,a),Ie(y,T.shape));let A;o!=null&&(A=b(o,"prelu weights","fused matMul"));const _=(M,P)=>{const[B,Y,q,K]=P,H=Vo(O(M,q.shape),q,r);let Q,J;if(!s&&!n?(Q=Te(H,Y,!1,!0),J=Te(B,H,!0,!1)):!s&&n?(Q=Te(H,Y,!1,!1),J=Te(H,B,!0,!1)):s&&!n?(Q=Te(Y,H,!1,!0),J=Te(B,H,!1,!1)):(Q=Te(Y,H,!0,!0),J=Te(H,B,!0,!0)),i!=null){const ie=Go(K,H);return[Q,J,ie]}else return[Q,J]},E=M=>{const P=M.fusedBatchMatMul({a:w,b:x,transposeA:s,transposeB:n,bias:T,activation:r,preluActivationWeights:A});return P},F={a:w,b:x,bias:T,preluActivationWeights:A},D={transposeA:s,transposeB:n,activation:r};if(i==null){const M=ms((P,B,Y)=>{const q=v.runKernelFunc(E,F,null,Bu,D);return Y([P,B,q]),{value:O(q,y),gradFunc:_}});return M(w,x)}else{const M=ms((P,B,Y,q)=>{const K=v.runKernelFunc(E,F,null,Bu,D);return q([P,B,K,Y]),{value:O(K,y),gradFunc:_}});return M(w,x,T)}}const xU=S({fusedMatMul_:wU});const gn={};Ee(gn,{conv2d:()=>mU,depthwiseConv2d:()=>bU,matMul:()=>xU});function LU(e){return _p(e,.54,.46)}const QS=S({hammingWindow_:LU});function SU(e){return _p(e,.5,.5)}const Hh=S({hannWindow_:SU});function IU(e,t,s,n=!1,i=0){let r=0;const o=[];for(;r+t<=e.size;)o.push(he(e,r,t)),r+=s;if(n)for(;r`Error in cropAndResize: image must be rank 4,but got rank ${o.rank}.`),I(a.rank===2&&a.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${c},4] but had shape ${a.shape}.`),I(l.rank===1&&l.shape[0]===c,()=>`Error in cropAndResize: boxInd must be have size [${c}] but had shape ${a.shape}.`),I(n.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${n.length}.`),I(n[0]>=1&&n[1]>=1,()=>`cropSize must be atleast [1,1], but was ${n}`),I(i==="bilinear"||i==="nearest",()=>`method must be bilinear or nearest, but was ${i}`);const p=m=>m.cropAndResize(o,a,l,n,i,r),u={image:o,boxes:a,boxInd:l},h={method:i,extrapolationValue:r,cropSize:n},d=v.runKernelFunc(p,u,null,Ag,h);return d}const tI=S({cropAndResize_:TU});function AU(e){const t=b(e,"image","flipLeftRight","float32");I(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);const s={image:t},n=v.runKernel(So,s,{});return n}const sI=S({flipLeftRight_:AU});function NU(e,t,s=0,n=.5){const i=b(e,"image","rotateWithOffset","float32");I(i.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${i.rank}.`);const r={image:i},o={radians:t,fillValue:s,center:n},a=v.runKernel(_o,r,o);return a}const nI=S({rotateWithOffset_:NU});function yn(e,t,s,n,i,r){n==null&&(n=.5),i==null&&(i=Number.NEGATIVE_INFINITY),r==null&&(r=0);const o=e.shape[0];return s=Math.min(s,o),I(0<=n&&n<=1,()=>`iouThreshold must be in [0, 1], but was '${n}'`),I(e.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`),I(e.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`),I(t.rank===1,()=>"scores must be a 1D tensor"),I(t.shape[0]===o,()=>`scores has incompatible shape with boxes. Expected ${o}, but was ${t.shape[0]}`),I(0<=r&&r<=1,()=>`softNmsSigma must be in [0, 1], but was '${r}'`),{maxOutputSize:s,iouThreshold:n,scoreThreshold:i,softNmsSigma:r}}function CU(e,t,s,n=.5,i=Number.NEGATIVE_INFINITY){const r=b(e,"boxes","nonMaxSuppression"),o=b(t,"scores","nonMaxSuppression"),a=yn(r,o,s,n,i);s=a.maxOutputSize,n=a.iouThreshold,i=a.scoreThreshold;const l={maxOutputSize:s,iouThreshold:n,scoreThreshold:i};return v.runKernelFunc(c=>c.nonMaxSuppression(r,o,s,n,i),{boxes:r,scores:o},null,Vc,l)}const iI=S({nonMaxSuppression_:CU});function rI(e,t,s){const n=RU(e,t,s),i=n<0?-(n+1):n;e.splice(i,0,t)}function RU(e,t,s){return EU(e,t,s||OU)}function OU(e,t){return e>t?1:e>>1);const a=s(t,e[r]);a>0?n=r+1:(i=r,o=!a)}return o?n:-n-1}function Kh(e,t,s,n,i){return qy(e,t,s,n,i,0).selectedIndices}function Xh(e,t,s,n,i,r){return qy(e,t,s,n,i,0,!1,r,!0)}function Jh(e,t,s,n,i,r){return qy(e,t,s,n,i,r,!0)}function qy(e,t,s,n,i,r,o=!1,a=!1,l=!1){const c=[];for(let g=0;gi&&c.push({score:t[g],boxIndex:g,suppressBeginIndex:0});c.sort(oI);const p=r>0?-.5/r:0,u=[],h=[];for(;u.length0;){const g=c.pop(),{score:y,boxIndex:w,suppressBeginIndex:x}=g;if(y=x;--A){const _=_U(e,w,u[A]);if(_>=n){T=!0;break}if(g.score=g.score*kU(n,p,_),g.score<=i)break}g.suppressBeginIndex=u.length,T||(g.score===y?(u.push(w),h.push(g.score)):g.score>i&&rI(c,g,oI))}const d=u.length,m=s-d;a&&m>0&&(u.push(...new Array(m).fill(0)),h.push(...new Array(m).fill(0)));const f={selectedIndices:Oe(u,"int32")};return o&&(f.selectedScores=Oe(h,"float32")),l&&(f.validOutputs=j(d,"int32")),f}function _U(e,t,s){const n=e.subarray(t*4,t*4+4),i=e.subarray(s*4,s*4+4),r=Math.min(n[0],n[2]),o=Math.min(n[1],n[3]),a=Math.max(n[0],n[2]),l=Math.max(n[1],n[3]),c=Math.min(i[0],i[2]),p=Math.min(i[1],i[3]),u=Math.max(i[0],i[2]),h=Math.max(i[1],i[3]),d=(a-r)*(l-o),m=(u-c)*(h-p);if(d<=0||m<=0)return 0;const f=Math.max(r,c),g=Math.max(o,p),y=Math.min(a,u),w=Math.min(l,h),x=Math.max(y-f,0)*Math.max(w-g,0);return x/(d+m-x)}function kU(e,t,s){const n=Math.exp(t*s*s);return s<=e?n:0}function oI(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}async function DU(e,t,s,n=.5,i=Number.NEGATIVE_INFINITY){const r=b(e,"boxes","nonMaxSuppressionAsync"),o=b(t,"scores","nonMaxSuppressionAsync"),a=yn(r,o,s,n,i);s=a.maxOutputSize,n=a.iouThreshold,i=a.scoreThreshold;const l=await Promise.all([r.data(),o.data()]),c=l[0],p=l[1],u=Kh(c,p,s,n,i);return r!==e&&r.dispose(),o!==t&&o.dispose(),u}const aI=DU;function FU(e,t,s,n=.5,i=Number.NEGATIVE_INFINITY,r=0){const o=b(e,"boxes","nonMaxSuppression"),a=b(t,"scores","nonMaxSuppression"),l=yn(o,a,s,n,i,r);s=l.maxOutputSize,n=l.iouThreshold,i=l.scoreThreshold,r=l.softNmsSigma;const c={boxes:o,scores:a},p={maxOutputSize:s,iouThreshold:n,scoreThreshold:i,softNmsSigma:r},u=v.runKernel(Ao,c,p);return{selectedIndices:u[0],selectedScores:u[1]}}const lI=S({nonMaxSuppressionWithScore_:FU});async function MU(e,t,s,n=.5,i=Number.NEGATIVE_INFINITY,r=0){const o=b(e,"boxes","nonMaxSuppressionAsync"),a=b(t,"scores","nonMaxSuppressionAsync"),l=yn(o,a,s,n,i,r);s=l.maxOutputSize,n=l.iouThreshold,i=l.scoreThreshold,r=l.softNmsSigma;const c=await Promise.all([o.data(),a.data()]),p=c[0],u=c[1],h=Jh(p,u,s,n,i,r);return o!==e&&o.dispose(),a!==t&&a.dispose(),h}const cI=MU;function UU(e,t,s,n=.5,i=Number.NEGATIVE_INFINITY,r=!1){const o=b(e,"boxes","nonMaxSuppression"),a=b(t,"scores","nonMaxSuppression"),l=yn(o,a,s,n,i,null),c=l.maxOutputSize,p=l.iouThreshold,u=l.scoreThreshold,h={boxes:o,scores:a},d={maxOutputSize:c,iouThreshold:p,scoreThreshold:u,padToMaxOutputSize:r},m=v.runKernel(To,h,d);return{selectedIndices:m[0],validOutputs:m[1]}}const pI=S({nonMaxSuppressionPadded_:UU});async function $U(e,t,s,n=.5,i=Number.NEGATIVE_INFINITY,r=!1){const o=b(e,"boxes","nonMaxSuppressionAsync"),a=b(t,"scores","nonMaxSuppressionAsync"),l=yn(o,a,s,n,i,null),c=l.maxOutputSize,p=l.iouThreshold,u=l.scoreThreshold,[h,d]=await Promise.all([o.data(),a.data()]),m=Xh(h,d,c,p,u,r);return o!==e&&o.dispose(),a!==t&&a.dispose(),m}const uI=$U;function WU(e,t,s=!1){const n=b(e,"images","resizeBilinear");I(n.rank===3||n.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${n.rank}.`),I(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`);let i=n,r=!1;n.rank===3&&(r=!0,i=O(n,[1,n.shape[0],n.shape[1],n.shape[2]]));const[o,a]=t,l=(h,d)=>(d([i]),h.resizeBilinear(i,o,a,s)),c={images:i},p={alignCorners:s,size:t},u=v.runKernelFunc(l,c,null,Zc,p);return r?O(u,[u.shape[1],u.shape[2],u.shape[3]]):u}const hI=S({resizeBilinear_:WU});function zU(e,t,s=!1){const n=b(e,"images","resizeNearestNeighbor");I(n.rank===3||n.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${n.rank}.`),I(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),I(n.dtype==="float32"||n.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype");let i=n,r=!1;n.rank===3&&(r=!0,i=O(n,[1,n.shape[0],n.shape[1],n.shape[2]]));const[o,a]=t,l={images:i},c={alignCorners:s,size:t},p=(h,d)=>(d([i]),h.resizeNearestNeighbor(i,o,a,s)),u=v.runKernelFunc(p,l,null,Jc,c);return r?O(u,[u.shape[1],u.shape[2],u.shape[3]]):u}const dI=S({resizeNearestNeighbor_:zU});function PU(e,t,s){I(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),I(s%1===0,()=>`bandPart(): numUpper must be an integer, got ${s}.`);const n=b(e,"a","bandPart");I(n.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${n.rank}.`);const i=n.shape,[r,o]=n.shape.slice(-2);if(!(t<=r))throw new Error(`bandPart(): numLower (${t}) must not be greater than the number of rows (${r}).`);if(!(s<=o))throw new Error(`bandPart(): numUpper (${s}) must not be greater than the number of columns (${o}).`);t<0&&(t=r),s<0&&(s=o);const a=O(Fi(0,r,1,"int32"),[-1,1]),l=Fi(0,o,1,"int32"),c=X(a,l),p=Yt($s(c,j(+t,"int32")),ds(c,j(-s,"int32"))),u=ye([r,o],n.dtype);return O(Ve(Ge(O(n,[-1,r,o])).map(h=>dt(p,h,u))),i)}const mI=S({bandPart_:PU});function BU(e){let t;if(Array.isArray(e)){t=!1,I(e!=null&&e.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");const i=e[0].shape[0];for(let r=1;r`Gram-Schmidt: Non-unique lengths found in the input vectors: (${e[r].shape[0]} vs. ${i})`)}else t=!0,e=Bt(e,e.shape[0],0).map(i=>Js(i,[0]));I(e.length<=e[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${e.length}) exceeds number of dimensions (${e[0].shape[0]}).`);const s=[],n=e;for(let i=0;i{let r=n[i];if(i>0)for(let o=0;o=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${e.rank}`),e.rank===2)return gI(e,t);{const s=e.shape.slice(0,e.shape.length-2).reduce((l,c)=>l*c),n=Ge(O(e,[s,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),i=[],r=[];n.forEach(l=>{const[c,p]=gI(l,t);i.push(c),r.push(p)});const o=O(Ve(i,0),e.shape),a=O(Ve(r,0),e.shape);return[o,a]}}function gI(e,t=!1){return v.tidy(()=>{I(e.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${e.shape.length}D Tensor.`);const s=e.shape[0],n=e.shape[1];let i=Po(s),r=Ds(e);const o=as([[1]],[1,1]);let a=Ds(o);const l=s>=n?n:s;for(let c=0;c{const d=he(r,[c,c],[s-c,1]),m=Op(d),f=he(r,[c,c],[1,1]),g=dt(Ut(f,0),as([[-1]]),as([[1]])),y=X(f,R(g,m)),w=Z(d,y);w.shape[0]===1?a=Ds(o):a=be([o,he(w,[1,0],[w.shape[0]-1,w.shape[1]])],0);const x=_e(Z(Te(g,y),m)),T=he(r,[c,0],[s-c,n]),A=R(x,a),_=se(a);if(c===0)r=X(T,Te(A,Te(_,T)));else{const D=X(T,Te(A,Te(_,T)));r=be([he(r,[0,0],[c,n]),D],0)}const E=se(A),F=he(i,[0,c],[s,i.shape[1]-c]);if(c===0)i=X(F,Te(Te(F,a),E));else{const D=X(F,Te(Te(F,a),E));i=be([he(i,[0,0],[s,c]),D],1)}return[a,r,i]}),ce([p,u,h])}return!t&&s>n&&(i=he(i,[0,0],[s,n]),r=he(r,[0,0],[n,n])),[i,r]})}const yI=S({qr_:jU});var ft;(function(e){e[e.NONE=0]="NONE",e[e.MEAN=1]="MEAN",e[e.SUM=2]="SUM",e[e.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"})(ft||(ft={}));function VU(e,t,s=ft.SUM_BY_NONZERO_WEIGHTS){const n=b(e,"losses","computeWeightedLoss");let i=null;t!=null&&(i=b(t,"weights","computeWeightedLoss"));const r=i==null?n:R(n,i);if(s===ft.NONE)return r;if(s===ft.SUM)return te(r);if(s===ft.MEAN){if(i==null)return Ke(r);{const o=n.size/i.size,a=Z(te(r),te(i));return o>1?Z(a,j(o)):a}}if(s===ft.SUM_BY_NONZERO_WEIGHTS){if(i==null)return Z(te(r),j(n.size));{const o=R(i,Kt(n.shape)),a=G(te(Ks(o,j(0))),"float32");return Z(te(r),a)}}throw Error(`Unknown reduction: ${s}`)}const ss=S({computeWeightedLoss_:VU});function GU(e,t,s,n=ft.SUM_BY_NONZERO_WEIGHTS){const i=b(e,"labels","absoluteDifference"),r=b(t,"predictions","absoluteDifference");let o=null;s!=null&&(o=b(s,"weights","absoluteDifference")),Se(i.shape,r.shape,"Error in absoluteDifference: ");const a=et(X(i,r));return ss(a,o,n)}const bI=S({absoluteDifference_:GU});function qU(e,t,s,n,i=ft.SUM_BY_NONZERO_WEIGHTS){const r=b(e,"labels","cosineDistance"),o=b(t,"predictions","cosineDistance");let a=null;n!=null&&(a=b(n,"weights","cosineDistance")),Se(r.shape,o.shape,"Error in cosineDistance: ");const l=j(1),c=X(l,te(R(r,o),s,!0));return ss(c,a,i)}const wI=S({cosineDistance_:qU});function HU(e,t,s,n=ft.SUM_BY_NONZERO_WEIGHTS){let i=b(e,"labels","hingeLoss");const r=b(t,"predictions","hingeLoss");let o=null;s!=null&&(o=b(s,"weights","hingeLoss")),Se(i.shape,r.shape,"Error in hingeLoss: ");const a=j(1);i=X(R(j(2),i),a);const l=De(X(a,R(i,r)));return ss(l,o,n)}const xI=S({hingeLoss_:HU});function YU(e,t,s,n=1,i=ft.SUM_BY_NONZERO_WEIGHTS){const r=b(e,"labels","huberLoss"),o=b(t,"predictions","huberLoss");let a=null;s!=null&&(a=b(s,"weights","huberLoss")),Se(r.shape,o.shape,"Error in huberLoss: ");const l=j(n),c=et(X(o,r)),p=mn(c,l),u=X(c,p),h=$(R(j(.5),xe(p)),R(l,u));return ss(h,a,i)}const LI=S({huberLoss_:YU});function KU(e,t,s,n=1e-7,i=ft.SUM_BY_NONZERO_WEIGHTS){const r=b(e,"labels","logLoss"),o=b(t,"predictions","logLoss");let a=null;s!=null&&(a=b(s,"weights","logLoss")),Se(r.shape,o.shape,"Error in logLoss: ");const l=j(1),c=j(n),p=_e(R(r,zt($(o,c)))),u=R(X(l,r),zt($(X(l,o),c))),h=X(p,u);return ss(h,a,i)}const SI=S({logLoss_:KU});function XU(e,t,s,n=ft.SUM_BY_NONZERO_WEIGHTS){const i=b(e,"labels","meanSquaredError"),r=b(t,"predictions","meanSquaredError");let o=null;s!=null&&(o=b(s,"weights","meanSquaredError")),Se(i.shape,r.shape,"Error in meanSquaredError: ");const a=Yr(i,r);return ss(a,o,n)}const II=S({meanSquaredError_:XU});function JU(e,t){const s=b(e,"labels","sigmoidCrossEntropyWithLogits"),n=b(t,"logits","sigmoidCrossEntropyWithLogits");Se(s.shape,n.shape,"Error in sigmoidCrossEntropyWithLogits: ");const i=De(n),r=R(n,s),o=ol(ut(_e(et(n))));return $(X(i,r),o)}function ZU(e,t,s,n=0,i=ft.SUM_BY_NONZERO_WEIGHTS){let r=b(e,"multiClassLabels","sigmoidCrossEntropy");const o=b(t,"logits","sigmoidCrossEntropy");let a=null;if(s!=null&&(a=b(s,"weights","sigmoidCrossEntropy")),Se(r.shape,o.shape,"Error in sigmoidCrossEntropy: "),n>0){const c=j(n),p=j(1),u=j(.5);r=$(R(r,X(p,c)),R(u,c))}const l=JU(r,o);return ss(l,a,i)}const vI=S({sigmoidCrossEntropy_:ZU});function QU(e,t,s=-1){if(s===-1&&(s=t.rank-1),s!==t.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${t.rank} and dim was ${s}`);const n=ms((i,r,o)=>{const a=!0,l=Oh(r,[s],a),c=X(G(r,"float32"),l);o([i,c]);const p=_e(R(c,i)),u=te(p,[s]),h=(d,m)=>{const[f,g]=m,y=bt(d.shape,[s]);return[R(O(d,y),X(G(f,"float32"),ut(g))),R(O(d,y),X(ut(g),G(f,"float32")))]};return{value:u,gradFunc:h}});return n(e,t)}function e$(e,t,s,n=0,i=ft.SUM_BY_NONZERO_WEIGHTS){let r=b(e,"onehotLabels","softmaxCrossEntropy");const o=b(t,"logits","softmaxCrossEntropy");let a=null;if(s!=null&&(a=b(s,"weights","softmaxCrossEntropy")),Se(r.shape,o.shape,"Error in softmaxCrossEntropy: "),n>0){const c=j(n),p=j(1),u=j(r.shape[1]);r=$(R(r,X(p,c)),Z(c,u))}const l=QU(r,o);return ss(l,a,i)}const TI=S({softmaxCrossEntropy_:e$});const t$={fft:qr,ifft:Mi,rfft:Hr,irfft:yl},s$={hammingWindow:QS,hannWindow:Hh,frame:Yh,stft:eI},Zs={flipLeftRight:sI,resizeNearestNeighbor:dI,resizeBilinear:hI,rotateWithOffset:nI,cropAndResize:tI,nonMaxSuppression:iI,nonMaxSuppressionAsync:aI,nonMaxSuppressionWithScore:lI,nonMaxSuppressionWithScoreAsync:cI,nonMaxSuppressionPadded:pI,nonMaxSuppressionPaddedAsync:uI},Hy={bandPart:mI,gramSchmidt:fI,qr:yI},n$={absoluteDifference:bI,computeWeightedLoss:ss,cosineDistance:wI,hingeLoss:xI,huberLoss:LI,logLoss:SI,meanSquaredError:II,sigmoidCrossEntropy:vI,softmaxCrossEntropy:TI};class fs extends Cy{minimize(e,t=!1,s){const{value:n,grads:i}=this.computeGradients(e,s);if(s!=null){const r=s.map(o=>({name:o.name,tensor:i[o.name]}));this.applyGradients(r)}else this.applyGradients(i);return ce(i),t?n:(n.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return Rh(e,t)}dispose(){this.iterations_!=null&&ce(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:j(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(e){return this.iterations_=(await e[0].tensor.data())[0],e.slice(1)}}Object.defineProperty(fs,Symbol.hasInstance,{value:e=>e.minimize!=null&&e.computeGradients!=null&&e.applyGradients!=null});class Yo extends fs{constructor(e,t,s=null){super();this.learningRate=e,this.rho=t,this.epsilon=s,this.accumulatedGrads=[],this.accumulatedUpdates=[],s==null&&(this.epsilon=v.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map(s=>s.name):Object.keys(e);t.forEach((s,n)=>{const i=v.registeredVariables[s],r=!1;this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${s}/accum_grad`,variable:C(()=>re(i).variable(r))}),this.accumulatedUpdates[n]==null&&(this.accumulatedUpdates[n]={originalName:`${s}/accum_var`,variable:C(()=>re(i).variable(r))});const o=Array.isArray(e)?e[n].tensor:e[s];if(o==null)return;const a=this.accumulatedGrads[n].variable,l=this.accumulatedUpdates[n].variable;C(()=>{const c=$(R(a,this.rho),R(xe(o),1-this.rho)),p=R(Z(Xe($(l,this.epsilon)),Xe($(a,this.epsilon))),o),u=$(R(l,this.rho),R(xe(p),1-this.rho));a.assign(c),l.assign(u);const h=$(R(p,-this.learningRate),i);i.assign(h)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(ce(this.accumulatedGrads.map(e=>e.variable)),ce(this.accumulatedUpdates.map(e=>e.variable)))}async getWeights(){const e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);const t=e.length/2,s=!1;this.accumulatedGrads=e.slice(0,t).map(n=>({originalName:n.name,variable:n.tensor.variable(s)})),this.accumulatedUpdates=e.slice(t,t*2).map(n=>({originalName:n.name,variable:n.tensor.variable(s)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}}Yo.className="Adadelta";vs(Yo);class Ko extends fs{constructor(e,t=.1){super();this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){const t=Array.isArray(e)?e.map(s=>s.name):Object.keys(e);t.forEach((s,n)=>{const i=v.registeredVariables[s];if(this.accumulatedGrads[n]==null){const a=!1;this.accumulatedGrads[n]={originalName:`${s}/accumulator`,variable:C(()=>Wt(i.shape,this.initialAccumulatorValue).variable(a))}}const r=Array.isArray(e)?e[n].tensor:e[s];if(r==null)return;const o=this.accumulatedGrads[n].variable;C(()=>{const a=$(o,xe(r));o.assign(a);const l=$(R(Z(r,Xe($(a,v.backend.epsilon()))),-this.learningRate),i);i.assign(l)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&ce(this.accumulatedGrads.map(e=>e.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);const t=!1;this.accumulatedGrads=e.map(s=>({originalName:s.name,variable:s.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}}Ko.className="Adagrad";vs(Ko);class Xo extends fs{constructor(e,t,s,n=null){super();this.learningRate=e,this.beta1=t,this.beta2=s,this.epsilon=n,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],C(()=>{this.accBeta1=j(t).variable(),this.accBeta2=j(s).variable()}),n==null&&(this.epsilon=v.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map(s=>s.name):Object.keys(e);C(()=>{const s=X(1,this.accBeta1),n=X(1,this.accBeta2);t.forEach((i,r)=>{const o=v.registeredVariables[i],a=!1;this.accumulatedFirstMoment[r]==null&&(this.accumulatedFirstMoment[r]={originalName:`${i}/m`,variable:C(()=>re(o).variable(a))}),this.accumulatedSecondMoment[r]==null&&(this.accumulatedSecondMoment[r]={originalName:`${i}/v`,variable:C(()=>re(o).variable(a))});const l=Array.isArray(e)?e[r].tensor:e[i];if(l==null)return;const c=this.accumulatedFirstMoment[r].variable,p=this.accumulatedSecondMoment[r].variable,u=$(R(c,this.beta1),R(l,1-this.beta1)),h=$(R(p,this.beta2),R(xe(l),1-this.beta2)),d=Z(u,s),m=Z(h,n);c.assign(u),p.assign(h);const f=$(R(Z(d,$(Xe(m),this.epsilon)),-this.learningRate),o);o.assign(f)}),this.accBeta1.assign(R(this.accBeta1,this.beta1)),this.accBeta2.assign(R(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&ce(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedSecondMoment!=null&&ce(this.accumulatedSecondMoment.map(e=>e.variable))}async getWeights(){const e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e),C(()=>{this.accBeta1.assign(Qt(this.beta1,this.iterations_+1)),this.accBeta2.assign(Qt(this.beta2,this.iterations_+1))});const t=e.length/2,s=!1;this.accumulatedFirstMoment=e.slice(0,t).map(n=>({originalName:n.name,variable:n.tensor.variable(s)})),this.accumulatedSecondMoment=e.slice(t,t*2).map(n=>({originalName:n.name,variable:n.tensor.variable(s)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)}}Xo.className="Adam";vs(Xo);class Jo extends fs{constructor(e,t,s,n=null,i=0){super();this.learningRate=e,this.beta1=t,this.beta2=s,this.epsilon=n,this.decay=i,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],C(()=>{this.iteration=j(0).variable(),this.accBeta1=j(t).variable()}),n==null&&(this.epsilon=v.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map(s=>s.name):Object.keys(e);C(()=>{const s=X(1,this.accBeta1),n=Z(-this.learningRate,$(R(this.iteration,this.decay),1));t.forEach((i,r)=>{const o=v.registeredVariables[i],a=!1;this.accumulatedFirstMoment[r]==null&&(this.accumulatedFirstMoment[r]={originalName:`${i}/m`,variable:re(o).variable(a)}),this.accumulatedWeightedInfNorm[r]==null&&(this.accumulatedWeightedInfNorm[r]={originalName:`${i}/v`,variable:re(o).variable(a)});const l=Array.isArray(e)?e[r].tensor:e[i];if(l==null)return;const c=this.accumulatedFirstMoment[r].variable,p=this.accumulatedWeightedInfNorm[r].variable,u=$(R(c,this.beta1),R(l,1-this.beta1)),h=R(p,this.beta2),d=et(l),m=Ht(h,d);c.assign(u),p.assign(m);const f=$(R(Z(n,s),Z(u,$(m,this.epsilon))),o);o.assign(f)}),this.iteration.assign($(this.iteration,1)),this.accBeta1.assign(R(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&ce(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedWeightedInfNorm!=null&&ce(this.accumulatedWeightedInfNorm.map(e=>e.variable))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(e){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)}}Jo.className="Adamax";vs(Jo);class Ui extends fs{constructor(e){super();this.learningRate=e,this.setLearningRate(e)}applyGradients(e){const t=Array.isArray(e)?e.map(s=>s.name):Object.keys(e);t.forEach((s,n)=>{const i=Array.isArray(e)?e[n].tensor:e[s];if(i==null)return;const r=v.registeredVariables[s];C(()=>{const o=$(R(this.c,i),r);r.assign(o)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=pt(j(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(e=await this.extractIterations(e),e.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}}Ui.className="SGD";vs(Ui);class Zo extends Ui{constructor(e,t,s=!1){super(e);this.learningRate=e,this.momentum=t,this.useNesterov=s,this.accumulations=[],this.m=j(this.momentum)}applyGradients(e){const t=Array.isArray(e)?e.map(s=>s.name):Object.keys(e);t.forEach((s,n)=>{const i=v.registeredVariables[s];if(this.accumulations[n]==null){const a=!1;this.accumulations[n]={originalName:`${s}/momentum`,variable:C(()=>re(i).variable(a))}}const r=this.accumulations[n].variable,o=Array.isArray(e)?e[n].tensor:e[s];if(o==null)return;C(()=>{let a;const l=$(R(this.m,r),o);this.useNesterov?a=$(R(this.c,$(o,R(l,this.m))),i):a=$(R(this.c,l),i),r.assign(l),i.assign(a)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&ce(this.accumulations.map(e=>e.variable))}setMomentum(e){this.momentum=e}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);const t=!1;this.accumulations=e.map(s=>({originalName:s.name,variable:s.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}}Zo.className="Momentum";vs(Zo);class Qo extends fs{constructor(e,t=.9,s=0,n=null,i=!1){super();if(this.learningRate=e,this.decay=t,this.momentum=s,this.epsilon=n,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=i,n==null&&(this.epsilon=v.backend.epsilon()),e==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){const t=Array.isArray(e)?e.map(s=>s.name):Object.keys(e);t.forEach((s,n)=>{const i=v.registeredVariables[s],r=!1;this.accumulatedMeanSquares[n]==null&&(this.accumulatedMeanSquares[n]={originalName:`${s}/rms`,variable:C(()=>re(i).variable(r))}),this.accumulatedMoments[n]==null&&(this.accumulatedMoments[n]={originalName:`${s}/momentum`,variable:C(()=>re(i).variable(r))}),this.accumulatedMeanGrads[n]==null&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${s}/mg`,variable:C(()=>re(i).variable(r))});const o=Array.isArray(e)?e[n].tensor:e[s];if(o==null)return;const a=this.accumulatedMeanSquares[n].variable,l=this.accumulatedMoments[n].variable;C(()=>{const c=$(R(a,this.decay),R(xe(o),1-this.decay));if(this.centered){const p=this.accumulatedMeanGrads[n].variable,u=$(R(p,this.decay),R(o,1-this.decay)),h=Z(R(o,this.learningRate),Xe(X(c,$(xe(u),this.epsilon)))),d=$(R(l,this.momentum),h);a.assign(c),p.assign(u),l.assign(d);const m=X(i,d);i.assign(m)}else{const p=$(R(a,this.decay),R(xe(o),1-this.decay)),u=$(R(l,this.momentum),Z(R(o,this.learningRate),Xe($(p,this.epsilon))));a.assign(p),l.assign(u);const h=X(i,u);i.assign(h)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&ce(this.accumulatedMeanSquares.map(e=>e.variable)),this.accumulatedMeanGrads!=null&&this.centered&&ce(this.accumulatedMeanGrads.map(e=>e.variable)),this.accumulatedMoments!=null&&ce(this.accumulatedMoments.map(e=>e.variable))}async getWeights(){const e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);const t=this.centered?e.length/3:e.length/2,s=!1;this.accumulatedMeanSquares=e.slice(0,t).map(n=>({originalName:n.name,variable:n.tensor.variable(s)})),this.accumulatedMoments=e.slice(t,t*2).map(n=>({originalName:n.name,variable:n.tensor.variable(s)})),this.centered&&(this.accumulatedMeanGrads=e.slice(t*2,t*3).map(n=>({originalName:n.name,variable:n.tensor.variable(s)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)}}Qo.className="RMSProp";vs(Qo);class Xr{static sgd(e){return new Ui(e)}static momentum(e,t,s=!1){return new Zo(e,t,s)}static rmsprop(e,t=.9,s=0,n=null,i=!1){return new Qo(e,t,s,n,i)}static adam(e=.001,t=.9,s=.999,n=null){return new Xo(e,t,s,n)}static adadelta(e=.001,t=.95,s=null){return new Yo(e,t,s)}static adamax(e=.002,t=.9,s=.999,n=null,i=0){return new Jo(e,t,s,n,i)}static adagrad(e,t=.1){return new Ko(e,t)}}Zo,Ui,Yo,Ko,Qo,Jo,Xo;const Jr={sgd:Xr.sgd,momentum:Xr.momentum,adadelta:Xr.adadelta,adagrad:Xr.adagrad,rmsprop:Xr.rmsprop,adamax:Xr.adamax,adam:Xr.adam};const i$=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:e=>e())();function kp(){return new Promise(e=>i$(()=>e()))}function r$(e,t,s){const n=s*(typeof e=="number"?e:e[0]),i=t*(typeof e=="number"?e:e[1]);return[n,i]}function o$(e,t,s,n=!0){let i=[];if(n)i=i.concat(t.slice(0)),i.push(e[0]/s),i=i.concat(e.slice(1));else{i=i.concat(e[0]);const r=t.length;for(let o=0;o=t*2+1||o%2===1?r.push(o):i.push(o);n.push(...i),n.push(0),n.push(...r)}return n}function l$(e,t,s,n=!0){const i=[];n?i.push(e[0]/s):i.push(e[0]*s);for(let r=1;rh$,ERF_A2:()=>d$,ERF_A3:()=>m$,ERF_A4:()=>f$,ERF_A5:()=>g$,ERF_P:()=>u$,PARALLELIZE_THRESHOLD:()=>Th,SELU_SCALE:()=>Ky,SELU_SCALEALPHA:()=>Yy,applyActivation:()=>qo,assertAndGetBroadcastShape:()=>Ie,assertAxesAreInnerMostDims:()=>Sk,assertParamsConsistent:()=>$y,assignToTypedArray:()=>v$,axesAreInnerMostDims:()=>Dy,calculateShapes:()=>cS,castTensor:()=>N$,combineLocations:()=>LS,complexWithEvenIndex:()=>L$,complexWithOddIndex:()=>S$,computeConv2DInfo:()=>is,computeConv3DInfo:()=>Ur,computeDefaultPad:()=>Uy,computeDilation2DInfo:()=>_k,computeOptimalWindowSize:()=>OD,computeOutAndReduceShapes:()=>Fy,computeOutShape:()=>Wy,computePool2DInfo:()=>Fn,computePool3DInfo:()=>_i,convertConv2DDataFormat:()=>Mr,eitherStridesOrDilationsAreOne:()=>tt,expandShapeToKeepDim:()=>bt,exponent:()=>A$,exponents:()=>T$,getAxesPermutation:()=>ht,getBroadcastDims:()=>gD,getComplexWithIndex:()=>I$,getFusedBiasGradient:()=>Go,getFusedDyActivation:()=>Vo,getImageCenter:()=>r$,getInnerMostAxes:()=>qt,getPermuted:()=>a$,getReductionAxes:()=>Ye,getReshaped:()=>o$,getReshapedPermuted:()=>l$,getSliceBeginCoords:()=>c$,getSliceSize:()=>p$,getUndoAxesPermutation:()=>Mo,linspaceImpl:()=>R$,log:()=>b$,mergeRealAndImagArrays:()=>w$,prepareAndValidate:()=>aS,prepareSplitSize:()=>Py,reshapeTensor:()=>C$,segment_util:()=>NS,shouldFuse:()=>Ho,slice_util:()=>Fs,splitRealAndImagArrays:()=>x$,tupleValuesAreOne:()=>Hs,upcastType:()=>Ft,validateInput:()=>Qu,validateUpdateShape:()=>vy,warn:()=>y$});function N$(e,t,s){if(t==="complex64"){if(e.dtype==="complex64")return e.clone();const n=ye(e.shape),i=G(e,"float32"),r=s.complex(i,n);return n.dispose(),i.dispose(),r}if(!ny(e.dtype,t))return v.makeTensorFromDataId(e.dataId,e.shape,t);if(e.dtype==="complex64"){const n=s.real(e),i=G(n,t);return n.dispose(),i}if(t==="int32")return s.int(e);if(t==="bool"){const n=j(0,e.dtype),i=s.notEqual(e,n);return n.dispose(),i}else throw new Error(`Error in Cast: failed to cast ${e.dtype} to ${t}`)}function C$(e,t){return v.makeTensorFromDataId(e.dataId,t,e.dtype)}function R$(e,t,s){const n=(t-e)/(s-1),i=ii(s,"float32");i[0]=e;for(let r=1;r{const o=[...i];o[s]=r;const a=he(e,n,o);return n[s]+=r,a})}function NI(e,t){const s=new Array(e.rank);for(let i=0;ix.value-w.value);const f=u*n,g=l.subarray(f,f+n),y=c.subarray(f,f+n);for(let w=0;wKh,nonMaxSuppressionV4Impl:()=>Xh,nonMaxSuppressionV5Impl:()=>Jh,split:()=>AI,tile:()=>NI,topkImpl:()=>CI,whereImpl:()=>Vh});const RI={kernelName:yo,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(e,ui(G(s,"float32"),-1))}}};const OI={kernelName:nr,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>{const n=xe(G(s,"float32")),i=Xe(X(j(1),n));return _e(Z(e,i))}}}};const EI={kernelName:ir,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>{const n=Xe(X(xe(G(s,"float32")),1));return Z(e,n)}}}};const _I={kernelName:Kn,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=Ie(s.shape,n.shape),r=()=>{let a=e;const l=Ye(s.shape,i);return l.length>0&&(a=te(a,l)),O(a,s.shape)},o=()=>{let a=e;const l=Ye(n.shape,i);return l.length>0&&(a=te(a,l)),O(a,n.shape)};return{a:r,b:o}}};const kI={kernelName:yc,saveAllInputs:!0,gradFunc:(e,t)=>{const s={};return t.forEach((n,i)=>{s[i]=()=>e.clone()}),s}};const DI={kernelName:bc,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>re(s)}}};const FI={kernelName:wc,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>re(s)}}};const MI={kernelName:rr,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>Z(e,Xe(X(j(1),xe(G(s,"float32")))))}}};const UI={kernelName:or,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>{const n=Xe($(j(1),xe(G(s,"float32"))));return Z(e,n)}}}};const $I={kernelName:bo,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=Ie(s.shape,n.shape),r=()=>{const a=$(xe(s),xe(n));let l=R(e,Z(n,a));const c=Ye(s.shape,i);return c.length>0&&(l=te(l,c)),O(l,s.shape)},o=()=>{const a=$(xe(s),xe(n));let l=_e(R(e,Z(s,a)));const c=Ye(n.shape,i);return c.length>0&&(l=te(l,c)),O(l,n.shape)};return{a:r,b:o}}};const WI={kernelName:ar,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>Z(e,$(xe(G(s,"float32")),1))}}};const zI={kernelName:lr,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>Z(e,X(j(1),xe(G(s,"float32"))))}}};function O$(e,t,s,n,i=[1,1,1],r,o){const a=b(e,"dy","avgPool3dBackprop"),l=b(t,"input","avgPool3dBackprop");let c=a,p=l,u=!1;l.rank===4&&(u=!0,c=O(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]]),p=O(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]])),I(c.rank===5,()=>`Error in avgPool3dBackprop: dy must be rank 5 but got rank ${c.rank}.`),I(p.rank===5,()=>`Error in avgPool3dBackprop: input must be rank 5 but got rank ${p.rank}.`),I(tt(n,i),()=>`Error in avgPool3dBackprop: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`),o!=null&&I(ke(r),()=>`Error in maxPool3dBackprop: pad must be an integer when using, dimRoundingMode ${o} but got pad ${r}.`);const h=g=>{const y=_i(p.shape,s,n,i,r,o);return g.avgPool3dBackprop(c,p,y)},d={dy:c,input:p},m={filterSize:s,strides:n,dilations:i,pad:r,dimRoundingMode:o},f=v.runKernelFunc(h,d,null,Sg,m);return u?O(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}const PI=S({avgPool3dBackprop_:O$});const BI={kernelName:xc,inputsToSave:["x"],gradFunc:(e,t,s)=>{const[n]=t,{filterSize:i,strides:r,dilations:o,pad:a,dimRoundingMode:l}=s,c=o??[1,1,1];return{x:()=>PI(e,n,i,r,c,a,l)}}};function E$(e,t,s,n,i){const r=b(e,"dy","avgPoolBackprop"),o=b(t,"input","avgPoolBackprop");I(o.rank===r.rank,()=>`Rank of input (${o.rank}) does not match rank of dy (${r.rank})`);let a=o,l=r,c=!1;o.rank===3&&(c=!0,a=O(o,[1,o.shape[0],o.shape[1],o.shape[2]]),l=O(r,[1,r.shape[0],r.shape[1],r.shape[2]])),I(l.rank===4,()=>`Error in avgPoolBackprop: dy must be rank 4 but got rank ${l.rank}.`),I(a.rank===4,()=>`Error in avgPoolBackprop: input must be rank 4 but got rank ${a.rank}.`);const p=m=>{const f=Fn(a.shape,s,n,1,i);return m.avgPoolBackprop(l,a,f)},u={dy:l,input:a},h={filterSize:s,strides:n,pad:i},d=v.runKernelFunc(p,u,null,wo,h);return c?O(d,[d.shape[1],d.shape[2],d.shape[3]]):d}const jI=S({avgPoolBackprop_:E$});const VI={kernelName:Si,inputsToSave:["x"],gradFunc:(e,t,s)=>{const[n]=t,{filterSize:i,strides:r,pad:o}=s;return{x:()=>jI(e,n,i,r,o)}}};const GI={kernelName:Lc,inputsToSave:["a","b"],gradFunc:(e,t,s)=>{const[n,i]=t,{transposeA:r,transposeB:o}=s;return!r&&!o?{a:()=>Te(e,i,!1,!0),b:()=>Te(n,e,!0,!1)}:!r&&o?{a:()=>Te(e,i,!1,!1),b:()=>Te(e,n,!0,!1)}:r&&!o?{a:()=>Te(i,e,!1,!0),b:()=>Te(n,e,!1,!1)}:{a:()=>Te(i,e,!0,!0),b:()=>Te(e,n,!0,!0)}}};const qI={kernelName:Sc,gradFunc:(e,t,s)=>{const{blockShape:n,crops:i}=s;return{x:()=>Br(e,n,i)}}};const HI={kernelName:Ic,gradFunc:(e,t,s)=>{const n=s,i=n.inputShape,r=n.shape,o=Array.from(r);for(let l=i.length-1;l>=0;l--)if(i[l]===r[l])o[l]=1;else if(i[l]!==1)throw new Error(`broadcastTo(): [${i}] cannot be broadcast to [${r}].`);const a=[];for(let l=0;l1&&a.push(l);return{x:()=>te(e,a,!0)}}};const YI={kernelName:Ii,gradFunc:e=>({x:()=>e.clone()})};const KI={kernelName:cr,gradFunc:e=>({x:()=>re(e)})};const XI={kernelName:pr,inputsToSave:["x"],gradFunc:(e,t,s)=>{const[n]=t,{clipValueMin:i,clipValueMax:r}=s;return{x:()=>dt(Yt(ds(n,i),$s(n,r)),e,re(e))}}};const JI={kernelName:xo,saveAllInputs:!0,gradFunc:(e,t,s)=>{const n=t.map(l=>l.shape),{axis:i}=s,r=Ne(i,t[0].shape)[0],o=n.map(l=>l[r]),a=Bt(e,o,r);return a.map(l=>()=>l)}};const ZI={kernelName:Tc,inputsToSave:["x","filter"],gradFunc:(e,t,s)=>{const[n,i]=t,{dilations:r,strides:o,pad:a,dataFormat:l}=s;return I(Hs(r),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${r}'`),{x:()=>el(n.shape,e,i,o,a,l),filter:()=>wl(n,e,i.shape,o,a,l)}}};const QI={kernelName:Ac,inputsToSave:["dy","filter"],gradFunc:(e,t,s)=>{const[n,i]=t,{strides:r,pad:o,dataFormat:a,dimRoundingMode:l}=s;return{dy:()=>nt(e,i,r,o,a,1,l),filter:()=>wl(e,n,i.shape,r,o,a,l)}}};function _$(e,t,s,n,i){let r=e;e.rank===4&&(r=O(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let o=t;o.rank===4&&(o=O(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),I(r.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${r.shape}.`),I(o.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${o.shape}.`),I(s.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${s}.`),I(r.shape[4]===s[3],()=>`Error in conv3dDerFilter: depth of input ${r.shape[4]}) must match input depth in filter (${s[3]}.`),I(o.shape[4]===s[4],()=>`Error in conv3dDerFilter: depth of dy (${o.shape[4]}) must match output depth for filter (${s[4]}).`);const a=p=>{const u=1,h=Ur(r.shape,s,n,u,i);return p.conv3dDerFilter(r,o,h)},l={x:r,y:o},c={strides:n,pad:i};return v.runKernelFunc(a,l,null,vg,c)}const ev=S({conv3DBackpropFilter_:_$});const tv={kernelName:Nc,inputsToSave:["x","filter"],gradFunc:(e,t,s)=>{const{dilations:n,strides:i,pad:r}=s;I(Hs(n),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${n}'`);const[o,a]=t;return{x:()=>wh(o.shape,e,a,i,r),filter:()=>ev(o,e,a.shape,i,r)}}};const sv={kernelName:Xn,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(_e(ml(G(s,"float32"))),e)}}};const nv={kernelName:ur,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(fl(G(s,"float32")),e)}}};const iv={kernelName:Cc,inputsToSave:["x"],gradFunc:(e,t,s)=>{const[n]=t,{axis:i,exclusive:r,reverse:o}=s;return{x:()=>{const a=ht([i],n.rank);let l=il(e,i,r,!o);return a!=null&&(l=se(l,a)),l}}}};const rv={kernelName:Rc,inputsToSave:["x","filter"],gradFunc:(e,t,s)=>{const{dilations:n,strides:i,pad:r,dimRoundingMode:o}=s,a=n??[1,1];I(Hs(a),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${a}'`);const[l,c]=t;I(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${l.rank}.`),I(c.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${c.rank}.`),I(l.shape[3]===c.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${l.shape[3]}) must match the inChannels dimension in filter ${c.shape[2]}.`),I(tt(i,a),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${a}'.`),o!=null&&I(ke(r),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${o} but got pad ${r}.`);const p=is(l.shape,c.shape,i,a,r,o,!0);return{x:()=>qh(l.shape,e,c,p),filter:()=>Gh(l,e,c.shape,p)}}};const ov={kernelName:Lo,inputsToSave:["x","filter"],gradFunc:(e,t,s)=>{const[n,i]=t,r={x:n,filter:i,dy:e},o={x:n,filter:i,dy:e};return{x:()=>v.runKernel(Oa,r,s),filter:()=>v.runKernel(Ea,o,s)}}};const av={kernelName:Jn,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=Ie(s.shape,n.shape),r=()=>{const a=Z(e,G(n,"float32")),l=Ye(s.shape,i);return l.length>0?O(te(a,l),s.shape):a},o=()=>{let a=R(e,G(s,"float32"));const l=Ye(n.shape,i);l.length>0&&(a=O(te(a,l),n.shape));const c=xe(n);return _e(Z(a,G(c,"float32")))};return{a:r,b:o}}};const lv={kernelName:hr,outputsToSave:[!0],gradFunc:(e,t)=>{const[s]=t,n=r=>r.eluDer(e,s),i={dy:e,y:s};return{x:()=>v.runKernelFunc(n,i,null,Eg)}}};const cv={kernelName:dr,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t,n=R(ut(_e(xe(s))),2/Math.sqrt(Math.PI));return{x:()=>R(e,n)}}};const pv={kernelName:mr,outputsToSave:[!0],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(e,s)}}};const uv={kernelName:fr,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(e,ut(s))}}};const hv={kernelName:gr,gradFunc:e=>({x:()=>re(e)})};const dv={kernelName:Ec,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=Ie(s.shape,n.shape),r=()=>{const a=Z(e,G(n,"float32")),l=Ye(s.shape,i);return l.length>0?O(te(a,l),s.shape):a},o=()=>{let a=R(e,G(s,"float32"));const l=Ye(n.shape,i);l.length>0&&(a=O(te(a,l),n.shape));const c=xe(n);return _e(Z(a,G(c,"float32")))};return{a:r,b:o}}};const mv={kernelName:vi,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,s)=>{const{varianceEpsilon:n}=s,[i,r,o,a]=t,l=a??j(1),c=Ye(r.shape,i.shape),p=[];if(r.rank===1){for(let T=0;Tr.rank===1?O(R(R(e,Us(O(d,[1,1,1,r.shape[0]]),p)),l),i.shape):O(R(R(e,d),l),i.shape),g=()=>{let T=R(R(d,j(-1)),h);return r.rank===1&&(T=te(T,c)),O(T,r.shape)},y=()=>{let T=R(R(m,u),h);return r.rank===1&&(T=te(T,c)),O(T,r.shape)},w=()=>{const T=R(u,d);let A=R(e,T);return r.rank===1&&(A=te(A,c)),O(A,r.shape)},x=()=>{let T=e;return r.rank===1&&(T=te(T,c)),O(T,r.shape)};return{x:f,mean:g,variance:y,scale:w,offset:x}}};const yv={kernelName:_c,inputsToSave:["x","indices"],gradFunc:(e,t,s)=>{const[n,i]=t,{axis:r}=s,o=Ne(r,n.shape)[0],a=()=>{const l=n.shape,c=i.size,p=l.slice(0,o),u=p.length,h=l.slice(r,l.length).slice(1),d=h.length,m=fv(0,u),f=fv(u+1,u+1+d),g=gv([p,[c],h]),y=O(e,g),w=O(i,[c]),x=gv([[u],m,f]),T=se(y,x);let A=Bh(T,w,n.shape[o]);const _=Mo(x);return A=se(A,_),A};return{x:a,indices:()=>i}}};function fv(e,t){const s=[];for(let n=e;n{const[s,n]=t;return{a:()=>re(s),b:()=>re(n)}}};const wv={kernelName:Ti,gradFunc:e=>({x:()=>G(e,"float32")})};const xv={kernelName:yr,gradFunc:e=>({x:()=>re(e)})};const Lv={kernelName:br,gradFunc:e=>({x:()=>re(e)})};const Sv={kernelName:wr,gradFunc:e=>({x:()=>re(e)})};const Iv={kernelName:Lr,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>Z(e,$(s,1))}}};const vv={kernelName:xr,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>Z(e,G(s,"float32"))}}};const Tv={kernelName:Mc,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,s)=>{const[n]=t,{axis:i}=s;return{logits:()=>{const r=!0,o=ut(n);return X(e,R(te(e,i,r),o))}}}};function k$(e,t,s,n=5,i=1,r=1,o=.5){const a=p=>p.LRNGrad(s,e,t,n,i,r,o),l={x:e,y:t,dy:s},c={depthRadius:n,bias:i,alpha:r,beta:o};return v.runKernelFunc(a,l,null,Pg,c)}const Av=S({localResponseNormalizationBackprop_:k$});const Nv={kernelName:Uc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,s)=>{const[n,i]=t,{depthRadius:r,bias:o,alpha:a,beta:l}=s;return{x:()=>Av(n,i,e,r,o,a,l)}}};function Zh(e,t,s,n,i){return t.rank{const r=R(e,G(os(s,t),e.dtype));return i==null?r:se(r,i)}}}const Xy={kernelName:Ai,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,s)=>{const n=s,{reductionIndices:i}=n,[r,o]=t,a=Ne(i,r.shape),l=ht(a,r.rank),c=Zh(e,o,r,a,l);return{x:()=>{let p=c.x();return l!=null&&(p=se(p)),p}}}};const Cv={kernelName:$c,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=()=>R(e,G(ds(s,n),"float32")),r=()=>R(e,G(zr(s,n),"float32"));return{a:i,b:r}}};function D$(e,t,s,n,i,r=[1,1,1],o,a){const l=b(e,"dy","maxPool3dBackprop"),c=b(t,"input","maxPool3dBackprop"),p=b(s,"output","maxPool3dBackprop");let u=l,h=c,d=p,m=!1;c.rank===4&&(m=!0,u=O(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),h=O(c,[1,c.shape[0],c.shape[1],c.shape[2],c.shape[3]]),d=O(p,[1,p.shape[0],p.shape[1],p.shape[2],p.shape[3]])),I(u.rank===5,()=>`Error in maxPool3dBackprop: dy must be rank 5 but got rank ${u.rank}.`),I(h.rank===5,()=>`Error in maxPool3dBackprop: input must be rank 5 but got rank ${h.rank}.`),I(d.rank===5,()=>`Error in maxPool3dBackprop: output must be rank 5 but got rank ${d.rank}.`),I(tt(i,r),()=>`Error in maxPool3dBackprop: Either strides or dilations must be 1. Got strides ${i} and dilations '${r}'`),a!=null&&I(ke(o),()=>`Error in maxPool3dBackprop: pad must be an integer when using, dimRoundingMode ${a} but got pad ${o}.`);const f=x=>{const T=_i(h.shape,n,i,r,o,a);return x.maxPool3dBackprop(u,h,d,T)},g={dy:u,input:h,output:d},y={filterSize:n,strides:i,dilations:r,pad:o,dimRoundingMode:a},w=v.runKernelFunc(f,g,null,Bg,y);return m?O(w,[w.shape[1],w.shape[2],w.shape[3],w.shape[4]]):w}const Rv=S({maxPool3dBackprop_:D$});const Ov={kernelName:Wc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,s)=>{const[n,i]=t,{filterSize:r,strides:o,dilations:a,pad:l,dimRoundingMode:c}=s,p=a??[1,1,1];return{x:()=>Rv(e,n,i,r,o,p,l,c)}}};function F$(e,t,s,n,i,r,o){const a=b(e,"dy","maxPoolBackprop"),l=b(t,"input","maxPoolBackprop"),c=b(s,"output","maxPoolBackprop");I(l.rank===a.rank,()=>`Rank of input (${l.rank}) does not match rank of dy (${a.rank})`),I(a.rank===4,()=>`Error in maxPoolBackprop: dy must be rank 4 but got rank ${a.rank}.`),I(l.rank===4,()=>`Error in maxPoolBackprop: input must be rank 4 but got rank ${l.rank}.`),o!=null&&I(ke(r),()=>`Error in maxPoolBackprop: pad must be an integer when using, dimRoundingMode ${o} but got pad ${r}.`);const p=d=>{const m=Fn(l.shape,n,i,1,r,o);return d.maxPoolBackprop(a,l,c,m)},u={dy:a,input:l,output:c},h={filterSize:n,strides:i,pad:r,dimRoundingMode:o};return v.runKernelFunc(p,u,null,Io,h)}const Ev=S({maxPoolBackprop_:F$});const _v={kernelName:Ni,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,s)=>{const[n,i]=t,{filterSize:r,strides:o,pad:a}=s;return{x:()=>Ev(e,n,i,r,o,a)}}};const kv={kernelName:zc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,s)=>{const n=s,{axis:i}=n,[r,o]=t,a=Ne(i,r.shape),l=ht(a,r.rank),c=Zh(e,o,r,a,l);return{x:()=>{let p=c.x();return l!=null&&(p=se(p)),p}}}};const Dv={kernelName:Pc,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=()=>R(e,G($s(s,n),"float32")),r=()=>R(e,G(Ut(s,n),"float32"));return{a:i,b:r}}};const Fv={kernelName:Bc,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=Ie(s.shape,n.shape),r=()=>{const a=Ye(s.shape,i);return a.length>0?O(te(e,a),s.shape):e},o=()=>{const a=R(e,_e(li(Z(s,n)))),l=Ye(n.shape,i);return l.length>0?O(te(a,l),n.shape):a};return{a:r,b:o}}};const Mv={kernelName:Sr,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=Ie(s.shape,n.shape),r=()=>{const a=R(e,G(n,"float32")),l=Ye(s.shape,i);return l.length>0?O(te(a,l),s.shape):a},o=()=>{const a=R(e,G(s,"float32")),l=Ye(n.shape,i);return l.length>0?O(te(a,l),n.shape):a};return{a:r,b:o}}};const Uv={kernelName:jc,gradFunc:e=>({x:()=>_e(e)})};const $v={kernelName:qc,inputsToSave:["indices"],gradFunc:(e,t)=>{const s=t[0];return{indices:()=>ye(s.shape,"float32")}}};const Wv={kernelName:Gc,gradFunc:e=>({x:()=>re(e)})};const Jy={kernelName:No,inputsToSave:["x"],gradFunc:(e,t,s)=>{const n=t[0],{paddings:i}=s,r=i.map(o=>o[0]);return{x:()=>he(e,r,n.shape)}}};const zv={kernelName:Hc,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{const[s,n,i]=t,r=s,o=n,a=Ie(r.shape,o.shape),l=()=>{const p=G(o,"float32");let u=R(e,R(p,Qt(r,X(p,j(1)))));const h=Ye(r.shape,a);return h.length>0&&(u=te(u,h)),O(u,r.shape)},c=()=>{const p=Ut(r,0),u=dt(p,zt(r),re(r));let h=R(e,R(i,u));const d=Ye(o.shape,a);return d.length>0&&(h=te(h,d)),O(h,o.shape)};return{a:l,b:c}}};const Pv={kernelName:Yc,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{const[s,n]=t,i=Ut(s,0);return{x:()=>dt(i,e,R(e,n)),alpha:()=>{let r=dt(i,re(e),R(e,s));const o=Ye(n.shape,e.shape);return o.length>0&&(r=te(r,o)),O(r,n.shape)}}}};const Bv={kernelName:Ir,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>Z(e,_e(xe(s)))}}};const jv={kernelName:Qc,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t,n=R($s(s,6),ui(s));return{x:()=>R(e,G(n,"float32"))}}};const Vv={kernelName:Xc,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(e,G(ui(s),"float32"))}}};const Gv={kernelName:Ci,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>O(e,s.shape)}}};const qv={kernelName:Zc,inputsToSave:["images"],gradFunc:(e,t,s)=>{const[n]=t,i=a=>{const{alignCorners:l}=s;return a.resizeBilinearBackprop(e,n,l)},r={images:n},o=()=>v.runKernelFunc(i,r,null,qg,s);return{images:o}}};const Hv={kernelName:Jc,inputsToSave:["images"],gradFunc:(e,t,s)=>{const[n]=t,i=a=>{const{alignCorners:l}=s;return a.resizeNearestNeighborBackprop(e,n,l)},r={images:n},o=()=>v.runKernelFunc(i,r,null,Gg,s);return{images:o}}};const Yv={kernelName:ep,gradFunc:(e,t,s)=>{const{dims:n}=s,i=Ne(n,e.shape);return{x:()=>Et(e,i)}}};const Kv={kernelName:vr,gradFunc:e=>({x:()=>re(e)})};const Xv={kernelName:Tr,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>_e(Z(e,R(Qt(s,1.5),2)))}}};const Jv={kernelName:tp,inputsToSave:["condition"],gradFunc:(e,t)=>{const[s]=t;return{condition:()=>G(re(s),"float32"),t:()=>R(e,G(s,e.dtype)),e:()=>R(e,G(Pr(s),e.dtype))}}};const Zv={kernelName:Ar,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>{const n=Ut(s,j(0)),i=j(Yy),r=j(Ky),o=R(e,r),a=R(R(e,i),ut(G(s,"float32")));return dt(n,o,a)}}}};const Qv={kernelName:Rr,outputsToSave:[!0],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(e,R(s,X(j(1),s)))}}};const eT={kernelName:Cr,gradFunc:e=>({x:()=>re(e)})};const tT={kernelName:Zn,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(Wr(G(s,"float32")),e)}}};const sT={kernelName:Nr,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(nl(G(s,"float32")),e)}}};const nT={kernelName:Co,inputsToSave:["x"],gradFunc:(e,t,s)=>{const[n]=t,{begin:i,size:r}=s,o=n.shape,[a,l]=vp(n,i,r),c=[];for(let p=0;pPt(e,c)}}};const iT={kernelName:ip,outputsToSave:[!0],gradFunc:(e,t,s)=>{const[n]=t,{dim:i}=s,r=!0,o=R(e,n);return{logits:()=>X(o,R(te(o,[i],r),n))}}};const rT={kernelName:Or,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(e,rs(s))}}};const Zy={kernelName:Ro,gradFunc:(e,t,s)=>{const{blockShape:n,paddings:i}=s;return{x:()=>$r(e,n,i)}}};const Qy={kernelName:np,gradFunc:(e,t,s)=>{const{axis:n}=s;return{x:()=>be(e,n)}}};const oT={kernelName:Er,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>Z(e,R(Xe(G(s,"float32")),2))}}};const aT={kernelName:Oo,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(e,R(G(s,"float32"),2))}}};const lT={kernelName:Qn,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=j(2),r=()=>R(e,R(i,X(s,n))),o=()=>R(e,R(i,X(n,s)));return{a:r,b:o}}};const cT={kernelName:Dr,gradFunc:e=>({x:()=>re(e)})};const pT={kernelName:_r,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=Ie(s.shape,n.shape),r=()=>{let a=e;const l=Ye(s.shape,i);return l.length>0&&(a=te(a,l)),O(a,s.shape)},o=()=>{let a=e;const l=Ye(n.shape,i);return l.length>0&&(a=te(a,l)),O(_e(a),n.shape)};return{a:r,b:o}}};const uT={kernelName:sp,inputsToSave:["x"],gradFunc:(e,t,s)=>{const[n]=t,i=n.shape.slice(),{axis:r}=s,o=Ne(r,n.shape);o.forEach(c=>{i[c]=1});const a=O(e,i),l=R(a,Kt(n.shape,"float32"));return{x:()=>l}}};const hT={kernelName:ei,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>Z(e,xe(Wr(s)))}}};const dT={kernelName:kr,outputsToSave:[!0],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(X(j(1),xe(s)),e)}}};const mT={kernelName:rp,inputsToSave:["x"],gradFunc:(e,t,s)=>{const[n]=t,{reps:i}=s,r=()=>{let o=re(n);if(n.rank===1)for(let a=0;a{const n=s,{perm:i}=n,r=Mo(i);return{x:()=>se(e,r)}}};const gT={kernelName:op,gradFunc:(e,t,s)=>{const n=s,{axis:i}=n;return{value:()=>Ve(e,i)}}};const yT={kernelName:ap,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{const[s]=t,n=()=>M$(e,s);return{x:n}}};function M$(e,t){const s=Ht(t,re(t)),n=ci(e,s);let i=ds(t,j(0,"int32"));const r=n.rank-i.rank;for(let a=0;a({x:()=>re(e)})};const U$=[RI,OI,EI,_I,kI,DI,FI,MI,UI,$I,WI,zI,BI,VI,GI,qI,HI,YI,KI,XI,JI,QI,ZI,tv,sv,nv,iv,rv,ov,av,lv,cv,pv,uv,dv,hv,mv,yv,bv,wv,xv,Lv,Sv,Iv,vv,Tv,Nv,Xy,Xy,Cv,Ov,_v,kv,Dv,Fv,Mv,Uv,$v,Wv,Jy,Jy,zv,Pv,Bv,jv,Vv,Gv,qv,Hv,Yv,Kv,Xv,Jv,Zv,Qv,eT,tT,sT,nT,iT,rT,Zy,Zy,Qy,Qy,oT,lT,aT,cT,pT,uT,hT,dT,mT,fT,gT,yT,bT];for(const e of U$)Zg(e);let eb;function Tt(){return eb==null&&(eb=ky().epsilon()),eb}function gs(){return"channelsLast"}class bn extends Error{constructor(e){super(e);Object.setPrototypeOf(this,bn.prototype)}}class Ts extends Error{constructor(e){super(e);Object.setPrototypeOf(this,Ts.prototype)}}class k extends Error{constructor(e){super(e);Object.setPrototypeOf(this,k.prototype)}}class ae extends Error{constructor(e){super(e);Object.setPrototypeOf(this,ae.prototype)}}class tb extends Error{constructor(e){super(e);Object.setPrototypeOf(this,tb.prototype)}}class $$ extends Error{constructor(e){super(e);Object.setPrototypeOf(this,$$.prototype)}}function wn(e,t){if(Array.isArray(e)){let s=[];for(let n=0;ns.toUpperCase())}let Ln={};function xl(e){if(e==null)return null;const t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function nb(e){if(e==null||typeof e!="object")return;if(Array.isArray(e))e.forEach(t=>nb(t));else{const t=Object.keys(e);for(const s of t){const n=e[s];n!=null&&typeof n=="object"&&(!Array.isArray(n)&&n.type==="ndarray"&&typeof n.value=="number"?e[s]=n.value:nb(n))}}}function hi(e,t={},s={},n="object",i=!1){if(typeof e=="string"){const r=e;let o;if(r in s)o=s[r];else if(r in Ln)o=Ln[r];else if(o=t[r],o==null)throw new k(`Unknown ${n}: ${e}. This may be due to one of the following reasons: +1. The ${n} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. +2. The custom ${n} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return o}else{const r=e;if(r.className==null||r.config==null)throw new k(`${n}: Improper config format: ${JSON.stringify(r)}. +'className' and 'config' must set.`);const o=r.className;let a,l;if(o in s?[a,l]=s[o]:o in Ln?[a,l]=Ln.className:o in t&&([a,l]=t[o]),a==null)throw new k(`Unknown ${n}: ${o}. This may be due to one of the following reasons: +1. The ${n} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. +2. The custom ${n} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(l!=null){const c={};for(const d of Object.keys(Ln))c[d]=Ln[d];for(const d of Object.keys(s))c[d]=s[d];const p=r.config;p.customObjects=c;const u=Object.assign({},Ln);for(const d of Object.keys(s))Ln[d]=s[d];nb(r.config);const h=l(a,r.config,s,i);return Ln=Object.assign({},u),h}else{const c=Object.assign({},Ln);for(const u of Object.keys(s))Ln[u]=s[u];const p=new a(r.config);return Ln=Object.assign({},c),p}}}function W$(e,t){return et?1:0}function Dp(e,t){return-1*W$(e,t)}function Sn(e){if(e==null)return e;const t=[];for(const s of e)t.indexOf(s)===-1&&t.push(s);return t}function wT(e){if(e==null)throw new k(`Invalid value in obj: ${JSON.stringify(e)}`);for(const t in e)if(e.hasOwnProperty(t))return!1;return!0}function Wi(e,t,s){if(s==null)return;if(e.indexOf(s)<0)throw new k(`${s} is not a valid ${t}. Valid values are ${e} or null/undefined.`)}function Qh(e,t,s=0,n=Infinity){return Qs(s>=0),Qs(n>=s),Array.isArray(e)&&e.length>=s&&e.length<=n&&e.every(i=>typeof i===t)}function gt(e,t){Array.isArray(e)?(N.assert(e.length>0,()=>`${t} is unexpectedly an empty array.`),e.forEach((s,n)=>gt(s,`element ${n+1} of ${t}`))):N.assert(Number.isInteger(e)&&e>0,()=>`Expected ${t} to be a positive integer, but got ${xT(e)}.`)}function xT(e){return e===null?"null":Array.isArray(e)?"["+e.map(t=>xT(t)).join(",")+"]":typeof e=="string"?`"${e}"`:`${e}`}function LT(e,t){let s=N.now(),n;const i=(...r)=>{const o=N.now();return o-sXe(te(R(e,e),t,!0)))}class Fp extends V.Serializable{getConfig(){return{}}}class td extends Fp{constructor(e){super();this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return C(()=>{const t=ib(e,this.axis),s=wt(t,0,this.maxValue);return R(e,Z(s,$(Tt(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}}td.className="MaxNorm";V.registerClass(td);class sd extends Fp{constructor(e){super();this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return C(()=>Z(e,$(Tt(),ib(e,this.axis))))}getConfig(){return{axis:this.axis}}}sd.className="UnitNorm";V.registerClass(sd);class nd extends Fp{apply(e){return De(e)}}nd.className="NonNeg";V.registerClass(nd);class id extends Fp{constructor(e){super();this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=e.minValue!=null?e.minValue:this.defaultMinValue,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.rate=e.rate!=null?e.rate:this.defaultRate,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return C(()=>{const t=ib(e,this.axis),s=$(R(this.rate,wt(t,this.minValue,this.maxValue)),R(1-this.rate,t));return R(e,Z(s,$(Tt(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}}id.className="MinMaxNorm";V.registerClass(id);const ST={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function it(e){return xl(e)}function IT(e,t={}){return hi(e,V.SerializationMap.getMap().classNameMap,t,"constraint")}function rt(e){if(e==null)return null;if(typeof e=="string"){const t=e in ST?ST[e]:e,s={className:t,config:{}};return IT(s)}else return e instanceof Fp?e:IT(e)}const rb={};Ee(rb,{maxNorm:()=>z$,minMaxNorm:()=>j$,nonNeg:()=>B$,unitNorm:()=>P$});function z$(e){return new td(e)}function P$(e){return new sd(e)}function B$(){return new nd}function j$(e){return new id(e)}const vT=["channelsFirst","channelsLast"],TT=["valid","same","causal"],AT=["max","avg"],NT=["sum","mul","concat","ave"];const Ll=new Map;function ot(e){Wi(vT,"DataFormat",e)}function ys(e){Wi(TT,"PaddingMode",e)}function ob(e){Wi(AT,"PoolMode",e)}const Mp=[],CT="/";function Mn(e,t){Mp.push(e);try{const s=t();return Mp.pop(),s}catch(s){throw Mp.pop(),s}}function V$(){return Mp.length===0?"":Mp.join(CT)+CT}function rd(e){if(!RT(e))throw new Error("Not a valid tensor name: '"+e+"'");return V$()+e}function od(e){if(!RT(e))throw new Error("Not a valid tensor name: '"+e+"'");Ll.has(e)||Ll.set(e,0);const t=Ll.get(e);if(Ll.set(e,Ll.get(e)+1),t>0){const s=`${e}_${t}`;return Ll.set(s,1),s}else return e}const G$=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function RT(e){return!!e.match(G$)}function OT(e){return e===parseInt(e.toString(),10)}function In(e,t,s){t==null&&(t=0),s==null&&(s=e.length);let n=1;for(let i=t;i{if(e.shape.length!==2)throw new k(`repeat() expects a rank-2 tensor, but received a rank-${e.shape.length} tensor.`);const s=Pi(e,1);return ad(s,[1,t,1])})}function kT(e){const t=[In(e.shape)];return e.reshape(t)}function DT(e){if(e.rank<=1)throw new k(`batchFlatten requires a minimum rank of 2. Got rank: ${e.rank}.`);const t=[e.shape[0],In(e.shape,1)];return e.reshape(t)}function Bi(e,t,s){return C(()=>{switch(e.rank){case 1:return gl(e,t,s);case 2:return Cp(e,[t,0],[s,e.shape[1]]);case 3:return Gr(e,[t,0,0],[s,e.shape[1],e.shape[2]]);case 4:return jo(e,[t,0,0,0],[s,e.shape[1],e.shape[2],e.shape[3]]);case 5:return he(e,[t,0,0,0,0],[s,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return he(e,[t,0,0,0,0,0],[s,e.shape[1],e.shape[2],e.shape[3],e.shape[4],e.shape[5]]);default:throw new k(`sliceAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}})}function ab(e,t,s){return C(()=>{switch(e.rank){case 1:return gl(e,t,s);case 2:return Cp(e,[0,t],[e.shape[0],s]);case 3:return Gr(e,[0,0,t],[e.shape[0],e.shape[1],s]);case 4:return jo(e,[0,0,0,t],[e.shape[0],e.shape[1],e.shape[2],s]);default:throw new k(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function Up(e,t,s,n){return C(()=>{switch(e.rank){case 1:return gl(e,t,s);case 2:switch(n){case 1:return Bi(e,t,s);case 2:return ab(e,t,s);default:throw new k(`The axis is not within the rank of the tensor ${n}`)}case 3:switch(n){case 1:return Bi(e,t,s);case 2:return Gr(e,[0,t,0],[e.shape[0],s,e.shape[2]]);case 3:return ab(e,t,s);default:throw new k(`The axis is not within the rank of the tensor ${n}`)}case 4:switch(n){case 1:return Bi(e,t,s);case 2:return jo(e,[0,t,0,0],[e.shape[0],s,e.shape[2],e.shape[3]]);case 3:return jo(e,[0,0,t,0],[e.shape[0],e.shape[1],s,e.shape[3]]);case 4:return ab(e,t,s);default:throw new k(`The axis is not within the rank of the tensor ${n}`)}default:throw new k(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function Sl(e,t=-1){let s;return t<0&&(s=e[0].rank,s!==0?t=s:t=0),t===e[0].rank&&(t=-1),be(e,t)}function lb(e,t){switch(e.rank){case 1:return fh([e,t]);case 2:return gh([e,t],0);case 3:return yh([e,t],0);case 4:return bh([e,t],0);default:throw new k(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function ad(e,t){if(Array.isArray(t)||(t=[t]),e.rank!==t.length)throw new k(`The length of input n (${t.length}) does not match the number of dimensions in input x (${e.rank})`);return Us(e,t)}function Il(e,t=0,s=1,n,i){return Np(e,t,s,n,i)}function vn(e,t,s,n){if(e.rank<2||t.rank<2)throw new ae(`dot requires both inputs to be rank >= 2 but got x shape = ${e.shape} and y shape = ${t.shape}`);if(t.rank>=3){const i=e.shape.slice(-1)[0],r=t.shape.slice(-2)[0];if(i!==r)throw new ae(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${e.shape} and y shape = ${t.shape}`)}if(e.rank===2&&t.rank===2){const i=!1,r=!1;return gn.matMul({a:e,b:t,transposeA:i,transposeB:r,bias:n?cb(e.rank,n,gs()):null,activation:s})}else{const i=e.shape.slice(),r=i.pop();e=e.reshape([-1,r]);const o=t.shape.slice(),a=o.pop(),l=o.pop(),c=[...o,a],p=Array.from({length:t.rank},(m,f)=>f===0?t.rank-2:f<=t.rank-2?f-1:f);t=t.transpose(p).reshape([l,-1]);const u=[...i,...c],h=!1,d=!1;return gn.matMul({a:e,b:t,transposeA:h,transposeB:d,bias:n?cb(e.rank,n,gs()):null,activation:s}).reshape(u)}}function ld(e,t,s){return C(()=>(Array.isArray(t)?t=Oe(t,"int32"):t=t.toInt(),ci(e,t,s)))}function ta(e){return R(e,e)}function cb(e,t,s){const n=t.shape;if(t.rank!==1&&t.rank!==e)throw new k(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${e}`);if(e===5){if(s==="channelsFirst")return n.length===1?t.reshape([1,n[0],1,1,1]):t.reshape([1,n[3],n[0],n[1],n[2]]);if(s==="channelsLast")return n.length===1?t.reshape([1,1,1,1,n[0]]):t.reshape([1].concat(n))}else if(e===4){if(s==="channelsFirst")return n.length===1?t.reshape([1,n[0],1,1]):t.reshape([1,n[2],n[0],n[1]]);if(s==="channelsLast")return n.length===1?t.reshape([1,1,1,n[0]]):t.reshape([1].concat(n))}else if(e===3){if(s==="channelsFirst")return n.length===1?t.reshape([1,n[0],1]):t.reshape([1,n[1],n[0]]);if(s==="channelsLast")return n.length===1?t.reshape([1,1,n[0]]):t.reshape([1].concat(n))}else if(e<3)return t;throw new k(`Unsupported input rank by biasAdd: ${t.rank}`)}function As(e,t,s){return C(()=>(s==null&&(s=gs()),ot(s),e.add(cb(e.rank,t,s))))}function FT(e,t=1){if(t!==1)throw new ae(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return hn(e)}function MT(e){return C(()=>Z(e,et(e).add(1)))}function cd(e,t,s,n){return C(()=>Vy(e,t,s,n))}function UT(e){return C(()=>{const t=$(.5,R(.2,e));return wt(t,0,1)})}function Zr(e,t,s=!1){return s?e():t()}const $T=["fanIn","fanOut","fanAvg"],WT=["normal","uniform","truncatedNormal"];function q$(e){Wi($T,"FanMode",e)}function H$(e){Wi(WT,"Distribution",e)}class Ws extends V.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}}class pd extends Ws{apply(e,t){return ye(e,t)}}pd.className="Zeros";V.registerClass(pd);class vl extends Ws{apply(e,t){return Kt(e,t)}}vl.className="Ones";V.registerClass(vl);class ud extends Ws{constructor(e){super();if(typeof e!="object")throw new k(`Expected argument of type ConstantConfig but got ${e}`);if(e.value===void 0)throw new k(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return C(()=>R(j(this.value),Kt(e,t)))}getConfig(){return{value:this.value}}}ud.className="Constant";V.registerClass(ud);class hd extends Ws{constructor(e){super();this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=e.minval||this.DEFAULT_MINVAL,this.maxval=e.maxval||this.DEFAULT_MAXVAL,this.seed=e.seed}apply(e,t){return fn(e,this.minval,this.maxval,t)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}}hd.className="RandomUniform";V.registerClass(hd);class dd extends Ws{constructor(e){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new ae(`randomNormal does not support dType ${t}.`);return Il(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}}dd.className="RandomNormal";V.registerClass(dd);class md extends Ws{constructor(e){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new ae(`truncatedNormal does not support dType ${t}.`);return Kr(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}}md.className="TruncatedNormal";V.registerClass(md);class fd extends Ws{constructor(e){super();this.gain=e.gain!=null?e.gain:1}apply(e,t){return C(()=>{if(e.length!==2||e[0]!==e[1])throw new k("Identity matrix initializer can only be used for 2D square matrices.");return R(this.gain,Po(e[0]))})}getConfig(){return{gain:this.gain}}}fd.className="Identity";V.registerClass(fd);function Y$(e,t="channelsLast"){let s,n;if(ot(t),e.length===2)s=e[0],n=e[1];else if([3,4,5].indexOf(e.length)!==-1){if(t==="channelsFirst"){const i=In(e,2);s=e[1]*i,n=e[0]*i}else if(t==="channelsLast"){const i=In(e,0,e.length-2);s=e[e.length-2]*i,n=e[e.length-1]*i}}else{const i=In(e);s=Math.sqrt(i),n=Math.sqrt(i)}return[s,n]}class bs extends Ws{constructor(e){super();if(e.scale<0)throw new k(`scale must be a positive float. Got: ${e.scale}`);this.scale=e.scale==null?1:e.scale,this.mode=e.mode==null?"fanIn":e.mode,q$(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,H$(this.distribution),this.seed=e.seed}apply(e,t){const s=Y$(e),n=s[0],i=s[1];let r=this.scale;if(this.mode==="fanIn"?r/=Math.max(1,n):this.mode==="fanOut"?r/=Math.max(1,i):r/=Math.max(1,(n+i)/2),this.distribution==="normal"){const o=Math.sqrt(r);if(t=t||"float32",t!=="float32"&&t!=="int32")throw new ae(`${this.getClassName()} does not support dType ${t}.`);return Kr(e,0,o,t,this.seed)}else{const o=Math.sqrt(3*r);return fn(e,-o,o,t)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}}bs.className="VarianceScaling";V.registerClass(bs);class $p extends bs{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return bs.className}}$p.className="GlorotUniform";V.registerClass($p);class Wp extends bs{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return bs.className}}Wp.className="GlorotNormal";V.registerClass(Wp);class zp extends bs{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return bs.className}}zp.className="HeNormal";V.registerClass(zp);class Pp extends bs{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return bs.className}}Pp.className="HeUniform";V.registerClass(Pp);class Bp extends bs{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return bs.className}}Bp.className="LeCunNormal";V.registerClass(Bp);class jp extends bs{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return bs.className}}jp.className="LeCunNormal";V.registerClass(jp);class gd extends Ws{constructor(e){super();if(this.DEFAULT_GAIN=1,this.gain=e.gain==null?this.DEFAULT_GAIN:e.gain,this.seed=e.seed,this.seed!=null)throw new ae("Random seed is not implemented for Orthogonal Initializer yet.")}apply(e,t){return C(()=>{if(e.length<2)throw new ae("Shape must be at least 2D.");e[0]*e[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${e[0]*e[1]}) elements: Slowness may result.`);const s=e[0]>e[1]?[e[1],e[0]]:e,n=Il(s,0,1,"float32");let i=Hy.gramSchmidt(n);return e[0]>e[1]&&(i=i.transpose()),R(this.gain,i)})}getConfig(){return{gain:this.gain,seed:this.seed}}}gd.className="Orthogonal";V.registerClass(gd);const zT={constant:"Constant",glorotNormal:"GlorotNormal",glorotUniform:"GlorotUniform",heNormal:"HeNormal",heUniform:"HeUniform",identity:"Identity",leCunNormal:"LeCunNormal",leCunUniform:"LeCunUniform",ones:"Ones",orthogonal:"Orthogonal",randomNormal:"RandomNormal",randomUniform:"RandomUniform",truncatedNormal:"TruncatedNormal",varianceScaling:"VarianceScaling",zeros:"Zeros"};function PT(e,t={}){return hi(e,V.SerializationMap.getMap().classNameMap,t,"initializer")}function Je(e){return xl(e)}function Be(e){if(typeof e=="string"){const t=e in zT?zT[e]:e;if(t==="GlorotNormal")return new Wp;if(t==="GlorotUniform")return new $p;if(t==="HeNormal")return new zp;if(t==="HeUniform")return new Pp;if(t==="LeCunNormal")return new Bp;if(t==="LeCunUniform")return new jp;{const s={};return s.className=t,s.config={},PT(s)}}else return e instanceof Ws?e:PT(e)}const pb={};Ee(pb,{constant:()=>J$,glorotNormal:()=>iW,glorotUniform:()=>nW,heNormal:()=>rW,heUniform:()=>oW,identity:()=>tW,leCunNormal:()=>aW,leCunUniform:()=>lW,ones:()=>X$,orthogonal:()=>cW,randomNormal:()=>Q$,randomUniform:()=>Z$,truncatedNormal:()=>eW,varianceScaling:()=>sW,zeros:()=>K$});function K$(){return new pd}function X$(){return new vl}function J$(e){return new ud(e)}function Z$(e){return new hd(e)}function Q$(e){return new dd(e)}function eW(e){return new md(e)}function tW(e){return new fd(e)}function sW(e){return new bs(e)}function nW(e){return new $p(e)}function iW(e){return new Wp(e)}function rW(e){return new zp(e)}function oW(e){return new Pp(e)}function aW(e){return new Bp(e)}function lW(e){return new jp(e)}function cW(e){return new gd(e)}let pW=0;function yd(){return pW++}const bd={};function Qr(e=""){return e in bd||(bd[e]=0),bd[e]+=1,e+bd[e].toString()}function wd(e){return Array.isArray(e)&&Array.isArray(e[0])}function Tl(e){return e.length===0?[]:Array.isArray(e[0])?e:[e]}function we(e){let t;if(Array.isArray(e)){if(e.length!==1)throw new k(`Expected Tensor length to be 1; got ${e.length}`);t=e[0]}else t=e;return t}function Ue(e){if(Array.isArray(e)&&Array.isArray(e[0])){if(e.length===1)return e=e,e[0];throw new k(`Expected exactly 1 Shape; got ${e.length}`)}else return e}function Al(e){let t=0;for(const s of e)s.shape.length===0?t+=1:t+=s.shape.reduce((n,i)=>n*i);return t}const BT="Variable";class xd{constructor(e,t="float32",s=BT,n=!0,i=null){this.dtype=t??"float32",this.shape=e.shape,this.id=yd(),s=s??BT,this.originalName=rd(s),this.name=od(this.originalName),this.trainable_=n,this.constraint=i,this.val=jh(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),uW(this.val,e),this.val.id!==e.id&&(this.val.assign(e),this.constraint!=null&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(e){this.trainable_=e,this.val.trainable=e}}function uW(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}function Vp(e){return e.map(t=>t.read())}function Nl(e){e.forEach(t=>{const s=t[0];s.write(t[1])})}class st{constructor(e){this.dtype=e.dtype,this.shape=e.shape,e.shape!=null?this.ndim=e.shape.length:this.ndim=e.ndim,this.maxNDim=e.maxNDim,this.minNDim=e.minNDim,this.axes=e.axes||{}}}class ws{constructor(e,t,s,n,i,r,o){this.dtype=e,this.shape=t,this.sourceLayer=s,this.inputs=n,this.callArgs=i,this.outputTensorIndex=o,this.id=yd(),r!=null&&(this.originalName=rd(r),this.name=od(this.originalName)),this.rank=t.length}}let hW=0;class sa{constructor(e,t){this.callArgs=t,this.id=hW++,this.outboundLayer=e.outboundLayer,this.inboundLayers=e.inboundLayers,this.nodeIndices=e.nodeIndices,this.tensorIndices=e.tensorIndices,this.inputTensors=e.inputTensors,this.outputTensors=e.outputTensors,this.inputMasks=e.inputMasks,this.outputMasks=e.outputMasks,this.inputShapes=e.inputShapes,this.outputShapes=e.outputShapes;for(const s of e.inboundLayers)s!=null&&s.outboundNodes.push(this);e.outboundLayer.inboundNodes.push(this)}getConfig(){const e=[];for(const t of this.inboundLayers)t!=null?e.push(t.name):e.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:e,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}}let dW=0;class Le extends V.Serializable{constructor(e={}){super();this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=dW++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let t=e.name;if(!t){const s=this.getClassName();t=xn(s)+"_"+Qr(s)}if(this.name=t,this.trainable_=e.trainable==null?!0:e.trainable,e.inputShape!=null||e.batchInputShape!=null){let s;if(e.batchInputShape!=null)s=e.batchInputShape;else if(e.inputShape!=null){let i=null;e.batchSize!=null&&(i=e.batchSize),s=[i].concat(e.inputShape)}this.batchInputShape=s;let n=e.dtype;n==null&&(n=e.inputDType),n==null&&(n="float32"),this.dtype=n}e.weights!=null?this.initialWeights=e.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(e,t){return e.name+"_ib-"+t.toString()}getNodeAtIndex(e,t){if(this.inboundNodes.length===0)throw new Ts(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new k(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return jt(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return jt(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new bn(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new bn(`Layer ${this.name} is not connected, no input to return.`);return jt(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new bn(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new bn(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return jt(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(e=>e())}get updates(){return this._updates}get built(){return this._built}set built(e){this._built=e}get trainable(){return this.trainable_}set trainable(e){this._trainableWeights.forEach(t=>t.trainable=e),this.trainable_=e}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(e=>e.trainable):[]}set trainableWeights(e){this._trainableWeights=e}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(e=>!e.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(e){this._nonTrainableWeights=e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(e){if(e=qe(e),this.inputSpec==null||this.inputSpec.length===0)return;const t=qe(this.inputSpec);if(e.length!==t.length)throw new k(`Layer ${this.name} expects ${t.length} inputs, but it received ${e.length} input tensors. Input received: ${e}`);for(let s=0;si.maxNDim)throw new k(`Input ${s} is incompatible with layer ${this.name}: expected max_ndim=${i.maxNDim}, found ndim=${r}`);if(i.minNDim!=null&&r=0?o[l]:o[o.length+l];if(c!=null&&[c,null].indexOf(p)===-1)throw new k(`Input ${s} is incompatible with layer ${this.name}: expected axis ${l} of input shape to have value ${c} but got shape ${o}.`)}}if(i.shape!=null)for(let o=0;o{if(!this.built){this.assertInputCompatibility(e);const r=[];for(const o of qe(e))r.push(o.shape);this.build(jt(r)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&i&&(this._refCount=1)}if(this.assertInputCompatibility(e),i){let r=this.call(e,t);const o=qe(r),a=[];for(let l of o)s.indexOf(l)!==-1&&(l=l.clone()),a.push(l);if(r=jt(a),this.activityRegularizer!=null)throw new ae("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return r}else{const r=mW(e),o=this.computeOutputShape(r);let a;const l=fW(e);if(this.warnOnIncompatibleInputShape(Array.isArray(e)?r[0]:r),o!=null&&o.length>0&&Array.isArray(o[0])?a=o.map((c,p)=>new ws(l,c,this,qe(e),t,this.name,p)):a=new ws(l,o,this,qe(e),t,this.name),this.addInboundNode(e,a,null,null,r,o,t),this._refCount++,this.activityRegularizer!=null)throw new ae("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return a}})}warnOnIncompatibleInputShape(e){if(this.batchInputShape==null)return;if(e.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(e)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let t=!1;this.batchInputShape.forEach((s,n)=>{s!=null&&e[n]!=null&&e[n]!==s&&(t=!0)}),t&&console.warn(`The shape of the input tensor (${JSON.stringify(e)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new bn(`The layer ${this.name} has never been called and thus has no defined output shape.`);const e=[];for(const t of this.inboundNodes){const s=JSON.stringify(t.outputShapes);e.indexOf(s)===-1&&e.push(s)}if(e.length===1){const t=this.inboundNodes[0].outputShapes;return Array.isArray(t)&&Array.isArray(t[0])&&t.length===1?t[0]:t}else throw new bn(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new Ts(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Al(this.weights)}build(e){this.built=!0}getWeights(e=!1){return Vp(e?this.trainableWeights:this.weights)}setWeights(e){C(()=>{const t=this.weights;if(t.length!==e.length)throw new k(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${e.length}, but the layer was expecting ${t.length} weights. Provided weights: ${e}...`);if(t.length===0)return;const s=[],n=Vp(t);for(let i=0;ii.apply(l.read())),r==null&&(r=!0),r?this._trainableWeights.push(l):this._nonTrainableWeights.push(l),l}setFastWeightInitDuringBuild(e){this.fastWeightInitDuringBuild=e}addLoss(e){if(e==null||Array.isArray(e)&&e.length===0)return;e=qe(e),this._losses!==void 0&&this._losses!==null&&this.losses.push(...e)}computeOutputShape(e){return e}computeMask(e,t){if(!this.supportsMasking){if(t!=null)if(Array.isArray(t))t.forEach(s=>{if(s!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return t}addInboundNode(e,t,s,n,i,r,o=null){const a=qe(e);t=qe(t),s=qe(s),n=qe(n),i=Tl(i),r=Tl(r);const l=[],c=[],p=[];for(const u of a)l.push(u.sourceLayer),c.push(u.nodeIndex),p.push(u.tensorIndex);new sa({outboundLayer:this,inboundLayers:l,nodeIndices:c,tensorIndices:p,inputTensors:a,outputTensors:t,inputMasks:s,outputMasks:n,inputShapes:i,outputShapes:r},o);for(let u=0;ue.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let e=0;return--this._refCount===0&&(e=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:e}}}function mW(e){e=qe(e);const t=[];for(const s of e)t.push(s.shape);return jt(t)}function fW(e){return"float32"}function ub(e,t,s){if((t==null||s!=null&&s>0)&&(t=e.sourceLayer,s=e.nodeIndex),t.inboundNodes.length===0)return[e];{const n=t.inboundNodes[s];if(n.inboundLayers.length===0)return n.inputTensors;{const i=[];for(let r=0;r0){const i=await Promise.all(t);for(let r=0;r$(this.totals[n],R(i,s)));this.totals[n]=o,r!=null&&r.dispose()}}}async onEpochEnd(e,t){if(t!=null)for(const s of this.params.metrics){if(this.totals[s]==null)continue;typeof this.totals[s]=="number"?t[s]=this.totals[s]/this.seen:C(()=>{const n=R(Z(1,this.seen),this.totals[s]);t[s]=n,this.totals[s].dispose(),pt(t[s])})}}}class db extends na{async onTrainBegin(e){this.epoch=[],this.history={}}async onEpochEnd(e,t){t==null&&(t={}),this.epoch.push(e);for(const s in t)this.history[s]==null&&(this.history[s]=[]),this.history[s].push(t[s])}async syncData(){const e=[],t=[],s=[];for(const i in this.history){const r=this.history[i];for(let o=0;onew mb(n,t))}class en{constructor(){}static registerCallbackConstructor(e,t){N.assert(e>=0&&Number.isInteger(e),()=>`Verbosity level is expected to be an integer >= 0, but got ${e}`),en.checkForDuplicate(t),en.constructors[e]==null&&(en.constructors[e]=[]),en.constructors[e].push(t)}static checkForDuplicate(e){for(const t in en.constructors){const s=en.constructors[+t];s.forEach(n=>{if(n===e)throw new k("Duplicate callback constructor.")})}}static clear(){en.constructors={}}static createCallbacks(e){const t=[];for(const s in en.constructors){const n=+s;e>=n&&t.push(...en.constructors[n])}return t.map(s=>new s)}}en.constructors={};function vd(e,t,s,n,i,r,o,a,l){const c=new db,p=[new yW,...en.createCallbacks(t)];e!=null&&p.push(...e),p.push(c);const u=new hb(p);return u.setParams({epochs:s,initialEpoch:n,samples:i,steps:r,batchSize:o,verbose:t,doValidation:a,metrics:l}),{callbackList:u,history:c}}function xs(e,t={},s=!1){return hi(e,V.SerializationMap.getMap().classNameMap,t,"layer",s)}function Gp(e,t){return C(()=>{e.dtype!=="float32"&&(e=e.asType("float32"));const s=te(ta(e),t,!0),n=Wt(s.shape,Tt()),i=Xe(Ht(s,n));return Z(e,i)})}function mi(e,t){return C(()=>Ke(ta(X(t,e)),-1))}function Cl(e,t){return C(()=>Ke(et(X(t,e)),-1))}function eo(e,t){return C(()=>{const s=X(e,t),n=wt(et(e),Tt(),Number.MAX_VALUE),i=et(Z(s,n));return R(100,Ke(i,-1))})}function bW(e,t){return C(()=>{const s=wt(t,Tt(),Number.MAX_VALUE),n=zt($(1,s)),i=wt(e,Tt(),Number.MAX_VALUE),r=zt($(1,i));return Ke(ta(X(n,r)),-1)})}function wW(e,t){return C(()=>{const s=Ht(0,X(1,R(e,t)));return Ke(ta(s),-1)})}function xW(e,t){return C(()=>{const s=Ht(0,X(1,R(e,t)));return Ke(s,-1)})}function LW(e,t){return C(()=>{const s=te(R(e,t),-1),n=xt(R(X(1,e),t),-1);return Ht(0,$(1,X(n,s)))})}function SW(e,t){return C(()=>{const s=Math.log(2),n=X(t,e),i=X($(n,pi(R(-2,n))),s);return Ke(i,-1)})}function ia(e,t,s=!1){return C(()=>{if(s)t=es(t);else{const n=te(t,t.shape.length-1,!0);t=Z(t,n)}return t=wt(t,Tt(),1-Tt()),_e(te(R(e.toFloat(),zt(t)),t.shape.length-1))})}function Rl(e,t,s=!1){return C(()=>{const n=li(kT(e)).toInt();t=wt(t,Tt(),1-Tt());const i=t.shape,r=ai(n,i[i.length-1]).reshape(i);return ia(r,t,s)})}function IW(e,t){if(!N.arraysEqual(e.shape,t.shape))throw new k(`logits and labels must have the same shape, but got shapes ${JSON.stringify(e.shape)} and ${JSON.stringify(t.shape)}`);return C(()=>{const s=t.relu(),n=t.abs().neg();return s.sub(t.mul(e)).add(n.exp().log1p())})}function Ol(e,t){return C(()=>{let s;return s=wt(t,Tt(),1-Tt()),s=zt(Z(s,X(1,s))),Ke(IW(e,s),-1)})}function vW(e,t){return C(()=>{const s=wt(e,Tt(),1),n=wt(t,Tt(),1);return te(R(e,zt(Z(s,n))),-1)})}function TW(e,t){return C(()=>{const s=zt($(Tt(),t));return Ke(X(t,R(e,s)),-1)})}function qp(e,t){return C(()=>{const s=Gp(e,-1),n=Gp(t,-1),i=R(s,n);return _e(te(i,-1))})}const Hp={meanSquaredError:mi,meanAbsoluteError:Cl,meanAbsolutePercentageError:eo,meanSquaredLogarithmicError:bW,squaredHinge:wW,hinge:xW,categoricalHinge:LW,logcosh:SW,categoricalCrossentropy:ia,sparseCategoricalCrossentropy:Rl,binaryCrossentropy:Ol,kullbackLeiblerDivergence:vW,poisson:TW,cosineProximity:qp};function Td(e){if(typeof e=="string"){if(e in Hp)return Hp[e];let t=`Unknown loss ${e}`;throw e.toLowerCase().includes("softmaxcrossentropy")&&(t=`Unknown loss ${e}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new k(t)}else return e}function Yp(e,t){return C(()=>{const s=R(.5,Ot(t)),n=zi(Ut(t,s),e.dtype);return Ke(os(e,n),-1)})}function Kp(e,t){return C(()=>zi(os($o(e,-1),$o(t,-1)),"float32"))}function VT(e,t){return C(()=>Yt(e.equal(1),t.equal(1)).sum().cast("float32"))}function AW(e,t){return C(()=>Yt(e.equal(1),t.equal(0)).sum().cast("float32"))}function NW(e,t){return C(()=>Yt(e.equal(0),t.equal(1)).sum().cast("float32"))}function fb(e,t){return C(()=>{const s=VT(e,t),n=NW(e,t),i=s.add(n);return dt(Ut(i,0),s.div(i),0).cast("float32")})}function GT(e,t){return C(()=>{const s=VT(e,t),n=AW(e,t),i=s.add(n);return dt(Ut(i,0),s.div(i),0).cast("float32")})}function Ad(e,t){return Ol(e,t)}function Nd(e,t){return e.rank===t.rank&&(e=e.squeeze([e.rank-1])),t=t.argMax(-1),t.dtype!==e.dtype&&(t=t.asType(e.dtype)),os(e,t).asType("float32")}const CW=mi,RW=mi,OW=Cl,EW=Cl,_W=eo,kW=eo,Xp=ia,DW=qp,gb=Rl,Cd={binaryAccuracy:Yp,categoricalAccuracy:Kp,precision:fb,categoricalCrossentropy:Xp,sparseCategoricalCrossentropy:gb,mse:CW,MSE:RW,mae:OW,MAE:EW,mape:_W,MAPE:kW,cosine:DW};function qT(e){if(typeof e=="string"&&e in Cd)return Cd[e];if(typeof e!="string"&&e!=null)return e;throw new k(`Unknown metric ${e}`)}function Jp(e){if(Qs(e!==null,`Unknown LossOrMetricFn ${e}`),typeof e=="string")return e;{let t;for(const s of Object.keys(Hp))if(Hp[s]===e){t=s;break}if(t!==void 0)return t;for(const s of Object.keys(Cd))if(Cd[s]===e){t=s;break}return t!==void 0?t:e.name}}function HT(e){const t={Adagrad:()=>Jr.adagrad(.01),Adadelta:()=>Jr.adadelta(1,.95,Tt()),Adam:()=>Jr.adam(.001,.9,.999,Tt()),Adamax:()=>Jr.adamax(.002,.9,.999,Tt(),0),RMSProp:()=>Jr.rmsprop(.001,.9,0,Tt()),SGD:()=>Jr.sgd(.01)};if(t.adagrad=t.Adagrad,t.adadelta=t.Adadelta,t.adam=t.Adam,t.adamax=t.Adamax,t.rmsprop=t.RMSProp,t.sgd=t.SGD,e in t)return t[e]();throw new k(`Unknown Optimizer ${e}`)}const YT=1*1024*1024;function bb(e,t,s=!1){if(e==null||typeof e!="object"||Object.getPrototypeOf(e)!==Object.prototype||!yb(e))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(s){const n=JSON.stringify(e);n.length>YT&&console.warn(`User-defined metadata of model "${t}" is too large in size (length=${n.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= ${YT}.`)}}function yb(e){if(e===null)return!0;if(typeof e=="object")if(Object.getPrototypeOf(e)===Object.prototype){const t=Object.keys(e);for(const s of t){if(typeof s!="string")return!1;if(!yb(e[s]))return!1}return!0}else if(Array.isArray(e)){for(const t of e)if(!yb(t))return!1;return!0}else return!1;else{const t=typeof e;return t==="string"||t==="number"||t==="boolean"}}function KT(e,t,s,n=console.log){const i=MW(e),r=["Layer (type)","Output shape","Param #"];i?(t=t||65,s=s||[.45,.85,1]):(t=t||98,s=s||[.33,.55,.67,1]),s[s.length-1]<=1&&(s=s.map(p=>Math.floor(t*p)));let o;if(!i){r.push("Receives inputs"),o=[];for(const p in e.nodesByDepth)o.push(...e.nodesByDepth[p])}n("_".repeat(t)),Rd(r,s,n),n("=".repeat(t));const a=e.layers;for(let p=0;p1||i.length===1&&i[0].inboundLayers.length>1){t=!1;break}n.push(...i)}if(t)for(const i of e.layers){let r=!1;for(const o of i.inboundNodes)if(n.indexOf(o)!==-1)if(r){t=!1;break}else r=!0;if(!t)break}return t}function Rd(e,t,s=console.log){let n="";for(let i=0;i0&&(n=n.slice(0,n.length-1)+" "),n+=e[i],n=n.slice(0,t[i]),n+=" ".repeat(t[i]-n.length);s(n)}function UW(e,t,s){let n;try{n=JSON.stringify(e.outputShape)}catch(a){n="multiple"}const i=e.name,r=e.getClassName(),o=[`${i} (${r})`,n,e.countParams().toString()];Rd(o,t,s)}function $W(e,t,s,n){let i;try{i=JSON.stringify(e.outputShape)}catch(p){i="multiple"}const r=[];for(const p of e.inboundNodes){if(s!=null&&s.length>0&&s.indexOf(p)===-1)continue;for(let u=0;um.name),l=[],c=t.names();for(const m of a)c.indexOf(m)!==-1?l.push(t.getValue(m)):l.push(null);n!=null&&(n.maxNumTensors=-Infinity,n.minNumTensors=Infinity);const p=a.join(",")+"|"+t.names().join(",");let u,h;if(wb[p]==null){const m=zW(o,t);u=m.sorted,h=m.recipientCounts,wb[p]=u,JT[p]=h}u=wb[p],h={},i||Object.assign(h,JT[p]);const d=new Vi(t);for(let m=0;mn.maxNumTensors&&(n.maxNumTensors=D),D0,()=>"Expected at least one fetch, got none");let s=[],n={};if(e.length===1){const i=ZT(e[0],t);s=i.sorted,n=i.recipientMap}else{const i=new Set;for(const r of e){const{sorted:o,recipientMap:a}=ZT(r,t);for(const l of o)i.has(l.name)||(s.push(l),i.add(l.name));for(const l in a)n[l]==null&&(n[l]=new Set),a[l].forEach(c=>n[l].add(c))}}return{sorted:s,recipientCounts:BW(n)}}function BW(e){const t={};for(const s in e)t[s]=e[s].size;return t}function ZT(e,t){const s=new Set,n=[],i={};for(const a of t.names())s.add(a);const r=[],o=[];for(r.push(e);r.length>0;){const a=r[r.length-1];if(s.has(a.name)){r.pop();continue}const l=o[o.length-1]===r.length-1;if(a.inputs.length===0||l)r.pop(),n.push(a),s.add(a.name),l&&o.pop();else{o.push(r.length-1);for(const c of a.inputs){if(i[c.name]==null&&(i[c.name]=new Set),i[c.name].add(a.name),s.has(c.name))continue;r.push(c)}}}return{sorted:n,recipientMap:i}}function PW(e){let t;if(e.sourceLayer.inboundNodes.length===1)t=e.sourceLayer.output;else{let s=null;for(let n=0;ny.name)}`);Sn(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map(y=>y.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(const y of this.outputs){const w=y.sourceLayer,x=y.nodeIndex,T=y.tensorIndex;this.outputLayers.push(w),this.outputLayersNodeIndices.push(x),this.outputLayersTensorIndices.push(T)}for(const y of this.inputs){const w=y.sourceLayer,x=y.nodeIndex,T=y.tensorIndex;Qs(x===0,"input layer has >1 nodes"),Qs(T===0,"input layer has >1 tensors"),this.inputLayers.push(w),this.inputLayersNodeIndices.push(x),this.inputLayersTensorIndices.push(T)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let y=0;yy.shape),this.internalOutputShapes=this.outputs.map(y=>y.shape);const t={},s={},n={},i={},r={},o=[],a=(y,w,x,T,A,_)=>{(T==null||A==null||_==null)&&(T=y.sourceLayer,A=y.nodeIndex,_=y.tensorIndex);const E=T.inboundNodes[A];if(x.indexOf(E)!==-1)throw new Ts(`The tensor ${y.name} at layer "${T.name}" is part of a cycle.`);if(w.indexOf(E)!==-1)return;this.containerNodes.add($n.nodeKey(T,A)),T.id in r||(r[T.id]=Object.keys(r).length),x.indexOf(E)===-1&&x.push(E);const F=E.inboundLayers.length;for(let D=0;D=0;)x.splice(x.indexOf(E),1);o.push(E)},l=[],c=[];for(const y of this.outputs)a(y,l,c);const p=o.slice().reverse();for(const y of p){s[y.id]=y,y.id in t||(t[y.id]=0);let w=t[y.id];const x=n[y.outboundLayer.id]==null?0:n[y.outboundLayer.id];w=Math.max(w,x),n[y.outboundLayer.id]=w,i[y.outboundLayer.id]=y.outboundLayer,t[y.id]=w;for(let T=0;TparseInt(y,10)).sort(Dp);this.layers=[];for(const y of d){const w=h[y];w.sort((x,T)=>{const A=r[x.id],_=r[T.id];return A<_?-1:A>_?1:0});for(const x of w)x instanceof $n&&this.internalContainerRefs.push(x),this.layers.push(x)}this.layersByDepth=h,d=Object.keys(u).map(y=>parseInt(y,10)).sort(Dp);const m=this.inputs.slice(),f=[];for(const y of d)for(const w of u[y]){const x=w.outboundLayer;if(x!=null){for(const T of w.inputTensors)if(m.indexOf(T)===-1)throw new Ts(`Graph disconnected: cannot obtain value for tensor ${T} at layer "${x.name}". The following previous layers were accessed without issue: ${f}`);for(const T of w.outputTensors)m.push(T);f.push(x.name)}}this.nodesByDepth=u;const g=this.layers.map(y=>y.name);for(const y of g){const w=g.filter(x=>x===y).length;if(w!==1)throw new Ts(`The name "${y}" is used ${w} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(g))}this.outboundNodes=[],this.inboundNodes=[],new sa({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(y=>null),outputMasks:this.outputs.map(y=>null),inputShapes:this.inputs.map(y=>y.shape),outputShapes:this.outputs.map(y=>y.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();const e={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount===0){for(const t of this.layers)e.numDisposedVariables+=t.dispose().numDisposedVariables;for(const t of this.internalContainerRefs)e.numDisposedVariables+=t.dispose().numDisposedVariables}return e.refCountAfterDispose=this._refCount,e}get trainable(){return this.trainable_}set trainable(e){this.layers.forEach(t=>{t._trainableWeights.forEach(s=>s.trainable=e)}),this.trainable_=e}get trainableWeights(){if(this._trainableWeights.length>0)throw new k("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let e=[];for(const t of this.layers)e=e.concat(t.trainableWeights);return e}get nonTrainableWeights(){const e=[];for(const t of this.layers)e.push(...t.nonTrainableWeights);if(!this.trainable){const t=[];for(const s of this.layers)t.push(...s.trainableWeights);return t.concat(e)}return e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(e,t=!0){const s={};let n=0;for(const r of this.layers)for(const o of r.weights){if(s[o.originalName]!=null)throw new k(`Duplicate weight name: ${o.originalName}`);s[o.originalName]=o,n++}const i=[];for(const r in e){let o=r;if(s[r]==null){const a=r.split("/"),l=a.slice(0,-2).concat([a[a.length-1]]);o=l.join("/")}if(s[o]!=null)i.push([s[o],e[r]]);else if(t)throw new k(`Provided weight data has no target variable: ${r}`);delete s[o]}if(t){const r=[];for(const o in s)r.push(o);if(r.length>0)throw new k(`${r.length} of ${n} weights are not set: ${r}`)}Nl(i)}updatedConfig(){const e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${to}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){const s=Od(this.updatedConfig());return t?JSON.stringify(s):s}call(e,t){return C(()=>{e=qe(e);const s=new Vi;for(let n=0;n{e=qe(e);let s;return t==null?s=wn(null,e.length):s=qe(t),this.runInternalGraph(e,s)[1]})}computeOutputShape(e){const t=Tl(e);if(t.length!==this.inputLayers.length)throw new k(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);const s={};for(let o=0;oparseInt(o,10)).sort(Dp);if(n.length>1)for(const o of n){const a=this.nodesByDepth[o];for(const l of a){const c=l.outboundLayer;if(this.inputLayers.map(m=>m.id).indexOf(c.id)!==-1)continue;const p=[];for(let m=0;mparseInt(a,10)).sort(Dp);for(const a of n){const l=this.nodesByDepth[a];for(const c of l){const p=c.outboundLayer,u=c.inputTensors,h=c.outputTensors,d=new Array;for(const m of u)m.id in s&&d.push(s[m.id]);if(d.length===u.length){let m={},f,g,y,w;if(c.callArgs!=null&&(m=c.callArgs),d.length===1){const[x,T]=d[0];m.mask==null&&(m.mask=T),y=qe(p.call(x,m)),w=qe(p.computeMask(x,T)),f=[x],g=[T]}else f=d.map(x=>x[0]),g=d.map(x=>x[1]),m.mask==null&&(m.mask=g),y=qe(p.call(f,m)),w=qe(p.computeMask(f,g));if(p.activityRegularizer)throw new ae("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let x=0;x{const e=[];for(const t of this.layers)for(let s=0;s0){const m=[];for(let f=0;f0&&f.apply(jt(y),w)}function l(f){const g=f.name,y=xs(f,t.customObjects!=null?t.customObjects:{});y.setFastWeightInitDuringBuild(n),i[g]=y;const w=f.inboundNodes;w.forEach(x=>{if(!(x instanceof Array))throw new k(`Corrupted configuration, expected array for nodeData: ${x}`);o(y,x)})}const c=t.name,p=t.layers;for(const f of p)l(f);for(;!wT(r);)for(const f of p){const g=i[f.name];if(g.name in r){const y=r[g.name];delete r[g.name];for(const w of y)a(g,w)}}const u=[],h=[],d=t.inputLayers;for(const f of d){const g=f[0],y=f[1],w=f[2];Qs(g in i);const x=i[g],T=x.inboundNodes[y].outputTensors;u.push(T[w])}const m=t.outputLayers;for(const f of m){const g=f[0],y=f[1],w=f[2];Qs(g in i);const x=i[g],T=x.inboundNodes[y].outputTensors;h.push(T[w])}return new e({inputs:u,outputs:h,name:c})}get stateful(){if(this._stateful)throw new k("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(const e of this.layers)if(e.stateful)return!0;return!1}resetStates(){C(()=>{this.layers.forEach(e=>{e.stateful&&e.resetStates()})})}}function jW(e,t,s){const n=t.length;if(e==null||Array.isArray(e)&&e.length===0)return t.map(i=>null);if(n===1)return Array.isArray(e)&&e.length===1?e:typeof e=="object"&&t[0]in e?[e[t[0]]]:[e];if(Array.isArray(e)){if(e.length!==n)throw new Error(`Provided ${s} is an array of ${e.length} element(s), but the model has ${n} outputs. Make sure a set of weights is provided for each model output.`);return e}else if(typeof e=="object"&&Object.keys(e).length>0&&typeof e[Object.keys(e)[0]]=="object"){const i=[];return t.forEach(r=>{r in e?i.push(e[r]):i.push(null)}),i}else throw new Error(`The model has multiple (${n}) outputs, so ${s} must be either an array with ${n} elements or an object with ${t} keys. Provided ${s} not understood: ${JSON.stringify(e)}`)}function Ed(e,t){return jW(e,t,"classWeight")}async function _d(e,t,s,n){if(t!=null||n!=null)throw new Error("Support sampleWeight is not implemented yet");if(s!=null){const i=C(()=>{if(e.shape.length===1)return e.clone();if(e.shape.length===2)if(e.shape[1]>1){const a=1;return e.argMax(a)}else{if(e.shape[1]===1)return e.reshape([e.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${e.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${e.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),r=Array.from(await i.data());ce(i);const o=[];return r.forEach(a=>{if(s[a]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${a} exists in the data but not in classWeight`);o.push(s[a])}),Oe(o,"float32")}else return null}function QT(e,t){return R(e,t)}const VW=32;function tA(e,t){let s,n;const i=t;s=i.xs,n=i.ys,N.assert(s!=null&&n!=null,()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${t}`);const r=eA("input",e.inputNames,s),o=eA("output",e.outputNames,n),a=r[0].shape[0];N.assert(r.length===e.inputs.length,()=>`LayersModel has ${e.inputs.length} inputs, but the dataset provides ${r.length} inputs. (Expected input keys: ${JSON.stringify(e.inputNames)})`),N.assert(o.length===e.outputs.length,()=>`LayersModel has ${e.outputs.length} outputs, but the dataset provides ${o.length} outputs. (Expected output keys: ${JSON.stringify(e.outputNames)})`);for(let l=0;l`Batch size mismatch: input ${e.inputNames[l]} has ${r[l].shape[0]}; expected ${a} based on input ${e.inputNames[0]}.`);for(let l=0;l`Batch size mismatch: output ${e.outputNames[l]} has ${o[l].shape[0]}; expected ${a} based on input ${e.inputNames[0]}.`);return{xs:r,ys:o}}function eA(e,t,s){if(s instanceof me)return[s];if(Array.isArray(s))return N.assert(s.length===t.length,()=>`Received an array of ${s.length} Tensors, but expected ${t.length} to match the ${e} keys ${t}.`),s;{const n=[];for(const i of t){if(s[i]==null)throw new k(`The feature data generated by the dataset lacks the required ${e} key '${i}'.`);n.push(s[i])}return n}}function GW(e){if(e.length===3)throw new ae("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}async function nA(e,t,s){const n=s.batchesPerEpoch!=null;if(N.assert(e.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),N.assert(s!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),N.assert(s.epochs!=null&&s.epochs>0&&Number.isInteger(s.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${s.epochs}`),N.assert(!n||s.batchesPerEpoch>0&&Number.isInteger(s.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${s.batchesPerEpoch}`),N.assert(s.validationSplit==null,()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead."),e.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");e.isTraining=!0;try{const i=s.validationData!=null;let r,o;if(i)if(sA(s.validationData))N.assert(s.validationBatches==null||s.validationBatches>0&&Number.isInteger(s.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${s.validationBatches}`);else{const g=GW(s.validationData);r=g.xs,o=g.ys}const a=e.makeTrainFunction(),l=e.getDedupedMetricsNames();let c;i?c=l.slice().concat(l.map(g=>"val_"+g)):c=l.slice();const p=Id(s.callbacks,s.yieldEvery),u=s.verbose==null?1:s.verbose,{callbackList:h,history:d}=vd(p,u,s.epochs,null,null,qW(t,s),null,i,c);h.setModel(e),e.history=d,await h.onTrainBegin(),e.stopTraining_=!1;let m=s.initialEpoch==null?0:s.initialEpoch,f=await t.iterator();for(;m=s.batchesPerEpoch:x.done){if(i){let T;sA(s.validationData)?T=qe(await e.evaluateDataset(s.validationData,{batches:s.validationBatches})):T=qe(e.evaluate(r,o,{batchSize:s.validationBatchSize==null?VW:s.validationBatchSize,verbose:0}));for(let A=0;A0)throw new ae("Verbose mode is not implemented yet.");N.assert(!n||s.batches>0&&Number.isInteger(s.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(s.batches)}`);const o=HW(t)?t:await t.iterator();let a=0,l=0;for(;n?l{if(c.value){const{xs:p,ys:u}=tA(e,c.value),h=p.concat(u),d=C(()=>i(h));if(ce(h),l===0)for(let f=0;f$(r[f],R(m,g))),l>0&&ce(y)}ce(d),a+=m,++l}return r}),c.done){n&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \`batches\` batches (in this case, ${s.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let c=0;c0&&Number.isInteger(e),()=>`batchSize is required to be a positive integer, but got ${e}`)}function El(e,t,s){return e==null?[null]:Array.isArray(e)?e.map(n=>Bi(n,t,s-t)):Bi(e,t,s-t)}function Dd(e,t){return C(()=>e==null?null:Array.isArray(e)?e.map(s=>Dd(s,t)):ld(e,t.dtype==="int32"?t:t.toInt()))}function Fd(e,t){const s=[];let n=0,i=null;for(;n=e&&(i=e),s.push([n,i]),n=i;return s}async function YW(e,t,s,n,i,r,o,a,l,c,p,u,h,d,m){i==null&&(i=32),r==null&&(r=1),p==null&&(p=!0),h==null&&(h=0);let f=!1;if(l!=null&&c!=null&&(f=!0),m!=null&&(f=!0,d==null))throw new k("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");const g=e.checkNumSamples(s,i,d,"steps_per_epoch");let y;g!=null&&(y=ls(0,g)),o==null&&(o=1);const{callbackList:w,history:x}=vd(a,o,r,h,g,d,i,f,u);w.setModel(e),e.history=x,await w.onTrainBegin(),e.stopTraining_=!1;for(let T=h;T{const M=E[F][0],P=E[F][1],B=Bi(_,M,P-M);D.batch=F,D.size=P-M;const Y=Dd(s,B),q=t(Y);for(let K=0;K0){if(m=!0,n.validationData.length===2)o=n.validationData[0],a=n.validationData[1];else throw n.validationData.length===3?new ae("validationData including sample weights is not supported yet."):new k(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${n.validationData} is invalid.`);const E=!0,F=await e.standardizeUserData(o,a,null,null,E,u);l=F[0],c=F[1],f=l.concat(c)}else if(n.validationSplit!=null&&n.validationSplit>0&&n.validationSplit<1){m=!0;const E=Math.floor(i[0].shape[0]*(1-n.validationSplit)),F=i[0].shape[0];l=El(i,E,F),i=El(i,0,E),c=El(r,E,F),r=El(r,0,E),f=l.concat(c)}else n.validationSteps!=null&&(m=!0);const g=i.concat(r).concat(p);e.checkTrainableWeightsConsistency();const y=e.makeTrainFunction(),w=e.getDedupedMetricsNames();let x,T;m?(e.makeTestFunction(),x=e.testFunction,T=w.slice().concat(w.map(E=>"val_"+E))):(x=null,f=[],T=w.slice());const A=Id(n.callbacks,n.yieldEvery),_=await YW(e,y,g,w,u,n.epochs,n.verbose,A,x,f,n.shuffle,T,n.initialEpoch,null,null);return _}finally{e.isTraining=!1,so(i,t),so(r,s),so(l,o),so(c,a),p!=null&&ce(p)}}function xb(e){const t=[];e instanceof me&&(e=[e]);for(let s=0;ss.push(i.id));else if(t!=null)for(const i in t){const r=t[i];s.push(r.id)}const n=[];if(e instanceof me)s.indexOf(e.id)===-1&&n.push(e);else if(Array.isArray(e))e.forEach(i=>{s.indexOf(i.id)===-1&&n.push(i)});else if(e!=null)for(const i in e){const r=e[i];s.indexOf(r.id)===-1&&n.push(r)}n.forEach(i=>{i.isDisposed||i.dispose()})}function KW(e){return e instanceof me}function Lb(e){return Array.isArray(e)}function oA(e){return!KW(e)&&!Lb(e)}function aA(e,t,s,n=!0,i=""){if(t==null||t.length===0){if(e!=null){let o=!1;if(Lb(e)&&e.length>0)o=!0;else if(oA(e)){for(const a in e)if(e.hasOwnProperty(a)){o=!0;break}}else o=!0;if(o)throw new k(`Error when checking model ${i} expected no data, but got ${e}`)}return[]}if(e==null)return t.map(o=>null);let r;if(oA(e)){e=e,r=[];for(const o of t){if(e[o]==null)throw new k(`No data provided for "${o}". Need data for each key in: ${t}`);r.push(e[o])}}else if(Lb(e)){if(e=e,e.length!==t.length)throw new k(`Error when checking model ${i}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${t.length} Tensor(s), but instead got the following list of Tensor(s): ${e}`);r=e}else{if(e=e,t.length>1)throw new k(`The model ${i} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${e.shape}`);r=[e]}if(r=xb(r),s!=null)for(let o=0;o=0&&c!==p)throw new k(`Error when checking ${i}: expected ${t[o]} to have shape [${s[o]}], but got array with shape [${a.shape}].`)}}return r}function XW(e,t,s){const n=Sn(e.map(r=>r.shape[0]));n.sort();const i=Sn(t.map(r=>r.shape[0]));if(i.sort(),n.length>1)throw new k(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(e.map(r=>r.shape))}`);if(i.length>1)throw new k(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(t.map(r=>r.shape))}`);if(n.length>0&&i.length>0&&!N.arraysEqual(n,i))throw new k(`Input Tensors should have the same number of samples as target Tensors. Found ${n[0]} input sample(s) and ${i[0]} target sample(s).`)}function JW(e,t,s){const n=[mi,Ol,ia];for(let i=0;i1)throw new k(`The model expects ${t.length} ${i} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(e.shape)}.`);r=[e]}if(s!=null)for(let o=0;o[]);let s;if(typeof e=="string"||typeof e=="function")s=[e];else if(Array.isArray(e)||typeof e=="object")s=e;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${e}`);if(Array.isArray(s))return t.map(n=>s);{const n=[];for(const i of t){let r=s.hasOwnProperty(i)?s[i]:[];Array.isArray(r)||(r=[r]),n.push(r)}return n}}const QW="layers-model";class tn extends $n{constructor(e){super(e);this.isTraining=!1}summary(e,t,s=console.log){if(!this.built)throw new k("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");KT(this,e,t,s)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=HT(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof fs))throw new k("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=e.optimizer,this.isOptimizerOwned=!1}let t=[];if(!Array.isArray(e.loss)&&typeof e.loss!="string"&&typeof e.loss!="function"){e.loss=e.loss;for(const r in e.loss)if(this.outputNames.indexOf(r)===-1)throw new k(`Unknown entry in loss dictionary: "${r}". Only expected the following keys: ${this.outputNames}`);for(const r of this.outputNames)e.loss[r]==null&&console.warn(`Output "${r}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${r} during training`),t.push(Td(e.loss[r]))}else if(Array.isArray(e.loss)){if(e.loss.length!==this.outputs.length)throw new k(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${e.loss}.`);const r=e.loss;t=r.map(o=>Td(o))}else{const r=Td(e.loss);this.outputs.forEach(o=>{t.push(r)})}this.lossFunctions=t,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let r=0;r{for(let r=0;r1&&(this.metricsTensors.push([o,r]),this.metricsNames.push(this.outputNames[r]+"_loss"))}});const n=ZW(e.metrics,this.outputNames),i=(r,o,a)=>{this.outputNames.length>1&&(o=this.outputNames[r]+"_"+o),this.metricsNames.push(o),this.metricsTensors.push([a,r])};Mn("metric",()=>{for(let r=0;r{const c="";let p,u,h;for(const d of l){if(typeof d=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(d)!==-1){const f=this.internalOutputShapes[r];f[f.length-1]===1||this.lossFunctions[r]===Ol?["accuracy","acc"].indexOf(d)!==-1?u=Yp:["crossentropy","ce"].indexOf(d)!==-1&&(u=Ad):this.lossFunctions[r]===Rl?["accuracy","acc"].indexOf(d)!==-1?u=Nd:["crossentropy","ce"].indexOf(d)!==-1&&(u=gb):["accuracy","acc"].indexOf(d)!==-1?u=Kp:["crossentropy","ce"].indexOf(d)!==-1&&(u=Xp);let g;["accuracy","acc"].indexOf(d)!==-1?g="acc":["crossentropy","ce"].indexOf(d)!==-1&&(g="ce"),h=u,p=c+g}else{const f=qT(d);h=f,p=c+Jp(d)}let m;Mn(p,()=>{m=h}),i(r,p,m)}};a(o)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){if(this.collectedTrainableWeights==null)return;this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")}evaluate(e,t,s={}){const n=s.batchSize==null?32:s.batchSize;kd(n);const i=!0,r=this.standardizeUserDataXY(e,t,i,n);try{const o=r[0].concat(r[1]);this.makeTestFunction();const a=this.testFunction,l=this.testLoop(a,o,n,s.verbose,s.steps);return jt(l)}finally{so(r[0],e),so(r[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),iA(this,e,t)}checkNumSamples(e,t,s,n="steps"){let i;if(s!=null){if(i=null,t!=null)throw new k(`If ${n} is set, batchSize must be null or undefined.Got batchSize = ${t}`)}else if(e!=null)Array.isArray(e)?i=e[0].shape[0]:i=e.shape[0];else throw new k(`Either the input data should have a defined shape, or ${n} shoud be specified.`);return i}execute(e,t){if(Array.isArray(t)&&t.length===0)throw new k("`outputs` is an empty Array, which is not allowed.");const s=Array.isArray(t),n=s?t:[t],i=this.retrieveSymbolicTensors(n),r=new Vi;if(e instanceof me&&(e=[e]),Array.isArray(e)){if(e.length!==this.inputs.length)throw new k(`The number of inputs provided (${e.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let a=0;ao.name);for(let o=0;o0){const n=[];throw t.forEach((i,r)=>{i==null&&n.push(e[r])}),new k(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(n)}`)}return t}predictLoop(e,t=32,s=!1){return C(()=>{const n=this.checkNumSamples(e);if(s)throw new ae("Verbose predictLoop() is not implemented yet.");const i=Fd(n,t),r=this.outputs.map(o=>[]);for(let o=0;o{const l=i[o][0],c=i[o][1],p=El(e,l,c),u=[];if(Array.isArray(p))for(let d=0;dr[c].push(l))}return jt(r.map(o=>be(o,0)))})}predict(e,t={}){const s=xb(e);lA(s,this.inputNames,this.feedInputShapes,!1);try{const n=t.batchSize==null?32:t.batchSize;return kd(n),this.predictLoop(s,n)}finally{so(s,e)}}predictOnBatch(e){lA(e,this.inputNames,this.feedInputShapes,!0);const t=(Array.isArray(e)?e[0]:e).shape[0];return this.predictLoop(e,t)}standardizeUserDataXY(e,t,s=!0,n){if(this.optimizer_==null)throw new Ts("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");const i=[];for(let r=0;r0&&e[0].shape[0]%n!==0)throw new k(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${n}. Found: ${e[0].shape[0]} sample(s).`);return[e,t]}async standardizeUserData(e,t,s,n,i=!0,r){const[o,a]=this.standardizeUserDataXY(e,t,i,r);if(s!=null)throw new Error("sample weight is not supported yet.");let l=null;if(n!=null){const c=Ed(n,this.outputNames);l=[];for(let p=0;p{const r=this.checkNumSamples(t,s,i,"steps"),o=[];if(n>0)throw new ae("Verbose mode is not implemented yet.");if(i!=null)throw new ae("steps mode in testLoop() is not implemented yet");{const a=Fd(r,s),l=Oe(ls(0,r));for(let c=0;c1){const r=sb(e.slice(0,s),n);i+=`_${r}`}t.push(i)}return t}makeTrainFunction(){return e=>{const t=[],s=e.slice(0,this.inputs.length),n=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),i=e.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),r=[],o=()=>{const p=[];for(let m=0;m1&&m{d=$(d,m)}),d},a=this.collectedTrainableWeights.map(p=>p.read()),l=!0,c=this.optimizer_.minimize(o,l,a);return[c].concat(r)}}makeTestFunction(){this.testFunction=e=>C(()=>{const t=[];let s;const n=e.slice(0,this.inputs.length),i=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),r=[];for(let l=0;lxn(t))}else{const t=Object.keys(this.loss);e={};const s=this.loss;for(const n of t)if(typeof s[n]=="string")e[n]=xn(s[n]);else throw new Error("Serialization of non-string loss is not supported.")}return e}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[xn(Jp(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>xn(Jp(e)));{const e={};for(const t in this.metrics)e[t]=xn(Jp(this.metrics[t]));return e}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(e){if(e.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(e.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(e.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");const t=ra(e.optimizer_config),s=xs(t);let n;if(typeof e.loss=="string")n=$i(e.loss);else if(Array.isArray(e.loss))n=e.loss.map(r=>$i(r));else if(e.loss!=null){n={};for(const r in e.loss)n[r]=$i(e.loss[r])}let i;if(Array.isArray(e.metrics))i=e.metrics.map(r=>$i(r));else if(e.metrics!=null){i={};for(const r in e.metrics)i[r]=$i(e.metrics[r])}this.compile({loss:n,metrics:i,optimizer:s})}async save(e,t){if(typeof e=="string"){const l=Rt.getSaveHandlers(e);if(l.length===0)throw new k(`Cannot find any save handlers for URL '${e}'`);if(l.length>1)throw new k(`Found more than one (${l.length}) save handlers for URL '${e}'`);e=l[0]}if(e.save==null)throw new k("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");const s=await Rt.encodeWeights(this.getNamedWeights(t)),n=!1,i=null,r=this.toJSON(i,n),o={modelTopology:r,format:QW,generatedBy:`TensorFlow.js tfjs-layers v${to}`,convertedBy:null},a=t==null?!1:t.includeOptimizer;if(a&&this.optimizer!=null){o.trainingConfig=this.getTrainingConfig();const l="optimizer",{data:c,specs:p}=await Rt.encodeWeights(await this.optimizer.getWeights(),l);s.specs.push(...p),s.data=Rt.concatenateArrayBuffers([s.data,c])}if(this.userDefinedMetadata!=null){const l=!0;bb(this.userDefinedMetadata,this.name,l),o.userDefinedMetadata=this.userDefinedMetadata}return o.weightData=s.data,o.weightSpecs=s.specs,e.save(o)}setUserDefinedMetadata(e){bb(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}}tn.className="Model";V.registerClass(tn);class cA extends tn{}cA.className="Functional";V.registerClass(cA);async function pA(e,t){"modelTopology"in e||(e={modelTopology:e}),e=e;let s=e.modelTopology;s.model_config!=null&&(s=s.model_config);const n=ra(s),i=xs(n,t);if(e.weightsManifest!=null){const r=await Rt.loadWeights(e.weightsManifest,e.pathPrefix,i.weights.map(a=>a.originalName)),o={};for(const a of i.weights)o[a.originalName]=r[a.originalName];i.loadWeights(o),ce(r)}return i}async function uA(e,t){if(t==null&&(t={}),typeof e=="string"){const s=Rt.getLoadHandlers(e,t);if(s.length===0)s.push(Rt.browserHTTPRequest(e,t));else if(s.length>1)throw new k(`Found more than one (${s.length}) load handlers for URL '${e}'`);e=s[0]}return ez(e,void 0,t)}async function ez(e,t,s){if(s==null&&(s={}),e.load==null)throw new k("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");const n=await e.load();let i=n.modelTopology;i.model_config!=null&&(i=i.model_config);const r=s.strict==null?!0:s.strict,o=n.weightData!=null&&n.weightSpecs!=null&&r,a=xs(ra(i),t,o),l=n.trainingConfig;if(l!=null&&a.loadTrainingConfig(l),n.userDefinedMetadata!=null&&a.setUserDefinedMetadata(n.userDefinedMetadata),n.weightData!=null){if(n.weightSpecs==null)throw new k("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");const{modelWeights:c,optimizerWeights:p}=tz(n.weightData,n.weightSpecs);a.loadWeights(c,r),a.optimizer!=null&&p.length>0&&await a.optimizer.setWeights(p),ce(c),ce(p.map(u=>u.tensor))}return a}function tz(e,t){const s=Rt.decodeWeights(e,t),n={},i=[];return t.forEach(r=>{r.group==="optimizer"?i.push({name:r.name,tensor:s[r.name]}):n[r.name]=s[r.name]}),{modelWeights:n,optimizerWeights:i}}class no extends tn{constructor(e){super({inputs:[],outputs:[]});if(e=e||{},this.trainable=!0,this.built=!1,this.name=e.name!=null?e.name:Qr("sequential_"),e.layers!=null)for(const t of e.layers)this.add(t)}checkShape(e){const t=e.inboundNodes[0].outputTensors[0].shape;if(t.some(s=>s<0))throw new k(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){const t=e instanceof no||e instanceof tn;let s;if(t){if(s=e,s.outputs.length!==1)throw new k("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(s.inputs.length!==1)throw new k("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(e.inboundNodes.length===0){if(e.batchInputShape==null)throw new k("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");const n=Ld({batchShape:e.batchInputShape,dtype:e.dtype,name:e.name+"_input"});e.apply(n)}if(t)this.outputs=s.outputs,this.inputs=s.inputs;else{if(e.inboundNodes.length!==1)throw new k(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${e.name} which has ${e.inboundNodes.length} pre-existing inbound connections.`);if(e.inboundNodes[0].outputTensors.length!==1)throw new k("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[e.inboundNodes[0].outputTensors[0]],this.inputs=ub(this.outputs[0])}this.inboundNodes=[],new sa({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:wn(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(n=>n.shape),outputShapes:this.outputs[0].shape})}else{const n=e.apply(this.outputs[0]);if(Array.isArray(n))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[n],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(e),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{const e=this.layers.length-1;this.layers[e].outboundNodes=[],this.outputs=[this.layers[e].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(e,t){return this.model==null&&this.build(),this.model.call(e,t)}build(e){if(Ue(e),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new tn({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(e,t,s=console.log){this.built||this.build(),super.summary(e,t,s)}setWeights(e){this.model==null&&this.build(),this.model.setWeights(e)}evaluate(e,t,s={}){if(!this.built)throw new Ts("The model needs to be compiled before being used.");return this.model.evaluate(e,t,s)}async evaluateDataset(e,t){if(!this.built)throw new Ts("The model needs to be compiled before being used.");return this.model.evaluateDataset(e,t)}predict(e,t={}){return this.model==null&&this.build(),this.model.predict(e,t)}predictOnBatch(e){return this.model==null&&this.build(),this.model.predictOnBatch(e)}compile(e){this.build(),this.model.compile(e),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return this.model==null?void 0:this.model.optimizer}set optimizer(e){this.model.optimizer=e}async fit(e,t,s={}){if(!this.built)throw new Ts("The model needs to be compiled before being used.");return this.model.fit(e,t,s)}async fitDataset(e,t){if(!this.built)throw new Ts("The model needs to be compiled before being used.");return this.model.fitDataset(e,t)}async trainOnBatch(e,t){return this.model.trainOnBatch(e,t)}static fromConfig(e,t,s={},n=!1){let i,r={};if(t instanceof Array){if(!(t[0].className!=null)||t[0].className==="Merge")throw new k("Legacy serialization format not supported yet.");i=t}else N.assert(t.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),i=t.layers,delete t.layers,r=t;const o=new e(r);if(!(o instanceof no))throw new ae(`Sequential.fromConfig called on non-Sequential input: ${o}`);for(const a of i){const l=void 0,c=xs(a,l,n);n&&c.setFastWeightInitDuringBuild(!0),o.add(c)}return o}set stopTraining(e){if(this.model==null)throw new k("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=e}get stopTraining(){if(this.model==null)throw new k("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){const e=[];for(const t of this.layers){const s={};s.className=t.getClassName(),s.config=t.getConfig(),e.push(s)}return{name:this.name,layers:e}}}no.className="Sequential";V.registerClass(no);function hA(e){return new tn(e)}function dA(e){return new no(e)}function mA(e,t){return t==null&&(t={}),uA(e,t)}function Md(e){return Ld(e)}function fA(e,t){en.registerCallbackConstructor(e,t)}class zs extends V.Serializable{getConfig(){return{}}}class gA extends zs{apply(e,t=1){return FT(e,t)}}gA.className="elu";V.registerClass(gA);class yA extends zs{apply(e){return dl(e)}}yA.className="selu";V.registerClass(yA);class bA extends zs{apply(e){return De(e)}}bA.className="relu";V.registerClass(bA);class wA extends zs{apply(e){return C(()=>mn(6,De(e)))}}wA.className="relu6";V.registerClass(wA);class xA extends zs{apply(e){return e}}xA.className="linear";V.registerClass(xA);class LA extends zs{apply(e){return rs(e)}}LA.className="sigmoid";V.registerClass(LA);class SA extends zs{apply(e){return UT(e)}}SA.className="hardSigmoid";V.registerClass(SA);class IA extends zs{apply(e){return pi(e)}}IA.className="softplus";V.registerClass(IA);class vA extends zs{apply(e){return MT(e)}}vA.className="softsign";V.registerClass(vA);class TA extends zs{apply(e){return ki(e)}}TA.className="tanh";V.registerClass(TA);class Ud extends zs{apply(e,t=-1){return es(e,t)}}Ud.className="softmax";V.registerClass(Ud);class AA extends zs{apply(e,t=-1){return al(e,t)}}AA.className="logSoftmax";V.registerClass(AA);class NA extends zs{apply(e,t=1){return C(()=>rs(e.mul(t)).mul(e))}}NA.className="swish";V.registerClass(NA);function Wn(e){return e.getClassName()}function Sb(e,t={}){return hi(e,V.SerializationMap.getMap().classNameMap,t,"activation")}function zn(e){if(e==null){const t={};return t.className="linear",t.config={},Sb(t)}if(typeof e=="string"){const t={};return t.className=e,t.config={},Sb(t)}else return e instanceof zs?e:Sb(e)}function Ib(e){if(e!=null&&typeof e!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${e}`)}class CA extends V.Serializable{}class _l extends CA{constructor(e){super();Ib(e),this.l1=e==null||e.l1==null?.01:e.l1,this.l2=e==null||e.l2==null?.01:e.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(e){return C(()=>{let t=ye([1]);return this.hasL1&&(t=$(t,te(R(this.l1,et(e))))),this.hasL2&&(t=$(t,te(R(this.l2,ta(e))))),t.asScalar()})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}}_l.className="L1L2";V.registerClass(_l);function RA(e){return Ib(e),new _l({l1:e!=null?e.l1:null,l2:0})}function OA(e){return Ib(e),new _l({l2:e!=null?e.l2:null,l1:0})}const EA={l1l2:"L1L2"};function Pe(e){return xl(e)}function _A(e,t={}){return hi(e,V.SerializationMap.getMap().classNameMap,t,"regularizer")}function He(e){if(e==null)return null;if(typeof e=="string"){const t=e in EA?EA[e]:e,s={className:t,config:{}};return _A(s)}else return e instanceof CA?e:_A(e)}class $d extends Le{constructor(e){super(e??{});this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=we(e);let s=De(e);return this.maxValue!=null&&(s=wt(s,0,this.maxValue)),s}computeOutputShape(e){return e}getConfig(){const e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}}$d.className="ReLU";V.registerClass($d);class Wd extends Le{constructor(e){super(e??{});this.DEFAULT_ALPHA=.3,e==null&&(e={}),this.alpha=e.alpha==null?this.DEFAULT_ALPHA:e.alpha}call(e,t){const s=we(e);return rl(s,this.alpha)}computeOutputShape(e){return e}getConfig(){const e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}}Wd.className="LeakyReLU";V.registerClass(Wd);class zd extends Le{constructor(e){super(e??{});if(this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=Be(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=He(e.alphaRegularizer),this.alphaConstraint=rt(e.alphaConstraint),e.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(e.sharedAxes))this.sharedAxes=e.sharedAxes;else if(typeof e.sharedAxes=="number")this.sharedAxes=[e.sharedAxes];else throw new k(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`)}build(e){e=Ue(e);const t=e.slice(1);if(this.sharedAxes!=null)for(const n of this.sharedAxes)t[n-1]=1;this.alpha=this.addWeight("alpha",t,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);const s={};if(this.sharedAxes!=null)for(let n=1;n(ot(t),t==="channelsFirst"?se(e,[0,2,3,1]):e))}function vb(e,t){return C(()=>(ot(t),t==="channelsFirst"?se(e,[0,2,3,4,1]):e))}function sz(e,t,s,n=1,i="valid",r,o=1){return C(()=>{if(r==null&&(r=gs()),ot(r),e.shape.length!==3)throw new k(`The input of a conv1dWithBias operation should be 3, but is ${e.shape.length} instead.`);if(t.shape.length!==3)throw new k(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(s!=null&&s.shape.length!==1)throw new k(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(r==="channelsFirst"&&(e=se(e,[0,2,1])),i==="causal")throw new ae("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let a=Qa(e,t,n,i==="same"?"same":"valid","NWC",o);return s!=null&&(a=As(a,s)),a})}function kA(e,t,s,n=[1,1],i="valid",r,o,a=null){return C(()=>{if(r==null&&(r=gs()),ot(r),e.rank!==3&&e.rank!==4)throw new k(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${e.rank}.`);if(t.rank!==3&&t.rank!==4)throw new k(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${e.rank}.`);let l=Qp(e,r);if(i==="causal")throw new ae("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=gn.conv2d({x:l,filter:t,strides:n,pad:i==="same"?"same":"valid",dilations:o,dataFormat:"NHWC",bias:s,activation:a}),r==="channelsFirst"&&(l=se(l,[0,3,1,2])),l})}function nz(e,t,s,n=[1,1,1],i="valid",r,o){return C(()=>{if(r==null&&(r=gs()),ot(r),e.rank!==4&&e.rank!==5)throw new k(`conv3dWithBias expects input to be of rank 4 or 5, but received ${e.rank}.`);if(t.rank!==4&&t.rank!==5)throw new k(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${e.rank}.`);let a=vb(e,r);if(i==="causal")throw new ae("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return a=sl(a,t,n,i==="same"?"same":"valid","NDHWC",o),s!=null&&(a=As(a,s)),r==="channelsFirst"&&(a=se(a,[0,4,1,2,3])),a})}class Vd extends Le{constructor(e,t){super(t);if(this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",Vd.verifyArgs(t),this.rank=e,gt(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new ae(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=io(t.kernelSize,e,"kernelSize"),this.strides=io(t.strides==null?1:t.strides,e,"strides"),this.padding=t.padding==null?"valid":t.padding,ys(this.padding),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,ot(this.dataFormat),this.activation=zn(t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.biasInitializer=Be(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=rt(t.biasConstraint),this.biasRegularizer=He(t.biasRegularizer),this.activityRegularizer=He(t.activityRegularizer),this.dilationRate=io(t.dilationRate==null?1:t.dilationRate,e,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new k(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new k(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new k(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(e){if(Qs("kernelSize"in e,"required key 'kernelSize' not in config"),typeof e.kernelSize!="number"&&!Qh(e.kernelSize,"number",1,3))throw new k(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(e.kernelSize)}.`)}getConfig(){const e={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:Wn(this.activation),useBias:this.useBias,biasInitializer:Je(this.biasInitializer),biasRegularizer:Pe(this.biasRegularizer),activityRegularizer:Pe(this.activityRegularizer),biasConstraint:it(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}}class eu extends Vd{constructor(e,t){super(e,t);this.kernel=null,eu.verifyArgs(t),this.filters=t.filters,gt(this.filters,"filters"),this.kernelInitializer=Be(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=rt(t.kernelConstraint),this.kernelRegularizer=He(t.kernelRegularizer)}build(e){e=Ue(e);const t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new k(`The channel dimension of the input should be defined. Found ${e[t]}`);const s=e[t],n=this.kernelSize.concat([s,this.filters]);this.kernel=this.addWeight("kernel",n,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[t]:s}}],this.built=!0}call(e,t){return C(()=>{e=we(e);let s;const n=this.bias==null?null:this.bias.read(),i=ed(this.activation.getClassName());if(i!=null&&this.rank===2)s=kA(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate,i);else{if(this.rank===1)s=sz(e,this.kernel.read(),n,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)s=kA(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)s=nz(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new ae("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(s=this.activation.apply(s))}return s})}computeOutputShape(e){e=Ue(e);const t=[],s=this.dataFormat==="channelsLast"?e.slice(1,e.length-1):e.slice(2);for(let i=0;i 0 but got ${JSON.stringify(e.filters)}`)}}class kl extends eu{constructor(e){super(2,e);kl.verifyArgs(e)}getConfig(){const e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!Qh(e.kernelSize,"number",1,2))throw new k(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}}kl.className="Conv2D";V.registerClass(kl);class tu extends eu{constructor(e){super(3,e);tu.verifyArgs(e)}getConfig(){const e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!(Array.isArray(e.kernelSize)&&(e.kernelSize.length===1||e.kernelSize.length===3)))throw new k(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}}tu.className="Conv3D";V.registerClass(tu);class Gd extends kl{constructor(e){super(e);if(this.inputSpec=[new st({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new k(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=Ue(e),e.length!==4)throw new k("Input should have rank 4; Received input shape: "+JSON.stringify(e));const t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new k("The channel dimension of the inputs should be defined. Found `None`.");const s=e[t],n=this.kernelSize.concat([this.filters,s]);this.kernel=this.addWeight("kernel",n,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new st({ndim:4,axes:{[t]:s}})],this.built=!0}call(e,t){return C(()=>{let s=we(e);if(s.shape.length!==4)throw new k(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${s.shape.length}`);const n=s.shape,i=n[0];let r,o;this.dataFormat==="channelsFirst"?(r=2,o=3):(r=1,o=2);const a=n[r],l=n[o],c=this.kernelSize[0],p=this.kernelSize[1],u=this.strides[0],h=this.strides[1],d=Zp(a,u,c,this.padding),m=Zp(l,h,p,this.padding),f=[i,d,m,this.filters];this.dataFormat!=="channelsLast"&&(s=se(s,[0,2,3,1]));let g=tl(s,this.kernel.read(),f,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(g=se(g,[0,3,1,2])),this.bias!=null&&(g=As(g,this.bias.read(),this.dataFormat)),this.activation!=null&&(g=this.activation.apply(g)),g})}computeOutputShape(e){e=Ue(e);const t=e.slice();let s,n,i;this.dataFormat==="channelsFirst"?(s=1,n=2,i=3):(s=3,n=1,i=2);const r=this.kernelSize[0],o=this.kernelSize[1],a=this.strides[0],l=this.strides[1];return t[s]=this.filters,t[n]=Zp(t[n],a,r,this.padding),t[i]=Zp(t[i],l,o,this.padding),t}getConfig(){const e=super.getConfig();return delete e.dilationRate,e}}Gd.className="Conv2DTranspose";V.registerClass(Gd);class DA extends eu{constructor(e,t){super(e,t);if(this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,t.filters==null)throw new k("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(t.kernelInitializer!=null||t.kernelRegularizer!=null||t.kernelConstraint!=null)throw new k("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(t.padding!=null&&t.padding!=="same"&&t.padding!=="valid")throw new k(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(t.padding)}`);this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=Be(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=He(t.depthwiseRegularizer),this.depthwiseConstraint=rt(t.depthwiseConstraint),this.pointwiseInitializer=Be(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=He(t.pointwiseRegularizer),this.pointwiseConstraint=rt(t.pointwiseConstraint)}build(e){if(e=Ue(e),e.length{e=we(e);let s;if(this.rank===1)throw new ae("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=se(e,[0,2,3,1])),s=Vr(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(s=As(s,this.bias.read(),this.dataFormat)),this.activation!=null&&(s=this.activation.apply(s)),this.dataFormat==="channelsFirst"&&(s=se(s,[0,3,1,2])),s})}getConfig(){const e=super.getConfig();return delete e.rank,delete e.kernelInitializer,delete e.kernelRegularizer,delete e.kernelConstraint,e.depthwiseInitializer=Je(this.depthwiseInitializer),e.pointwiseInitializer=Je(this.pointwiseInitializer),e.depthwiseRegularizer=Pe(this.depthwiseRegularizer),e.pointwiseRegularizer=Pe(this.pointwiseRegularizer),e.depthwiseConstraint=it(this.depthwiseConstraint),e.pointwiseConstraint=it(this.pointwiseConstraint),e}}DA.className="SeparableConv";class qd extends DA{constructor(e){super(2,e)}}qd.className="SeparableConv2D";V.registerClass(qd);class su extends eu{constructor(e){super(1,e);su.verifyArgs(e),this.inputSpec=[{ndim:3}]}getConfig(){const e=super.getConfig();return delete e.rank,delete e.dataFormat,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!Qh(e.kernelSize,"number",1,1))throw new k(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}}su.className="Conv1D";V.registerClass(su);class Hd extends Le{constructor(e){super(e);typeof e.cropping=="number"?this.cropping=[[e.cropping,e.cropping],[e.cropping,e.cropping]]:typeof e.cropping[0]=="number"?this.cropping=[[e.cropping[0],e.cropping[0]],[e.cropping[1],e.cropping[1]]]:this.cropping=e.cropping,this.dataFormat=e.dataFormat===void 0?"channelsLast":e.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(e){return this.dataFormat==="channelsFirst"?[e[0],e[1],e[2]-this.cropping[0][0]-this.cropping[0][1],e[3]-this.cropping[1][0]-this.cropping[1][1]]:[e[0],e[1]-this.cropping[0][0]-this.cropping[0][1],e[2]-this.cropping[1][0]-this.cropping[1][1],e[3]]}call(e,t){return C(()=>{if(e=we(e),this.dataFormat==="channelsLast"){const s=Up(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return Up(s,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{const s=Up(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return Up(s,this.cropping[1][0],e.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){const e={cropping:this.cropping,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}Hd.className="Cropping2D";V.registerClass(Hd);class Yd extends Le{constructor(e){super(e);this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=e.size==null?this.DEFAULT_SIZE:e.size,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat}computeOutputShape(e){if(this.dataFormat==="channelsFirst"){const t=e[2]==null?null:this.size[0]*e[2],s=e[3]==null?null:this.size[1]*e[3];return[e[0],e[1],t,s]}else{const t=e[1]==null?null:this.size[0]*e[1],s=e[2]==null?null:this.size[1]*e[2];return[e[0],t,s,e[3]]}}call(e,t){return C(()=>{let s=we(e);const n=s.shape;if(this.dataFormat==="channelsFirst"){s=se(s,[0,2,3,1]);const i=this.size[0]*n[2],r=this.size[1]*n[3],o=s.resizeNearestNeighbor([i,r]);return se(o,[0,3,1,2])}else{const i=this.size[0]*n[1],r=this.size[1]*n[2];return s.resizeNearestNeighbor([i,r])}})}getConfig(){const e={size:this.size,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}Yd.className="UpSampling2D";V.registerClass(Yd);function iz(e,t,s=[1,1],n="valid",i,r){return C(()=>{i==null&&(i=gs()),ot(i);let o=Qp(e,i);if(e.rank!==4)throw new k(`Input for depthwiseConv2d is required to be 4-D, but is instead ${e.rank}-D`);if(t.rank!==4)throw new k(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return o=un(o,t,s,n==="same"?"same":"valid","NHWC",r),i==="channelsFirst"&&(o=se(o,[0,3,1,2])),o})}class Kd extends Vd{constructor(e){super(2,e);this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=Be(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=rt(e.depthwiseConstraint),this.depthwiseRegularizer=He(e.depthwiseRegularizer)}build(e){if(e=Ue(e),e.length<4)throw new k(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(e)}.`);const t=this.dataFormat==="channelsFirst"?1:3;if(e[t]==null||e[t]<0)throw new k(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${e[t]}).`);const s=e[t],n=[this.kernelSize[0],this.kernelSize[1],s,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",n,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[s*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return C(()=>{e=we(e);let s=iz(e,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(s=As(s,this.bias.read(),this.dataFormat)),this.activation!=null&&(s=this.activation.apply(s)),s})}computeOutputShape(e){e=Ue(e);const t=this.dataFormat==="channelsFirst"?e[2]:e[1],s=this.dataFormat==="channelsFirst"?e[3]:e[2],n=this.dataFormat==="channelsFirst"?e[1]*this.depthMultiplier:e[3]*this.depthMultiplier,i=Ns(t,this.kernelSize[0],this.padding,this.strides[0]),r=Ns(s,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[e[0],n,i,r]:[e[0],i,r,n]}getConfig(){const e=super.getConfig();return e.depthMultiplier=this.depthMultiplier,e.depthwiseInitializer=Je(this.depthwiseInitializer),e.depthwiseRegularizer=Pe(this.depthwiseRegularizer),e.depthwiseConstraint=it(this.depthwiseRegularizer),e}}Kd.className="DepthwiseConv2D";V.registerClass(Kd);function Tb(e,t,s,n){if(Array.isArray(e)){if(t!=null||s!=null)throw new k("When inputs is an array, neither initialState or constants should be provided");n!=null&&(s=e.slice(e.length-n,e.length),e=e.slice(0,e.length-n)),e.length>1&&(t=e.slice(1,e.length)),e=e[0]}function i(r){return r==null||Array.isArray(r)?r:[r]}return t=i(t),s=i(s),{inputs:e,initialState:t,constants:s}}function Ab(e,t,s,n=!1,i,r,o=!1,a=!1){return C(()=>{const l=t.shape.length;if(l<3)throw new k(`Input should be at least 3D, but is ${l}D.`);const c=[1,0].concat(ls(2,l));if(t=se(t,c),r!=null)throw new ae("The rnn() functoin of the deeplearn.js backend does not support constants yet.");o&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),i!=null&&(i=i.asType("bool").asType("float32"),i.rank===l-1&&(i=Mt(i,-1)),i=se(i,c)),n&&(t=Et(t,0),i!=null&&(i=Et(i,0)));const p=[];let u,h=s;const d=t.shape[0],m=Ge(t);let f;i!=null&&(f=Ge(i));for(let y=0;ye(w,h));if(i==null)u=x[0],h=x[1];else{const T=C(()=>{const A=f[y],_=Ot(A).sub(A),E=x[0].mul(A).add(h[0].mul(_)),F=h.map((D,M)=>x[1][M].mul(A).add(D.mul(_)));return{output:E,newStates:F}});u=T.output,h=T.newStates}a&&p.push(u)}let g;if(a){const y=1;g=Ve(p,y)}return[u,g,h]})}class sn extends Le{constructor(e){super(e);let t;if(e.cell==null)throw new k("cell property is missing for the constructor of RNN.");if(Array.isArray(e.cell)?t=new nu({cells:e.cell}):t=e.cell,t.stateSize==null)throw new k("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=t,this.returnSequences=e.returnSequences==null?!1:e.returnSequences,this.returnState=e.returnState==null?!1:e.returnState,this.goBackwards=e.goBackwards==null?!1:e.goBackwards,this._stateful=e.stateful==null?!1:e.stateful,this.unroll=e.unroll==null?!1:e.unroll,this.supportsMasking=!0,this.inputSpec=[new st({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){const e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return ls(0,e).map(t=>null)}else return this.states_}setStates(e){this.states_=e}computeOutputShape(e){wd(e)&&(e=e[0]),e=e;let t=this.cell.stateSize;Array.isArray(t)||(t=[t]);const s=t[0];let n;if(this.returnSequences?n=[e[0],e[1],s]:n=[e[0],s],this.returnState){const i=[];for(const r of t)i.push([e[0],r]);return[n].concat(i)}else return n}computeMask(e,t){return C(()=>{Array.isArray(t)&&(t=t[0]);const s=this.returnSequences?t:null;if(this.returnState){const n=this.states.map(i=>null);return[s].concat(n)}else return s})}get states(){if(this.states_==null){const e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,t=[];for(let s=0;so.shape[o.shape.length-1]),r))throw new k(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=r.map(o=>new st({shape:[null,o]}));this.stateful&&this.resetStates()}resetStates(e,t=!1){C(()=>{if(!this.stateful)throw new bn("Cannot call resetStates() on an RNN Layer that is not stateful.");const s=this.inputSpec[0].shape[0];if(s==null)throw new k("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(n=>ye([s,n])):this.states_=[ye([s,this.cell.stateSize])];else if(e==null)ce(this.states_),this.keptStates!=null&&(ce(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(n=>ye([s,n])):this.states_[0]=ye([s,this.cell.stateSize]);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new k(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t===!0?this.keptStates.push(this.states_.slice()):ce(this.states_);for(let n=0;npt(n.clone()))})}apply(e,t){let s=t==null?null:t.initialState,n=t==null?null:t.constants;t==null&&(t={});const i=Tb(e,s,n,this.numConstants);e=i.inputs,s=i.initialState,n=i.constants;let r=[],o=[];if(s!=null){t.initialState=s,r=r.concat(s),this.stateSpec=[];for(const l of s)this.stateSpec.push(new st({shape:l.shape}));o=o.concat(this.stateSpec)}n!=null&&(t.constants=n,r=r.concat(n),this.numConstants=n.length);const a=r[0]instanceof ws;if(a){const l=[e].concat(r),c=this.inputSpec.concat(o),p=this.inputSpec;this.inputSpec=c;const u=super.apply(l,t);return this.inputSpec=p,u}else return super.apply(e,t)}call(e,t){return C(()=>{const s=t==null?null:t.mask,n=t==null?null:t.training;let i=t==null?null:t.initialState;e=we(e),i==null&&(this.stateful?i=this.states_:i=this.getInitialState(e));const r=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(i.length!==r)throw new k(`RNN Layer has ${r} state(s) but was passed ${i.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");const o={training:n},a=(d,m)=>{const f=this.cell.call([d].concat(m),o);return[f[0],f.slice(1)]},l=Ab(a,e,i,this.goBackwards,s,null,this.unroll,this.returnSequences),c=l[0],p=l[1],u=l[2];this.stateful&&this.resetStates(u,n);const h=this.returnSequences?p:c;return this.returnState?[h].concat(u):h})}getInitialState(e){return C(()=>{let t=ye(e.shape);return t=te(t,[1,2]),t=Pi(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(s=>s>1?ad(t,[1,s]):t):this.cell.stateSize>1?[ad(t,[1,this.cell.stateSize])]:[t]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(e)}getConfig(){const e=super.getConfig(),t={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(t.numConstants=this.numConstants);const s=this.cell.getConfig();return this.getClassName()===sn.className&&(t.cell={className:this.cell.getClassName(),config:s}),Object.assign({},s,e,t)}static fromConfig(e,t,s={}){const n=t.cell,i=xs(n,s);return new e(Object.assign(t,{cell:i}))}}sn.className="RNN";V.registerClass(sn);class ro extends Le{}class iu extends ro{constructor(e){super(e);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,gt(this.units,"units"),this.activation=zn(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=Be(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Be(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Be(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=He(e.kernelRegularizer),this.recurrentRegularizer=He(e.recurrentRegularizer),this.biasRegularizer=He(e.biasRegularizer),this.kernelConstraint=rt(e.kernelConstraint),this.recurrentConstraint=rt(e.recurrentConstraint),this.biasConstraint=rt(e.biasConstraint),this.dropout=ea([1,Un([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=ea([1,Un([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Ue(e),this.kernel=this.addWeight("kernel",[e[e.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return C(()=>{if(e=e,e.length!==2)throw new k(`SimpleRNNCell expects 2 input Tensors, got ${e.length}.`);let s=e[1];e=e[0];const n=t.training==null?!1:t.training;0Ot(e),rate:this.dropout,training:n})),0Ot(s),rate:this.recurrentDropout,training:n}));let i;const r=this.dropoutMask,o=this.recurrentDropoutMask;r!=null?i=vn(R(e,r),this.kernel.read()):i=vn(e,this.kernel.read()),this.bias!=null&&(i=As(i,this.bias.read())),o!=null&&(s=R(s,o));let a=$(i,vn(s,this.recurrentKernel.read()));return this.activation!=null&&(a=this.activation.apply(a)),[a,a]})}getConfig(){const e=super.getConfig(),t={units:this.units,activation:Wn(this.activation),useBias:this.useBias,kernelInitializer:Je(this.kernelInitializer),recurrentInitializer:Je(this.recurrentInitializer),biasInitializer:Je(this.biasInitializer),kernelRegularizer:Pe(this.kernelRegularizer),recurrentRegularizer:Pe(this.recurrentRegularizer),biasRegularizer:Pe(this.biasRegularizer),activityRegularizer:Pe(this.activityRegularizer),kernelConstraint:it(this.kernelConstraint),recurrentConstraint:it(this.recurrentConstraint),biasConstraint:it(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign({},e,t)}}iu.className="SimpleRNNCell";V.registerClass(iu);class Xd extends sn{constructor(e){e.cell=new iu(e),super(e)}call(e,t){return C(()=>{this.cell.dropoutMask!=null&&(ce(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(ce(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);const s=t==null?null:t.mask,n=t==null?null:t.training,i=t==null?null:t.initialState;return super.call(e,{mask:s,training:n,initialState:i})})}static fromConfig(e,t){return new e(t)}}Xd.className="SimpleRNN";V.registerClass(Xd);class ru extends ro{constructor(e){super(e);if(this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.resetAfter)throw new k("GRUCell does not support reset_after parameter set to true.");this.units=e.units,gt(this.units,"units"),this.activation=zn(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=zn(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=Be(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Be(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Be(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=He(e.kernelRegularizer),this.recurrentRegularizer=He(e.recurrentRegularizer),this.biasRegularizer=He(e.biasRegularizer),this.kernelConstraint=rt(e.kernelConstraint),this.recurrentConstraint=rt(e.recurrentConstraint),this.biasConstraint=rt(e.biasConstraint),this.dropout=ea([1,Un([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=ea([1,Un([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Ue(e);const t=e[e.length-1];this.kernel=this.addWeight("kernel",[t,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return C(()=>{if(e=e,e.length!==2)throw new k(`GRUCell expects 2 input Tensors (inputs, h, c), got ${e.length}.`);const s=t.training==null?!1:t.training;let n=e[1];e=e[0],0Ot(e),rate:this.dropout,training:s,count:3})),0Ot(n),rate:this.recurrentDropout,training:s,count:3}));const i=this.dropoutMask,r=this.recurrentDropoutMask;let o,a,l;0{this.cell.dropoutMask!=null&&(ce(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(ce(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);const s=t==null?null:t.mask,n=t==null?null:t.training,i=t==null?null:t.initialState;return super.call(e,{mask:s,training:n,initialState:i})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}}Jd.className="GRU";V.registerClass(Jd);class aa extends ro{constructor(e){super(e);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,gt(this.units,"units"),this.activation=zn(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=zn(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=Be(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=Be(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=Be(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=He(e.kernelRegularizer),this.recurrentRegularizer=He(e.recurrentRegularizer),this.biasRegularizer=He(e.biasRegularizer),this.kernelConstraint=rt(e.kernelConstraint),this.recurrentConstraint=rt(e.recurrentConstraint),this.biasConstraint=rt(e.biasConstraint),this.dropout=ea([1,Un([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=ea([1,Un([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;e=Ue(e);const s=e[e.length-1];this.kernel=this.addWeight("kernel",[s,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let n;if(this.useBias){if(this.unitForgetBias){const i=this.biasInitializer,r=this.units;n=new(t=class extends Ws{apply(a,l){const c=i.apply([r]),p=new vl().apply([r]),u=i.apply([r*2]);return lb(lb(c,p),u)}},t.className="CustomInit",t)}else n=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,n,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(e,t){return C(()=>{const s=t.training==null?!1:t.training;if(e=e,e.length!==3)throw new k(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let n=e[1];const i=e[2];e=e[0],0Ot(e),rate:this.dropout,training:s,count:4})),0Ot(n),rate:this.recurrentDropout,training:s,count:4}));const r=this.dropoutMask,o=this.recurrentDropoutMask;let a,l,c,p;0{this.cell.dropoutMask!=null&&(ce(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(ce(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);const s=t==null?null:t.mask,n=t==null?null:t.training,i=t==null?null:t.initialState;return super.call(e,{mask:s,training:n,initialState:i})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}}Zd.className="LSTM";V.registerClass(Zd);class nu extends ro{constructor(e){super(e);this.cells=e.cells}get stateSize(){const e=[];for(const t of this.cells.slice().reverse())Array.isArray(t.stateSize)?e.push(...t.stateSize):e.push(t.stateSize);return e}call(e,t){return C(()=>{e=e;let s=e.slice(1);const n=[];for(const o of this.cells.slice().reverse())Array.isArray(o.stateSize)?n.push(s.splice(0,o.stateSize.length)):n.push(s.splice(0,1));n.reverse();const i=[];let r;for(let o=0;o{Mn(`RNNCell_${n}`,()=>{s.build(e),Array.isArray(s.stateSize)?t=s.stateSize[0]:t=s.stateSize,e=[e[0],t]})}),this.built=!0}getConfig(){const e=super.getConfig(),t=i=>({className:i.getClassName(),config:i.getConfig()}),s=this.cells.map(t),n={cells:s};return Object.assign({},e,n)}static fromConfig(e,t,s={}){const n=[];for(const i of t.cells)n.push(xs(i,s));return new e({cells:n})}get trainableWeights(){if(!this.trainable)return[];const e=[];for(const t of this.cells)e.push(...t.trainableWeights);return e}get nonTrainableWeights(){const e=[];for(const t of this.cells)e.push(...t.nonTrainableWeights);if(!this.trainable){const t=[];for(const s of this.cells)t.push(...s.trainableWeights);return t.concat(e)}return e}getWeights(){const e=[];for(const t of this.cells)e.push(...t.weights);return Vp(e)}setWeights(e){const t=[];for(const s of this.cells){const n=s.weights.length,i=e.splice(n);for(let r=0;rcd(t(),s),o=()=>Zr(r,t,n);if(!i||i<=1)return pt(o().clone());const a=Array(i).fill(void 0).map(o);return a.map(l=>pt(l.clone()))}var rz=function(e,t){var s={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(s[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(e);i{if(this.cell.dropoutMask!=null&&(ce(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(ce(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),t&&t.constants)throw new k("ConvRNN2D cell does not support constants");const s=t==null?null:t.mask,n=t==null?null:t.training,i=t==null?null:t.initialState;return super.call(e,{mask:s,training:n,initialState:i})})}computeOutputShape(e){let t=this.computeSingleOutputShape(e);return this.returnSequences||(t=[t[0],...t.slice(2)]),this.returnState&&(t=[t,...Array(2).fill([e[0],...t.slice(-3)])]),t}getInitialState(e){return C(()=>{const{stateSize:t}=this.cell,s=e.shape,n=this.computeSingleOutputShape(s),i=[n[0],...n.slice(2)],r=ye(i);return Array.isArray(t)?Array(t.length).fill(r):[r]})}resetStates(e,t=!1){C(()=>{if(!this.stateful)throw new bn("Cannot call resetStates() on an RNN Layer that is not stateful.");const s=this.inputSpec[0].shape,n=this.computeSingleOutputShape(s),i=[n[0],...n.slice(2)],r=s[0];if(r==null)throw new k("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>ye(i)):this.states_=[ye(i)];else if(e==null)ce(this.states_),this.keptStates!=null&&(ce(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>ye(i)):this.states_[0]=ye(i);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new k(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t?this.keptStates.push(this.states_.slice()):ce(this.states_);for(let o=0;opt(o.clone()))})}computeSingleOutputShape(e){const{dataFormat:t,filters:s,kernelSize:n,padding:i,strides:r,dilationRate:o}=this.cell,a=t==="channelsFirst",l=e[a?3:2],c=e[a?4:3],p=Ns(l,n[0],i,r[0],o[0]),u=Ns(c,n[1],i,r[1],o[1]),h=[...e.slice(0,2),...a?[s,p,u]:[p,u,s]];return h}}FA.className="ConvRNN2D";class ou extends aa{constructor(e){const{filters:t,kernelSize:s,strides:n,padding:i,dataFormat:r,dilationRate:o}=e;super(Object.assign({},e,{units:t}));this.filters=t,gt(this.filters,"filters"),this.kernelSize=io(s,2,"kernelSize"),this.kernelSize.forEach(a=>gt(a,"kernelSize")),this.strides=io(n||1,2,"strides"),this.strides.forEach(a=>gt(a,"strides")),this.padding=i||"valid",ys(this.padding),this.dataFormat=r||"channelsLast",ot(this.dataFormat),this.dilationRate=io(o||1,2,"dilationRate"),this.dilationRate.forEach(a=>gt(a,"dilationRate"))}build(e){var t;e=Ue(e);const s=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[s]==null)throw new k(`The channel dimension of the input should be defined. Found ${e[s]}`);const n=e[s],i=4,r=this.kernelSize.concat([n,this.filters*i]);this.kernel=this.addWeight("kernel",r,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);const o=this.kernelSize.concat([this.filters,this.filters*i]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",o,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let a;if(this.unitForgetBias){const l=this.biasInitializer,c=this.filters;a=new(t=class extends Ws{apply(u,h){const d=l.apply([c]),m=Kt([c]),f=l.apply([c*2]);return Sl([d,m,f])}},t.className="CustomInit",t)}else a=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*i],null,a,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(e,t){return C(()=>{if(e.length!==3)throw new k(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);const s=t.training||!1,n=e[0],i=e[1],r=e[2],o=4;0Ot(n),rate:this.dropout,training:s,count:o}));const a=this.dropoutMask,l=(ie,ne,le)=>!ne||!ne[le]?ie:R(ne[le],ie);let c=l(n,a,0),p=l(n,a,1),u=l(n,a,2),h=l(n,a,3);0Ot(i),rate:this.recurrentDropout,training:s,count:o}));const d=this.recurrentDropoutMask;let m=l(i,d,0),f=l(i,d,1),g=l(i,d,2),y=l(i,d,3);const w=3,[x,T,A,_]=Bt(this.kernel.read(),o,w),[E,F,D,M]=this.useBias?Bt(this.bias.read(),o):[null,null,null,null];c=this.inputConv(c,x,E,this.padding),p=this.inputConv(p,T,F,this.padding),u=this.inputConv(u,A,D,this.padding),h=this.inputConv(h,_,M,this.padding);const[P,B,Y,q]=Bt(this.recurrentKernel.read(),o,w);m=this.recurrentConv(m,P),f=this.recurrentConv(f,B),g=this.recurrentConv(g,Y),y=this.recurrentConv(y,q);const K=this.recurrentActivation.apply($(c,m)),H=this.recurrentActivation.apply($(p,f)),Q=$(R(H,r),R(K,this.activation.apply($(u,g)))),J=R(this.recurrentActivation.apply($(h,y)),this.activation.apply(Q));return[J,J,Q]})}getConfig(){const e=super.getConfig(),{units:t}=e,s=rz(e,["units"]),n={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign({},s,n)}inputConv(e,t,s,n){const i=nt(e,t,this.strides,n||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return s?As(i,s,this.dataFormat):i}recurrentConv(e,t){const s=1;return nt(e,t,s,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}}ou.className="ConvLSTM2DCell";V.registerClass(ou);class Qd extends FA{constructor(e){const t=new ou(e);super(Object.assign({},e,{cell:t}))}static fromConfig(e,t){return new e(t)}}Qd.className="ConvLSTM2D";V.registerClass(Qd);class au extends Le{constructor(e){super(e);this.rate=Math.max(Math.min(e.rate,1),0),this.noiseShape=e.noiseShape,this.seed=e.seed,this.supportsMasking=!0}getNoiseShape(e){if(this.noiseShape==null)return this.noiseShape;const t=e.shape,s=[];for(let n=0;n{this.invokeCallHook(e,t);const s=we(e);if(0cd(s,this.rate,i,this.seed),()=>s,n);return r}return e})}getConfig(){const e={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},t=super.getConfig();return Object.assign(e,t),e}dispose(){return super.dispose()}}au.className="Dropout";V.registerClass(au);class em extends au{constructor(e){super(e);this.inputSpec=[{ndim:3}]}getNoiseShape(e){const t=e.shape;return[t[0],1,t[2]]}}em.className="SpatialDropout1D";V.registerClass(em);class tm extends Le{constructor(e){super(e);if(this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.batchInputShape==null&&e.inputShape==null&&e.inputDim!=null){let t=null;e.batchSize!=null&&(t=e.batchSize),this.batchInputShape=[t,e.inputDim]}this.units=e.units,gt(this.units,"units"),this.activation=zn(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=Be(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=Be(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=rt(e.kernelConstraint),this.biasConstraint=rt(e.biasConstraint),this.kernelRegularizer=He(e.kernelRegularizer),this.biasRegularizer=He(e.biasRegularizer),this.activityRegularizer=He(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){e=Ue(e);const t=e[e.length-1];this.kernel==null&&(this.kernel=this.addWeight("kernel",[t,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:t}}],this.built=!0}computeOutputShape(e){e=Ue(e);const t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return C(()=>{this.invokeCallHook(e,t);const s=we(e),n=ed(this.activation.getClassName());let i;return n!=null?i=vn(s,this.kernel.read(),n,this.bias?this.bias.read():null):(i=vn(s,this.kernel.read()),this.bias!=null&&(i=As(i,this.bias.read())),this.activation!=null&&(i=this.activation.apply(i))),i})}getConfig(){const e={units:this.units,activation:Wn(this.activation),useBias:this.useBias,kernelInitializer:Je(this.kernelInitializer),biasInitializer:Je(this.biasInitializer),kernelRegularizer:Pe(this.kernelRegularizer),biasRegularizer:Pe(this.biasRegularizer),activityRegularizer:Pe(this.activityRegularizer),kernelConstraint:it(this.kernelConstraint),biasConstraint:it(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}}tm.className="Dense";V.registerClass(tm);class sm extends Le{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=Ue(e);for(const t of e.slice(1))if(t==null)throw new k(`The shape of the input to "Flatten" is not fully defined (got ${e.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[e[0],In(e,1)]}call(e,t){return C(()=>{this.invokeCallHook(e,t);let s=we(e);if(this.dataFormat==="channelsFirst"&&s.rank>1){const n=[0];for(let i=2;i{this.invokeCallHook(e,t);const s=we(e);return this.activation.apply(s)})}getConfig(){const e={activation:Wn(this.activation)},t=super.getConfig();return Object.assign(e,t),e}}nm.className="Activation";V.registerClass(nm);class im extends Le{constructor(e){super(e);this.n=e.n,this.inputSpec=[{ndim:2}]}computeOutputShape(e){return[e[0],this.n,e[1]]}call(e,t){return C(()=>(e=we(e),_T(e,this.n)))}getConfig(){const e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}}im.className="RepeatVector";V.registerClass(im);class rm extends Le{constructor(e){super(e);this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);const s=we(e),n=s.shape,i=n.slice(0,1).concat(this.fixUnknownDimension(n.slice(1),this.targetShape));return s.reshape(i)})}getConfig(){const e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}}rm.className="Reshape";V.registerClass(rm);class om extends Le{constructor(e){super(e);if(e.dims==null)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(e.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${e.dims} instead.`);const t=ls(1,e.dims.length+1);if(!N.arraysEqual(e.dims.slice().sort(),t))throw new Error("Invalid permutation `dims`: "+JSON.stringify(e.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=e.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new st({ndim:this.dims.length+1})]}computeOutputShape(e){e=Ue(e);const t=e.slice();return this.dims.forEach((s,n)=>{t[n+1]=e[s]}),t}call(e,t){return se(we(e),this.dimsIncludingBatch)}getConfig(){const e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}}om.className="Permute";V.registerClass(om);class am extends Le{constructor(e){super(e??{});this.supportsMasking=!0,e!=null?this.maskValue=e.maskValue==null?0:e.maskValue:this.maskValue=0}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={maskValue:this.maskValue};return Object.assign(t,e),t}computeMask(e,t){const s=we(e),n=-1;return Uo(Ks(s,this.maskValue),n)}call(e,t){return C(()=>{this.invokeCallHook(e,t);const s=we(e),n=-1,i=!0,r=Uo(Ks(s,this.maskValue),n,i),o=s.mul(r.asType(s.dtype));return o})}}am.className="Masking";V.registerClass(am);class lm extends Le{constructor(e){super(e);if(this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",e.batchInputShape==null&&e.inputShape==null){let t=null;e.batchSize!=null&&(t=e.batchSize),e.inputLength==null?this.batchInputShape=[t,null]:this.batchInputShape=[t].concat(qe(e.inputLength))}this.inputDim=e.inputDim,gt(this.inputDim,"inputDim"),this.outputDim=e.outputDim,gt(this.outputDim,"outputDim"),this.embeddingsInitializer=Be(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=He(e.embeddingsRegularizer),this.activityRegularizer=He(e.activityRegularizer),this.embeddingsConstraint=rt(e.embeddingsConstraint),this.maskZero=e.maskZero,this.supportsMasking=e.maskZero,this.inputLength=e.inputLength}build(e){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(e){}computeMask(e,t){return C(()=>this.maskZero?(e=we(e),Ks(e,re(e))):null)}computeOutputShape(e){if(e=Ue(e),this.inputLength==null)return[...e,this.outputDim];const t=qe(this.inputLength);if(t.length!==e.length-1)throw new k(`"inputLength" is ${this.inputLength}, but received input shape has shape ${e}`);{let s=0;for(let n=0;n{this.invokeCallHook(e,t);let s=we(e);s.dtype!=="int32"&&(s=zi(s,"int32"));const n=ld(this.embeddings.read(),s.as1D());return n.reshape(Ue(this.computeOutputShape(s.shape)))})}getConfig(){const e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Je(this.embeddingsInitializer),embeddingsRegularizer:Pe(this.embeddingsRegularizer),activityRegularizer:Pe(this.activityRegularizer),embeddingsConstraint:it(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}}lm.className="Embedding";V.registerClass(lm);class la extends Le{constructor(e){super(e||{});this.supportsMasking=!0}mergeFunction(e){throw new ae}computeElementwiseOpOutputShape(e,t){if(e==null||t==null)return null;if(e.length1)throw new k(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(e)}.`);let s=e[0]==null?null:e[0].slice(1);for(let i=1;ii.length);e.indexOf(null)===-1&&Sn(n).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return C(()=>{if(e=e,this.reshapeRequired){const s=[],n=e.map(i=>i.rank);if(n.indexOf(null)===-1){const i=Un(n);for(let r of e){const o=r.rank;for(let a=0;a1){const c=ls(1,l).concat([0]);s.push(se(a,c)),i=!0}else s.push(a)}let r=this.mergeFunction(s);const o=r.rank;if(i){if(o==null){const a=r.shape,l=a.length,c=a[l-1],p=[c].concat(a.slice(0,a.length-1));r=se(r.reshape([-1,c]),[1,0]).reshape(p)}else if(o>1){const a=[o-1].concat(ls(0,o-1));r=se(r,a)}}return r}}else return this.mergeFunction(e)})}computeOutputShape(e){e=e;let t;e[0]==null?t=null:t=e[0].slice(1);for(let n=1;n{if(t==null)return null;if(!Array.isArray(t))throw new k("`mask` should be an Array");if(!Array.isArray(e))throw new k("`inputs` should be an Array");if(t.length!==e.length)throw new k(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${e.length} vs ${t.length})`);if(t.every(n=>n==null))return null;t=t.map(n=>n==null?n:Mt(n,0));let s=t[0];for(let n=1;n{let t=e[0].clone();for(let s=1;s{let t=e[0].clone();for(let s=1;s{let t=e[0].clone();for(let s=1;s{let t=e[0];for(let s=1;s{let t=e[0];for(let s=1;s1)throw new k("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return C(()=>Sl(e,this.axis))}computeOutputShape(e){if(!(Array.isArray(e)&&Array.isArray(e[0])))throw new k("A `Concatenate` layer should be called on a list of inputs.");const t=e,s=t[0].slice(),n=this.axis<0?s.length+this.axis:this.axis;for(const i of t.slice(1)){if(s[n]==null||i[n]==null){s[n]=null;break}s[n]+=i[n]}return s}computeMask(e,t){if(t==null)return null;if(!Array.isArray(t))throw new k("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new k("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new k(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return C(()=>{let s=!0;if(t.forEach(r=>{if(r!=null){s=!1;return}}),s)return null;const n=[];for(let r=0;r3||t.shape.length>3)throw new ae("batchDot is not implemented for tensors of 4D or higher rank yet");if(N.assert(e.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${e.shape.length}`),N.assert(e.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${t.shape.length}`),typeof s=="number"&&(s=[s,s]),e.dtype==="complex64"||t.dtype==="complex64")throw new ae("batchDot is not implemented for complex64-type Tensors yet.");const n=e.shape.length,i=t.shape.length;s==null&&(s=[n-1,i-2]);const r=s;return C(()=>{let o;if(n>i){o=n-i;const l=[];for(let c=0;cn){o=i-n;const l=[];for(let c=0;c0){let l;n>i?l=n+i-3:l=n-1;const c=[];for(let p=l;p"A `Dot` layer should be called on a list of exactly 2 inputs.");const t=e[0],s=e[1];if(t.length>3||s.length>3)throw new ae("Dot layer does not support tensors of 4D or higher rank yet.");const n=this.interpretAxes(t,s);if(t[n[0]]!==s[n[1]])throw new k(`Dimension incompatibility: ${t[n[0]]} !== ${s[n[1]]}`)}mergeFunction(e){if(e.length!==2)throw new k(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${e.length} input(s).`);let t=e[0],s=e[1],n;return Array.isArray(this.axes)?n=this.axes.map((i,r)=>lu(i,e[r].shape.length)):n=[lu(this.axes,t.shape.length),lu(this.axes,s.shape.length)],this.normalize&&(t=Gp(t,n[0]),s=Gp(s,n[1])),oz(t,s,n)}interpretAxes(e,t){let s;return Array.isArray(this.axes)?s=this.axes:s=[lu(this.axes,e.length),lu(this.axes,t.length)],s}computeOutputShape(e){N.assert(Array.isArray(e)&&e.length===2&&Array.isArray(e[0])&&Array.isArray(e[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");const t=e[0].slice(),s=e[1].slice();if(t.length>3||s.length>3)throw new ae("Dot layer does not support tensors of 4D or higher rank yet.");const n=this.interpretAxes(t,s);t.splice(n[0],1),s.splice(n[1],1),s.splice(0,1);const i=t.concat(s);return i.length===1&&i.push(1),i}computeMask(e,t){return null}getConfig(){const e={axes:this.axes,normalize:this.normalize},t=super.getConfig();return Object.assign(e,t),e}}fm.className="Dot";V.registerClass(fm);class gm extends Le{constructor(e){super(e);this.supportsMasking=!0,this.stddev=e.stddev}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={stddev:this.stddev};return Object.assign(t,e),t}call(e,t){return C(()=>{this.invokeCallHook(e,t);const s=we(e),n=()=>Il(s.shape,0,this.stddev).add(s),i=Zr(n,()=>s,t.training||!1);return i})}}gm.className="GaussianNoise";V.registerClass(gm);class ym extends Le{constructor(e){super(e);this.supportsMasking=!0,this.rate=e.rate}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return C(()=>{this.invokeCallHook(e,t);const s=we(e);if(this.rate>0&&this.rate<1){const n=()=>{const i=Math.sqrt(this.rate/(1-this.rate));return s.mul(Il(s.shape,1,i))};return Zr(n,()=>s,t.training||!1)}return s})}}ym.className="GaussianDropout";V.registerClass(ym);class bm extends Le{constructor(e){super(e);this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||we(e).shape}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return C(()=>{if(this.rate<1&&this.rate>0){const s=this._getNoiseShape(e),n=()=>{const i=we(e),r=1.6732632423543772,o=1.0507009873554805,a=-r*o;let l=ds(fn(s),this.rate);l=zi(l,"float32");const c=((1-this.rate)*(1+this.rate*a**2))**-.5,p=-c*a*this.rate,u=i.mul(l).add(l.add(-1).mul(a));return u.mul(c).add(p)};return Zr(n,()=>we(e),t.training||!1)}return e})}}bm.className="AlphaDropout";V.registerClass(bm);function cu(e,t,s,n,i,r=.001){let o;if(e.rank===2)o=uh(e,t,s,n,i,r);else if(e.rank===3)o=hh(e,t,s,n,i,r);else if(e.rank===4)o=dh(e,t,s,n,i,r);else throw new ae(`batchNormalization is not implemented for array of rank ${e.rank} yet`);return o}function az(e,t,s,n,i=.001){return C(()=>{const r=Bo(e,n),o=r.mean,a=r.variance,l=cu(e,o,a,s,t,i);return[l,o,a]})}function lz(e,t,s,n,i=.001){return C(()=>{const r=Bo(e,n),o=r.mean,a=r.variance,l=[];for(const m of ls(0,e.rank))n.indexOf(m)!==-1?l.push(1):l.push(e.shape[m]);const c=o.reshape(l),p=a.reshape(l),u=t==null?null:t.reshape(l),h=s==null?null:s.reshape(l),d=cu(e,c,p,h,u,i);return[d,o,a]})}function cz(e,t,s,n,i=.001){return N.arraysEqual(n.slice().sort(),ls(0,e.rank-1))?az(e,t,s,n,i):lz(e,t,s,n,i)}class wm extends Le{constructor(e){e==null&&(e={}),super(e),this.supportsMasking=!0,this.axis=e.axis==null?-1:e.axis,this.momentum=e.momentum==null?.99:e.momentum,this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=Be(e.betaInitializer||"zeros"),this.gammaInitializer=Be(e.gammaInitializer||"ones"),this.movingMeanInitializer=Be(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=Be(e.movingVarianceInitializer||"ones"),this.betaConstraint=rt(e.betaConstraint),this.gammaConstraint=rt(e.gammaConstraint),this.betaRegularizer=He(e.betaRegularizer),this.gammaRegularizer=He(e.gammaRegularizer)}build(e){e=Ue(e);const t=this.axis>=0?this.axis:this.axis+e.length,s=e[t];if(s==null)throw new k(`Axis ${t} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(e)}.`);this.inputSpec=[new st({ndim:e.length,axes:{[t]:s}})];const n=[s];this.scale&&(this.gamma=this.addWeight("gamma",n,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",n,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",n,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",n,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(e,t){return C(()=>{const s=t.training==null?!1:t.training,n=we(e),i=n.shape,r=i.length,o=ls(0,r),a=this.axis>=0?this.axis:this.axis+r;o.splice(a,1);const l=wn(1,r);l[a]=i[a];const c=o.slice();c.sort();const p=!N.arraysEqual(c,ls(0,r).slice(0,r-1)),u=()=>{if(p){const y=this.movingMean.read().reshape(l),w=this.movingVariance.read().reshape(l),x=this.center?this.beta.read().reshape(l):null,T=this.scale?this.gamma.read().reshape(l):null;return cu(n,y,w,x,T,this.epsilon)}else return cu(n,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!s)return u();const[h,d,m]=cz(n,this.gamma.read(),this.beta.read(),o,this.epsilon),f=(y,w,x)=>{C(()=>{const T=1-x,A=y.read(),_=A.sub(w).mul(T);y.write(A.sub(_))})},g=()=>{f(this.movingMean,d,this.momentum),f(this.movingVariance,m,this.momentum)};return g(),h})}getConfig(){const e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Je(this.betaInitializer),gammaInitializer:Je(this.gammaInitializer),movingMeanInitializer:Je(this.movingMeanInitializer),movingVarianceInitializer:Je(this.movingVarianceInitializer),betaRegularizer:Pe(this.betaRegularizer),gammaRegularizer:Pe(this.gammaRegularizer),betaConstraint:it(this.betaConstraint),gammaConstraint:it(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}}wm.className="BatchNormalization";V.registerClass(wm);class xm extends Le{constructor(e){if(e==null&&(e={}),super(e),this.axis=e.axis==null?-1:e.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(const t of this.axis)if(!Number.isInteger(t))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=Be(e.betaInitializer||"zeros"),this.gammaInitializer=Be(e.gammaInitializer||"ones"),this.betaRegularizer=He(e.betaRegularizer),this.gammaRegularizer=He(e.gammaRegularizer),this.supportsMasking=!0}build(e){e=Ue(e);const t=e.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let i=0;i=t)throw new Error(`Invalid axis: ${i}`);if(this.axis.length!==Sn(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);const s=this.axis.map(i=>e[i]),n=!0;this.scale?this.gamma=this.addWeight("gamma",s,"float32",this.gammaInitializer,this.gammaRegularizer,n):this.gamma=null,this.center?this.beta=this.addWeight("beta",s,"float32",this.betaInitializer,this.betaRegularizer,n):this.beta=null,this.built=!0}call(e,t){const s=we(e),n=s.shape,i=n.length;return C(()=>{const r=!0;let{mean:o,variance:a}=Bo(s,this.axis,r);const l=wn(1,i);for(const m of this.axis)l[m]=n[m];const c=m=>m!=null&&m.shape.length!==i&&this.axis!==[i-1]?m.reshape(l):m;let p=c(this.gamma.read()),u=c(this.beta.read());const h=[],d=[];for(let m=0;m{if(e.rank!==4)throw new k(`temporalPadding expects input tensor to be 4-D, but received a ${e.rank}-D tensor.`);if(t==null&&(t=[[1,1],[1,1]]),t.length!==2||t[0].length!==2||t[1].length!==2)throw new k("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(s==null&&(s=gs()),s!=="channelsLast"&&s!=="channelsFirst")throw new k(`Unknown data format: ${s}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let n;return s==="channelsFirst"?n=[[0,0],[0,0],t[0],t[1]]:n=[[0,0],t[0],t[1],[0,0]],Pt(e,n)})}class Lm extends Le{constructor(e){if(e==null&&(e={}),super(e),this.dataFormat=e.dataFormat==null?gs():e.dataFormat,e.padding==null)this.padding=[[1,1],[1,1]];else if(typeof e.padding=="number")this.padding=[[e.padding,e.padding],[e.padding,e.padding]];else{if(e.padding=e.padding,e.padding.length!==2)throw new k(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${e.padding.length} array.`);let t,s;if(typeof e.padding[0]=="number")t=[e.padding[0],e.padding[0]],s=[e.padding[1],e.padding[1]];else{if(e.padding=e.padding,e.padding[0].length!==2)throw new k(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${e.padding[0].length} array.`);if(t=e.padding[0],e.padding[1].length!==2)throw new k(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${e.padding[1].length} array.`);s=e.padding[1]}this.padding=[t,s]}this.inputSpec=[new st({ndim:4})]}computeOutputShape(e){e=Ue(e);let t,s;return this.dataFormat==="channelsFirst"?(e[2]!=null&&e[2]>=0?t=e[2]+this.padding[0][0]+this.padding[0][1]:t=null,e[3]!=null&&e[3]>=0?s=e[3]+this.padding[1][0]+this.padding[1][1]:s=null,[e[0],e[1],t,s]):(e[1]!=null&&e[1]>=0?t=e[1]+this.padding[0][0]+this.padding[0][1]:t=null,e[2]!=null&&e[2]>=0?s=e[2]+this.padding[1][0]+this.padding[1][1]:s=null,[e[0],t,s,e[3]])}call(e,t){return C(()=>pz(we(e),this.padding,this.dataFormat))}getConfig(){const e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}Lm.className="ZeroPadding2D";V.registerClass(Lm);function Sm(e,t,s,n,i,r){return C(()=>{ot(i),ob(r),ys(n),s==null&&(s=[1,1]),n==null&&(n="valid"),i==null&&(i=gs()),r==null&&(r="max"),e=Qp(e,i);let o;const a=n==="same"?"same":"valid";return r==="max"?o=mt(e,t,s,a):o=hs(e,t,s,a),i==="channelsFirst"&&(o=se(o,[0,3,1,2])),o})}function MA(e,t,s,n,i,r){return C(()=>{ot(i),ob(r),ys(n),s==null&&(s=[1,1,1]),n==null&&(n="valid"),i==null&&(i=gs()),r==null&&(r="max"),e=vb(e,i);let o;const a=n==="same"?"same":"valid";return r==="max"?o=cl(e,t,s,a):o=Za(e,t,s,a),i==="channelsFirst"&&(o=se(o,[0,4,1,2,3])),o})}class UA extends Le{constructor(e){if(e.poolSize==null&&(e.poolSize=2),super(e),typeof e.poolSize=="number")this.poolSize=[e.poolSize];else if(Array.isArray(e.poolSize)&&e.poolSize.length===1&&typeof e.poolSize[0]=="number")this.poolSize=e.poolSize;else throw new k(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.poolSize)}`);if(gt(this.poolSize,"poolSize"),e.strides==null)this.strides=this.poolSize;else if(typeof e.strides=="number")this.strides=[e.strides];else if(Array.isArray(e.strides)&&e.strides.length===1&&typeof e.strides[0]=="number")this.strides=e.strides;else throw new k(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.strides)}`);gt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,ys(this.padding),this.inputSpec=[new st({ndim:3})]}computeOutputShape(e){e=Ue(e);const t=Ns(e[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return C(()=>{this.invokeCallHook(e,t),e=Pi(we(e),2);const s=this.poolingFunction(we(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return Js(s,[2])})}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}}class Im extends UA{constructor(e){super(e)}poolingFunction(e,t,s,n,i){return ot(i),ys(n),Sm(e,t,s,n,i,"max")}}Im.className="MaxPooling1D";V.registerClass(Im);class vm extends UA{constructor(e){super(e)}poolingFunction(e,t,s,n,i){return ot(i),ys(n),Sm(e,t,s,n,i,"avg")}}vm.className="AveragePooling1D";V.registerClass(vm);class $A extends Le{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==2)throw new k(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides];gt(this.poolSize,"poolSize"),gt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,ot(this.dataFormat),ys(this.padding),this.inputSpec=[new st({ndim:4})]}computeOutputShape(e){e=Ue(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],s=this.dataFormat==="channelsFirst"?e[3]:e[2];return t=Ns(t,this.poolSize[0],this.padding,this.strides[0]),s=Ns(s,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,s]:[e[0],t,s,e[3]]}call(e,t){return C(()=>(this.invokeCallHook(e,t),this.poolingFunction(we(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}class Tm extends $A{constructor(e){super(e)}poolingFunction(e,t,s,n,i){return ot(i),ys(n),Sm(e,t,s,n,i,"max")}}Tm.className="MaxPooling2D";V.registerClass(Tm);class Am extends $A{constructor(e){super(e)}poolingFunction(e,t,s,n,i){return ot(i),ys(n),Sm(e,t,s,n,i,"avg")}}Am.className="AveragePooling2D";V.registerClass(Am);class WA extends Le{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==3)throw new k(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides,e.strides];gt(this.poolSize,"poolSize"),gt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,ot(this.dataFormat),ys(this.padding),this.inputSpec=[new st({ndim:5})]}computeOutputShape(e){e=Ue(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],s=this.dataFormat==="channelsFirst"?e[3]:e[2],n=this.dataFormat==="channelsFirst"?e[4]:e[3];return t=Ns(t,this.poolSize[0],this.padding,this.strides[0]),s=Ns(s,this.poolSize[1],this.padding,this.strides[1]),n=Ns(n,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,s,n]:[e[0],t,s,n,e[4]]}call(e,t){return C(()=>(this.invokeCallHook(e,t),this.poolingFunction(we(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}class Nm extends WA{constructor(e){super(e)}poolingFunction(e,t,s,n,i){return ot(i),ys(n),MA(e,t,s,n,i,"max")}}Nm.className="MaxPooling3D";V.registerClass(Nm);class Cm extends WA{constructor(e){super(e)}poolingFunction(e,t,s,n,i){return ot(i),ys(n),MA(e,t,s,n,i,"avg")}}Cm.className="AveragePooling3D";V.registerClass(Cm);class zA extends Le{constructor(e){super(e);this.inputSpec=[new st({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new ae}}class Rm extends zA{constructor(e){super(e||{})}call(e,t){return C(()=>{const s=we(e);return Ke(s,1)})}}Rm.className="GlobalAveragePooling1D";V.registerClass(Rm);class Om extends zA{constructor(e){super(e||{})}call(e,t){return C(()=>{const s=we(e);return xt(s,1)})}}Om.className="GlobalMaxPooling1D";V.registerClass(Om);class PA extends Le{constructor(e){super(e);this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,ot(this.dataFormat),this.inputSpec=[new st({ndim:4})]}computeOutputShape(e){return e=e,this.dataFormat==="channelsLast"?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new ae}getConfig(){const e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}class Em extends PA{call(e,t){return C(()=>{const s=we(e);return this.dataFormat==="channelsLast"?Ke(s,[1,2]):Ke(s,[2,3])})}}Em.className="GlobalAveragePooling2D";V.registerClass(Em);class _m extends PA{call(e,t){return C(()=>{const s=we(e);return this.dataFormat==="channelsLast"?xt(s,[1,2]):xt(s,[2,3])})}}_m.className="GlobalMaxPooling2D";V.registerClass(_m);class BA extends Le{constructor(e){super(e);this.layer=e.layer}build(e){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(e){this.layer!=null&&(this.layer.trainable=e)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(e){this.layer.setWeights(e)}getConfig(){const e={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},t=super.getConfig();return Object.assign(e,t),e}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(e)}static fromConfig(e,t,s={}){const n=t.layer,i=xs(n,s);delete t.layer;const r={layer:i};return Object.assign(r,t),new e(r)}}class km extends BA{constructor(e){super(e);this.supportsMasking=!0}build(e){if(e=Ue(e),e.length<3)throw new k(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(e)}`);this.inputSpec=[{shape:e}];const t=[e[0]].concat(e.slice(2));this.layer.built||(this.layer.build(t),this.layer.built=!0),super.build(e)}computeOutputShape(e){e=Ue(e);const t=[e[0]].concat(e.slice(2)),s=this.layer.computeOutputShape(t),n=e[1];return[s[0],n].concat(s.slice(1))}call(e,t){return C(()=>{e=we(e);const s=(r,o)=>{const a=we(this.layer.call(r,t));return[a,[]]},n=Ab(s,e,[],!1,null,null,!1,!0),i=n[1];return i})}}km.className="TimeDistributed";V.registerClass(km);function uz(e){Wi(NT,"BidirectionalMergeMode",e)}const hz="concat";class Dm extends BA{constructor(e){super(e);const t=e.layer.getConfig(),s={};s.className=e.layer.getClassName(),s.config=t,this.forwardLayer=xs(s),t.goBackwards=!(t.goBackwards===!0);const n={};if(n.className=e.layer.getClassName(),n.config=t,this.backwardLayer=xs(n),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=e.mergeMode===void 0?hz:e.mergeMode,uz(this.mergeMode),e.weights)throw new ae("weights support is not implemented for Bidirectional layer yet.");this._stateful=e.layer.stateful,this.returnSequences=e.layer.returnSequences,this.returnState=e.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=e.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(e){this._trainable=e,this.forwardLayer!=null&&(this.forwardLayer.trainable=e),this.backwardLayer!=null&&(this.backwardLayer.trainable=e)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(e){const t=e.length,s=Math.floor(t/2);this.forwardLayer.setWeights(e.slice(0,s)),this.backwardLayer.setWeights(e.slice(s))}computeOutputShape(e){let t=this.forwardLayer.computeOutputShape(e);Array.isArray(t)&&Array.isArray(t[0])||(t=[t]),t=t;let s,n,i;return this.returnState&&(i=t.slice(1)),s=t[0],s=s,this.mergeMode==="concat"?(s[s.length-1]*=2,n=[s]):this.mergeMode==null?n=[s,s.slice()]:n=[s],this.returnState?this.mergeMode==null?n.concat(i).concat(i.slice()):[s].concat(i).concat(i.slice()):jt(n)}apply(e,t){let s=t==null?null:t.initialState,n=t==null?null:t.constants;t==null&&(t={});const i=Tb(e,s,n,this.numConstants);if(e=i.inputs,s=i.initialState,n=i.constants,Array.isArray(e)&&(s=e.slice(1),e=e[0]),(s==null||s.length===0)&&n==null)return super.apply(e,t);const r=[],o=[];if(s!=null){const l=s.length;if(l%2>0)throw new k("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");t.initialState=s,r.push(...s);const c=s.map(p=>new st({shape:p.shape}));this.forwardLayer.stateSpec=c.slice(0,l/2),this.backwardLayer.stateSpec=c.slice(l/2),o.push(...c)}if(n!=null)throw new ae("Support for constants in Bidirectional layers is not implemented yet.");const a=r[0]instanceof ws;for(const l of r)if(l instanceof ws!==a)throw new k("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(a){const l=[e].concat(r),c=this.inputSpec.concat(o),p=this.inputSpec;this.inputSpec=c;const u=super.apply(l,t);return this.inputSpec=p,u}else return super.apply(e,t)}call(e,t){return C(()=>{const s=t.initialState;let n,i;if(s==null)n=this.forwardLayer.call(e,t),i=this.backwardLayer.call(e,t);else{const a=s.slice(0,s.length/2),l=s.slice(s.length/2);n=this.forwardLayer.call(e,Object.assign(t,{initialState:a})),i=this.backwardLayer.call(e,Object.assign(t,{initialState:l}))}let r;this.returnState&&(Array.isArray(n)&&(r=n.slice(1).concat(i.slice(1))),n=n[0],i=i[0]),this.returnSequences&&(i=Et(i,1));let o;return this.mergeMode==="concat"?o=Sl([n,i]):this.mergeMode==="sum"?o=$(n,i):this.mergeMode==="ave"?o=R(.5,$(n,i)):this.mergeMode==="mul"?o=R(n,i):this.mergeMode==null&&(o=[n,i]),this.returnState?this.mergeMode==null?o.concat(r):[o].concat(r):o})}resetStates(e){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(e){Mn(this.forwardLayer.name,()=>{this.forwardLayer.build(e)}),Mn(this.backwardLayer.name,()=>{this.backwardLayer.build(e)}),this.built=!0}computeMask(e,t){Array.isArray(t)&&(t=t[0]);let s;if(this.returnSequences?this.mergeMode==null?s=[t,t]:s=t:this.mergeMode==null?s=[null,null]:s=null,this.returnState){const n=this.forwardLayer.states,i=n.map(r=>null);return Array.isArray(s)?s.concat(i).concat(i):[s].concat(i).concat(i)}else return s}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(e),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(e)}getConfig(){const e={mergeMode:this.mergeMode},t=super.getConfig();return Object.assign(e,t),e}static fromConfig(e,t){const s=xs(t.layer);if(delete t.layer,t.numConstants!=null)throw new ae("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");const n=t;return n.layer=s,new e(n)}}Dm.className="Bidirectional";V.registerClass(Dm);const Nb={};Ee(Nb,{Layer:()=>Le,RNN:()=>sn,RNNCell:()=>ro,activation:()=>Cz,add:()=>Uz,alphaDropout:()=>xP,average:()=>$z,averagePooling1d:()=>Cb,averagePooling2d:()=>Rb,averagePooling3d:()=>Ob,avgPool1d:()=>Hz,avgPool2d:()=>Kz,avgPool3d:()=>Jz,avgPooling1d:()=>Yz,avgPooling2d:()=>Xz,avgPooling3d:()=>Zz,batchNormalization:()=>Vz,bidirectional:()=>hP,concatenate:()=>Wz,conv1d:()=>xz,conv2d:()=>Lz,conv2dTranspose:()=>Sz,conv3d:()=>Iz,convLstm2d:()=>lP,convLstm2dCell:()=>cP,cropping2D:()=>Tz,dense:()=>Rz,depthwiseConv2d:()=>Nz,dot:()=>jz,dropout:()=>Oz,elu:()=>mz,embedding:()=>Mz,flatten:()=>_z,gaussianDropout:()=>wP,gaussianNoise:()=>bP,globalAveragePooling1d:()=>Qz,globalAveragePooling2d:()=>eP,globalMaxPool1d:()=>mP,globalMaxPool2d:()=>fP,globalMaxPooling1d:()=>jA,globalMaxPooling2d:()=>VA,gru:()=>sP,gruCell:()=>nP,input:()=>Md,inputLayer:()=>dz,layerNormalization:()=>Gz,leakyReLU:()=>gz,lstm:()=>iP,lstmCell:()=>rP,masking:()=>LP,maxPool1d:()=>gP,maxPool2d:()=>yP,maxPooling1d:()=>GA,maxPooling2d:()=>qA,maxPooling3d:()=>tP,maximum:()=>zz,minimum:()=>Pz,multiply:()=>Bz,permute:()=>Fz,prelu:()=>yz,reLU:()=>fz,repeatVector:()=>kz,reshape:()=>Dz,rnn:()=>pP,separableConv2d:()=>vz,simpleRNN:()=>oP,simpleRNNCell:()=>aP,softmax:()=>bz,spatialDropout1d:()=>Ez,stackedRNNCells:()=>uP,thresholdedReLU:()=>wz,timeDistributed:()=>dP,upSampling2d:()=>Az,zeroPadding2d:()=>qz});function dz(e){return new ji(e)}function mz(e){return new Pd(e)}function fz(e){return new $d(e)}function gz(e){return new Wd(e)}function yz(e){return new zd(e)}function bz(e){return new jd(e)}function wz(e){return new Bd(e)}function xz(e){return new su(e)}function Lz(e){return new kl(e)}function Sz(e){return new Gd(e)}function Iz(e){return new tu(e)}function vz(e){return new qd(e)}function Tz(e){return new Hd(e)}function Az(e){return new Yd(e)}function Nz(e){return new Kd(e)}function Cz(e){return new nm(e)}function Rz(e){return new tm(e)}function Oz(e){return new au(e)}function Ez(e){return new em(e)}function _z(e){return new sm(e)}function kz(e){return new im(e)}function Dz(e){return new rm(e)}function Fz(e){return new om(e)}function Mz(e){return new lm(e)}function Uz(e){return new cm(e)}function $z(e){return new um(e)}function Wz(e){return new mm(e)}function zz(e){return new hm(e)}function Pz(e){return new dm(e)}function Bz(e){return new pm(e)}function jz(e){return new fm(e)}function Vz(e){return new wm(e)}function Gz(e){return new xm(e)}function qz(e){return new Lm(e)}function Cb(e){return new vm(e)}function Hz(e){return Cb(e)}function Yz(e){return Cb(e)}function Rb(e){return new Am(e)}function Kz(e){return Rb(e)}function Xz(e){return Rb(e)}function Ob(e){return new Cm(e)}function Jz(e){return Ob(e)}function Zz(e){return Ob(e)}function Qz(e){return new Rm(e)}function eP(e){return new Em(e)}function jA(e){return new Om(e)}function VA(e){return new _m(e)}function GA(e){return new Im(e)}function qA(e){return new Tm(e)}function tP(e){return new Nm(e)}function sP(e){return new Jd(e)}function nP(e){return new ru(e)}function iP(e){return new Zd(e)}function rP(e){return new aa(e)}function oP(e){return new Xd(e)}function aP(e){return new iu(e)}function lP(e){return new Qd(e)}function cP(e){return new ou(e)}function pP(e){return new sn(e)}function uP(e){return new nu(e)}function hP(e){return new Dm(e)}function dP(e){return new km(e)}const mP=jA,fP=VA,gP=GA,yP=qA;function bP(e){return new gm(e)}function wP(e){return new ym(e)}function xP(e){return new bm(e)}function LP(e){return new am(e)}const Eb={};Ee(Eb,{MAPE:()=>_P,MSE:()=>FP,binaryAccuracy:()=>SP,binaryCrossentropy:()=>IP,categoricalAccuracy:()=>TP,categoricalCrossentropy:()=>AP,cosineProximity:()=>RP,mape:()=>kP,meanAbsoluteError:()=>OP,meanAbsolutePercentageError:()=>EP,meanSquaredError:()=>DP,mse:()=>MP,precision:()=>NP,recall:()=>CP,sparseCategoricalAccuracy:()=>vP});function SP(e,t){return Yp(e,t)}function IP(e,t){return Ad(e,t)}function vP(e,t){return Nd(e,t)}function TP(e,t){return Kp(e,t)}function AP(e,t){return Xp(e,t)}function NP(e,t){return fb(e,t)}function CP(e,t){return GT(e,t)}function RP(e,t){return qp(e,t)}function OP(e,t){return Cl(e,t)}function EP(e,t){return eo(e,t)}function _P(e,t){return eo(e,t)}function kP(e,t){return eo(e,t)}function DP(e,t){return mi(e,t)}function FP(e,t){return mi(e,t)}function MP(e,t){return mi(e,t)}const _b={};Ee(_b,{modelFromJSON:()=>pA});const kb={};Ee(kb,{l1:()=>$P,l1l2:()=>UP,l2:()=>WP});function UP(e){return new _l(e)}function $P(e){return RA(e)}function WP(e){return OA(e)}class Db extends na{constructor(){super(...arguments);this.model=null}setModel(e){if(!(e instanceof tn))throw new Error("model must be a LayersModel, not some other Container");this.model=e}}function Fm(e,t){return et}class Fb extends Db{constructor(e){super();if(e==null&&(e={}),e.restoreBestWeights)throw new ae("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=e.monitor||"val_loss",this.minDelta=Math.abs(e.minDelta||0),this.patience=e.patience||0,this.verbose=e.verbose||0,this.mode=e.mode||"auto",this.baseline=e.baseline,["auto","min","max"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=Fm:this.mode==="max"?this.monitorFunc=HA:this.monitor.indexOf("acc")!==-1?this.monitorFunc=HA:this.monitorFunc=Fm,this.monitorFunc===Fm&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Fm?Infinity:-Infinity}async onEpochEnd(e,t){await di(t);const s=this.getMonitorValue(t);if(s==null)return;this.monitorFunc(s-this.minDelta,this.best)?(this.best=s,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=e,this.model.stopTraining=!0))}async onTrainEnd(e){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(e){e==null&&(e={});const t=e[this.monitor];return t==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(e)}`),t}}function zP(e){return new Fb(e)}const YA={earlyStopping:zP};var Tn;(function(e){e[e.DT_INVALID=0]="DT_INVALID",e[e.DT_FLOAT=1]="DT_FLOAT",e[e.DT_DOUBLE=2]="DT_DOUBLE",e[e.DT_INT32=3]="DT_INT32",e[e.DT_UINT8=4]="DT_UINT8",e[e.DT_INT16=5]="DT_INT16",e[e.DT_INT8=6]="DT_INT8",e[e.DT_STRING=7]="DT_STRING",e[e.DT_COMPLEX64=8]="DT_COMPLEX64",e[e.DT_INT64=9]="DT_INT64",e[e.DT_BOOL=10]="DT_BOOL",e[e.DT_QINT8=11]="DT_QINT8",e[e.DT_QUINT8=12]="DT_QUINT8",e[e.DT_QINT32=13]="DT_QINT32",e[e.DT_BFLOAT16=14]="DT_BFLOAT16",e[e.DT_FLOAT_REF=101]="DT_FLOAT_REF",e[e.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",e[e.DT_INT32_REF=103]="DT_INT32_REF",e[e.DT_UINT8_REF=104]="DT_UINT8_REF",e[e.DT_INT16_REF=105]="DT_INT16_REF",e[e.DT_INT8_REF=106]="DT_INT8_REF",e[e.DT_STRING_REF=107]="DT_STRING_REF",e[e.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",e[e.DT_INT64_REF=109]="DT_INT64_REF",e[e.DT_BOOL_REF=110]="DT_BOOL_REF",e[e.DT_QINT8_REF=111]="DT_QINT8_REF",e[e.DT_QUINT8_REF=112]="DT_QUINT8_REF",e[e.DT_QINT32_REF=113]="DT_QINT32_REF",e[e.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF"})(Tn||(Tn={}));var KA;(function(e){let t;(function(s){s[s.LEGACY=0]="LEGACY",s[s.V1=1]="V1",s[s.V2=2]="V2"})(t=e.CheckpointFormatVersion||(e.CheckpointFormatVersion={}))})(KA||(KA={}));const Mb={};function XA(e,t){const s={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};Mb[e]=s}function Mm(e){return Mb[e]}function JA(e){delete Mb[e]}function L(e,t,s,n){const i=t.inputParams[e];if(i&&i.inputIndexStart!==void 0){const o=i.inputIndexStart,a=i.inputIndexEnd===0?void 0:i.inputIndexEnd===void 0?o+1:i.inputIndexEnd;if(i.type==="tensor")return Vt(t.inputNames[i.inputIndexStart],s,n);if(i.type==="tensors"){const p=t.inputNames.slice(o,a);return p.map(u=>Vt(u,s,n))}const l=Vt(t.inputNames.slice(o)[0],s,n),c=l.dataSync();return i.type==="number"?c[0]:N.toNestedArray(l.shape,c)}const r=t.attrParams[e];return r&&r.value}function Vt(e,t,s){const[n,i]=Ls(e),r=s.currentContextIds.find(o=>!!t[Um(n,o)]);return r!==void 0?t[Um(n,r)][i]:void 0}function ZA(e,t,s){return t[Um(e,s.currentContextId)]}function Pn(e,t){const[s,n]=Ls(e);return[Um(s,t&&t.currentContextId),n]}function Um(e,t){return t?`${e}-${t}`:e}function Ls(e){const t=e.split(":");if(t.length===1)return[e,0];const s=t[0];return[s,Number(t[t.length-1])]}function pu(e,t,s){let n=L("pad",e,t,s);if(n==="explicit"){n=L("explicitPaddings",e,t,s);const i=[[0,0],[0,0],[0,0],[0,0]];for(let r=0;r<4;r++)i[r][0]=n[r*2],i[r][1]=n[r*2+1];return i}return n}function Bn(e){return e.kept?e:Ds(e)}const Ub={};Ee(Ub,{json:()=>PP});const PP=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];const $b={};Ee($b,{json:()=>BP});const BP=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"clip_value_min",name:"clipValueMin",type:"number"},{tfName:"clip_value_max",name:"clipValueMax",type:"number"}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"clipValueMin",name:"clipValueMin",type:"number",defaultValue:0},{tfName:"clipValueMax",name:"clipValueMax",type:"number",defaultValue:6}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];const Wb={};Ee(Wb,{json:()=>jP});const jP=[{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]}];const zb={};Ee(zb,{json:()=>VP});const VP=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}];const Pb={};Ee(Pb,{json:()=>GP});const GP=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}];const Bb={};Ee(Bb,{json:()=>qP});const qP=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];const jb={};Ee(jb,{json:()=>HP});const HP=[{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}];const Vb={};Ee(Vb,{json:()=>YP});const YP=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}];const Gb={};Ee(Gb,{json:()=>KP});const KP=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]}];const qb={};Ee(qb,{json:()=>XP});const XP=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];const Hb={};Ee(Hb,{json:()=>JP});const JP=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];const Yb={};Ee(Yb,{json:()=>ZP});const ZP=[{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}];const Kb={};Ee(Kb,{json:()=>QP});const QP=[{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}];const Xb={};Ee(Xb,{json:()=>eB});const eB=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool",notSupported:!0}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}];const Jb={};Ee(Jb,{json:()=>tB});const tB=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}];const Zb={};Ee(Zb,{json:()=>sB});const sB=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]}];class ew{static get Instance(){return this._instance||(this._instance=new this)}constructor(){const e=[Ub,$b,Wb,zb,Pb,Bb,jb,qb,Gb,Vb,Hb,Yb,Kb,Xb,Jb,Zb],t=[].concat(...e.map(s=>s.json));this.opMappers=t.reduce((s,n)=>(s[n.tfOpName]=n,s),{})}transformGraph(e,t={}){const s=e.node,n=[],i=[],r=[],o=s.reduce((m,f)=>(m[f.name]=this.mapNode(f),f.op.startsWith("Placeholder")?n.push(m[f.name]):f.op==="Const"?i.push(m[f.name]):(f.input==null||f.input.length===0)&&r.push(m[f.name]),m),{});let a=[];const l=[];let c={},p={};t!=null&&(c=this.mapSignatureEntries(t.inputs),p=this.mapSignatureEntries(t.outputs));const u=Object.keys(o);u.forEach(m=>{const f=o[m];f.inputNames.forEach(g=>{const[y]=Pn(g);f.inputs.push(o[y]),o[y].children.push(f)})}),Object.keys(p).length===0?u.forEach(m=>{const f=o[m];f.children.length===0&&l.push(f)}):Object.keys(p).forEach(m=>{const[f]=Pn(m),g=o[f];g!=null&&(g.signatureKey=p[m],l.push(g))}),Object.keys(c).length>0?Object.keys(c).forEach(m=>{const[f]=Pn(m),g=o[f];g&&(g.signatureKey=c[m],a.push(g))}):a=n;let h={};e.library!=null&&e.library.function!=null&&(h=e.library.function.reduce((m,f)=>(m[f.signature.name]=this.mapFunction(f),m),{}));const d={nodes:o,inputs:a,outputs:l,weights:i,placeholders:n,signature:t,functions:h};return r.length>0&&(d.initNodes=r),d}mapSignatureEntries(e){return Object.keys(e||{}).reduce((t,s)=>(t[e[s].name]=s,t),{})}mapNode(e){const t=Mm(e.op)||this.opMappers[e.op]||{};e.attr==null&&(e.attr={});const s={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map(n=>n.startsWith("^")?n.substr(1):n),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr};return t.inputs!=null&&(s.inputParams=t.inputs.reduce((n,i)=>(n[i.name]={type:i.type,inputIndexStart:i.start,inputIndexEnd:i.end},n),{})),t.attrs!=null&&(s.attrParams=t.attrs.reduce((n,i)=>{const r=i.type;let o;switch(i.type){case"string":o=$m(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=$m(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"string[]":o=Gm(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=Gm(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"number":o=zm(e.attr,i.tfName,i.defaultValue||0),o===void 0&&!!i.tfDeprecatedName&&(o=zm(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"number[]":o=Vm(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=Vm(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"bool":o=Wm(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=Wm(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"bool[]":o=Hm(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=Hm(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"shape":o=jm(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=jm(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"shape[]":o=qm(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=qm(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"dtype":o=Pm(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=Pm(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"dtype[]":o=Bm(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=Bm(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"func":o=QA(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=QA(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${i.type} for op: ${e.op}`)}return n[i.name]={value:o,type:r},n},{})),s}mapFunction(e){const t=e.nodeDef,s=[],n=[];let i={};t!=null&&(i=t.reduce((p,u)=>(p[u.name]=this.mapNode(u),u.op==="Const"&&n.push(p[u.name]),p),{}));const r=[],o=[];e.signature.inputArg.forEach(p=>{const[u]=Pn(p.name),h={name:u,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:Qb(p.type),type:"dtype"}},children:[]};h.signatureKey=p.name,r.push(h),i[u]=h});const a=Object.keys(i);a.forEach(p=>{const u=i[p];u.inputNames.forEach(h=>{const[d]=Pn(h);u.inputs.push(i[d]),i[d].children.push(u)})});const l=e.ret;e.signature.outputArg.forEach(p=>{const[u,h]=Pn(l[p.name]),d=i[u];d!=null&&(d.defaultOutput=h,o.push(d))});const c=this.mapArgsToSignature(e);return{nodes:i,inputs:r,outputs:o,weights:n,placeholders:s,signature:c}}mapArgsToSignature(e){return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce((t,s)=>(t[s.name]=this.mapArgToTensorInfo(s),t),{}),outputs:e.signature.outputArg.reduce((t,s)=>(t[s.name]=this.mapArgToTensorInfo(s,e.ret),t),{})}}mapArgToTensorInfo(e,t){let s=e.name;return t!=null&&(s=t[s]),{name:s,dtype:e.type}}}function nB(e){const t=W().global;if(typeof t.atob!="undefined")return t.atob(e);if(typeof Buffer!="undefined")return new Buffer(e,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function eN(e,t){const s=Array.isArray(e)?String.fromCharCode.apply(null,e):nB(e);return t?s:s.toLowerCase()}function $m(e,t,s,n=!1){const i=e[t];return i!=null?eN(i.s,n):s}function Wm(e,t,s){const n=e[t];return n?n.b:s}function zm(e,t,s){const n=e[t]||{},i=n.i!=null?n.i:n.f!=null?n.f:s;return typeof i=="number"?i:parseInt(i,10)}function Qb(e){typeof e=="string"&&(e=Tn[e]);switch(e){case Tn.DT_FLOAT:return"float32";case Tn.DT_INT32:case Tn.DT_INT64:case Tn.DT_INT8:case Tn.DT_UINT8:return"int32";case Tn.DT_BOOL:return"bool";case Tn.DT_DOUBLE:return"float32";case Tn.DT_STRING:return"string";default:return null}}function QA(e,t,s){const n=e[t];return n&&n.func?n.func.name:s}function Pm(e,t,s){const n=e[t];return n&&n.type?Qb(n.type):s}function Bm(e,t,s){const n=e[t];return n&&n.list&&n.list.type?n.list.type.map(i=>Qb(i)):s}function tN(e){return e.unknownRank?void 0:e.dim!=null?e.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function jm(e,t,s){const n=e[t];return n&&n.shape?tN(n.shape):s}function Vm(e,t,s){const n=e[t];return n?((n.list.f&&n.list.f.length?n.list.f:n.list.i)||[]).map(i=>typeof i=="number"?i:parseInt(i,10)):s}function Gm(e,t,s,n=!1){const i=e[t];return i&&i.list&&i.list.s?i.list.s.map(r=>eN(r,n)):s}function qm(e,t,s){const n=e[t];return n&&n.list&&n.list.shape?n.list.shape.map(i=>tN(i)):s}function Hm(e,t,s){const n=e[t];return n&&n.list&&n.list.b?n.list.b:s}class sN{constructor(e,t,s){this.node=e,this.tensorMap=t,this.context=s,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map(n=>this.getInput(n)),e.rawAttrs!=null&&(this.attrs=Object.keys(e.rawAttrs).reduce((n,i)=>(n[i]=this.getAttr(i),n),{}))}getInput(e){return Vt(e,this.tensorMap,this.context)}getAttr(e,t){const s=this.node.rawAttrs[e];if(s.tensor!=null)return Vt(e,this.tensorMap,this.context);if(s.i!=null||s.f!=null)return zm(this.node.rawAttrs,e,t);if(s.s!=null)return $m(this.node.rawAttrs,e,t);if(s.b!=null)return Wm(this.node.rawAttrs,e,t);if(s.shape!=null)return jm(this.node.rawAttrs,e,t);if(s.type!=null)return Pm(this.node.rawAttrs,e,t);if(s.list!=null){if(s.list.i!=null||s.list.f!=null)return Vm(this.node.rawAttrs,e,t);if(s.list.s!=null)return Gm(this.node.rawAttrs,e,t);if(s.list.shape!=null)return qm(this.node.rawAttrs,e,t);if(s.list.b!=null)return Hm(this.node.rawAttrs,e,t);if(s.list.type!=null)return Bm(this.node.rawAttrs,e,t)}return t}}const nN=(e,t,s)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[$(L("a",e,t,s),L("b",e,t,s))];case"AddN":return[sh(L("tensors",e,t,s))];case"FloorMod":case"Mod":return[pl(L("a",e,t,s),L("b",e,t,s))];case"Mul":return[R(L("a",e,t,s),L("b",e,t,s))];case"RealDiv":case"Div":return[Z(L("a",e,t,s),L("b",e,t,s))];case"DivNoNan":return[Sh(L("a",e,t,s),L("b",e,t,s))];case"FloorDiv":return[Ka(L("a",e,t,s),L("b",e,t,s))];case"Sub":return[X(L("a",e,t,s),L("b",e,t,s))];case"Minimum":return[mn(L("a",e,t,s),L("b",e,t,s))];case"Maximum":return[Ht(L("a",e,t,s),L("b",e,t,s))];case"Pow":return[Qt(L("a",e,t,s),L("b",e,t,s))];case"SquaredDifference":return[Yr(L("a",e,t,s),L("b",e,t,s))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};const iN=(e,t,s)=>{switch(e.op){case"Abs":case"ComplexAbs":return[et(L("x",e,t,s))];case"Acos":return[eh(L("x",e,t,s))];case"Acosh":return[th(L("x",e,t,s))];case"Asin":return[ih(L("x",e,t,s))];case"Asinh":return[rh(L("x",e,t,s))];case"Atan":return[oh(L("x",e,t,s))];case"Atan2":return[ah(L("x",e,t,s),L("y",e,t,s))];case"Atanh":return[lh(L("x",e,t,s))];case"Ceil":return[mh(L("x",e,t,s))];case"Complex":return[Gt(L("real",e,t,s),L("imag",e,t,s))];case"Cos":return[Wr(L("x",e,t,s))];case"Cosh":return[nl(L("x",e,t,s))];case"Elu":return[hn(L("x",e,t,s))];case"Erf":return[Ih(L("x",e,t,s))];case"Exp":return[ut(L("x",e,t,s))];case"Expm1":return[vh(L("x",e,t,s))];case"Floor":return[li(L("x",e,t,s))];case"Log":return[zt(L("x",e,t,s))];case"Log1p":return[ol(L("x",e,t,s))];case"Imag":return[dn(L("x",e,t,s))];case"Neg":return[_e(L("x",e,t,s))];case"Reciprocal":return[Dh(L("x",e,t,s))];case"Real":return[Xs(L("x",e,t,s))];case"Relu":return[De(L("x",e,t,s))];case"Round":return[Mh(L("x",e,t,s))];case"Selu":return[dl(L("x",e,t,s))];case"Sigmoid":return[rs(L("x",e,t,s))];case"Sin":return[ml(L("x",e,t,s))];case"Sign":return[$h(L("x",e,t,s))];case"Sinh":return[fl(L("x",e,t,s))];case"Softplus":return[pi(L("x",e,t,s))];case"Sqrt":return[Xe(L("x",e,t,s))];case"Square":return[xe(L("x",e,t,s))];case"Tanh":return[ki(L("x",e,t,s))];case"Tan":return[zh(L("x",e,t,s))];case"Relu6":case"ClipByValue":return[wt(L("x",e,t,s),L("clipValueMin",e,t,s),L("clipValueMax",e,t,s))];case"Rsqrt":return[hl(Vt(e.inputNames[0],t,s))];case"Prod":return[ul(L("x",e,t,s),L("axes",e,t,s))];case"LeakyRelu":return[rl(L("x",e,t,s),L("alpha",e,t,s))];case"Prelu":return[jr(L("x",e,t,s),L("alpha",e,t,s))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Ps(e,t,s=""){N.assert(iB(e,t),()=>s+` Shapes ${e} and ${t} must match`)}function iB(e,t){if(e.length!==t.length)return!1;for(let s=0;s{(e==null||!e.has(t.tensor.id))&&t.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||e>=this.size())throw new Error(`Tried to read from index ${e}, but array size is: ${this.size()}`);const t=this.tensors[e];if(t.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${e} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(t.cleared=!0),t.read=!0,t.tensor}readMany(e){return e.map(t=>this.read(t))}write(e,t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||!this.dynamicSize&&e>=this.maxSize)throw new Error(`Tried to write to index ${e}, but array is not resizeable and size is: ${this.maxSize}`);const s=this.tensors[e]||{};if(t.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, + because the value dtype is ${t.dtype}, but TensorArray dtype is ${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=t.shape),Ps(this.elementShape,t.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${e}.`),s.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been read.`);if(s.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been written.`);s.tensor=t,pt(t),s.written=!0,this.tensors[e]=s}writeMany(e,t){if(e.length!==t.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${e.length} is not the same as tensors size: ${t.length}.`);e.forEach((s,n)=>this.write(s,t[n]))}gather(e,t){if(!!t&&t!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${t}`);if(e)e=e.slice(0,this.size());else{e=[];for(let n=0;n=this.maxSize)throw new Error(`Max index must be < array size (${s} vs. ${this.maxSize})`);this.writeMany(e,Ge(t,0))}split(e,t){if(t.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${t.dtype}`);let s=0;const n=e.map(a=>(s+=a,s));if(s!==t.shape[0])throw new Error(`Expected sum of lengths to be equal to + tensor.shape[0], but sum of lengths is + ${s}, and tensor's shape is: ${t.shape}`);if(!this.dynamicSize&&e.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${e.length}), and the TensorArray is not marked as dynamically resizeable`);const i=s===0?0:t.size/s,r=[];C(()=>{t=O(t,[1,s,i]);for(let a=0;a{if(s!==i.dtype)throw new Error(`Invalid data types; op elements ${s}, but list elements ${i.dtype}`);Ps(t,i.shape,"TensorList shape mismatch: "),pt(i)}),this.idTensor=j(0),this.maxNumElements=n,pt(this.idTensor)}get id(){return this.idTensor.id}copy(){return new uu([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!e.has(t.id))&&t.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(e,t,s=-1){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(s!==-1&&this.tensors.length!==s)throw new Error(`Operation expected a list with ${s} elements but got a list with ${this.tensors.length} elements.`);return Ps(e,this.elementShape,"TensorList shape mismatch: "),C(()=>{const n=this.tensors.map(i=>O(i,e));return Ve(n,0)})}popBack(e,t){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");const s=this.tensors.pop();return Ps(s.shape,e,"TensorList shape mismatch: "),O(s,e)}pushBack(e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(Ps(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");pt(e),this.tensors.push(e)}resize(e){if(e<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${e}`);if(this.maxNumElements!==-1&&e>this.maxNumElements)throw new Error(`TensorListResize input size ${e} is greater maxNumElement ${this.maxNumElements}.`);this.tensors.length=e}getItem(e,t,s){if(s!==this.elementDtype)throw new Error(`Invalid data types; op elements ${s}, but list elements ${this.elementDtype}`);if(e<0||e>this.tensors.length)throw new Error(`Trying to access element ${e} in a list with ${this.tensors.length} elements.`);if(this.tensors[e]==null)throw new Error(`element at index ${e} is null.`);return Ps(this.tensors[e].shape,t,"TensorList shape mismatch: "),this.tensors[e]}setItem(e,t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(e<0||this.maxNumElements!==-1&&e>=this.maxNumElements)throw new Error(`Trying to set element ${e} in a list with max ${this.maxNumElements} elements.`);Ps(this.elementShape,t.shape,"TensorList shape mismatch: "),pt(t),this.tensors[e]=t}gather(e,t,s){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);return Ps(this.elementShape,s,"TensorList shape mismatch: "),e=e.slice(0,this.size()),e.length===0?ze([],[0].concat(this.elementShape)):C(()=>{const n=e.map(i=>O(this.tensors[i],s));return Ve(n,0)})}concat(e,t){if(!!e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);return Ps(this.elementShape,t,"TensorList shape mismatch: "),this.size()===0?ze([],[0].concat(this.elementShape)):C(()=>{const s=this.tensors.map(n=>O(n,t));return be(s,0)})}}function oN(e,t,s){const n=e.dtype;if(e.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${e.shape}`);if(e.dtype!==s)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${s}`);const i=e.shape.slice(1);Ps(i,t,"TensorList shape mismatch: ");const r=Ge(e);return new uu(r,t,n)}function aN(e,t,s){return new uu([],e,t,s)}function lN(e,t,s,n){if(t.length!==e.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${e.shape[0]}`);const i=Math.max(...t);if(n!=null&&n!==-1&&i>=n)throw new Error(`Max index must be < array size (${i} vs. ${n})`);const r=new uu([],s,e.dtype,n),o=Ge(e,0);return t.forEach((a,l)=>{r.setItem(a,o[l])}),r}function cN(e,t,s){let n=0;const i=t.map(l=>(n+=l,n));if(n!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to + tensor.shape[0], but sum of lengths is + ${n}, and tensor's shape is: ${e.shape}`);const r=n===0?0:e.size/n,o=C(()=>{const l=[];e=O(e,[1,n,r]);for(let c=0;c{switch(e.op){case"If":case"StatelessIf":{const n=L("thenBranch",e,t,s),i=L("elseBranch",e,t,s),r=L("cond",e,t,s),o=L("args",e,t,s),a=await r.data();return a[0]?s.functionMap[n].executeFunctionAsync(o,s.tensorArrayMap,s.tensorListMap):s.functionMap[i].executeFunctionAsync(o,s.tensorArrayMap,s.tensorListMap)}case"While":case"StatelessWhile":{const n=L("body",e,t,s),i=L("cond",e,t,s),r=L("args",e,t,s),o=await s.functionMap[i].executeFunctionAsync(r,s.tensorArrayMap,s.tensorListMap),a=r.map(p=>p.id);let l=await o[0].data();o.forEach(p=>{!p.kept&&a.indexOf(p.id)===-1&&p.dispose()});let c=r;for(;l[0];){const p=c;c=await s.functionMap[n].executeFunctionAsync(c,s.tensorArrayMap,s.tensorListMap);const u=c.map(d=>d.id);p.forEach(d=>{!d.kept&&a.indexOf(d.id)===-1&&u.indexOf(d.id)===-1&&d.dispose()});const h=await s.functionMap[i].executeFunctionAsync(c,s.tensorArrayMap,s.tensorListMap);l=await h[0].data(),h.forEach(d=>{!d.kept&&a.indexOf(d.id)===-1&&u.indexOf(d.id)===-1&&d.dispose()})}return c}case"LoopCond":{const n=L("pred",e,t,s);return[Bn(n)]}case"Switch":{const n=L("pred",e,t,s);let i=L("data",e,t,s);return i.kept||(i=Bn(i)),(await n.data())[0]?[void 0,i]:[i,void 0]}case"Merge":{const n=e.inputNames.find(i=>Vt(i,t,s)!==void 0);if(n){const i=Vt(n,t,s);return[Bn(i)]}return}case"Enter":{const n=L("frameName",e,t,s),i=L("tensor",e,t,s);return s.enterFrame(n),[Bn(i)]}case"Exit":{const n=L("tensor",e,t,s);return s.exitFrame(),[Bn(n)]}case"NextIteration":{const n=L("tensor",e,t,s);return s.nextIteration(),[Bn(n)]}case"TensorArrayV3":{const n=L("size",e,t,s),i=L("dtype",e,t,s),r=L("elementShape",e,t,s),o=L("dynamicSize",e,t,s),a=L("clearAfterRead",e,t,s),l=L("identicalElementShapes",e,t,s),c=L("name",e,t,s),p=new rN(c,i,n,r,l,o,a);return s.addTensorArray(p),[p.idTensor,j(1)]}case"TensorArrayWriteV3":{const n=L("tensorArrayId",e,t,s),i=L("index",e,t,s),r=L("tensor",e,t,s),o=s.getTensorArray(n.id);return o.write(i,r),[o.idTensor]}case"TensorArrayReadV3":{const n=L("tensorArrayId",e,t,s),i=L("index",e,t,s),r=s.getTensorArray(n.id);return[r.read(i)]}case"TensorArrayGatherV3":{const n=L("tensorArrayId",e,t,s),i=L("indices",e,t,s),r=L("dtype",e,t,s),o=s.getTensorArray(n.id);return[o.gather(i,r)]}case"TensorArrayScatterV3":{const n=L("tensorArrayId",e,t,s),i=L("indices",e,t,s),r=L("tensor",e,t,s),o=s.getTensorArray(n.id);return o.scatter(i,r),[o.idTensor]}case"TensorArrayConcatV3":{const n=L("tensorArrayId",e,t,s),i=s.getTensorArray(n.id),r=L("dtype",e,t,s);return[i.concat(r)]}case"TensorArraySplitV3":{const n=L("tensorArrayId",e,t,s),i=L("tensor",e,t,s),r=L("lengths",e,t,s),o=s.getTensorArray(n.id);return o.split(r,i),[o.idTensor]}case"TensorArraySizeV3":{const n=L("tensorArrayId",e,t,s),i=s.getTensorArray(n.id);return[j(i.size(),"int32")]}case"TensorArrayCloseV3":{const n=L("tensorArrayId",e,t,s),i=s.getTensorArray(n.id);return i.clearAndClose(),[i.idTensor]}case"TensorListSetItem":{const n=L("tensorListId",e,t,s),i=L("index",e,t,s),r=L("tensor",e,t,s),o=s.getTensorList(n.id);return o.setItem(i,r),[o.idTensor]}case"TensorListGetItem":{const n=L("tensorListId",e,t,s),i=L("index",e,t,s),r=L("elementShape",e,t,s),o=L("elementDType",e,t,s),a=s.getTensorList(n.id);return[a.getItem(i,r,o)]}case"TensorListScatterV2":case"TensorListScatter":{const n=L("indices",e,t,s),i=L("tensor",e,t,s),r=L("elementShape",e,t,s),o=L("numElements",e,t,s),a=lN(i,n,r,o);return s.addTensorList(a),[a.idTensor]}case"TensorListReserve":{const n=L("elementShape",e,t,s),i=L("elementDType",e,t,s),r=L("numElements",e,t,s),o=aN(n,i,r);return s.addTensorList(o),[o.idTensor]}case"TensorListGather":{const n=L("tensorListId",e,t,s),i=L("indices",e,t,s),r=L("elementShape",e,t,s),o=L("elementDType",e,t,s),a=s.getTensorList(n.id);return[a.gather(i,o,r)]}case"TensorListStack":{const n=L("tensorListId",e,t,s),i=L("elementShape",e,t,s),r=L("elementDType",e,t,s),o=L("numElements",e,t,s),a=s.getTensorList(n.id);return[a.stack(i,r,o)]}case"TensorListFromTensor":{const n=L("tensor",e,t,s),i=L("elementShape",e,t,s),r=L("elementDType",e,t,s),o=oN(n,i,r);return s.addTensorList(o),[o.idTensor]}case"TensorListConcat":{const n=L("tensorListId",e,t,s),i=s.getTensorList(n.id),r=L("dtype",e,t,s),o=L("elementShape",e,t,s);return[i.concat(r,o)]}case"TensorListPushBack":{const n=L("tensorListId",e,t,s),i=L("tensor",e,t,s),r=s.getTensorList(n.id);return r.pushBack(i),[r.idTensor]}case"TensorListPopBack":{const n=L("tensorListId",e,t,s),i=L("elementShape",e,t,s),r=L("elementDType",e,t,s),o=s.getTensorList(n.id);return[o.popBack(i,r)]}case"TensorListSplit":{const n=L("tensor",e,t,s),i=L("elementShape",e,t,s),r=L("lengths",e,t,s),o=cN(n,r,i);return s.addTensorList(o),[o.idTensor]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};function uN(e,t,s){const[n,i]=L("fusedOps",e,t,s),r=n==="biasadd",o=i==="prelu",a=n==="fusedbatchnorm",l=L("numArgs",e,t,s);if(r){if(o&&l!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!o&&l!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(a)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported.");const c=L("strides",e,t,s),p=pu(e,t,s),u=L("dataFormat",e,t,s).toUpperCase(),h=L("dilations",e,t,s),[d,m]=L("args",e,t,s);return{stride:c,pad:p,dataFormat:u,dilations:h,biasArg:d,preluArg:m,activationFunc:i}}const hN=(e,t,s)=>{switch(e.op){case"Conv1D":{const n=L("stride",e,t,s),i=L("pad",e,t,s),r=L("dataFormat",e,t,s).toUpperCase(),o=L("dilation",e,t,s);return[Qa(L("x",e,t,s),L("filter",e,t,s),n,i,r,o)]}case"Conv2D":{const n=L("strides",e,t,s),i=pu(e,t,s),r=L("dataFormat",e,t,s).toUpperCase(),o=L("dilations",e,t,s);return[nt(L("x",e,t,s),L("filter",e,t,s),[n[1],n[2]],i,r,[o[1],o[2]])]}case"_FusedConv2D":{const{stride:n,pad:i,dataFormat:r,dilations:o,biasArg:a,preluArg:l,activationFunc:c}=uN(e,t,s);return[gn.conv2d({x:L("x",e,t,s),filter:L("filter",e,t,s),strides:[n[1],n[2]],pad:i,dataFormat:r,dilations:[o[1],o[2]],bias:a,activation:c,preluActivationWeights:l})]}case"FusedDepthwiseConv2dNative":{const{stride:n,pad:i,dataFormat:r,dilations:o,biasArg:a,preluArg:l,activationFunc:c}=uN(e,t,s);return[gn.depthwiseConv2d({x:L("x",e,t,s),filter:L("filter",e,t,s),strides:[n[1],n[2]],pad:i,dataFormat:r,dilations:[o[1],o[2]],bias:a,activation:c,preluActivationWeights:l})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{const n=L("outputShape",e,t,s),i=L("strides",e,t,s),r=pu(e,t,s);return[tl(L("x",e,t,s),L("filter",e,t,s),n,[i[1],i[2]],r)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{const n=L("strides",e,t,s),i=pu(e,t,s),r=L("dilations",e,t,s),o=L("dataFormat",e,t,s).toUpperCase();return[un(L("input",e,t,s),L("filter",e,t,s),[n[1],n[2]],i,o,[r[1],r[2]])]}case"Conv3D":{const n=L("strides",e,t,s),i=L("pad",e,t,s),r=L("dataFormat",e,t,s).toUpperCase(),o=L("dilations",e,t,s);return[sl(L("x",e,t,s),L("filter",e,t,s),[n[1],n[2],n[3]],i,r,[o[1],o[2],o[3]])]}case"AvgPool":{const n=L("strides",e,t,s),i=L("pad",e,t,s),r=L("kernelSize",e,t,s);return[hs(L("x",e,t,s),[r[1],r[2]],[n[1],n[2]],i)]}case"MaxPool":{const n=L("strides",e,t,s),i=L("pad",e,t,s),r=L("kernelSize",e,t,s);return[mt(L("x",e,t,s),[r[1],r[2]],[n[1],n[2]],i)]}case"MaxPoolWithArgmax":{const n=L("strides",e,t,s),i=L("pad",e,t,s),r=L("kernelSize",e,t,s),o=L("includeBatchInIndex",e,t,s),{result:a,indexes:l}=Eh(L("x",e,t,s),[r[1],r[2]],[n[1],n[2]],i,o);return[a,l]}case"AvgPool3D":{const n=L("strides",e,t,s),i=L("pad",e,t,s),r=L("kernelSize",e,t,s);return[Za(L("x",e,t,s),[r[1],r[2],r[3]],[n[1],n[2],n[3]],i)]}case"MaxPool3D":{const n=L("strides",e,t,s),i=L("pad",e,t,s),r=L("kernelSize",e,t,s);return[cl(L("x",e,t,s),[r[1],r[2],r[3]],[n[1],n[2],n[3]],i)]}case"Dilation2D":{const n=L("strides",e,t,s),i=L("pad",e,t,s),r=L("dilations",e,t,s),o=n[1],a=n[2],l=r[1],c=r[2];return[Lh(L("x",e,t,s),L("filter",e,t,s),[o,a],i,[l,c],"NHWC")]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};const dN=(e,t,s)=>{switch(e.op){case"Fill":{const n=L("shape",e,t,s),i=L("dtype",e,t,s),r=L("value",e,t,s);return[Wt(n,r,i)]}case"LinSpace":{const n=L("start",e,t,s),i=L("stop",e,t,s),r=L("num",e,t,s);return[Ah(n,i,r)]}case"Multinomial":{const n=L("logits",e,t,s),i=L("numSamples",e,t,s),r=L("seed",e,t,s);return[_h(n,i,r)]}case"OneHot":{const n=L("indices",e,t,s),i=L("depth",e,t,s),r=L("onValue",e,t,s),o=L("offValue",e,t,s);return[ai(n,i,r,o)]}case"Ones":return[Kt(L("shape",e,t,s),L("dtype",e,t,s))];case"OnesLike":return[Ot(L("x",e,t,s))];case"RandomUniform":return[fn(L("shape",e,t,s),L("minval",e,t,s),L("maxval",e,t,s),L("dtype",e,t,s))];case"Range":{const n=L("start",e,t,s),i=L("stop",e,t,s),r=L("step",e,t,s);return[Fi(n,i,r,L("dtype",e,t,s))]}case"TruncatedNormal":{const n=L("shape",e,t,s),i=L("mean",e,t,s),r=L("stdDev",e,t,s),o=L("seed",e,t,s);return[Kr(n,i,r,L("dtype",e,t,s),o)]}case"Zeros":return[ye(L("shape",e,t,s),L("dtype",e,t,s))];case"ZerosLike":return[re(L("x",e,t,s))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function tw(e,t,s){const n=L("boxes",e,t,s),i=L("scores",e,t,s),r=L("maxOutputSize",e,t,s),o=L("iouThreshold",e,t,s),a=L("scoreThreshold",e,t,s),l=L("softNmsSigma",e,t,s);return{boxes:n,scores:i,maxOutputSize:r,iouThreshold:o,scoreThreshold:a,softNmsSigma:l}}const mN=async(e,t,s)=>{switch(e.op){case"NonMaxSuppressionV5":{const{boxes:n,scores:i,maxOutputSize:r,iouThreshold:o,scoreThreshold:a,softNmsSigma:l}=tw(e,t,s),c=await Zs.nonMaxSuppressionWithScoreAsync(n,i,r,o,a,l);return[c.selectedIndices,c.selectedScores]}case"NonMaxSuppressionV4":{const{boxes:n,scores:i,maxOutputSize:r,iouThreshold:o,scoreThreshold:a}=tw(e,t,s),l=L("padToMaxOutputSize",e,t,s),c=await Zs.nonMaxSuppressionPaddedAsync(n,i,r,o,a,l);return[c.selectedIndices,c.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{const{boxes:n,scores:i,maxOutputSize:r,iouThreshold:o,scoreThreshold:a}=tw(e,t,s);return[await Zs.nonMaxSuppressionAsync(n,i,r,o,a)]}case"Where":{const n=G(L("condition",e,t,s),"bool"),i=[await bl(n)];return n.dispose(),i}case"ListDiff":return Uh(L("x",e,t,s),L("y",e,t,s));default:throw TypeError(`Node type ${e.op} is not implemented`)}};const fN=(e,t,s)=>{switch(e.op){case"TopKV2":{const n=L("x",e,t,s),i=L("k",e,t,s),r=L("sorted",e,t,s),o=Ph(n,i,r);return[o.values,o.indices]}case"Unique":{const n=L("x",e,t,s),i=Rp(n);return[i.values,i.indices]}case"UniqueV2":{const n=L("x",e,t,s),i=L("axis",e,t,s),r=Rp(n,i);return[r.values,r.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};const gN=(e,t,s)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":const n=L("default",e,t,s);return[Vt(e.name,t,s)||n];case"Placeholder":return[Vt(e.name,t,s)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{const c=L("x",e,t,s);return[Bn(c)]}case"IdentityN":return L("x",e,t,s).map(c=>Bn(c));case"Snapshot":const i=L("x",e,t,s);return[Bn(i)];case"Shape":return[Oe(L("x",e,t,s).shape,"int32")];case"ShapeN":return L("x",e,t,s).map(c=>Oe(c.shape));case"Size":return[j(L("x",e,t,s).size,"int32")];case"Rank":return[j(L("x",e,t,s).rank,"int32")];case"NoOp":return[j(1)];case"Print":const r=L("x",e,t,s),o=L("data",e,t,s),a=L("message",e,t,s),l=L("summarize",e,t,s);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(a);for(let c=0;c{switch(e.op){case"ResizeBilinear":{const n=L("images",e,t,s),i=L("size",e,t,s),r=L("alignCorners",e,t,s);return[Zs.resizeBilinear(n,[i[0],i[1]],r)]}case"ResizeNearestNeighbor":{const n=L("images",e,t,s),i=L("size",e,t,s),r=L("alignCorners",e,t,s);return[Zs.resizeNearestNeighbor(n,[i[0],i[1]],r)]}case"CropAndResize":{const n=L("image",e,t,s),i=L("boxes",e,t,s),r=L("boxInd",e,t,s),o=L("cropSize",e,t,s),a=L("method",e,t,s),l=L("extrapolationValue",e,t,s);return[Zs.cropAndResize(n,i,r,o,a,l)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};const bN=(e,t,s)=>{switch(e.op){case"Equal":return[os(L("a",e,t,s),L("b",e,t,s))];case"NotEqual":return[Ks(L("a",e,t,s),L("b",e,t,s))];case"Greater":return[Ut(L("a",e,t,s),L("b",e,t,s))];case"GreaterEqual":return[ds(L("a",e,t,s),L("b",e,t,s))];case"Less":return[zr(L("a",e,t,s),L("b",e,t,s))];case"LessEqual":return[$s(L("a",e,t,s),L("b",e,t,s))];case"LogicalAnd":return[Yt(L("a",e,t,s),L("b",e,t,s))];case"LogicalNot":return[Pr(L("a",e,t,s))];case"LogicalOr":return[ll(L("a",e,t,s),L("b",e,t,s))];case"Select":case"SelectV2":return[dt(L("condition",e,t,s),L("a",e,t,s),L("b",e,t,s))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};const wN=(e,t,s)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[Te(L("a",e,t,s),L("b",e,t,s),L("transposeA",e,t,s),L("transposeB",e,t,s))];case"Transpose":return[se(L("x",e,t,s),L("perm",e,t,s))];case"_FusedMatMul":const[n,i]=L("fusedOps",e,t,s),r=n==="biasadd",o=i==="prelu",a=L("numArgs",e,t,s);if(r){if(o&&a!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!o&&a!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}const[l,c]=L("args",e,t,s);return[gn.matMul({a:L("a",e,t,s),b:L("b",e,t,s),transposeA:L("transposeA",e,t,s),transposeB:L("transposeB",e,t,s),bias:l,activation:i,preluActivationWeights:c})];default:throw TypeError(`Node type ${e.op} is not implemented`)}};const xN=(e,t,s)=>{switch(e.op){case"FusedBatchNorm":case"FusedBatchNormV2":return[Ys(L("x",e,t,s),L("mean",e,t,s),L("variance",e,t,s),L("offset",e,t,s),L("scale",e,t,s),L("epsilon",e,t,s))];case"FusedBatchNormV3":return[Ys(L("x",e,t,s),L("mean",e,t,s),L("variance",e,t,s),L("offset",e,t,s),L("scale",e,t,s),L("epsilon",e,t,s))];case"LRN":return[Nh(L("x",e,t,s),L("radius",e,t,s),L("bias",e,t,s),L("alpha",e,t,s),L("beta",e,t,s))];case"Softmax":return[es(L("x",e,t,s))];case"LogSoftmax":return[al(L("x",e,t,s))];case"SparseToDense":return[Ep(L("sparseIndices",e,t,s),L("outputShape",e,t,s),L("sparseValues",e,t,s),L("defaultValue",e,t,s))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};const LN=(e,t,s)=>{switch(e.op){case"Max":{const n=L("axis",e,t,s),i=L("keepDims",e,t,s);return[xt(L("x",e,t,s),n,i)]}case"Mean":{const n=L("axis",e,t,s),i=L("keepDims",e,t,s);return[Ke(L("x",e,t,s),n,i)]}case"Min":{const n=L("axis",e,t,s),i=L("keepDims",e,t,s);return[Di(L("x",e,t,s),n,i)]}case"Sum":{const n=L("axis",e,t,s),i=L("keepDims",e,t,s);return[te(L("x",e,t,s),n,i)]}case"All":{const n=L("axis",e,t,s),i=L("keepDims",e,t,s);return[Xa(L("x",e,t,s),n,i)]}case"Any":{const n=L("axis",e,t,s),i=L("keepDims",e,t,s);return[Uo(L("x",e,t,s),n,i)]}case"ArgMax":{const n=L("axis",e,t,s);return[$o(L("x",e,t,s),n)]}case"ArgMin":{const n=L("axis",e,t,s);return[nh(L("x",e,t,s),n)]}case"Prod":{const n=L("axis",e,t,s),i=L("keepDims",e,t,s);return[ul(L("x",e,t,s),n,i)]}case"Cumsum":{const n=L("axis",e,t,s),i=L("exclusive",e,t,s),r=L("reverse",e,t,s);return[il(L("x",e,t,s),n,i,r)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};const SN=(e,t,s)=>{switch(e.op){case"ConcatV2":case"Concat":{const n=L("n",e,t,s),i=L("axis",e,t,s);let r=L("tensors",e,t,s);return r=r.slice(0,n),[be(r,i)]}case"GatherV2":case"Gather":{const n=L("axis",e,t,s),i=L("x",e,t,s),r=L("indices",e,t,s);return[ci(i,G(r,"int32"),n)]}case"ReverseV2":case"Reverse":{const n=L("axis",e,t,s),i=L("x",e,t,s);return[Et(i,n)]}case"Slice":{const n=L("begin",e,t,s),i=L("size",e,t,s);return[he(L("x",e,t,s),n,i)]}case"StridedSlice":{const n=L("begin",e,t,s),i=L("end",e,t,s),r=L("strides",e,t,s),o=L("beginMask",e,t,s),a=L("endMask",e,t,s),l=L("ellipsisMask",e,t,s),c=L("newAxisMask",e,t,s),p=L("shrinkAxisMask",e,t,s),u=L("x",e,t,s);return[Wh(u,n,i,r,o,a,l,c,p)]}case"Pack":return C(()=>{const n=L("axis",e,t,s),i=L("tensors",e,t,s),r=i[0].shape,o=Js(i[0]).shape,a=i.map(l=>{const c=N.arraysEqual(l.shape,r);if(!c&&!N.arraysEqual(Js(l).shape,o))throw new Error("the input tensors shape does not match");return c?l:O(l,r)});return[Ve(a,n)]});case"Unpack":{const n=L("axis",e,t,s),i=L("tensor",e,t,s);return Ge(i,n)}case"Tile":{const n=L("reps",e,t,s);return[Us(L("x",e,t,s),n)]}case"Split":case"SplitV":{const n=L("axis",e,t,s),i=L("numOrSizeSplits",e,t,s),r=L("x",e,t,s);return Bt(r,i,n)}case"ScatterNd":{const n=L("indices",e,t,s),i=L("values",e,t,s),r=L("shape",e,t,s);return[By(n,i,r)]}case"GatherNd":{const n=L("x",e,t,s),i=L("indices",e,t,s);return[jy(n,i)]}case"SparseToDense":{const n=L("sparseIndices",e,t,s),i=L("outputShape",e,t,s),r=L("sparseValues",e,t,s),o=L("defaultValue",e,t,s);return[Ep(n,r,i,r.dtype===o.dtype?o:G(o,r.dtype))]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};const IN=(e,t,s)=>{switch(e.op){case"FFT":return[qr(L("x",e,t,s))];case"IFFT":return[Mi(L("x",e,t,s))];case"RFFT":return[Hr(L("x",e,t,s))];case"IRFFT":return[yl(L("x",e,t,s))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};const vN=(e,t,s)=>{switch(e.op){case"Cast":return[G(L("x",e,t,s),L("dtype",e,t,s))];case"ExpandDims":{const n=L("axis",e,t,s);return[Mt(L("x",e,t,s),n)]}case"Squeeze":{const n=L("axis",e,t,s);return[Js(L("x",e,t,s),n)]}case"Reshape":return[O(L("x",e,t,s),L("shape",e,t,s))];case"PadV2":case"Pad":return[Pt(L("x",e,t,s),L("padding",e,t,s),L("constantValue",e,t,s))];case"SpaceToBatchND":{const n=L("blockShape",e,t,s),i=L("paddings",e,t,s);return[Br(L("x",e,t,s),n,i)]}case"BatchToSpaceND":{const n=L("blockShape",e,t,s),i=L("crops",e,t,s);return[$r(L("x",e,t,s),n,i)]}case"DepthToSpace":{const n=L("blockSize",e,t,s),i=L("dataFormat",e,t,s).toUpperCase();return[xh(L("x",e,t,s),n,i)]}case"BroadcastTo":return[zo(L("x",e,t,s),L("shape",e,t,s))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function sw(e,t,s){const n=((i,r,o)=>{switch(i.category){case"arithmetic":return C(()=>nN(i,r,o));case"basic_math":return C(()=>iN(i,r,o));case"control":return pN(i,r,o);case"convolution":return C(()=>hN(i,r,o));case"creation":return C(()=>dN(i,r,o));case"dynamic":return mN(i,r,o);case"evaluation":return C(()=>fN(i,r,o));case"image":return C(()=>yN(i,r,o));case"graph":return C(()=>gN(i,r,o));case"logical":return C(()=>bN(i,r,o));case"matrices":return C(()=>wN(i,r,o));case"normalization":return C(()=>xN(i,r,o));case"reduction":return C(()=>LN(i,r,o));case"slice_join":return C(()=>SN(i,r,o));case"spectral":return C(()=>IN(i,r,o));case"transformation":return C(()=>vN(i,r,o));case"custom":const a=Mm(i.op);if(a&&a.customExecutor)return a.customExecutor(new sN(i,r,o));throw TypeError(`Custom op ${i.op} is not registered.`);default:throw TypeError(`Unknown op '${i.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(e,t,s);return n instanceof Promise?n.then(i=>[].concat(i)):[].concat(n)}class nw{constructor(e={},t={},s={},n={}){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=s,this.functionMap=n,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(e,t){return{id:e,frameName:t,iterationId:0}}set currentContext(e){this.contexts!==e&&(this.contexts=e,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){const e=[];for(let t=0;tt.id===0&&t.iterationId===0?"":`${t.frameName}-${t.iterationId}`).join("/"):""}enterFrame(e){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,e)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error("Cannot exit frame, the context is empty")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;const e=Object.assign({},this.contexts[this.contexts.length-1]);e.iterationId+=1,e.id=this.lastId,this.contexts.splice(-1,1,e),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error("Cannot increase frame iteration, the context is empty")}getWeight(e){return this.weightMap[e]}addTensorArray(e){this.tensorArrayMap[e.id]=e}getTensorArray(e){return this.tensorArrayMap[e]}addTensorList(e){this.tensorListMap[e.id]=e}getTensorList(e){return this.tensorListMap[e]}dispose(e){for(const t in this.tensorArrayMap)this.tensorArrayMap[t].clearAndClose(e);for(const t in this.tensorListMap)this.tensorListMap[t].clearAndClose(e)}}function rw(e,t,s,n){const i=new Set,r=[];let o=null,a=null;const l=new Set,c=Object.keys(e).map(h=>Ls(h)[0]);let p=[];n!=null&&(p=n.map(h=>Ls(h.name)[0]));const u=[...t];for(;u.length>0;){const h=u.pop();if((iw(h)||rB(h))&&(o==null&&(o=h,a=o.children.map(d=>d.name).filter(d=>i.has(d)))),i.add(h.name),s[h.name]!=null)continue;if(c.indexOf(h.name)!==-1)continue;if(p.indexOf(h.name)!==-1)continue;if(h.inputs.length===0){r.push(h.name);continue}h.inputs.forEach(d=>{if(l.has(d.name))return;l.add(d.name),u.push(d)})}return{inputs:e,outputs:t,usedNodes:i,missingInputs:r,dynamicNode:o,syncInputs:a}}function TN(e,t,s){const{usedNodes:n,inputs:i}=s,r=[],o=Object.keys(i).map(p=>Ls(p)[0]).map(p=>e.nodes[p]),a=e.initNodes;o.forEach(p=>{n.has(p.name)&&r.push(p)}),e.weights.forEach(p=>{n.has(p.name)&&r.push(p)}),a!=null&&a.forEach(p=>{n.has(p.name)&&r.push(p)});const l=new Set,c=[];for(;r.length>0;){const p=r.pop();l.add(p.name),t[p.name]||c.push(p),p.children.forEach(u=>{!l.has(u.name)&&n.has(u.name)&&u.inputs.every(h=>l.has(h.name))&&r.push(u)})}return c}const oB=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],aB=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"];function iw(e){return oB.indexOf(e.op)>=0}function rB(e){return aB.indexOf(e.op)>=0}class Ym{constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this._outputs=e.outputs,this._inputs=e.inputs,this._initNodes=e.initNodes,this._signature=e.signature,this._functions=e.functions,e.functions!=null&&Object.keys(e.functions).forEach(s=>{this._functionExecutorMap[s]=new Ym(e.functions[s],this)})}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(e){const t=Object.keys(e).map(s=>e[s].map(n=>n.id));this._weightIds=[].concat(...t),this._weightMap=e}get inputs(){return this._inputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(e=>e.signatureKey||e.name)}get outputNodes(){return this._outputs.map(e=>{const t=e.signatureKey||e.name;return e.defaultOutput?`${t}:${e.defaultOutput}`:t})}get functions(){return Object.keys(this._functions).reduce((e,t)=>(e[t]=this._functions[t].signature,e),{})}getCompilationKey(e,t){const s=e.map(i=>i.name).sort(),n=t.map(i=>i.name).sort();return s.join(this.SEPERATOR)+"--"+n.join(this.SEPERATOR)}compile(e,t){const s=rw(e,t,this.weightMap,this._initNodes),{missingInputs:n,dynamicNode:i,syncInputs:r}=s;if(i!=null)throw new Error(`This execution contains the node '${i.name}', which has the dynamic op '${i.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${r}]`);if(n.length>0){const o=t.map(l=>l.name),a=Object.keys(e);throw new Error(`Cannot compute the outputs [${o}] from the provided inputs [${a}]. Missing the following inputs: [${n}]`)}return TN(this.graph,this.weightMap,s)}execute(e,t){e=this.mapInputs(e);const s=Object.keys(e).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);const n=s.map(p=>this.graph.nodes[Ls(p)[0]]),i=t.map(p=>Ls(p)[0]);let r=i.map(p=>this.graph.nodes[p]);r.length===0&&(r=this._outputs);const o=this.getCompilationKey(n,r);let a=this.compiledMap.get(o);a==null&&(a=this.compile(e,r),this.compiledMap.set(o,a));const l={},c={};return C(()=>{const p=new nw(this.weightMap,l,c,this.functionExecutorMap),u=Object.assign({},this.weightMap);Object.keys(e).forEach(m=>{const[f,g]=Ls(m),y=[];y[g]=e[m],u[f]=y});const h=this.getFrozenTensorIds(u),d={};for(let m=0;mVt(m,u,p))})}getFrozenTensorIds(e){const t=[].concat.apply([],Object.keys(e).map(s=>e[s]).map(s=>s.map(n=>n.id)));return new Set(t)}checkTensorForDisposal(e,t,s,n,i,r,o){if(t.category==="control"||r.indexOf(e)!==-1)return;s[e].forEach(a=>{a!=null&&(o[a.id]=(o[a.id]||0)+t.children.length)}),t.inputs.forEach(a=>{if(a.category!=="control"){const l=ZA(a.name,s,n);l!=null&&l.forEach(c=>{if(c&&!i.has(c.id)){const p=o[c.id];p===1?(c.dispose(),delete o[c.id]):p!=null&&o[c.id]--}})}})}async executeAsync(e,t){return this._executeAsync(e,t)}async _executeAsync(e,t,s=!1,n={},i={}){s||(e=this.mapInputs(e),this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t));const r=new nw(this.weightMap,n,i,this.functionExecutorMap),o=await this.executeWithControlFlow(e,r,t,s),a=t.map(u=>Vt(u,o,r)),l=a.map(u=>u.id),c=Object.keys(e).map(u=>e[u].id),p=new Set([...l,...c,...this.weightIds]);return Object.keys(o).forEach(u=>{const h=o[u];h.forEach(d=>{d&&!d.isDisposed&&!p.has(d.id)&&d.dispose()})}),this.parent==null&&r.dispose(p),a}async executeFunctionAsync(e,t,s){const n=e.reduce((i,r,o)=>(i[this.inputs[o].name]=r,i),{});return this._executeAsync(n,this.outputNodes,!0,t,s)}async executeWithControlFlow(e,t,s,n){const i=Object.keys(e),r=i.map(w=>this.graph.nodes[Ls(w)[0]]),o=s.map(w=>Ls(w)[0]),a=o.map(w=>this.graph.nodes[w]),{usedNodes:l,missingInputs:c,dynamicNode:p,syncInputs:u}=rw(e,a,this.weightMap),h=[...r,...this.graph.weights].map(w=>({node:w,contexts:t.currentContext})),d=Object.assign({},this.weightMap);Object.keys(e).forEach(w=>{const[x,T]=Ls(w),A=[];A[T]=e[w],d[x]=A});const m={},f=this.getFrozenTensorIds(d),g={};for(;h.length>0;){const w=this.processStack(r,h,t,d,g,f,o,m,l);await Promise.all(w)}p==null&&!n&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");const y=a.filter(w=>!iw(w)&&!Vt(w.name,d,t)).map(w=>w.name);if(y.length>0){let w="";throw p!=null&&(w=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${u}]`),new Error(`Cannot compute the outputs [${y}] from the provided inputs [${i}]. Consider providing the following inputs: [${c}]. ${w}`)}return d}processStack(e,t,s,n,i,r,o,a,l){const c=[];for(;t.length>0;){const p=t.pop();s.currentContext=p.contexts;let u="";if(p.node.op==="Enter"&&L("isConstant",p.node,n,s)&&([u]=Pn(p.node.name,s)),e.indexOf(p.node)===-1){const h=sw(p.node,n,s);u||([u]=Pn(p.node.name,s));const d=s.currentContext;h instanceof Promise?c.push(h.then(m=>(n[u]=m,s.currentContext=d,this.checkTensorForDisposal(u,p.node,n,s,r,o,a),this.processChildNodes(p.node,t,s,n,i,l),m))):(n[u]=h,this.checkTensorForDisposal(u,p.node,n,s,r,o,a),this.processChildNodes(p.node,t,s,n,i,l))}else this.processChildNodes(p.node,t,s,n,i,l)}return c}processChildNodes(e,t,s,n,i,r){e.children.forEach(o=>{const[a]=Pn(o.name,s);if(i[a]||!r.has(o.name))return;o.op==="Merge"?o.inputNames.some(l=>!!Vt(l,n,s))&&(i[a]=!0,t.push({contexts:s.currentContext,node:o})):o.inputNames.every(l=>!!Vt(l,n,s))&&(i[a]=!0,t.push({contexts:s.currentContext,node:o}))})}dispose(){Object.keys(this.weightMap).forEach(e=>this.weightMap[e].forEach(t=>t.dispose()))}checkInputShapeAndType(e){Object.keys(e).forEach(t=>{const s=e[t],[n]=Ls(t),i=this.graph.nodes[n];if(i.attrParams.shape&&i.attrParams.shape.value){const r=i.attrParams.shape.value,o=r.length===s.shape.length&&s.shape.every((a,l)=>r[l]===-1||r[l]===a);N.assert(o,()=>`The shape of dict['${i.name}'] provided in model.execute(dict) must be [${r}], but was [${s.shape}]`)}i.attrParams.dtype&&i.attrParams.dtype.value&&N.assert(s.dtype===i.attrParams.dtype.value,()=>`The dtype of dict['${i.name}'] provided in model.execute(dict) must be ${i.attrParams.dtype.value}, but was ${s.dtype}`)})}mapInputs(e){const t={};for(const s in e)if(this._signature!=null&&this._signature.inputs!=null&&this._signature.inputs[s]!=null){const n=this._signature.inputs[s];t[n.name]=e[s]}else t[s]=e[s];return t}checkInputs(e){const t=Object.keys(e).filter(s=>{const[n]=Ls(s);return this.graph.nodes[n]==null});if(t.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${t}] that are not part of graph`)}mapOutputs(e){return e.map(t=>{if(this._signature!=null&&this._signature.outputs!=null&&this._signature.outputs[t]!=null){const s=this._signature.outputs[t];return s.name}return t},{})}checkOutputs(e){e.forEach(t=>{const[s]=Ls(t);if(!this.graph.nodes[s])throw new Error(`The output '${t}' is not found in the graph`)})}}const lB="?tfjs-format=file",cB="model.json";class ow{constructor(e,t={}){this.modelUrl=e,this.loadOptions=t,this.version="n/a",t==null&&(this.loadOptions={})}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}findIOHandler(){const e=this.modelUrl;if(e.load!=null)this.handler=e;else if(this.loadOptions.requestInit!=null)this.handler=Rt.browserHTTPRequest(e,this.loadOptions);else{const t=Rt.getLoadHandlers(e,this.loadOptions);if(t.length===0)t.push(Rt.browserHTTPRequest(e,this.loadOptions));else if(t.length>1)throw new Error(`Found more than one (${t.length}) load handlers for URL '${[e]}'`);this.handler=t[0]}}async load(){if(this.findIOHandler(),this.handler.load==null)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");const e=await this.handler.load();return this.loadSync(e)}loadSync(e){this.artifacts=e;const t=this.artifacts.modelTopology;let s={};this.artifacts.userDefinedMetadata!=null&&(s=this.artifacts.userDefinedMetadata.signature),this.version=`${t.versions.producer}.${t.versions.minConsumer}`;const n=Rt.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new Ym(ew.Instance.transformGraph(t,s)),this.executor.weightMap=this.convertTensorMapToTensorsMap(n),e.modelInitializer!=null){const i=ew.Instance.transformGraph(e.modelInitializer);this.initializer=new Ym(i),this.initializer.weightMap=this.executor.weightMap,this.initializer.execute({},[])}return!0}async save(e,t){if(typeof e=="string"){const s=Rt.getSaveHandlers(e);if(s.length===0)throw new Error(`Cannot find any save handlers for URL '${e}'`);if(s.length>1)throw new Error(`Found more than one (${s.length}) save handlers for URL '${e}'`);e=s[0]}if(e.save==null)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return e.save(this.artifacts)}predict(e,t){return this.execute(e,this.outputNodes)}normalizeInputs(e){if(!(e instanceof me)&&!Array.isArray(e))return e;if(e=Array.isArray(e)?e:[e],e.length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${e.length} input tensors.`);return this.inputNodes.reduce((t,s,n)=>(t[s]=e[n],t),{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}execute(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);const s=this.executor.execute(e,t);return s.length>1?s:s[0]}async executeAsync(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);const s=await this.executor.executeAsync(e,t);return s.length>1?s:s[0]}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce((t,s)=>(t[s]=[e[s]],t),{})}dispose(){this.executor.dispose(),this.initializer&&this.initializer.dispose()}}async function AN(e,t={}){if(e==null)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");t==null&&(t={}),t.fromTFHub&&(e.load==null&&(e.endsWith("/")||(e=e+"/"),e=`${e}${cB}${lB}`));const s=new ow(e,t);return await s.load(),s}const Km="2.6.0";function NN(e,t){return Xm(e,t)}function Xm(e,t,s=new Map,n=new Set){if(e==null)return null;if(n.has(e))throw new Error("Circular references are not supported.");if(s.has(e))return s.get(e);const i=t(e);if(i.recurse&&i.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(i.recurse)if(oo(e)){const r=Array.isArray(e)?[]:{};n.add(e);for(const o in e){const a=e[o],l=Xm(a,t,s,n);r[o]=l}return n.delete(e),r}else throw new Error(`Can't recurse into non-iterable type: ${e}`);else return s.set(e,i.value),i.value}function RN(e,t=aw){return CN(e,t)}function CN(e,t,s=new Set){const n=e[0];if(s.has(n))throw new Error("Circular references are not supported.");const i=t(e);if(i.recurse&&i.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(i.recurse)if(oo(n)){const r=Array.isArray(n)?[]:{};s.add(n);for(const o in n){const a=e.map(c=>c[o]),l=CN(a,t,s);r[o]=l}return s.delete(n),r}else throw new Error(`Can't recurse into non-iterable type: ${n}`);else return i.value}function aw(e){return e===null?null:oo(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function Jm(e,t){const s=new Map;Xm(e,t,s);for(const i of Array.from(s.keys())){const r=s.get(i);if(r instanceof Promise){const o=await r;s.set(i,o)}}const n=Xm(e,t,s);return n}function oo(e){return e!=null&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||typeof e=="object"&&!(e instanceof me))}function ON(e){return e==null||pB(e)||Array.isArray(e)||typeof e=="object"&&e instanceof me||N.isTypedArray(e)}function pB(e){return e===null||typeof e!="object"&&typeof e!="function"}function EN(e){return NN(e,uB)}function uB(e){return e instanceof me?{value:e.clone(),recurse:!1}:oo(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}class Zm{constructor(e){if(this.capacity=e,this.begin=0,this.end=0,e==null)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(e<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(e),this.doubledCapacity=2*e}wrap(e){for(;e<0;)e+=this.doubledCapacity;return e%this.doubledCapacity}get(e){if(e<0)throw new RangeError("Can't get item at a negative index.");return this.data[e%this.capacity]}set(e,t){if(e<0)throw new RangeError("Can't set item at a negative index.");this.data[e%this.capacity]=t}length(){let e=this.end-this.begin;return e<0&&(e=this.doubledCapacity+e),e}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,e),this.end=this.wrap(this.end+1)}pushAll(e){for(const t of e)this.push(t)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);const e=this.get(this.end);return this.set(this.end,void 0),e}unshift(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,e)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");const e=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),e}shuffleExcise(e){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");const t=this.wrap(this.begin+e),s=this.get(t);return this.set(t,this.pop()),s}}class Qm extends Zm{constructor(){super(Qm.INITIAL_CAPACITY)}isFull(){return!1}push(e){super.isFull()&&this.expand(),super.push(e)}unshift(e){super.isFull()&&this.expand(),super.unshift(e)}expand(){const e=this.capacity*2,t=new Array(e),s=this.length();for(let n=0;nt===!0)}rowMajorBatch(e,t=!0){return new bB(this,e,t)}columnMajorBatch(e,t=!0,s=aw){const n=this.rowMajorBatch(e,t);return n.map(i=>RN(i,s))}concatenate(e,t){return new kN(lw([this,e]),t)}take(e){return e<0||e==null?this:new yB(this,e)}skip(e){return e<0||e==null?this:new gB(this,e)}prefetch(e){return new UN(this,e)}shuffle(e,t){return new IB(this,e,t)}serial(){return new fB(this)}}class hB extends At{constructor(e){super();this.items=e,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};const e=this.items[this.trav];return this.trav++,{value:EN(e),done:!1}}}class dB extends At{constructor(e){super();this.nextFn=e}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(e){throw e.message=`Error thrown while iterating through a dataset: ${e.message}`,e}}}class fB extends At{constructor(e){super();this.upstream=e,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){return this.upstream.next()}}class gB extends At{constructor(e,t){super();this.upstream=e,this.maxCount=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}}class bB extends At{constructor(e,t,s=!0){super();this.upstream=e,this.batchSize=t,this.enableSmallLastBatch=s,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){const e=[];for(;e.length0?{value:e,done:!1}:{value:null,done:!0};e.push(t.value)}return{value:e,done:!1}}}class wB extends At{constructor(e,t){super();this.upstream=e,this.predicate=t,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;){const e=await this.upstream.next();if(e.done||this.predicate(e.value))return e;ce(e.value)}}}class xB extends At{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Map`}async next(){const e=await this.upstream.next();if(e.done)return{value:null,done:!0};const t=pn.getTensorsInContainer(e.value),s=this.transform(e.value),n=pn.getTensorsInContainer(s);for(const i of t)pn.isTensorInList(i,n)||i.dispose();return{value:s,done:!1}}}class LB extends At{constructor(e,t){super();this.upstream=e,this.handler=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(e){if(!this.handler(e))return{value:null,done:!0}}}}class MN extends At{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){const e=await this.upstream.next();if(e.done)return{value:null,done:!0};const t=pn.getTensorsInContainer(e.value),s=await this.transform(e.value),n=pn.getTensorsInContainer(s);for(const i of t)pn.isTensorInList(i,n)||i.dispose();return{value:s,done:!1}}}class du extends At{constructor(){super();this.outputQueue=new Qm,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}}class SB extends du{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){const e=await this.upstream.next();if(e.done)return!1;const t=pn.getTensorsInContainer(e.value),s=this.transform(e.value),n=pn.getTensorsInContainer(s);this.outputQueue.pushAll(s);for(const i of t)pn.isTensorInList(i,n)||i.dispose();return!0}}class kN extends At{constructor(e,t){super();this.baseErrorHandler=t,this.lastRead=null,this.iterator=null,this.moreIterators=e}summary(){const e="TODO: fill in upstream of chained summaries";return`${e} -> Chained`}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(e){if(await e,this.iterator==null){const s=await this.moreIterators.next();if(s.done)return{value:null,done:!0};this.iterator=s.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}const t=await this.iterator.next();return t.done?(this.iterator=null,this.readFromChain(e)):t}}var qi;(function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"})(qi||(qi={}));class mB extends At{constructor(e,t=qi.FAIL){super();this.iterators=e,this.mismatchMode=t,this.count=0,this.currentPromise=null}summary(){const e="TODO: fill in upstream of zip summaries";return`{${e}} -> Zip`}async nextState(e){await e;let t=0,s=0;function n(r){if(r instanceof At){const o=r.next();return{value:o.then(a=>(t++,a.done&&s++,a.value)),recurse:!1}}else return{value:null,recurse:!0}}const i=await Jm(this.iterators,n);if(t===s)return{value:null,done:!0};if(s>0)switch(this.mismatchMode){case qi.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case qi.SHORTEST:return{value:null,done:!0};case qi.LONGEST:default:}return this.count++,{value:i,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}}class UN extends At{constructor(e,t){super();this.upstream=e,this.bufferSize=t,this.buffer=new Zm(t)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){const e=this.upstream.next();this.buffer.push(e)}}next(){return this.refill(),this.buffer.shift()}}class IB extends UN{constructor(e,t,s){super(e,t);this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=_N.alea(s||N.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(e){return Math.floor(this.random()*e)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){const e=this.chooseIndex(),t=await this.buffer.shuffleExcise(e);if(t.done)this.upstreamExhausted=!0;else return this.refill(),t}return{value:null,done:!0}}}const $N=mc(fc());class Hi{constructor(){this.size=null}batch(e,t=!0){const s=this;N.assert(e>0,()=>`batchSize needs to be positive, but it is + ${e}`);let n;return this.size===Infinity||this.size==null?n=this.size:t?n=Math.ceil(this.size/e):n=Math.floor(this.size/e),Cs(async()=>(await s.iterator()).columnMajorBatch(e,t,vB),n)}concatenate(e){const t=this;let s;return this.size===Infinity||e.size===Infinity?s=Infinity:this.size!=null&&e.size!=null?s=this.size+e.size:s=null,Cs(async()=>(await t.iterator()).concatenate(await e.iterator()),s)}filter(e){const t=this;let s;return this.size===Infinity?s=Infinity:s=null,Cs(async()=>(await t.iterator()).filter(n=>C(()=>e(n))),s)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){const t=this;return Cs(async()=>(await t.iterator()).map(s=>C(()=>e(s))),this.size)}mapAsync(e){const t=this;return Cs(async()=>(await t.iterator()).mapAsync(e),this.size)}prefetch(e){if(e==null)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");const t=this;return Cs(async()=>(await t.iterator()).prefetch(e),this.size)}repeat(e){const t=this;let s;return this.size!=null&&e>0?s=this.size*e:e===0?s=0:this.size!=null&&(e===void 0||e<0)?s=Infinity:s=null,Cs(async()=>{const n=hu(async()=>({value:await t.iterator(),done:!1}));return DN(n.take(e))},s)}skip(e){const t=this;let s;return this.size!=null&&e>=0&&this.size>=e?s=this.size-e:this.size!=null&&(this.size(await t.iterator()).skip(e),s)}shuffle(e,t,s=!0){if(e==null||e<0)throw this.size==null?new RangeError("`Dataset.shuffle()` requires bufferSize to be specified."):new RangeError(`\`Dataset.shuffle()\` requires bufferSize to be specified. If your data fits in main memory (for regular JS objects), and/or GPU memory (for \`tf.Tensor\`s), consider setting bufferSize to the dataset size (${this.size} elements)`);const n=this,i=$N.alea(t||N.now().toString());return Cs(async()=>{let r=i.int32();return s&&(r+=i.int32()),(await n.iterator()).shuffle(e,r.toString())},this.size)}take(e){const t=this;let s;return this.size!=null&&this.size>e?s=e:this.size!=null&&this.size<=e?s=this.size:s=null,Cs(async()=>(await t.iterator()).take(e),s)}async toArray(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}}Hi.MAX_BUFFER_SIZE=1e4;function Cs(e,t=null){return new class extends Hi{constructor(){super(...arguments);this.size=t}async iterator(){return e()}}}function WN(e){return Cs(async()=>lw(e),e.length)}function zN(e){if(!oo(e))throw new Error("The argument to zip() must be an object or array.");let t;if(Array.isArray(e))for(let s=0;s{const s=await Jm(e,n=>{if(n instanceof Hi)return{value:n.iterator(),recurse:!1};if(oo(n))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return FN(s,qi.SHORTEST)},t)}function vB(e){if(e===null)return null;const t=e[0];if(ON(t)){const s=TB(e);return{value:s,recurse:!1}}return{value:null,recurse:!0}}function TB(e){if(e.length===0)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof me?Ve(e):ze(e)}class ef extends Hi{constructor(e){super();this.input=e}async iterator(){const e=await this.input.iterator(),t=e.decodeUTF8(),s=t.split(` +`).map(n=>(n.endsWith("\r")&&(n=n.slice(0,-1)),n));return s}}const tf='"',mu=Symbol("out"),PN=Symbol("field"),sf=Symbol("quote"),cw=Symbol("quoteafterquote"),BN=Symbol("quoteinquote");class nf extends Hi{constructor(e,t){super();this.input=e,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new ef(e),t||(t={}),this.hasHeader=!(t.hasHeader===!1),this.fullColumnNames=t.columnNames,this.columnConfigs=t.columnConfigs,this.configuredColumnsOnly=t.configuredColumnsOnly,t.delimWhitespace?(N.assert(t.delimiter==null,()=>"Delimiter should not be provided when delimWhitespace is true."),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=t.delimiter?t.delimiter:","}async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){const e=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!e)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&e&&N.assert(e.length===this.fullColumnNames.length,()=>"The length of provided columnNames ("+this.fullColumnNames.length.toString()+") does not match the length of the header line read from file ("+e.length.toString()+")."),this.fullColumnNames||(this.fullColumnNames=e);const t=this.fullColumnNames.reduce((n,i)=>(n[i]=n[i]+1||1,n),{}),s=Object.keys(t).filter(n=>t[n]>1);if(N.assert(s.length===0,()=>"Duplicate column names found: "+s.toString()),this.columnConfigs)for(const n of Object.keys(this.columnConfigs)){const i=this.fullColumnNames.indexOf(n);if(i===-1)throw new Error('The key "'+n+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){const e=await this.base.iterator(),t=await e.next();if(t.done)throw new Error("No data was found for CSV parsing.");const s=t.value,n=this.parseRow(s,!1);return n}else return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let e=await this.base.iterator();return this.hasHeader&&(e=e.skip(1)),e.map(t=>this.makeDataElement(t))}makeDataElement(e){const t=this.parseRow(e),s={},n={};for(let i=0;i14||!Number.isInteger(t))throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`);if(this.numFrames=e.numFramesPerSpectrogram||43,this.sampleRateHz=e.sampleRateHz,this.columnTruncateLength=e.columnTruncateLength||this.fftSize,this.audioTrackConstraints=e.audioTrackConstraints,this.smoothingTimeConstant=e.smoothingTimeConstant||0,this.includeSpectrogram=!(e.includeSpectrogram===!1),this.includeWaveform=e.includeWaveform===!0,!this.includeSpectrogram&&!this.includeWaveform)throw new Error("Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.")}summary(){return"microphone"}static async create(e={}){if(W().get("IS_NODE"))throw new Error("microphone API is only supported in browser environment.");const t=new pw(e);return await t.start(),t}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(s){throw new Error(`Error thrown while initializing video stream: ${s.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");const e=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new e,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);const t=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,t.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize);return}async next(){if(this.isClosed)return{value:null,done:!0};let e,t;const s=await this.getAudioData();if(this.includeSpectrogram){const n=this.flattenQueue(s.freqDataQueue);e=this.getTensorFromAudioDataArray(n,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){const n=this.flattenQueue(s.timeDataQueue);t=this.getTensorFromAudioDataArray(n,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:e,waveform:t},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){const e=[],t=[];let s=0;return new Promise(n=>{const i=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-Infinity&&n({freqDataQueue:e,timeDataQueue:t}),e.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),t.push(this.timeData.slice())),++s===this.numFrames&&(clearInterval(i),n({freqDataQueue:e,timeDataQueue:t}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())}toArray(){throw new Error("Can not convert infinite audio stream to array.")}getSampleRate(){return this.sampleRateHz}flattenQueue(e){const t=e[0].length,s=new Float32Array(e.length*t);return e.forEach((n,i)=>s.set(n,i*t)),s}getTensorFromAudioDataArray(e,t){const s=new Float32Array(N.sizeFromShape(t));return s.set(e,s.length-e.length),ze(s,t)}}class uw extends At{constructor(e,t){super();if(this.webcamVideoElement=e,this.webcamConfig=t,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=Oe([0],"int32"),this.webcamConfig.centerCrop){const s=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,n=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,i=(1-s)/2,r=(1-n)/2,o=i+s,a=n+r;this.cropBox=as([r,i,a,o],[1,4])}else this.cropBox=as([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(e,t={}){if(W().get("IS_NODE"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!e){if(e=document.createElement("video"),!t.resizeWidth||!t.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");e.width=t.resizeWidth,e.height=t.resizeHeight}const s=new uw(e,t);return await s.start(),s}async start(){this.webcamConfig.facingMode&&N.assert(this.webcamConfig.facingMode==="user"||this.webcamConfig.facingMode==="environment",()=>`Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`);try{this.stream=await navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:"user",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}})}catch(e){throw e.message=`Error thrown while initializing video stream: ${e.message}`,e}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(e){console.log(e),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(e=>{this.webcamVideoElement.onloadedmetadata=()=>{e()}})}async next(){if(this.isClosed)return{value:null,done:!0};let e;try{e=Fr.fromPixels(this.webcamVideoElement)}catch(t){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(t)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(e),done:!1}}catch(t){throw new Error(`Error thrown cropping the video: ${t.message}`)}finally{e.dispose()}else return{value:e,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(e){return C(()=>{const t=e.toFloat().expandDims(0);let s;s=Zs.cropAndResize(t,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");const n=s.shape;return s.reshape(n.slice(1))})}async capture(){return(await this.next()).value}stop(){const e=this.stream.getTracks();e.forEach(t=>t.stop());try{this.webcamVideoElement.srcObject=null}catch(t){console.log(t),this.webcamVideoElement.src=null}this.isClosed=!0}toArray(){throw new Error("Can not convert infinite video stream to array.")}}class rf{}class hw extends At{split(e){return new AB(this,e)}}class AB extends hw{constructor(e,t){super();this.upstream=e,this.impl=new NB(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}}class NB extends du{constructor(e,t){super();this.upstream=e,this.separator=t,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){const e=await this.upstream.next();if(e.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);const t=e.value.split(this.separator);t[0]=this.carryover+t[0];for(const s of t.slice(0,-1))this.outputQueue.push(s);return this.carryover=t[t.length-1],!0}}class jN extends At{decodeUTF8(){return new CB(this)}}class CB extends hw{constructor(e){super();this.upstream=e,this.impl=new RB(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}}class RB extends du{constructor(e){super();if(this.upstream=e,W().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{const{StringDecoder:t}=AL();this.decoder=new t("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){const e=await this.upstream.next();let t;if(e.done)return!1;t=e.value;let s;return W().get("IS_BROWSER")?s=this.decoder.decode(t,{stream:!0}):s=this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(s),!0}}class of extends jN{constructor(e,t={}){super();this.file=e,this.options=t,N.assert(e instanceof Uint8Array||(W().get("IS_BROWSER")?e instanceof File||e instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=t.offset||0,this.chunkSize=t.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){if(this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size))return{value:null,done:!0};const e=new Promise((t,s)=>{const n=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)t(new Uint8Array(this.file.slice(this.offset,n)));else{const i=new FileReader;i.onload=o=>{let a=i.result;if(a instanceof ArrayBuffer&&(a=new Uint8Array(a)),!(a instanceof Uint8Array))return s(new TypeError("FileReader returned unknown type."));t(a)},i.onabort=o=>s(new Error("Aborted")),i.onerror=o=>s(new Error(o.type));const r=this.file.slice(this.offset,n);i.readAsArrayBuffer(r)}this.offset=n});return{value:await e,done:!1}}}async function VN(e,t={}){let s,n;typeof e=="string"?s=e:(s=e.url,n=OB(e));const i=await N.fetch(s,n);if(i.ok){const r=new Uint8Array(await i.arrayBuffer());return new of(r,t)}else throw new Error(i.statusText)}const OB=e=>{const t={method:e.method,headers:e.headers,body:e.body,mode:e.mode,credentials:e.credentials,cache:e.cache,redirect:e.redirect,referrer:e.referrer,integrity:e.integrity};return t};function af(e){return typeof e=="string"&&e.substr(0,7)==="file://"}class lf extends rf{constructor(e,t={}){super();this.input=e,this.options=t}async iterator(){if(af(this.input)&&W().get("IS_NODE")){const e=NL();this.input=e.readFileSync(this.input.substr(7))}return new of(this.input,this.options)}}class cf extends rf{constructor(e,t={}){super();this.url=e,this.fileOptions=t}async iterator(){return af(this.url)?new lf(this.url,this.fileOptions).iterator():VN(this.url,this.fileOptions)}}function GN(e,t={}){return new nf(new cf(e),t)}function qN(e){const t=hu(e);return Cs(async()=>t)}function HN(e){return Cs(async()=>{const t=await e();return hu(()=>t.next())})}async function YN(e,t){return uw.create(e,t)}async function KN(e){return pw.create(e)}const pf="2.6.0";const dw={};Ee(dw,{CSVDataset:()=>nf,Dataset:()=>Hi,FileDataSource:()=>lf,TextLineDataset:()=>ef,URLDataSource:()=>cf,array:()=>WN,csv:()=>GN,func:()=>qN,generator:()=>HN,microphone:()=>KN,version_data:()=>pf,webcam:()=>YN,zip:()=>zN});function ee(e,t){Array.isArray(e)||(e=[e]),e.forEach(s=>{s!=null&&N.assert(s.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the CPU backend.`)})}const XN=mc(fc());const EB=vt.nonMaxSuppressionV3Impl,_B=vt.split,kB=vt.tile,DB=vt.topkImpl,FB=vt.whereImpl;function mw(e,t,s,n){if(s==="linear")return e.linear(t);if(s==="relu")return e.relu(t);if(s==="elu")return hn(t);if(s==="relu6")return e.relu6(t);if(s==="prelu")return e.prelu(t,n);throw new Error(`Activation ${s} has not been implemented for the CPU backend.`)}class fw extends go{constructor(){super();this.blockSize=48,this.firstUse=!0,this.data=new gc(this,Ms())}write(e,t,s){this.firstUse&&(this.firstUse=!1,W().get("IS_NODE")&&U.warn(` +============================ +Hi there 👋. Looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, which binds to TensorFlow C++, by running npm i @tensorflow/tfjs-node, or npm i @tensorflow/tfjs-node-gpu if you have CUDA. Then call require('@tensorflow/tfjs-node'); (-gpu suffix for CUDA) at the start of your program. Visit https://github.com/tensorflow/tfjs-node for more details. +============================`));const n={};return this.data.set(n,{values:e,dtype:s,refCount:1}),n}makeTensorInfo(e,t,s){const n=this.write(s,e,t);return{dataId:n,shape:e,dtype:t}}incRef(e){const t=this.data.get(e);t.refCount++}decRef(e){if(this.data.has(e)){const t=this.data.get(e);t.refCount--}}move(e,t,s,n){this.data.set(e,{values:t,dtype:n,refCount:1})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){const{dtype:t,complexTensorInfos:s}=this.data.get(e);if(t==="complex64"){const n=this.readSync(s.real.dataId),i=this.readSync(s.imag.dataId);return U.mergeRealAndImagArrays(n,i)}return this.data.get(e).values}bufferSync(e){const t=this.readSync(e.dataId);let s=t;if(e.dtype==="string")try{s=t.map(n=>N.decodeString(n))}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return ge(e.shape,e.dtype,s)}makeOutput(e,t,s){const n=this.write(e,t,s);return Ms().makeTensorFromDataId(n,t,s,this)}disposeData(e){if(this.data.has(e)){const{complexTensorInfos:t}=this.data.get(e);t!=null&&(this.disposeData(t.real.dataId),this.disposeData(t.imag.dataId)),this.data.delete(e)}}disposeIntermediateTensorInfo(e){const t=e.dataId;if(this.data.has(t)){const s=this.data.get(t);s.refCount--,s.refCount<1&&this.disposeData(t)}}async time(e){const t=N.now();e();const s=N.now()-t;return{kernelMs:s}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}stridedSlice(e,t,s,n){ee(e,"stridedSlice");const i=Fs.computeOutShape(t,s,n);if(i.some(a=>a===0))return ze([],i);const r=ge(i,e.dtype),o=this.bufferSync(e);for(let a=0;ao[a]=e.shape[a]-1-o[a]),s.set(n.get(...o),...r)}return s.toTensor()}neg(e){return ee(e,"neg"),R(j(-1),e)}addN(e){ee(e,"addN");const t=e.map(i=>this.readSync(i.dataId)),s=ge(e[0].shape,e[0].dtype),n=s.values;for(let i=0;iMath.pow(s,n))}batchMatMul(e,t,s,n){ee([e,t],"matMul");const i=s?e.shape[1]:e.shape[2],r=s?e.shape[2]:e.shape[1],o=n?t.shape[1]:t.shape[2],a=e.shape[0],l=this.readSync(e.dataId),c=this.readSync(t.dataId),[p,u,h]=s?[e.strides[0],1,e.strides[1]]:[e.strides[0],e.strides[1],1],[d,m,f]=n?[1,t.strides[1],t.strides[0]]:[t.strides[1],1,t.strides[0]],g=r*o,y=ge([a,r,o],e.dtype),w=y.values,x=this.blockSize;for(let T=0;TMath.floor(i/r),n="int32";return this.broadcastedBinaryOp(e,t,n,s)}sum(e,t){ee(e,"sum"),U.assertAxesAreInnerMostDims("sum",t,e.rank);const[s,n]=U.computeOutAndReduceShapes(e.shape,t),i=Ft(e.dtype,"int32"),r=ye(s,i),o=N.sizeFromShape(n),a=this.readSync(r.dataId),l=this.readSync(e.dataId);for(let c=0;cu&&(u=m,h=d)}a[c]=h}return r}cumsum(e,t,s,n){if(ee(e,"cumsum"),t!==e.rank-1)throw new Error(`backend.cumsum in CPU expects an inner-most axis=${e.rank-1} but got axis=${t}`);const i=Ft(e.dtype,"int32"),r=ye(e.shape,i),o=this.readSync(r.dataId),a=this.readSync(e.dataId),l=e.shape[e.rank-1],c=n?(p,u)=>p+l-u-1:(p,u)=>p+u;for(let p=0;ps===n?1:0)}notEqual(e,t){return ee([e,t],"notEqual"),this.broadcastedBinaryOp(e,t,"bool",(s,n)=>s!==n?1:0)}less(e,t){return ee([e,t],"less"),this.broadcastedBinaryOp(e,t,"bool",(s,n)=>ss<=n?1:0)}greater(e,t){return ee([e,t],"greater"),this.broadcastedBinaryOp(e,t,"bool",(s,n)=>s>n?1:0)}greaterEqual(e,t){return ee([e,t],"greaterEqual"),this.broadcastedBinaryOp(e,t,"bool",(s,n)=>s>=n?1:0)}logicalAnd(e,t){return ee([e,t],"logicalAnd"),this.broadcastedBinaryOp(e,t,"bool",(s,n)=>s&&n)}logicalOr(e,t){return ee([e,t],"logicalOr"),this.broadcastedBinaryOp(e,t,"bool",(s,n)=>s||n)}select(e,t,s){ee([e,t,s],"select");const n=this.readSync(e.dataId),i=this.readSync(t.dataId),r=this.readSync(s.dataId),o=ye(t.shape,Ft(t.dtype,s.dtype)),a=this.readSync(o.dataId);let l=0;const c=e.rank===0||e.rank>1||t.rank===1?1:N.sizeFromShape(t.shape.slice(1));for(let p=0;pMath.min(s,n))}mod(e,t){return ee([e,t],"mod"),this.broadcastedBinaryOp(e,t,e.dtype,(s,n)=>{const i=s%n;return s<0&&n<0||s>=0&&n>=0?i:(i+n)%n})}maximum(e,t){return ee([e,t],"maximum"),this.broadcastedBinaryOp(e,t,e.dtype,(s,n)=>Math.max(s,n))}all(e,t){ee(e,"all"),U.assertAxesAreInnerMostDims("all",t,e.rank);const[s,n]=U.computeOutAndReduceShapes(e.shape,t),i=ye(s,e.dtype),r=N.sizeFromShape(n),o=this.readSync(i.dataId),a=this.readSync(e.dataId);for(let l=0;l{const i=s-n;return i*i})}linear(e){return e}relu(e){ee(e,"relu");const t=ye(e.shape,e.dtype),s=this.readSync(t.dataId),n=this.readSync(e.dataId);for(let i=0;is<0?n*s:s)}eluDer(e,t){ee([e,t],"eluDer");const s=new Float32Array(t.size),n=this.readSync(t.dataId),i=this.readSync(e.dataId);for(let r=0;r=1?s[r]=i[r]:s[r]=i[r]*(o+1)}return this.makeOutput(s,t.shape,"float32")}atan2(e,t){return ee([e,t],"atan2"),this.broadcastedBinaryOp(e,t,e.dtype,(s,n)=>Math.atan2(s,n))}fusedConv2d({input:e,filter:t,convInfo:s,bias:n,activation:i,preluActivationWeights:r}){let o=this.conv2d(e,t,s);return n&&(o=$(o,n)),i&&(o=mw(this,o,i,r)),o}conv2d(e,t,s){ee([e,t],"conv2d");const n=s.filterHeight,i=s.filterWidth,r=s.dilationHeight,o=s.dilationWidth,a=s.padInfo.left,l=s.padInfo.top,c=s.dataFormat==="channelsLast",p=ge(s.outShape,e.dtype),u=e.strides[0],h=c?e.strides[1]:e.strides[2],d=c?e.strides[2]:1,m=c?1:e.strides[1],f=p.strides[0],g=c?p.strides[1]:p.strides[2],y=c?p.strides[2]:1,w=c?1:p.strides[1],x=this.readSync(e.dataId),T=this.readSync(t.dataId),A=p.values;for(let _=0;_=s.inHeight)continue;const q=B*t.strides[0],K=E+Y*h;for(let H=0;H=s.inWidth)continue;const le=q+ie*t.strides[1],ue=K+ne*d;let oe=le;for(let de=0;de=s.inDepth)continue;const F=_*t.strides[0],D=y+E*e.strides[1];for(let M=0;M=s.inHeight)continue;const K=F+Y*t.strides[1],H=D+q*e.strides[2];for(let Q=0;Q=s.inWidth)continue;const ue=K+ne*t.strides[2],oe=H+le*s.inChannels;let de=ue;for(let Ae=0;Ae=s.inHeight)continue;const _=T*t.strides[0],E=f+A*e.strides[1];for(let F=0;F=s.inWidth)continue;const Y=_+P*t.strides[1],q=E+B*s.inChannels;let K=D,H=Y;for(let Q=0;Qc*p),i=U.getReshaped(e.shape,t,n),r=U.getPermuted(i.length,t.length),o=U.getReshapedPermuted(e.shape,t,n),a=U.getSliceBeginCoords(s,t.length),l=U.getSliceSize(o,s,t.length);return se(e.reshape(i),r).reshape(o).slice(a,l)}pool3d(e,t,s){ee(e,"pool3d");const n=t.strideDepth,i=t.strideHeight,r=t.strideWidth,o=t.dilationDepth,a=t.dilationHeight,l=t.dilationWidth,c=t.effectiveFilterDepth,p=t.effectiveFilterHeight,u=t.effectiveFilterWidth,h=t.padInfo.front,d=t.padInfo.top,m=t.padInfo.left,f=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,g=this.readSync(e.dataId),y=ge(t.outShape,e.dtype),w=y.values,x=t.outShape[1]*t.outShape[2]*t.outShape[3]*t.outShape[4],T=t.outShape[2]*t.outShape[3]*t.outShape[4],A=t.outShape[3]*t.outShape[4],_=t.outShape[4];for(let E=0;EMe?Me=an:s==="avg"&&(Qe+=an,St++),isNaN(Me))break}if(isNaN(Me))break}if(isNaN(Me))break}const $t=Ae+M;w[$t]=s==="avg"?Qe/St:Me}}}}return y.toTensor()}avgPool3d(e,t){return ee(e,"avgPool3d"),this.pool3d(e,t,"avg").toFloat()}avgPool3dBackprop(e,t,s){ee([e,t],"avgPool3dBackprop");const n=s.strideDepth,i=s.strideHeight,r=s.strideWidth,o=s.filterDepth,a=s.filterHeight,l=s.filterWidth,c=s.dilationDepth,p=s.dilationHeight,u=s.dilationWidth,h=s.effectiveFilterDepth,d=s.effectiveFilterHeight,m=s.effectiveFilterWidth,f=h-1-s.padInfo.front,g=m-1-s.padInfo.left,y=d-1-s.padInfo.top,w=ge(t.shape,"float32"),x=1/(o*a*l),T=this.bufferSync(e);for(let A=0;A=s.outDepth||Math.floor(K)!==K)continue;for(let H=0;H=s.outHeight||Math.floor(Q)!==Q)continue;for(let J=0;J=s.outWidth||Math.floor(ie)!==ie)continue;const ne=T.get(A,K,Q,ie,_);Y+=ne}}}w.set(Y*x,A,E,F,D,_)}return w.toTensor()}maxPool3d(e,t){return ee(e,"maxPool3d"),this.pool3d(e,t,"max").toFloat()}maxPool3dPositions(e,t){const s=ge(t.outShape,"int32"),n=t.strideDepth,i=t.strideHeight,r=t.strideWidth,o=t.dilationDepth,a=t.dilationHeight,l=t.dilationWidth,c=t.effectiveFilterDepth,p=t.effectiveFilterHeight,u=t.effectiveFilterWidth,h=t.padInfo.front,d=t.padInfo.top,m=t.padInfo.left,f=this.bufferSync(e);for(let g=0;g=q&&(q=ue,K=Q*p*u+ie*p+le)}}}s.set(K,g,w,_,M,y)}}}return s.toTensor()}maxPool3dBackprop(e,t,s,n){ee([t,s],"maxPool3dBackprop");const i=this.maxPool3dPositions(t,n),r=n.strideDepth,o=n.strideHeight,a=n.strideWidth,l=n.dilationDepth,c=n.dilationHeight,p=n.dilationWidth,u=n.effectiveFilterDepth,h=n.effectiveFilterHeight,d=n.effectiveFilterWidth,m=u-1-n.padInfo.front,f=d-1-n.padInfo.left,g=h-1-n.padInfo.top,y=ge(t.shape,"float32"),w=this.bufferSync(i),x=this.bufferSync(e);for(let T=0;T=n.outDepth||Math.floor(q)!==q)continue;for(let K=0;K=n.outHeight||Math.floor(H)!==H)continue;for(let Q=0;Q=n.outWidth||Math.floor(J)!==J)continue;const ie=u*h*d-1-w.get(T,q,H,J,A),ne=Y*h*d+K*d+Q,le=ie===ne?1:0;if(le===0)continue;const ue=x.get(T,q,H,J,A);B+=ue*le}}}y.set(B,T,_,E,F,A)}return y.toTensor()}resizeBilinear(e,t,s,n){ee(e,"resizeBilinear");const[i,r,o,a]=e.shape,l=this.readSync(e.dataId),c=new Float32Array(N.sizeFromShape([i,t,s,a])),p=[n&&t>1?r-1:r,n&&s>1?o-1:o],u=[n&&t>1?t-1:t,n&&s>1?s-1:s];let h=0;const d=p[0]/u[0],m=p[1]/u[1];for(let f=0;f1?i-1:i,s&&l>1?r-1:r],u=[s&&a>1?a-1:a,s&&l>1?l-1:l],h=p[0]/u[0],d=p[1]/u[1],m=this.readSync(e.dataId);let f=0;for(let g=0;g1?r-1:r,n&&s>1?o-1:o],u=[n&&t>1?t-1:t,n&&s>1?s-1:s],h=p[0]/u[0],d=p[1]/u[1];let m=0;for(let f=0;f1?i-1:i,s&&l>1?r-1:r],h=[s&&a>1?a-1:a,s&&l>1?l-1:l],d=u[0]/h[0],m=u[1]/h[1],f=1/d,g=1/m,y=Math.ceil(f)*2+2,w=Math.ceil(g)*2+2;for(let x=0;x=a)continue;const Q=T+H*e.strides[1],J=H*d,ie=Math.min(i-1,s?Math.round(J):Math.floor(J));if(A!==ie)continue;for(let ne=0;ne=l)continue;const ue=Q+le*e.strides[2],oe=le*m,de=Math.min(r-1,s?Math.round(oe):Math.floor(oe));D===de&&(q+=p[ue+Y])}}c[M+Y]=q}}}}return ts(c,t.shape,t.dtype)}localResponseNormalization4D(e,t,s,n,i){ee(e,"localResponseNormalization4D");const r=e.shape[3],o=r-1,a=this.readSync(e.dataId),l=e.size,c=new Float32Array(l);function p(u){const h=u%r;let d=u-h+Math.max(0,h-t);const m=u-h+Math.min(h+t,o);let f=0;for(;d<=m;d++){const g=a[d];f+=g*g}return f}for(let u=0;u=0&&r[o]`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${s}`),N.assert(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`);const n=e.shape[0],i=e.shape[1],r=e.shape[2],o=e.shape[3],a=i*t,l=r*t,c=o/(t*t),p=this.readSync(e.dataId),u=new Float32Array(n*a*l*c);let h=0;for(let d=0;df[x]=0);const g=u.locToIndex(f),y=m.slice(-t.rank);c.forEach(x=>y[x]=0);const w=h.locToIndex(y);p[d]=n(o[g],a[w])}}return r.toTensor()}split(e,t,s){return _B(e,t,s)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}cropAndResize(e,t,s,n,i,r){const[o,a,l,c]=e.shape,p=t.shape[0],[u,h]=n,d=ge([p,u,h,c],"float32"),m=this.readSync(t.dataId),f=this.readSync(s.dataId),g=this.readSync(e.dataId),y=e.strides,w=d.strides;for(let x=0;x=o)continue;const M=u>1?(E-A)*(a-1)/(u-1):0,P=h>1?(F-_)*(l-1)/(h-1):0;for(let B=0;B1?A*(a-1)+B*M:.5*(A+E)*(a-1);if(Y<0||Y>a-1){for(let q=0;q1?_*(l-1)+Q*P:.5*(_+F)*(l-1);if(J<0||J>l-1){for(let ue=0;ue1?_*(l-1)+q*P:.5*(_+F)*(l-1);if(K<0||K>l-1){for(let J=0;J=e.size/o)throw new Error(`Invalid indices: ${h} does not index into ${e.shape}`);for(let m=0;m=n/i)throw new Error(`Invalid indices: ${f} does not index into ${s}`);for(let y=0;y{const{x:t}=e.inputs,s=e.backend;let n=new Float32Array(N.sizeFromShape(t.shape));if(t.dtype!=="complex64"){const i=s.data.get(t.dataId).values;n=gw(i)}else{const i=s.data.get(t.dataId),r=i.complexTensorInfos.real,o=i.complexTensorInfos.imag,a=s.data.get(r.dataId).values,l=s.data.get(o.dataId).values;for(let c=0;c{const o=U.assertAndGetBroadcastShape(t,s),a=o.length,l=N.computeStrides(o),c=N.sizeFromShape(o),p=N.getTypedArrayFromDType(r,c),u=t.length,h=s.length,d=N.computeStrides(t),m=N.computeStrides(s),f=U.getBroadcastDims(t,o),g=U.getBroadcastDims(s,o);if(f.length+g.length===0)for(let y=0;yx[E]=0);const T=N.locToIndex(x,u,d),A=w.slice(-h);g.forEach(E=>A[E]=0);const _=N.locToIndex(A,h,m);p[y]=e(n[T],i[_])}return[p,o]}}function Rs(e){const{inputs:t,backend:s}=e,{real:n,imag:i}=t,r=s.data.get(n.dataId).values,o=s.data.get(i.dataId).values,a=s.makeTensorInfo(n.shape,"complex64"),l=s.data.get(a.dataId);return l.complexTensorInfos={real:s.makeTensorInfo(n.shape,"float32",r),imag:s.makeTensorInfo(i.shape,"float32",o)},a}const ZN={kernelName:vc,backendName:"cpu",kernelFunc:Rs};function fi(e){const{inputs:t,backend:s}=e,{x:n}=t;return s.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}const QN={kernelName:Ti,backendName:"cpu",kernelFunc:fi};function ao(e){const{inputs:t,backend:s}=e,{input:n}=t,i=s.data.get(n.dataId).complexTensorInfos.real,r=s.data.get(i.dataId).values;return s.makeTensorInfo(i.shape,i.dtype,r)}const eC={kernelName:Kc,backendName:"cpu",kernelFunc:ao};function Dl(e){const{inputs:t,backend:s,attrs:n}=e,{x:i}=t,{dtype:r}=n;if(r==="complex64"){if(i.dtype==="complex64")return fi({inputs:{x:i},backend:s});const o=ye(i.shape),a=Dl({inputs:{x:i},backend:s,attrs:{dtype:"float32"}}),l=Rs({inputs:{real:a,imag:o},backend:s});return o.dispose(),s.disposeIntermediateTensorInfo(a),l}if(i.dtype==="complex64"){const o=ao({inputs:{input:i},backend:s}),a=Dl({inputs:{x:o},backend:s,attrs:{dtype:r}});return s.disposeIntermediateTensorInfo(o),a}if(!N.hasEncodingLoss(i.dtype,r)){const o=fi({inputs:{x:i},backend:s});return{dataId:o.dataId,shape:o.shape,dtype:r}}if(r==="int32"){const o=s.data.get(i.dataId).values,a=Int32Array.from(o);return s.makeTensorInfo(i.shape,"int32",a)}if(r==="bool"){const o=s.data.get(i.dataId).values,a=N.toTypedArray([0],i.dtype),[l,c]=Bs((p,u)=>p!==u?1:0)(i.shape,[],o,a,"bool");return s.makeTensorInfo(c,"bool",l)}throw new Error(`Error in Cast: failed to cast ${i.dtype} to ${r}`)}const tC={kernelName:Ii,backendName:"cpu",kernelFunc:Dl};function An(e,t,s,n){return s==null?({inputs:i,backend:r})=>{const{a:o,b:a}=i,l=r;ee([o,a],e);const c=l.data.get(o.dataId).values,p=l.data.get(a.dataId).values,u=n||o.dtype,[h,d]=t(o.shape,a.shape,c,p,u);return l.makeTensorInfo(d,u,h)}:({inputs:i,backend:r})=>{const{a:o,b:a}=i,l=r;if(o.dtype==="complex64"||a.dtype==="complex64"){const c=Dl({inputs:{x:o},backend:l,attrs:{dtype:"complex64"}}),p=l.data.get(c.dataId),u=p.complexTensorInfos.real,h=p.complexTensorInfos.imag,d=l.data.get(u.dataId).values,m=l.data.get(h.dataId).values,f=Dl({inputs:{x:a},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(f.dataId),y=g.complexTensorInfos.real,w=g.complexTensorInfos.imag,x=l.data.get(y.dataId).values,T=l.data.get(w.dataId).values,[A,_,E]=s(o.shape,a.shape,d,m,x,T),F=l.makeTensorInfo(E,"float32",A),D=l.makeTensorInfo(E,"float32",_),M=Rs({inputs:{real:F,imag:D},backend:l});return l.disposeIntermediateTensorInfo(c),l.disposeIntermediateTensorInfo(f),l.disposeIntermediateTensorInfo(F),l.disposeIntermediateTensorInfo(D),M}else{const c=l.data.get(o.dataId).values,p=l.data.get(a.dataId).values,u=n||o.dtype,[h,d]=t(o.shape,a.shape,c,p,u);return l.makeTensorInfo(d,u,h)}}}function Fl(e){return(t,s,n,i,r,o)=>{const a=U.assertAndGetBroadcastShape(t,s),l=N.sizeFromShape(a),c=a.length,p=N.computeStrides(a),u=N.getTypedArrayFromDType("float32",l),h=N.getTypedArrayFromDType("float32",l),d=U.getBroadcastDims(t,a),m=U.getBroadcastDims(s,a),f=U.mergeRealAndImagArrays(n,i),g=U.mergeRealAndImagArrays(r,o),y=t.length,w=N.computeStrides(t),x=s.length,T=N.computeStrides(s);if(d.length+m.length===0)for(let A=0;AE[B]=0);const F=N.locToIndex(E,y,w),D=_.slice(-x);m.forEach(B=>D[B]=0);const M=N.locToIndex(D,x,T),P=e(f[F*2],f[F*2+1],g[M*2],g[M*2+1]);u[A]=P.real,h[A]=P.imag}return[u,h,a]}}const yw=Bs((e,t)=>e+t),UB=Fl((e,t,s,n)=>({real:e+s,imag:t+n})),bw=An(Kn,yw,UB),sC={kernelName:Kn,backendName:"cpu",kernelFunc:bw};function Nn(e){return(t,s,n)=>{const i=N.getTypedArrayFromDType(s,t.length);for(let r=0;r{const{x:o}=n;if(ee(o,e),o.dtype==="string"||s==="string")throw new Error("unaryKernelFunc does not support string input/output");const a=r,l=a.data.get(o.dataId).values,c=N.sizeFromShape(o.shape),p=s||o.dtype,u=N.getArrayFromDType(p,c);for(let h=0;h{const{x:o}=n;if(ee(o,e),o.dtype==="string"||s==="string")throw new Error("unaryKernelFunc does not support string input/output");const a=r,l=a.data.get(o.dataId).values,c=s||o.dtype,p=t(l,c,i);return a.makeTensorInfo(o.shape,c,p)}}const ww=Nn(e=>Math.ceil(e)),$B=Cn(cr,ww),nC={kernelName:cr,backendName:"cpu",kernelFunc:$B};const xw=Nn(e=>Math.exp(e)),WB=Cn(mr,xw),iC={kernelName:mr,backendName:"cpu",kernelFunc:WB};const Lw=Nn(e=>Math.expm1(e)),zB=Cn(fr,Lw),rC={kernelName:fr,backendName:"cpu",kernelFunc:zB};const Sw=Nn(e=>Math.floor(e)),PB=Cn(gr,Sw),oC={kernelName:gr,backendName:"cpu",kernelFunc:PB};const Iw=Nn(e=>Math.log(e)),BB=Cn(xr,Iw),aC={kernelName:xr,backendName:"cpu",kernelFunc:BB};function uf(e,t,s,n){const i=N.getTypedArrayFromDType(n,N.sizeFromShape(s));for(let r=0;ra&&(a=c)}i[r]=a}return i}const vw=Bs((e,t)=>e*t),jB=Fl((e,t,s,n)=>({real:e*s-t*n,imag:e*n+t*s})),Tw=An(Sr,vw,jB),lC={kernelName:Sr,backendName:"cpu",kernelFunc:Tw};const Aw=Nn(e=>1/Math.sqrt(e)),VB=Cn(Tr,Aw),cC={kernelName:Tr,backendName:"cpu",kernelFunc:VB};function Nw(e,t,s,n,i){const r=Fs.isSliceContinous(n,t,s),o=N.sizeFromShape(s),a=N.computeStrides(n);if(r){const c=Fs.computeFlatOffset(t,a);return e.subarray(c,c+o)}const l=N.getTypedArrayFromDType(i,o);for(let c=0;cf+t[g]),m=N.locToIndex(d,n.length,a);l[c]=e[m]}return l}function hf(e){const{inputs:t,backend:s,attrs:n}=e,{x:i}=t,{begin:r,size:o}=n;ee(i,"slice");const[a,l]=Fs.parseSliceParams(i,r,o);Fs.assertParamsValid(i,a,l);const c=s.data.get(i.dataId).values,p=Nw(c,a,l,i.shape,i.dtype);return s.makeTensorInfo(l,i.dtype,p)}const pC={kernelName:Co,backendName:"cpu",kernelFunc:hf};const Cw=Bs((e,t)=>e-t),GB=Fl((e,t,s,n)=>({real:e-s,imag:t-n})),Rw=An(_r,Cw,GB),uC={kernelName:_r,backendName:"cpu",kernelFunc:Rw};function Ml(e,t,s,n,i){const r=t.length,o=N.sizeFromShape(t),a=N.computeStrides(t),l=N.computeStrides(i),c=N.getTypedArrayFromDType(s,N.sizeFromShape(i));for(let p=0;p{for(let g=0;gyw,ceilImpl:()=>ww,expImpl:()=>xw,expm1Impl:()=>Lw,floorImpl:()=>Sw,logImpl:()=>Iw,maxImpl:()=>uf,multiplyImpl:()=>vw,rsqrtImpl:()=>Aw,simpleAbsImpl:()=>gw,sliceImpl:()=>Nw,subImpl:()=>Cw,transposeImpl:()=>Ml,uniqueImpl:()=>df});const Ew="2.6.0";Tp("cpu",()=>new fw,1);const qB=fe(nr,e=>Math.acos(e)),hC={kernelName:nr,backendName:"cpu",kernelFunc:qB};const HB=fe(ir,e=>Math.acosh(e)),dC={kernelName:ir,backendName:"cpu",kernelFunc:HB};const YB=fe(rr,e=>Math.asin(e)),mC={kernelName:rr,backendName:"cpu",kernelFunc:YB};const KB=fe(or,e=>Math.asinh(e)),fC={kernelName:or,backendName:"cpu",kernelFunc:KB};const XB=fe(ar,e=>Math.atan(e)),gC={kernelName:ar,backendName:"cpu",kernelFunc:XB};const JB=fe(lr,e=>Math.atanh(e)),yC={kernelName:lr,backendName:"cpu",kernelFunc:JB};function Ul(e,t,s,n,i,r){const o=i.strideHeight,a=i.strideWidth,l=i.dilationHeight,c=i.dilationWidth,p=i.effectiveFilterHeight,u=i.effectiveFilterWidth,h=i.padInfo.top,d=i.padInfo.left,m=r==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,f=ge(i.outShape,s),g=f.values,y=i.outShape[1]*i.outShape[2]*i.outShape[3],w=i.outShape[2]*i.outShape[3],x=i.outShape[3];for(let T=0;TQ?Q=Ae:r==="avg"&&(J+=Ae,ie++)}if(isNaN(Q))break}const ne=B+Y*x+E;g[ne]=r==="avg"?J/ie:Q}}}return f}function mf(e,t,s,n,i=!1,r=!1){const o=ge(n.outShape,"int32"),a=n.strideHeight,l=n.strideWidth,c=n.dilationHeight,p=n.dilationWidth,u=n.effectiveFilterHeight,h=n.effectiveFilterWidth,d=n.padInfo.top,m=n.padInfo.left,f=ge(t,s,e);for(let g=0;gM&&(M=H,i?P=r?((g*n.inHeight+B)*n.inWidth+q)*n.inChannels+y:(B*n.inWidth+q)*n.inChannels+y:P=Y*h+K)}}o.set(P,g,w,_,y)}}return o}function ZB(e){const{inputs:t,backend:s,attrs:n}=e,{x:i}=t;ee(i,"avgPool");const{filterSize:r,strides:o,pad:a,dimRoundingMode:l}=n,c=1;N.assert(U.eitherStridesOrDilationsAreOne(o,c),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${o} and dilations '${c}'`);const p=U.computePool2DInfo(i.shape,r,o,c,a,l);let u;if(p.filterWidth===1&&p.filterHeight===1&&N.arraysEqual(p.inShape,p.outShape))u=fi({inputs:{x:i},backend:s});else{const h=s.data.get(i.dataId).values,d=N.computeStrides(i.shape),m=Ul(h,i.shape,i.dtype,d,p,"avg");u=s.makeTensorInfo(p.outShape,i.dtype,m.values)}return u}const bC={kernelName:Si,backendName:"cpu",kernelFunc:ZB};function QB(e){const{inputs:t,backend:s,attrs:n}=e,{dy:i,input:r}=t,o=r;ee([i,r],"avgPoolBackprop");const{filterSize:a,strides:l,pad:c}=n,p=U.computePool2DInfo(o.shape,a,l,1,c),u=p.strideHeight,h=p.strideWidth,d=p.filterHeight,m=p.filterWidth,f=p.dilationHeight,g=p.dilationWidth,y=p.effectiveFilterHeight,w=p.effectiveFilterWidth,x=w-1-p.padInfo.left,T=y-1-p.padInfo.top,A=ge(o.shape,"float32"),_=1/(d*m),E=s.data.get(i.dataId).values,F=ge(i.shape,"float32",E);for(let D=0;D=p.outHeight||Math.floor(Q)!==Q)continue;for(let J=0;J=p.outWidth||Math.floor(ie)!==ie)continue;const ne=F.get(D,Q,ie,M);K+=ne}}A.set(K*_,D,P,B,M)}return s.makeTensorInfo(A.shape,A.dtype,A.values)}const wC={kernelName:wo,backendName:"cpu",kernelFunc:QB};function ej(e){const{inputs:t,backend:s,attrs:n}=e,{x:i,scale:r,offset:o,mean:a,variance:l}=t;N.assert(a.shape.length===l.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),N.assert(o==null||a.shape.length===o.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),N.assert(r==null||a.shape.length===r.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks."),ee([i,a,l,r,o],"batchNorm");let{varianceEpsilon:c}=n;c==null&&(c=.001);const p=s.data.get(i.dataId).values,u=s.data.get(a.dataId).values,h=s.data.get(l.dataId).values,d=r?s.data.get(r.dataId).values:new Float32Array([1]),m=o?s.data.get(o.dataId).values:new Float32Array([0]),f=new Float32Array(p.length),g=m.length,y=d.length,w=h.length,x=u.length;let T=0,A=0,_=0,E=0;for(let F=0;F=g&&(T=0),A>=x&&(A=0),_>=y&&(_=0),E>=w&&(E=0);return s.makeTensorInfo(i.shape,i.dtype,f)}const xC={kernelName:vi,backendName:"cpu",kernelFunc:ej};const tj=fe(pr,(e,t)=>{const s=t;return e>s.clipValueMax?s.clipValueMax:e`The new shape (${a}) has ${l} elements and the old shape (${i.shape}) has ${o} elements. The new shape and old shape must have the same number of elements.`),s.incRef(i.dataId);const c=s.data.get(i.dataId);if(c.complexTensorInfos!=null){const p=c.complexTensorInfos.real,u=c.complexTensorInfos.imag;p.shape=a,u.shape=a}return{dataId:i.dataId,shape:a,dtype:i.dtype}}const IC={kernelName:Ci,backendName:"cpu",kernelFunc:Rn};function Wl(e){const{inputs:t,backend:s,attrs:n}=e,{axis:i}=n,r=N.parseAxisParam(i,t[0].shape)[0];let o=U.computeOutShape(t.map(d=>d.shape),r);if(N.sizeFromShape(o)===0)return s.makeTensorInfo(o,t[0].dtype,[]);const a=t.filter(d=>N.sizeFromShape(d.shape)>0);if(a.length===1)return a[0];const l=a.map(d=>d.shape);if(U.assertParamsConsistent(l,r),a[0].dtype==="complex64"){const d=a.map(w=>ao({inputs:{input:w},backend:s})),m=a.map(w=>$l({inputs:{input:w},backend:s})),f=Wl({inputs:d,backend:s,attrs:{axis:i}}),g=Wl({inputs:m,backend:s,attrs:{axis:i}}),y=Rs({inputs:{real:f,imag:g},backend:s});return d.forEach(w=>s.disposeIntermediateTensorInfo(w)),m.forEach(w=>s.disposeIntermediateTensorInfo(w)),s.disposeIntermediateTensorInfo(f),s.disposeIntermediateTensorInfo(g),y}const c=a.map(d=>{const m=N.sizeFromShape(d.shape.slice(r)),f=[-1,m];return Rn({inputs:{x:d},backend:s,attrs:{shape:f}})});o=U.computeOutShape(c.map(d=>d.shape),1);const p=N.getTypedArrayFromDType(a[0].dtype,N.sizeFromShape(o));if(c[0].shape[0]===1){let d=0;c.forEach(m=>{const f=s.data.get(m.dataId).values,g=N.sizeFromShape(m.shape);p.set(f,d),d+=g})}else{let d=0;c.forEach(m=>{const f=s.data.get(m.dataId).values;let g=0;for(let y=0;yd.shape),r),h=s.makeTensorInfo(u,t[0].dtype,p);return c.forEach(d=>s.disposeIntermediateTensorInfo(d)),h}const vC={kernelName:xo,backendName:"cpu",kernelFunc:Wl};const sj=fe(Xn,e=>Math.cos(e)),TC={kernelName:Xn,backendName:"cpu",kernelFunc:sj};const nj=fe(ur,e=>Math.cosh(e)),AC={kernelName:ur,backendName:"cpu",kernelFunc:nj};const NC={kernelName:Lo,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:s})=>{const{x:n,filter:i}=e,{strides:r,pad:o,dilations:a}=s,l=t,c=l.data.get(n.dataId).values,p=n.shape.length,u=l.data.get(i.dataId).values,h=i.shape.length,{batchSize:d,inHeight:m,inWidth:f,inChannels:g,outHeight:y,outWidth:w,padInfo:x,strideHeight:T,strideWidth:A,filterHeight:_,filterWidth:E,dilationHeight:F,dilationWidth:D,outShape:M}=U.computeDilation2DInfo(n.shape,i.shape,r,o,"NHWC",a),P=N.sizeFromShape(M),B=M.length,Y=N.getArrayFromDType(n.dtype,P);for(let K=0;K=0&&de=0&&Mele&&(le=$t)}}}const ue=N.locToIndex([K,H,J,ne],B,N.computeStrides(M));Y[ue]=le}}}const q=l.write(N.toTypedArray(Y,n.dtype),M,n.dtype);return{dataId:q,shape:M,dtype:n.dtype}}};const CC={kernelName:Ea,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:s})=>{const{x:n,filter:i,dy:r}=e,{strides:o,pad:a,dilations:l}=s,c=t,p=N.toNestedArray(n.shape,c.data.get(n.dataId).values),u=N.toNestedArray(i.shape,c.data.get(i.dataId).values),{batchSize:h,inHeight:d,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:w,strideHeight:x,strideWidth:T,filterHeight:A,filterWidth:_,dilationHeight:E,dilationWidth:F,outShape:D}=U.computeDilation2DInfo(n.shape,i.shape,o,a,"NHWC",l);N.assert(r.rank===D.length,()=>`Error in ${Ea}, dy must have the same rank as output ${D.length}, but got ${r.rank}`);const M=N.toNestedArray(D,c.data.get(r.dataId).values),P=N.makeZerosNestedTypedArray(i.shape,i.dtype);for(let Y=0;Y=0&&oe=0&&Aeie&&(ie=Me,ne=ue,le=de)}}}P[ne][le][J]+=M[Y][q][H][J]}}}const B=c.write(N.toTypedArray(P,n.dtype),i.shape,i.dtype);return{dataId:B,shape:i.shape,dtype:i.dtype}}};const RC={kernelName:Oa,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:s})=>{const{x:n,filter:i,dy:r}=e,{strides:o,pad:a,dilations:l}=s,c=t,p=N.toNestedArray(n.shape,c.data.get(n.dataId).values),u=N.toNestedArray(i.shape,c.data.get(i.dataId).values),{batchSize:h,inHeight:d,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:w,strideHeight:x,strideWidth:T,filterHeight:A,filterWidth:_,dilationHeight:E,dilationWidth:F,outShape:D}=U.computeDilation2DInfo(n.shape,i.shape,o,a,"NHWC",l);N.assert(r.rank===D.length,()=>`Error in ${Oa}, dy must have the same rank as output ${D.length}, but got ${r.rank}`);const M=N.toNestedArray(D,c.data.get(r.dataId).values),P=N.makeZerosNestedTypedArray(n.shape,n.dtype);for(let Y=0;Y=0&&oe=0&&Aeie&&(ie=Me,ne=oe,le=Ae)}}}P[Y][ne][le][J]+=M[Y][q][H][J]}}}const B=c.write(N.toTypedArray(P,n.dtype),n.shape,n.dtype);return{dataId:B,shape:n.shape,dtype:n.dtype}}};const ij=Bs((e,t)=>e/t),rj=An(Jn,ij),fu={kernelName:Jn,backendName:"cpu",kernelFunc:rj};const oj=fe(hr,e=>e>=0?e:Math.exp(e)-1),OC={kernelName:hr,backendName:"cpu",kernelFunc:oj};const aj=U.ERF_P,lj=U.ERF_A1,cj=U.ERF_A2,pj=U.ERF_A3,uj=U.ERF_A4,hj=U.ERF_A5,dj=fe(dr,e=>{const t=Math.sign(e),s=Math.abs(e),n=1/(1+aj*s);return t*(1-((((hj*n+uj)*n+pj)*n+cj)*n+lj)*n*Math.exp(-s*s))}),EC={kernelName:dr,backendName:"cpu",kernelFunc:dj};function ff(e,t,s){const n=e.shape,i=n[0],r=n[1],o=s.data.get(e.dataId),a=o.complexTensorInfos.real,l=o.complexTensorInfos.imag,c=[i,r],p=N.sizeFromShape(c),u=N.getTypedArrayFromDType("float32",p),h=N.getTypedArrayFromDType("float32",p);for(let g=0;g{const{image:n}=e,i=s,r=N.getTypedArrayFromDType(n.dtype,N.sizeFromShape(n.shape)),[o,a,l,c]=n.shape,p=i.data.get(n.dataId).values;for(let h=0;h=0&&ANumber.isFinite(e)?1:0,"bool"),FC={kernelName:yr,backendName:"cpu",kernelFunc:wj};const xj=fe(br,e=>Math.abs(e)===Infinity?1:0,"bool"),MC={kernelName:br,backendName:"cpu",kernelFunc:xj};const Lj=fe(wr,e=>Number.isNaN(e)?1:0,"bool"),UC={kernelName:wr,backendName:"cpu",kernelFunc:Lj};const Sj=fe(Lr,e=>Math.log1p(e)),$C={kernelName:Lr,backendName:"cpu",kernelFunc:Sj};const Ij=fe(_a,e=>e?0:1,"bool"),WC={kernelName:_a,backendName:"cpu",kernelFunc:Ij};const zC={kernelName:Ai,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:s})=>{const{x:n}=e,{reductionIndices:i,keepDims:r}=t,o=s;let a=n.shape;const l=a.length,c=N.parseAxisParam(i,a);let p=c;const u=U.getAxesPermutation(p,l);let h=o.data.get(n.dataId).values;if(u!=null){const x=new Array(l);for(let T=0;T`Error in maxPool: Either strides or dilations must be 1. Got strides ${o} and dilations '${c}'`);const p=U.computePool2DInfo(i.shape,r,o,c,a,l);let u;if(p.filterWidth===1&&p.filterHeight===1&&N.arraysEqual(p.inShape,p.outShape))u=fi({inputs:{x:i},backend:s});else{const h=s.data.get(i.dataId).values,d=N.computeStrides(i.shape),m=Ul(h,i.shape,i.dtype,d,p,"max");u=s.makeTensorInfo(p.outShape,i.dtype,m.values)}return u}const PC={kernelName:Ni,backendName:"cpu",kernelFunc:vj};function Tj(e){const{inputs:t,backend:s,attrs:n}=e,{dy:i,input:r,output:o}=t,a=r;ee([r,o],"maxPoolBackprop");const{filterSize:l,strides:c,pad:p,dimRoundingMode:u}=n,h=U.computePool2DInfo(a.shape,l,c,1,p,u),d=s.data.get(a.dataId).values,m=ge(h.outShape,a.dtype,mf(d,a.shape,a.dtype,h).values),f=h.strideHeight,g=h.strideWidth,y=h.dilationHeight,w=h.dilationWidth,x=h.effectiveFilterHeight,T=h.effectiveFilterWidth,A=T-1-h.padInfo.left,_=x-1-h.padInfo.top,E=ge(a.shape,"float32"),F=s.data.get(i.dataId).values,D=ge(i.shape,"float32",F);for(let M=0;M=h.outHeight||Math.floor(J)!==J)continue;for(let ie=0;ie=h.outWidth||Math.floor(ne)!==ne)continue;const le=x*T-1-m.get(M,J,ne,P),ue=Q*T+ie,oe=le===ue?1:0;if(oe===0)continue;const de=D.get(M,J,ne,P);H+=de*oe}}E.set(H,M,B,Y,P)}return s.makeTensorInfo(E.shape,E.dtype,E.values)}const BC={kernelName:Io,backendName:"cpu",kernelFunc:Tj};function jC(e,t,s,n,i){const r=N.computeStrides(t),o=Ul(e,t,s,r,i,"max"),a=mf(e,t,s,i,!0,n);return[o.values,a.values]}const VC={kernelName:vo,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:s})=>{const{x:n}=e,{filterSize:i,strides:r,pad:o,includeBatchInIndex:a}=t,l=s;ee(n,"MaxPoolWithArgmax");const c=l.data.get(n.dataId).values,p=U.computePool2DInfo(n.shape,i,r,[1,1],o),[u,h]=jC(c,n.shape,n.dtype,a,p),d=l.write(u,p.outShape,n.dtype),m=l.write(h,p.outShape,n.dtype);return[{dataId:d,shape:p.outShape,dtype:n.dtype},{dataId:m,shape:p.outShape,dtype:"int32"}]}};const Aj=vt.nonMaxSuppressionV4Impl,GC={kernelName:To,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:s})=>{const{boxes:n,scores:i}=e,{maxOutputSize:r,iouThreshold:o,scoreThreshold:a,padToMaxOutputSize:l}=s,c=t;ee(n,"NonMaxSuppressionPadded");const p=c.data.get(n.dataId).values,u=c.data.get(i.dataId).values,{selectedIndices:h,validOutputs:d}=Aj(p,u,r,o,a,l);return[h,d]}};const Nj=vt.nonMaxSuppressionV5Impl,qC={kernelName:Ao,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:s})=>{const{boxes:n,scores:i}=e,{maxOutputSize:r,iouThreshold:o,scoreThreshold:a,softNmsSigma:l}=s,c=t;ee(n,"NonMaxSuppressionWithScore");const p=c.data.get(n.dataId).values,u=c.data.get(i.dataId).values,h=r,d=o,m=a,f=l,{selectedIndices:g,selectedScores:y}=Nj(p,u,h,d,m,f);return[g,y]}};const Cj=Bs((e,t)=>e!==t?1:0),Rj=An(ka,Cj,null,"bool"),HC={kernelName:ka,backendName:"cpu",kernelFunc:Rj};function Oj(e){const{inputs:t,backend:s,attrs:n}=e,{x:i}=t,{paddings:r,constantValue:o}=n;ee(i,"pad");const a=r.map((w,x)=>w[0]+i.shape[x]+w[1]),l=r.map(w=>w[0]),c=s.data.get(i.dataId).values,p=N.sizeFromShape(i.shape),u=i.shape.length,h=N.computeStrides(i.shape),d=N.sizeFromShape(a),m=a.length,f=N.computeStrides(a),g=N.getTypedArrayFromDType(i.dtype,d);o!==0&&g.fill(o);for(let w=0;w_+l[E]),A=N.locToIndex(T,m,f);g[A]=c[w]}const y=s.write(g,a,i.dtype);return{dataId:y,shape:a,dtype:i.dtype}}const gf={kernelName:No,backendName:"cpu",kernelFunc:Oj};const Ej=fe(Ir,e=>1/e),YC={kernelName:Ir,backendName:"cpu",kernelFunc:Ej};const KC={kernelName:_o,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:s})=>{const{image:n}=e,{radians:i,fillValue:r,center:o}=t,a=s,l=N.getTypedArrayFromDType(n.dtype,N.sizeFromShape(n.shape)),[c,p,u,h]=n.shape,[d,m]=U.getImageCenter(o,p,u),f=255,g=Math.sin(i),y=Math.cos(i),w=a.data.get(n.dataId).values;for(let T=0;T=0&&q=0&&K{const t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2===0?t:t+1}),XC={kernelName:vr,backendName:"cpu",kernelFunc:_j};const kj=U.SELU_SCALEALPHA,Dj=U.SELU_SCALE,Fj=fe(Ar,e=>e>=0?Dj*e:kj*(Math.exp(e)-1)),JC={kernelName:Ar,backendName:"cpu",kernelFunc:Fj};const Mj=fe(Rr,e=>1/(1+Math.exp(-e))),ZC={kernelName:Rr,backendName:"cpu",kernelFunc:Mj};const Uj=fe(Cr,e=>e<0?-1:e>0?1:0),QC={kernelName:Cr,backendName:"cpu",kernelFunc:Uj};const $j=fe(Zn,e=>Math.sin(e)),e0={kernelName:Zn,backendName:"cpu",kernelFunc:$j};const Wj=fe(Nr,e=>Math.sinh(e)),t0={kernelName:Nr,backendName:"cpu",kernelFunc:Wj};const zj=11920928955078125e-23,s0=Math.log(zj)+2,Pj=fe(Or,e=>{const t=e>-s0,s=eMath.sqrt(e)),o0={kernelName:Er,backendName:"cpu",kernelFunc:jj};const a0={kernelName:Oo,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{const{x:s}=e,n=t;ee(s,"square");const i=n.data.get(s.dataId).values,r=new Float32Array(i.length);for(let a=0;a{const s=e-t;return s*s}),Gj=An(Qn,Vj),l0={kernelName:Qn,backendName:"cpu",kernelFunc:Gj};const qj=fe(Dr,(e,t)=>{const s=t;return isNaN(e)?NaN:e>0?1:s.alpha}),c0={kernelName:Dr,backendName:"cpu",kernelFunc:qj};const Hj=fe(ei,e=>Math.tan(e)),p0={kernelName:ei,backendName:"cpu",kernelFunc:Hj};const Yj=fe(kr,e=>Math.tanh(e)),u0={kernelName:kr,backendName:"cpu",kernelFunc:Yj};function Kj(e){const{inputs:t,attrs:s,backend:n}=e,{axis:i}=s,{x:r}=t;ee(r,"unique");const o=n.data.get(r.dataId).values,{outputValues:a,outputShape:l,indices:c}=df(o,i,r.shape,r.dtype);return[n.makeTensorInfo(l,r.dtype,a),n.makeTensorInfo([c.length],"int32",c)]}const h0={kernelName:Eo,backendName:"cpu",kernelFunc:Kj};const Xj=[JN,hC,dC,sC,mC,fC,gC,yC,bC,wC,xC,tC,nC,LC,ZN,vC,TC,AC,NC,RC,CC,fu,OC,EC,iC,rC,_C,kC,oC,QN,DC,SC,FC,MC,UC,aC,$C,WC,PC,BC,VC,zC,lC,GC,qC,HC,gf,eC,YC,IC,KC,XC,cC,JC,ZC,QC,e0,t0,pC,n0,r0,o0,a0,l0,c0,uC,p0,u0,i0,h0];for(const e of Xj)Ma(e);const ca={},Dw={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function Fw(e,t){ca[e]=t}function nn(e){if(!(e in ca)){const s=Jj(e);if(s!==null)ca[e]=s;else return console.log("Could not get context for WebGL version",e),null}const t=ca[e];return t.isContextLost()?(delete ca[e],nn(e)):(t.disable(t.DEPTH_TEST),t.disable(t.STENCIL_TEST),t.disable(t.BLEND),t.disable(t.DITHER),t.disable(t.POLYGON_OFFSET_FILL),t.disable(t.SAMPLE_COVERAGE),t.enable(t.SCISSOR_TEST),t.enable(t.CULL_FACE),t.cullFace(t.BACK),ca[e])}function Zj(e){if(typeof OffscreenCanvas!="undefined"&&e===2)return new OffscreenCanvas(300,150);if(typeof document!="undefined")return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}function Jj(e){if(e!==1&&e!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");const t=Zj(e);return t.addEventListener("webglcontextlost",s=>{s.preventDefault(),delete ca[e]},!1),e===1?t.getContext("webgl",Dw)||t.getContext("experimental-webgl",Dw):t.getContext("webgl2",Dw)}var lo;(function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"})(lo||(lo={}));var ns;(function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"})(ns||(ns={}));var Xt;(function(e){e[e.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",e[e.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",e[e.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",e[e.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",e[e.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"})(Xt||(Xt={}));function pa(e,t){return[t,e]}function d0(e,t){return e*t}function co(e){const t=N.sizeFromShape(e),s=Math.ceil(t/4);return N.sizeToSquarishShape(s)}function gi(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function m0(e,t){const[s,n]=gi(e,t);return s*n*4}function gu(e,t){const s=e;let n,i,r,o,a,l,c,p,u,h;return W().getNumber("WEBGL_VERSION")===2?(n=s.R32F,i=s.R16F,r=s.RGBA16F,o=s.RGBA32F,a=s.RED,c=4,p=1,u=s.HALF_FLOAT,h=s.FLOAT):(n=e.RGBA,i=e.RGBA,r=e.RGBA,o=s.RGBA,a=e.RGBA,c=4,p=4,u=t!=null?t.HALF_FLOAT_OES:null,h=e.FLOAT),l=e.RGBA,{internalFormatFloat:n,internalFormatHalfFloat:i,internalFormatPackedHalfFloat:r,internalFormatPackedFloat:o,textureFormatFloat:a,downloadTextureFormat:l,downloadUnpackNumChannels:c,defaultNumChannels:p,textureTypeHalfFloat:u,textureTypeFloat:h}}function pe(e,t){const s=t();return W().getBool("DEBUG")&&Qj(e),s}function Qj(e){const t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+e3(e,t))}const t3=596e-10,s3=65504;function f0(e){return!!(W().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||e===0||t3e.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function g0(e,t){const s=Yi(e,()=>e.createShader(e.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(pe(e,()=>e.shaderSource(s,t)),pe(e,()=>e.compileShader(s)),e.getShaderParameter(s,e.COMPILE_STATUS)===!1)throw console.log(e.getShaderInfoLog(s)),new Error("Failed to compile vertex shader.");return s}function y0(e,t){const s=Yi(e,()=>e.createShader(e.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(pe(e,()=>e.shaderSource(s,t)),pe(e,()=>e.compileShader(s)),e.getShaderParameter(s,e.COMPILE_STATUS)===!1)throw n3(t,e.getShaderInfoLog(s)),new Error("Failed to compile fragment shader.");return s}const i3=/ERROR: [0-9]+:([0-9]+):/g;function n3(e,t){const s=i3.exec(t);if(s==null){console.log(`Couldn't parse line number in error: ${t}`),console.log(e);return}const n=+s[1],i=e.split(` +`),r=i.length.toString().length+2,o=i.map((u,h)=>N.rightPad((h+1).toString(),r)+u);let a=0;for(let u=0;ue.createProgram(),"Unable to create WebGLProgram.")}function w0(e,t){if(pe(e,()=>e.linkProgram(t)),e.getProgramParameter(t,e.LINK_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Failed to link vertex and fragment shaders.")}function yf(e,t){if(pe(e,()=>e.validateProgram(t)),e.getProgramParameter(t,e.VALIDATE_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function x0(e,t){const s=Yi(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return pe(e,()=>e.bindBuffer(e.ARRAY_BUFFER,s)),pe(e,()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)),s}function L0(e,t){const s=Yi(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return pe(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,s)),pe(e,()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW)),s}function S0(e){return Yi(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function I0(e,t){const s=W().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(e<=0||t<=0){const n=`[${e}x${t}]`;throw new Error("Requested texture size "+n+" is invalid.")}if(e>s||t>s){const n=`[${e}x${t}]`,i=`[${s}x${s}]`;throw new Error("Requested texture size "+n+" greater than WebGL maximum on this browser / GPU "+i+".")}}function v0(e){return Yi(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function Mw(e,t,s,n,i,r,o){const a=e.getAttribLocation(t,s);return a===-1?!1:(pe(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),pe(e,()=>e.vertexAttribPointer(a,i,e.FLOAT,!1,r,o)),pe(e,()=>e.enableVertexAttribArray(a)),!0)}function o3(e,t,s){r3(e,s),pe(e,()=>e.activeTexture(e.TEXTURE0+s)),pe(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function T0(e,t,s){return Yi(e,()=>e.getUniformLocation(t,s),'uniform "'+s+'" not present in program.')}function A0(e,t,s){return e.getUniformLocation(t,s)}function N0(e,t,s,n){pe(e,()=>o3(e,t,n)),pe(e,()=>e.uniform1i(s,n))}function bf(e,t,s){pe(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,s)),pe(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0))}function Uw(e,t){pe(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),pe(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function bu(e){const t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+a3(e,t))}function a3(e,t){switch(t){case e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case e.FRAMEBUFFER_UNSUPPORTED:return"FRAMEBUFFER_UNSUPPORTED";default:return`unknown error ${t}`}}function Yi(e,t,s){const n=pe(e,()=>t());if(n==null)throw new Error(s);return n}function r3(e,t){const s=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,n=t+e.TEXTURE0;if(ns){const i=`[gl.TEXTURE0, gl.TEXTURE${s}]`;throw new Error(`textureUnit must be in ${i}.`)}}function po(e,t=2){return N.sizeFromShape(e.slice(0,e.length-t))}function uo(e){if(e.length===0)throw Error("Cannot get rows and columns of an empty shape array.");return[e.length>1?e[e.length-2]:1,e[e.length-1]]}function wf(e){let t=[1,1,1];const s=e.length===0||e.length===1&&e[0]===1;return s||(t=[po(e),...uo(e)]),t}function C0(e,t=!1){let s=W().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(t&&(s=s*2,e=e.map((i,r)=>r>=e.length-2?N.nearestLargerEven(e[r]):e[r]),e.length===1&&(e=[2,e[0]])),e.length!==2){const i=N.squeezeShape(e);e=i.newShape}let n=N.sizeFromShape(e);if(e.length<=1&&n<=s)return[1,n];if(e.length===2&&e[0]<=s&&e[1]<=s)return e;if(e.length===3&&e[0]*e[1]<=s&&e[2]<=s)return[e[0]*e[1],e[2]];if(e.length===3&&e[0]<=s&&e[1]*e[2]<=s)return[e[0],e[1]*e[2]];if(e.length===4&&e[0]*e[1]*e[2]<=s&&e[3]<=s)return[e[0]*e[1]*e[2],e[3]];if(e.length===4&&e[0]<=s&&e[1]*e[2]*e[3]<=s)return[e[0],e[1]*e[2]*e[3]];if(t){const i=po(e);let r=2,o=2;return e.length&&([r,o]=uo(e)),n=i*(r/2)*(o/2),N.sizeToSquarishShape(n).map(a=>a*2)}return N.sizeToSquarishShape(n)}function xf(e){return e%2===0}function zl(e,t){if(e=e.slice(-2),t=t.slice(-2),N.arraysEqual(e,t))return!0;if(!e.length||!t.length)return!0;if(e[0]===0||e[1]===0||t[0]===0||t[1]===0)return!0;if(e.length!==t.length){const s=e.slice(-1)[0],n=t.slice(-1)[0];if(s===n)return!0;if(xf(s)&&xf(n)&&(e[0]===1||t[0]===1))return!0}return e[1]===t[1]&&xf(e[0])&&xf(t[0])}let $w,Ww;function R0(e){if($w==null){const t=nn(e);$w=t.getParameter(t.MAX_TEXTURE_SIZE)}return $w}function O0(e){if(Ww==null){const t=nn(e);Ww=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Ww)}function E0(e){if(e===0)return 0;let t;const s=nn(e);return rn(s,"EXT_disjoint_timer_query_webgl2")&&e===2?t=2:rn(s,"EXT_disjoint_timer_query")?t=1:t=0,t}function rn(e,t){const s=e.getExtension(t);return s!=null}function zw(e){try{const t=nn(e);if(t!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function _0(e){if(e===0)return!1;const t=nn(e);if(e===1){if(!rn(t,"OES_texture_float"))return!1}else if(!rn(t,"EXT_color_buffer_float"))return!1;const s=Pw(t);return s}function k0(e){if(e===0)return!1;const t=nn(e);if(e===1){if(!rn(t,"OES_texture_float"))return!1;if(!rn(t,"WEBGL_color_buffer_float"))return!1}else{if(rn(t,"EXT_color_buffer_float"))return Pw(t);const n="EXT_color_buffer_half_float";if(rn(t,n)){const i=t.getExtension(n);return l3(t,i)}return!1}const s=Pw(t);return s}function Pw(e){const t=gu(e),s=e.createTexture();e.bindTexture(e.TEXTURE_2D,s);const n=1,i=1;e.texImage2D(e.TEXTURE_2D,0,t.internalFormatFloat,n,i,0,t.textureFormatFloat,t.textureTypeFloat,null);const r=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,r),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,s,0);const o=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(s),e.deleteFramebuffer(r),o}function l3(e,t){const s=gu(e,t),n=e.createTexture();e.bindTexture(e.TEXTURE_2D,n);const i=1,r=1;e.texImage2D(e.TEXTURE_2D,0,s.internalFormatHalfFloat,i,r,0,s.textureFormatFloat,s.textureTypeHalfFloat,null);const o=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,o),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0);const a=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(n),e.deleteFramebuffer(o),a}function D0(e){if(e!==2)return!1;const t=nn(e),s=t.fenceSync!=null;return s}function yi(e,t){Array.isArray(e)||(e=[e]),e.forEach(s=>{s!=null&&N.assert(s.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the WebGL backend.`)})}const ve=W();ve.registerFlag("HAS_WEBGL",()=>ve.getNumber("WEBGL_VERSION")>0);ve.registerFlag("WEBGL_VERSION",()=>zw(2)?2:zw(1)?1:0);ve.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);ve.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>ve.get("WEBGL_VERSION")===2);ve.registerFlag("WEBGL_CPU_FORWARD",()=>!0);ve.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);ve.registerFlag("WEBGL_PACK",()=>ve.getBool("HAS_WEBGL"));ve.registerFlag("WEBGL_PACK_NORMALIZATION",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_CLIP",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>!1);ve.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_REDUCE",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_LAZILY_UNPACK",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_CONV_IM2COL",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>R0(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>O0(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{const e=ve.getNumber("WEBGL_VERSION");return e===0?0:E0(e)});ve.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>ve.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!ja.isMobile());ve.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>_0(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>ve.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:ve.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));ve.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>k0(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_FENCE_API_ENABLED",()=>D0(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>{const e=ve.getBool("WEBGL_RENDER_FLOAT32_ENABLED");return e?4:0});ve.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,e=>{if(e<0&&e!==-1)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${e}.`)});const{simpleAbsImpl:F0,addImpl:M0,ceilImpl:U0,expImpl:$0,expm1Impl:W0,floorImpl:z0,logImpl:P0,maxImpl:B0,multiplyImpl:j0,rsqrtImpl:V0,sliceImpl:G0,subImpl:q0,transposeImpl:Lf,uniqueImpl:H0}=Ow;class Y0{constructor(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map((i,r)=>`T${r}`);const s=[];this.variableNames.forEach(i=>{s.push(`float v${i} = get${i}AtOutCoords();`)});const n=this.variableNames.map(i=>`v${i}`).join(" + ");this.userCode=` + void main() { + ${s.join(` + `)} -// build/src/env/isNodejs.js -var require_isNodejs = __commonJS((exports, module) => { - __export(exports, { - isNodejs: () => isNodejs3 - }); - function isNodejs3() { - return typeof global === "object" && true && typeof module !== "undefined" && typeof process !== "undefined" && !!process.version; - } -}); - -// build/src/draw/drawContour.js -function drawContour(ctx, points, isClosed = false) { - ctx.beginPath(); - points.slice(1).forEach(({x, y}, prevIdx) => { - const from = points[prevIdx]; - ctx.moveTo(from.x, from.y); - ctx.lineTo(x, y); - }); - if (isClosed) { - const from = points[points.length - 1]; - const to = points[0]; - if (!from || !to) { - return; - } - ctx.moveTo(from.x, from.y); - ctx.lineTo(to.x, to.y); - } - ctx.stroke(); -} - -// build/src/classes/Dimensions.js -class Dimensions { - constructor(width, height) { - if (!isValidNumber(width) || !isValidNumber(height)) { - throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width, height})}`); - } - this._width = width; - this._height = height; - } - get width() { - return this._width; - } - get height() { - return this._height; - } - reverse() { - return new Dimensions(1 / this.width, 1 / this.height); - } -} - -// build/src/utils/index.js -const utils_exports = {}; -__export(utils_exports, { - computeReshapedDimensions: () => computeReshapedDimensions, - getCenterPoint: () => getCenterPoint, - isDimensions: () => isDimensions, - isEven: () => isEven, - isFloat: () => isFloat, - isTensor: () => isTensor, - isTensor1D: () => isTensor1D, - isTensor2D: () => isTensor2D, - isTensor3D: () => isTensor3D, - isTensor4D: () => isTensor4D, - isValidNumber: () => isValidNumber, - isValidProbablitiy: () => isValidProbablitiy, - range: () => range, - round: () => round -}); -import { - Tensor -} from "@tensorflow/tfjs"; -function isTensor(tensor2, dim) { - return tensor2 instanceof Tensor && tensor2.shape.length === dim; -} -function isTensor1D(tensor2) { - return isTensor(tensor2, 1); -} -function isTensor2D(tensor2) { - return isTensor(tensor2, 2); -} -function isTensor3D(tensor2) { - return isTensor(tensor2, 3); -} -function isTensor4D(tensor2) { - return isTensor(tensor2, 4); -} -function isFloat(num) { - return num % 1 !== 0; -} -function isEven(num) { - return num % 2 === 0; -} -function round(num, prec = 2) { - const f = Math.pow(10, prec); - return Math.floor(num * f) / f; -} -function isDimensions(obj) { - return obj && obj.width && obj.height; -} -function computeReshapedDimensions({width, height}, inputSize) { - const scale2 = inputSize / Math.max(height, width); - return new Dimensions(Math.round(width * scale2), Math.round(height * scale2)); -} -function getCenterPoint(pts) { - return pts.reduce((sum, pt) => sum.add(pt), new Point(0, 0)).div(new Point(pts.length, pts.length)); -} -function range(num, start, step) { - return Array(num).fill(0).map((_, i) => start + i * step); -} -function isValidNumber(num) { - return !!num && num !== Infinity && num !== -Infinity && !isNaN(num) || num === 0; -} -function isValidProbablitiy(num) { - return isValidNumber(num) && 0 <= num && num <= 1; -} - -// build/src/classes/Point.js -class Point { - constructor(x, y) { - this._x = x; - this._y = y; - } - get x() { - return this._x; - } - get y() { - return this._y; - } - add(pt) { - return new Point(this.x + pt.x, this.y + pt.y); - } - sub(pt) { - return new Point(this.x - pt.x, this.y - pt.y); - } - mul(pt) { - return new Point(this.x * pt.x, this.y * pt.y); - } - div(pt) { - return new Point(this.x / pt.x, this.y / pt.y); - } - abs() { - return new Point(Math.abs(this.x), Math.abs(this.y)); - } - magnitude() { - return Math.sqrt(Math.pow(this.x, 2) + Math.pow(this.y, 2)); - } - floor() { - return new Point(Math.floor(this.x), Math.floor(this.y)); - } -} - -// build/src/classes/Box.js -class Box { - constructor(_box, allowNegativeDimensions = true) { - const box = _box || {}; - const isBbox = [box.left, box.top, box.right, box.bottom].every(isValidNumber); - const isRect = [box.x, box.y, box.width, box.height].every(isValidNumber); - if (!isRect && !isBbox) { - throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(box)}`); - } - const [x, y, width, height] = isRect ? [box.x, box.y, box.width, box.height] : [box.left, box.top, box.right - box.left, box.bottom - box.top]; - Box.assertIsValidBox({x, y, width, height}, "Box.constructor", allowNegativeDimensions); - this._x = x; - this._y = y; - this._width = width; - this._height = height; - } - static isRect(rect) { - return !!rect && [rect.x, rect.y, rect.width, rect.height].every(isValidNumber); - } - static assertIsValidBox(box, callee, allowNegativeDimensions = false) { - if (!Box.isRect(box)) { - throw new Error(`${callee} - invalid box: ${JSON.stringify(box)}, expected object with properties x, y, width, height`); - } - if (!allowNegativeDimensions && (box.width < 0 || box.height < 0)) { - throw new Error(`${callee} - width (${box.width}) and height (${box.height}) must be positive numbers`); - } - } - get x() { - return this._x; - } - get y() { - return this._y; - } - get width() { - return this._width; - } - get height() { - return this._height; - } - get left() { - return this.x; - } - get top() { - return this.y; - } - get right() { - return this.x + this.width; - } - get bottom() { - return this.y + this.height; - } - get area() { - return this.width * this.height; - } - get topLeft() { - return new Point(this.left, this.top); - } - get topRight() { - return new Point(this.right, this.top); - } - get bottomLeft() { - return new Point(this.left, this.bottom); - } - get bottomRight() { - return new Point(this.right, this.bottom); - } - round() { - const [x, y, width, height] = [this.x, this.y, this.width, this.height].map((val) => Math.round(val)); - return new Box({x, y, width, height}); - } - floor() { - const [x, y, width, height] = [this.x, this.y, this.width, this.height].map((val) => Math.floor(val)); - return new Box({x, y, width, height}); - } - toSquare() { - let {x, y, width, height} = this; - const diff = Math.abs(width - height); - if (width < height) { - x -= diff / 2; - width += diff; - } - if (height < width) { - y -= diff / 2; - height += diff; - } - return new Box({x, y, width, height}); - } - rescale(s) { - const scaleX = isDimensions(s) ? s.width : s; - const scaleY = isDimensions(s) ? s.height : s; - return new Box({ - x: this.x * scaleX, - y: this.y * scaleY, - width: this.width * scaleX, - height: this.height * scaleY - }); - } - pad(padX, padY) { - let [x, y, width, height] = [ - this.x - padX / 2, - this.y - padY / 2, - this.width + padX, - this.height + padY - ]; - return new Box({x, y, width, height}); - } - clipAtImageBorders(imgWidth, imgHeight) { - const {x, y, right, bottom} = this; - const clippedX = Math.max(x, 0); - const clippedY = Math.max(y, 0); - const newWidth = right - clippedX; - const newHeight = bottom - clippedY; - const clippedWidth = Math.min(newWidth, imgWidth - clippedX); - const clippedHeight = Math.min(newHeight, imgHeight - clippedY); - return new Box({x: clippedX, y: clippedY, width: clippedWidth, height: clippedHeight}).floor(); - } - shift(sx, sy) { - const {width, height} = this; - const x = this.x + sx; - const y = this.y + sy; - return new Box({x, y, width, height}); - } - padAtBorders(imageHeight, imageWidth) { - const w = this.width + 1; - const h = this.height + 1; - let dx = 1; - let dy = 1; - let edx = w; - let edy = h; - let x = this.left; - let y = this.top; - let ex = this.right; - let ey = this.bottom; - if (ex > imageWidth) { - edx = -ex + imageWidth + w; - ex = imageWidth; - } - if (ey > imageHeight) { - edy = -ey + imageHeight + h; - ey = imageHeight; - } - if (x < 1) { - edy = 2 - x; - x = 1; - } - if (y < 1) { - edy = 2 - y; - y = 1; - } - return {dy, edy, dx, edx, y, ey, x, ex, w, h}; - } - calibrate(region) { - return new Box({ - left: this.left + region.left * this.width, - top: this.top + region.top * this.height, - right: this.right + region.right * this.width, - bottom: this.bottom + region.bottom * this.height - }).toSquare().round(); - } -} - -// build/src/classes/BoundingBox.js -class BoundingBox extends Box { - constructor(left, top, right, bottom, allowNegativeDimensions = false) { - super({left, top, right, bottom}, allowNegativeDimensions); - } -} - -// build/src/classes/ObjectDetection.js -class ObjectDetection { - constructor(score, classScore, className, relativeBox, imageDims) { - this._imageDims = new Dimensions(imageDims.width, imageDims.height); - this._score = score; - this._classScore = classScore; - this._className = className; - this._box = new Box(relativeBox).rescale(this._imageDims); - } - get score() { - return this._score; - } - get classScore() { - return this._classScore; - } - get className() { - return this._className; - } - get box() { - return this._box; - } - get imageDims() { - return this._imageDims; - } - get imageWidth() { - return this.imageDims.width; - } - get imageHeight() { - return this.imageDims.height; - } - get relativeBox() { - return new Box(this._box).rescale(this.imageDims.reverse()); - } - forSize(width, height) { - return new ObjectDetection(this.score, this.classScore, this.className, this.relativeBox, {width, height}); - } -} - -// build/src/classes/FaceDetection.js -class FaceDetection extends ObjectDetection { - constructor(score, relativeBox, imageDims) { - super(score, score, "", relativeBox, imageDims); - } - forSize(width, height) { - const {score, relativeBox, imageDims} = super.forSize(width, height); - return new FaceDetection(score, relativeBox, imageDims); - } -} - -// build/src/ops/iou.js -function iou(box1, box2, isIOU = true) { - const width = Math.max(0, Math.min(box1.right, box2.right) - Math.max(box1.left, box2.left)); - const height = Math.max(0, Math.min(box1.bottom, box2.bottom) - Math.max(box1.top, box2.top)); - const interSection = width * height; - return isIOU ? interSection / (box1.area + box2.area - interSection) : interSection / Math.min(box1.area, box2.area); -} - -// build/src/ops/minBbox.js -function minBbox(pts) { - const xs = pts.map((pt) => pt.x); - const ys = pts.map((pt) => pt.y); - const minX = xs.reduce((min, x) => x < min ? x : min, Infinity); - const minY = ys.reduce((min, y) => y < min ? y : min, Infinity); - const maxX = xs.reduce((max, x) => max < x ? x : max, 0); - const maxY = ys.reduce((max, y) => max < y ? y : max, 0); - return new BoundingBox(minX, minY, maxX, maxY); -} - -// build/src/ops/nonMaxSuppression.js -function nonMaxSuppression(boxes, scores, iouThreshold, isIOU = true) { - let indicesSortedByScore = scores.map((score, boxIndex) => ({score, boxIndex})).sort((c1, c2) => c1.score - c2.score).map((c) => c.boxIndex); - const pick = []; - while (indicesSortedByScore.length > 0) { - const curr = indicesSortedByScore.pop(); - pick.push(curr); - const indices = indicesSortedByScore; - const outputs = []; - for (let i = 0; i < indices.length; i++) { - const idx = indices[i]; - const currBox = boxes[curr]; - const idxBox = boxes[idx]; - outputs.push(iou(currBox, idxBox, isIOU)); - } - indicesSortedByScore = indicesSortedByScore.filter((_, j) => outputs[j] <= iouThreshold); - } - return pick; -} - -// build/src/ops/normalize.js -import { - concat, - fill, - sub, - tidy -} from "@tensorflow/tfjs"; -function normalize(x, meanRgb) { - return tidy(() => { - const [r, g, b] = meanRgb; - const avg_r = fill([...x.shape.slice(0, 3), 1], r); - const avg_g = fill([...x.shape.slice(0, 3), 1], g); - const avg_b = fill([...x.shape.slice(0, 3), 1], b); - const avg_rgb = concat([avg_r, avg_g, avg_b], 3); - return sub(x, avg_rgb); - }); -} - -// build/src/ops/padToSquare.js -import { - cast, - concat as concat2, - fill as fill2, - tidy as tidy2 -} from "@tensorflow/tfjs"; -function padToSquare(imgTensor, isCenterImage = false) { - return tidy2(() => { - const [height, width] = imgTensor.shape.slice(1); - if (height === width) { - return imgTensor; - } - const dimDiff = Math.abs(height - width); - const paddingAmount = Math.round(dimDiff * (isCenterImage ? 0.5 : 1)); - const paddingAxis = height > width ? 2 : 1; - const createPaddingTensor = (paddingAmount2) => { - const paddingTensorShape = imgTensor.shape.slice(); - paddingTensorShape[paddingAxis] = paddingAmount2; - return fill2(paddingTensorShape, 0); - }; - const paddingTensorAppend = createPaddingTensor(paddingAmount); - const remainingPaddingAmount = dimDiff - paddingTensorAppend.shape[paddingAxis]; - const paddingTensorPrepend = isCenterImage && remainingPaddingAmount ? createPaddingTensor(remainingPaddingAmount) : null; - const tensorsToStack = [ - paddingTensorPrepend, - imgTensor, - paddingTensorAppend - ].filter((t) => !!t).map((t) => cast(t, "float32")); - return concat2(tensorsToStack, paddingAxis); - }); -} - -// build/src/ops/shuffleArray.js -function shuffleArray(inputArray) { - const array = inputArray.slice(); - for (let i = array.length - 1; i > 0; i--) { - const j = Math.floor(Math.random() * (i + 1)); - const x = array[i]; - array[i] = array[j]; - array[j] = x; - } - return array; -} - -// build/src/ops/index.js -function sigmoid(x) { - return 1 / (1 + Math.exp(-x)); -} -function inverseSigmoid(x) { - return Math.log(x / (1 - x)); -} - -// build/src/classes/Rect.js -class Rect extends Box { - constructor(x, y, width, height, allowNegativeDimensions = false) { - super({x, y, width, height}, allowNegativeDimensions); - } -} - -// build/src/classes/FaceLandmarks.js -const relX = 0.5; -const relY = 0.43; -const relScale = 0.45; -class FaceLandmarks { - constructor(relativeFaceLandmarkPositions, imgDims, shift = new Point(0, 0)) { - const {width, height} = imgDims; - this._imgDims = new Dimensions(width, height); - this._shift = shift; - this._positions = relativeFaceLandmarkPositions.map((pt) => pt.mul(new Point(width, height)).add(shift)); - } - get shift() { - return new Point(this._shift.x, this._shift.y); - } - get imageWidth() { - return this._imgDims.width; - } - get imageHeight() { - return this._imgDims.height; - } - get positions() { - return this._positions; - } - get relativePositions() { - return this._positions.map((pt) => pt.sub(this._shift).div(new Point(this.imageWidth, this.imageHeight))); - } - forSize(width, height) { - return new this.constructor(this.relativePositions, {width, height}); - } - shiftBy(x, y) { - return new this.constructor(this.relativePositions, this._imgDims, new Point(x, y)); - } - shiftByPoint(pt) { - return this.shiftBy(pt.x, pt.y); - } - align(detection, options = {}) { - if (detection) { - const box = detection instanceof FaceDetection ? detection.box.floor() : new Box(detection); - return this.shiftBy(box.x, box.y).align(null, options); - } - const {useDlibAlignment, minBoxPadding} = Object.assign({}, {useDlibAlignment: false, minBoxPadding: 0.2}, options); - if (useDlibAlignment) { - return this.alignDlib(); - } - return this.alignMinBbox(minBoxPadding); - } - alignDlib() { - const centers = this.getRefPointsForAlignment(); - const [leftEyeCenter, rightEyeCenter, mouthCenter] = centers; - const distToMouth = (pt) => mouthCenter.sub(pt).magnitude(); - const eyeToMouthDist = (distToMouth(leftEyeCenter) + distToMouth(rightEyeCenter)) / 2; - const size = Math.floor(eyeToMouthDist / relScale); - const refPoint = getCenterPoint(centers); - const x = Math.floor(Math.max(0, refPoint.x - relX * size)); - const y = Math.floor(Math.max(0, refPoint.y - relY * size)); - return new Rect(x, y, Math.min(size, this.imageWidth + x), Math.min(size, this.imageHeight + y)); - } - alignMinBbox(padding) { - const box = minBbox(this.positions); - return box.pad(box.width * padding, box.height * padding); - } - getRefPointsForAlignment() { - throw new Error("getRefPointsForAlignment not implemented by base class"); - } -} - -// build/src/classes/FaceLandmarks5.js -class FaceLandmarks5 extends FaceLandmarks { - getRefPointsForAlignment() { - const pts = this.positions; - return [ - pts[0], - pts[1], - getCenterPoint([pts[3], pts[4]]) - ]; - } -} - -// build/src/classes/FaceLandmarks68.js -class FaceLandmarks68 extends FaceLandmarks { - getJawOutline() { - return this.positions.slice(0, 17); - } - getLeftEyeBrow() { - return this.positions.slice(17, 22); - } - getRightEyeBrow() { - return this.positions.slice(22, 27); - } - getNose() { - return this.positions.slice(27, 36); - } - getLeftEye() { - return this.positions.slice(36, 42); - } - getRightEye() { - return this.positions.slice(42, 48); - } - getMouth() { - return this.positions.slice(48, 68); - } - getRefPointsForAlignment() { - return [ - this.getLeftEye(), - this.getRightEye(), - this.getMouth() - ].map(getCenterPoint); - } -} - -// build/src/classes/FaceMatch.js -class FaceMatch { - constructor(label, distance) { - this._label = label; - this._distance = distance; - } - get label() { - return this._label; - } - get distance() { - return this._distance; - } - toString(withDistance = true) { - return `${this.label}${withDistance ? ` (${round(this.distance)})` : ""}`; - } -} - -// build/src/classes/LabeledBox.js -class LabeledBox extends Box { - constructor(box, label) { - super(box); - this._label = label; - } - static assertIsValidLabeledBox(box, callee) { - Box.assertIsValidBox(box, callee); - if (!isValidNumber(box.label)) { - throw new Error(`${callee} - expected property label (${box.label}) to be a number`); - } - } - get label() { - return this._label; - } -} - -// build/src/classes/LabeledFaceDescriptors.js -class LabeledFaceDescriptors { - constructor(label, descriptors) { - if (!(typeof label === "string")) { - throw new Error("LabeledFaceDescriptors - constructor expected label to be a string"); - } - if (!Array.isArray(descriptors) || descriptors.some((desc) => !(desc instanceof Float32Array))) { - throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array"); - } - this._label = label; - this._descriptors = descriptors; - } - get label() { - return this._label; - } - get descriptors() { - return this._descriptors; - } - toJSON() { - return { - label: this.label, - descriptors: this.descriptors.map((d) => Array.from(d)) - }; - } - static fromJSON(json) { - const descriptors = json.descriptors.map((d) => { - return new Float32Array(d); - }); - return new LabeledFaceDescriptors(json.label, descriptors); - } -} - -// build/src/classes/PredictedBox.js -class PredictedBox extends LabeledBox { - constructor(box, label, score, classScore) { - super(box, label); - this._score = score; - this._classScore = classScore; - } - static assertIsValidPredictedBox(box, callee) { - LabeledBox.assertIsValidLabeledBox(box, callee); - if (!isValidProbablitiy(box.score) || !isValidProbablitiy(box.classScore)) { - throw new Error(`${callee} - expected properties score (${box.score}) and (${box.classScore}) to be a number between [0, 1]`); - } - } - get score() { - return this._score; - } - get classScore() { - return this._classScore; - } -} - -// build/src/classes/index.js - -// build/src/factories/WithFaceDetection.js -function isWithFaceDetection(obj) { - return obj["detection"] instanceof FaceDetection; -} -function extendWithFaceDetection(sourceObj, detection) { - const extension = {detection}; - return Object.assign({}, sourceObj, extension); -} - -// build/src/env/createBrowserEnv.js -function createBrowserEnv() { - const fetch2 = window["fetch"] || function() { - throw new Error("fetch - missing fetch implementation for browser environment"); - }; - const readFile = function() { - throw new Error("readFile - filesystem not available for browser environment"); - }; - return { - Canvas: HTMLCanvasElement, - CanvasRenderingContext2D, - Image: HTMLImageElement, - ImageData, - Video: HTMLVideoElement, - createCanvasElement: () => document.createElement("canvas"), - createImageElement: () => document.createElement("img"), - fetch: fetch2, - readFile - }; -} - -// build/src/env/createFileSystem.js -function createFileSystem(fs) { - let requireFsError = ""; - if (!fs) { - try { - fs = require("fs"); - } catch (err) { - requireFsError = err.toString(); - } - } - const readFile = fs ? function(filePath) { - return new Promise((res, rej) => { - fs.readFile(filePath, function(err, buffer) { - return err ? rej(err) : res(buffer); - }); - }); - } : function() { - throw new Error(`readFile - failed to require fs in nodejs environment with error: ${requireFsError}`); - }; - return { - readFile - }; -} - -// build/src/env/createNodejsEnv.js -function createNodejsEnv() { - const Canvas = global["Canvas"] || global["HTMLCanvasElement"]; - const Image = global["Image"] || global["HTMLImageElement"]; - const createCanvasElement = function() { - if (Canvas) { - return new Canvas(); - } - throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment"); - }; - const createImageElement = function() { - if (Image) { - return new Image(); - } - throw new Error("createImageElement - missing Image implementation for nodejs environment"); - }; - const fetch2 = global["fetch"] || function() { - throw new Error("fetch - missing fetch implementation for nodejs environment"); - }; - const fileSystem = createFileSystem(); - return { - Canvas: Canvas || class { - }, - CanvasRenderingContext2D: global["CanvasRenderingContext2D"] || class { - }, - Image: Image || class { - }, - ImageData: global["ImageData"] || class { - }, - Video: global["HTMLVideoElement"] || class { - }, - createCanvasElement, - createImageElement, - fetch: fetch2, - ...fileSystem - }; -} - -// build/src/env/isBrowser.js -function isBrowser() { - return typeof window === "object" && typeof document !== "undefined" && typeof HTMLImageElement !== "undefined" && typeof HTMLCanvasElement !== "undefined" && typeof HTMLVideoElement !== "undefined" && typeof ImageData !== "undefined" && typeof CanvasRenderingContext2D !== "undefined"; -} - -// build/src/env/types.js - -// build/src/env/index.js -const isNodejs = __toModule(require_isNodejs()); -let environment; -function getEnv() { - if (!environment) { - throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()"); - } - return environment; -} -function setEnv(env17) { - environment = env17; -} -function initialize() { - if (isBrowser()) { - return setEnv(createBrowserEnv()); - } - if (isNodejs.isNodejs()) { - return setEnv(createNodejsEnv()); - } -} -function monkeyPatch(env17) { - if (!environment) { - initialize(); - } - if (!environment) { - throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()"); - } - const {Canvas = environment.Canvas, Image = environment.Image} = env17; - environment.Canvas = Canvas; - environment.Image = Image; - environment.createCanvasElement = env17.createCanvasElement || (() => new Canvas()); - environment.createImageElement = env17.createImageElement || (() => new Image()); - environment.ImageData = env17.ImageData || environment.ImageData; - environment.Video = env17.Video || environment.Video; - environment.fetch = env17.fetch || environment.fetch; - environment.readFile = env17.readFile || environment.readFile; -} -const env = { - getEnv, - setEnv, - initialize, - createBrowserEnv, - createFileSystem, - createNodejsEnv, - monkeyPatch, - isBrowser, - isNodejs: isNodejs.isNodejs -}; -initialize(); - -// build/src/dom/resolveInput.js -function resolveInput(arg) { - if (!env.isNodejs() && typeof arg === "string") { - return document.getElementById(arg); - } - return arg; -} - -// build/src/dom/getContext2dOrThrow.js -function getContext2dOrThrow(canvasArg) { - const {Canvas, CanvasRenderingContext2D: CanvasRenderingContext2D2} = env.getEnv(); - if (canvasArg instanceof CanvasRenderingContext2D2) { - return canvasArg; - } - const canvas = resolveInput(canvasArg); - if (!(canvas instanceof Canvas)) { - throw new Error("resolveContext2d - expected canvas to be of instance of Canvas"); - } - const ctx = canvas.getContext("2d"); - if (!ctx) { - throw new Error("resolveContext2d - canvas 2d context is null"); - } - return ctx; -} - -// build/src/draw/DrawTextField.js -var AnchorPosition; -(function(AnchorPosition2) { - AnchorPosition2["TOP_LEFT"] = "TOP_LEFT"; - AnchorPosition2["TOP_RIGHT"] = "TOP_RIGHT"; - AnchorPosition2["BOTTOM_LEFT"] = "BOTTOM_LEFT"; - AnchorPosition2["BOTTOM_RIGHT"] = "BOTTOM_RIGHT"; -})(AnchorPosition || (AnchorPosition = {})); -class DrawTextFieldOptions { - constructor(options = {}) { - const {anchorPosition, backgroundColor, fontColor, fontSize, fontStyle, padding} = options; - this.anchorPosition = anchorPosition || AnchorPosition.TOP_LEFT; - this.backgroundColor = backgroundColor || "rgba(0, 0, 0, 0.5)"; - this.fontColor = fontColor || "rgba(255, 255, 255, 1)"; - this.fontSize = fontSize || 14; - this.fontStyle = fontStyle || "Georgia"; - this.padding = padding || 4; - } -} -class DrawTextField { - constructor(text, anchor, options = {}) { - this.text = typeof text === "string" ? [text] : text instanceof DrawTextField ? text.text : text; - this.anchor = anchor; - this.options = new DrawTextFieldOptions(options); - } - measureWidth(ctx) { - const {padding} = this.options; - return this.text.map((l) => ctx.measureText(l).width).reduce((w0, w1) => w0 < w1 ? w1 : w0, 0) + 2 * padding; - } - measureHeight() { - const {fontSize, padding} = this.options; - return this.text.length * fontSize + 2 * padding; - } - getUpperLeft(ctx, canvasDims) { - const {anchorPosition} = this.options; - const isShiftLeft = anchorPosition === AnchorPosition.BOTTOM_RIGHT || anchorPosition === AnchorPosition.TOP_RIGHT; - const isShiftTop = anchorPosition === AnchorPosition.BOTTOM_LEFT || anchorPosition === AnchorPosition.BOTTOM_RIGHT; - const textFieldWidth = this.measureWidth(ctx); - const textFieldHeight = this.measureHeight(); - const x = isShiftLeft ? this.anchor.x - textFieldWidth : this.anchor.x; - const y = isShiftTop ? this.anchor.y - textFieldHeight : this.anchor.y; - if (canvasDims) { - const {width, height} = canvasDims; - const newX = Math.max(Math.min(x, width - textFieldWidth), 0); - const newY = Math.max(Math.min(y, height - textFieldHeight), 0); - return {x: newX, y: newY}; - } - return {x, y}; - } - draw(canvasArg) { - const canvas = resolveInput(canvasArg); - const ctx = getContext2dOrThrow(canvas); - const {backgroundColor, fontColor, fontSize, fontStyle, padding} = this.options; - ctx.font = `${fontSize}px ${fontStyle}`; - const maxTextWidth = this.measureWidth(ctx); - const textHeight = this.measureHeight(); - ctx.fillStyle = backgroundColor; - const upperLeft = this.getUpperLeft(ctx, canvas); - ctx.fillRect(upperLeft.x, upperLeft.y, maxTextWidth, textHeight); - ctx.fillStyle = fontColor; - this.text.forEach((textLine, i) => { - const x = padding + upperLeft.x; - const y = padding + upperLeft.y + (i + 1) * fontSize; - ctx.fillText(textLine, x, y); - }); - } -} - -// build/src/draw/DrawBox.js -class DrawBoxOptions { - constructor(options = {}) { - const {boxColor, lineWidth, label, drawLabelOptions} = options; - this.boxColor = boxColor || "rgba(0, 0, 255, 1)"; - this.lineWidth = lineWidth || 2; - this.label = label; - const defaultDrawLabelOptions = { - anchorPosition: AnchorPosition.BOTTOM_LEFT, - backgroundColor: this.boxColor - }; - this.drawLabelOptions = new DrawTextFieldOptions(Object.assign({}, defaultDrawLabelOptions, drawLabelOptions)); - } -} -class DrawBox { - constructor(box, options = {}) { - this.box = new Box(box); - this.options = new DrawBoxOptions(options); - } - draw(canvasArg) { - const ctx = getContext2dOrThrow(canvasArg); - const {boxColor, lineWidth} = this.options; - const {x, y, width, height} = this.box; - ctx.strokeStyle = boxColor; - ctx.lineWidth = lineWidth; - ctx.strokeRect(x, y, width, height); - const {label} = this.options; - if (label) { - new DrawTextField([label], {x: x - lineWidth / 2, y}, this.options.drawLabelOptions).draw(canvasArg); - } - } -} - -// build/src/draw/drawDetections.js -function drawDetections(canvasArg, detections) { - const detectionsArray = Array.isArray(detections) ? detections : [detections]; - detectionsArray.forEach((det) => { - const score = det instanceof FaceDetection ? det.score : isWithFaceDetection(det) ? det.detection.score : void 0; - const box = det instanceof FaceDetection ? det.box : isWithFaceDetection(det) ? det.detection.box : new Box(det); - const label = score ? `${round(score)}` : void 0; - new DrawBox(box, {label}).draw(canvasArg); - }); -} - -// build/src/dom/isMediaLoaded.js -function isMediaLoaded(media) { - const {Image, Video} = env.getEnv(); - return media instanceof Image && media.complete || media instanceof Video && media.readyState >= 3; -} - -// build/src/dom/awaitMediaLoaded.js -function awaitMediaLoaded(media) { - return new Promise((resolve, reject) => { - if (media instanceof env.getEnv().Canvas || isMediaLoaded(media)) { - return resolve(null); - } - function onLoad(e) { - if (!e.currentTarget) - return; - e.currentTarget.removeEventListener("load", onLoad); - e.currentTarget.removeEventListener("error", onError); - resolve(e); - } - function onError(e) { - if (!e.currentTarget) - return; - e.currentTarget.removeEventListener("load", onLoad); - e.currentTarget.removeEventListener("error", onError); - reject(e); - } - media.addEventListener("load", onLoad); - media.addEventListener("error", onError); - }); -} - -// build/src/dom/bufferToImage.js -function bufferToImage(buf) { - return new Promise((resolve, reject) => { - if (!(buf instanceof Blob)) { - return reject("bufferToImage - expected buf to be of type: Blob"); - } - const reader = new FileReader(); - reader.onload = () => { - if (typeof reader.result !== "string") { - return reject("bufferToImage - expected reader.result to be a string, in onload"); + float result = ${n}; + setOutput(result); } - const img = env.getEnv().createImageElement(); - img.onload = () => resolve(img); - img.onerror = reject; - img.src = reader.result; - }; - reader.onerror = reject; - reader.readAsDataURL(buf); - }); -} + `}}class K0{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map((i,r)=>`T${r}`);const s=[];this.variableNames.forEach(i=>{s.push(`vec4 v${i} = get${i}AtOutCoords();`)});const n=this.variableNames.map(i=>`v${i}`).join(" + ");this.userCode=` + void main() { + ${s.join(` + `)} -// build/src/dom/getMediaDimensions.js -function getMediaDimensions(input) { - const {Image, Video} = env.getEnv(); - if (input instanceof Image) { - return new Dimensions(input.naturalWidth, input.naturalHeight); - } - if (input instanceof Video) { - return new Dimensions(input.videoWidth, input.videoHeight); - } - return new Dimensions(input.width, input.height); -} - -// build/src/dom/createCanvas.js -function createCanvas({width, height}) { - const {createCanvasElement} = env.getEnv(); - const canvas = createCanvasElement(); - canvas.width = width; - canvas.height = height; - return canvas; -} -function createCanvasFromMedia(media, dims) { - const {ImageData: ImageData2} = env.getEnv(); - if (!(media instanceof ImageData2) && !isMediaLoaded(media)) { - throw new Error("createCanvasFromMedia - media has not finished loading yet"); - } - const {width, height} = dims || getMediaDimensions(media); - const canvas = createCanvas({width, height}); - if (media instanceof ImageData2) { - getContext2dOrThrow(canvas).putImageData(media, 0, 0); - } else { - getContext2dOrThrow(canvas).drawImage(media, 0, 0, width, height); - } - return canvas; -} - -// build/src/dom/imageTensorToCanvas.js -import { - browser, - tidy as tidy3 -} from "@tensorflow/tfjs"; -async function imageTensorToCanvas(imgTensor, canvas) { - const targetCanvas = canvas || env.getEnv().createCanvasElement(); - const [height, width, numChannels] = imgTensor.shape.slice(isTensor4D(imgTensor) ? 1 : 0); - const imgTensor3D = tidy3(() => imgTensor.as3D(height, width, numChannels).toInt()); - await browser.toPixels(imgTensor3D, targetCanvas); - imgTensor3D.dispose(); - return targetCanvas; -} - -// build/src/dom/isMediaElement.js -function isMediaElement(input) { - const {Image, Canvas, Video} = env.getEnv(); - return input instanceof Image || input instanceof Canvas || input instanceof Video; -} - -// build/src/dom/imageToSquare.js -function imageToSquare(input, inputSize, centerImage = false) { - const {Image, Canvas} = env.getEnv(); - if (!(input instanceof Image || input instanceof Canvas)) { - throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement"); - } - const dims = getMediaDimensions(input); - const scale2 = inputSize / Math.max(dims.height, dims.width); - const width = scale2 * dims.width; - const height = scale2 * dims.height; - const targetCanvas = createCanvas({width: inputSize, height: inputSize}); - const inputCanvas = input instanceof Canvas ? input : createCanvasFromMedia(input); - const offset = Math.abs(width - height) / 2; - const dx = centerImage && width < height ? offset : 0; - const dy = centerImage && height < width ? offset : 0; - getContext2dOrThrow(targetCanvas).drawImage(inputCanvas, dx, dy, width, height); - return targetCanvas; -} - -// build/src/dom/NetInput.js -import { - Tensor as Tensor2, - browser as browser2, - cast as cast2, - image, - stack, - tidy as tidy4 -} from "@tensorflow/tfjs"; -class NetInput { - constructor(inputs, treatAsBatchInput = false) { - this._imageTensors = []; - this._canvases = []; - this._treatAsBatchInput = false; - this._inputDimensions = []; - if (!Array.isArray(inputs)) { - throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${inputs}`); - } - this._treatAsBatchInput = treatAsBatchInput; - this._batchSize = inputs.length; - inputs.forEach((input, idx) => { - if (isTensor3D(input)) { - this._imageTensors[idx] = input; - this._inputDimensions[idx] = input.shape; - return; + vec4 result = ${n}; + setOutput(result); } - if (isTensor4D(input)) { - const batchSize = input.shape[0]; - if (batchSize !== 1) { - throw new Error(`NetInput - tf.Tensor4D with batchSize ${batchSize} passed, but not supported in input array`); - } - this._imageTensors[idx] = input; - this._inputDimensions[idx] = input.shape.slice(1); - return; - } - const canvas = input instanceof env.getEnv().Canvas ? input : createCanvasFromMedia(input); - this._canvases[idx] = canvas; - this._inputDimensions[idx] = [canvas.height, canvas.width, 3]; - }); - } - get imageTensors() { - return this._imageTensors; - } - get canvases() { - return this._canvases; - } - get isBatchInput() { - return this.batchSize > 1 || this._treatAsBatchInput; - } - get batchSize() { - return this._batchSize; - } - get inputDimensions() { - return this._inputDimensions; - } - get inputSize() { - return this._inputSize; - } - get reshapedInputDimensions() { - return range(this.batchSize, 0, 1).map((_, batchIdx) => this.getReshapedInputDimensions(batchIdx)); - } - getInput(batchIdx) { - return this.canvases[batchIdx] || this.imageTensors[batchIdx]; - } - getInputDimensions(batchIdx) { - return this._inputDimensions[batchIdx]; - } - getInputHeight(batchIdx) { - return this._inputDimensions[batchIdx][0]; - } - getInputWidth(batchIdx) { - return this._inputDimensions[batchIdx][1]; - } - getReshapedInputDimensions(batchIdx) { - if (typeof this.inputSize !== "number") { - throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet"); - } - const width = this.getInputWidth(batchIdx); - const height = this.getInputHeight(batchIdx); - return computeReshapedDimensions({width, height}, this.inputSize); - } - toBatchTensor(inputSize, isCenterInputs = true) { - this._inputSize = inputSize; - return tidy4(() => { - const inputTensors = range(this.batchSize, 0, 1).map((batchIdx) => { - const input = this.getInput(batchIdx); - if (input instanceof Tensor2) { - let imgTensor = isTensor4D(input) ? input : input.expandDims(); - imgTensor = padToSquare(imgTensor, isCenterInputs); - if (imgTensor.shape[1] !== inputSize || imgTensor.shape[2] !== inputSize) { - imgTensor = image.resizeBilinear(imgTensor, [inputSize, inputSize]); - } - return imgTensor.as3D(inputSize, inputSize, 3); - } - if (input instanceof env.getEnv().Canvas) { - return browser2.fromPixels(imageToSquare(input, inputSize, isCenterInputs)); - } - throw new Error(`toBatchTensor - at batchIdx ${batchIdx}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${input}`); - }); - const batchTensor = stack(inputTensors.map((t) => cast2(t, "float32"))).as4D(this.batchSize, inputSize, inputSize, 3); - return batchTensor; - }); - } -} - -// build/src/dom/toNetInput.js -async function toNetInput(inputs) { - if (inputs instanceof NetInput) { - return inputs; - } - let inputArgArray = Array.isArray(inputs) ? inputs : [inputs]; - if (!inputArgArray.length) { - throw new Error("toNetInput - empty array passed as input"); - } - const getIdxHint = (idx) => Array.isArray(inputs) ? ` at input index ${idx}:` : ""; - const inputArray = inputArgArray.map(resolveInput); - inputArray.forEach((input, i) => { - if (!isMediaElement(input) && !isTensor3D(input) && !isTensor4D(input)) { - if (typeof inputArgArray[i] === "string") { - throw new Error(`toNetInput -${getIdxHint(i)} string passed, but could not resolve HTMLElement for element id ${inputArgArray[i]}`); - } - throw new Error(`toNetInput -${getIdxHint(i)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`); - } - if (isTensor4D(input)) { - const batchSize = input.shape[0]; - if (batchSize !== 1) { - throw new Error(`toNetInput -${getIdxHint(i)} tf.Tensor4D with batchSize ${batchSize} passed, but not supported in input array`); - } - } - }); - await Promise.all(inputArray.map((input) => isMediaElement(input) && awaitMediaLoaded(input))); - return new NetInput(inputArray, Array.isArray(inputs)); -} - -// build/src/dom/extractFaces.js -async function extractFaces(input, detections) { - const {Canvas} = env.getEnv(); - let canvas = input; - if (!(input instanceof Canvas)) { - const netInput = await toNetInput(input); - if (netInput.batchSize > 1) { - throw new Error("extractFaces - batchSize > 1 not supported"); - } - const tensorOrCanvas = netInput.getInput(0); - canvas = tensorOrCanvas instanceof Canvas ? tensorOrCanvas : await imageTensorToCanvas(tensorOrCanvas); - } - const ctx = getContext2dOrThrow(canvas); - const boxes = detections.map((det) => det instanceof FaceDetection ? det.forSize(canvas.width, canvas.height).box.floor() : det).map((box) => box.clipAtImageBorders(canvas.width, canvas.height)); - return boxes.map(({x, y, width, height}) => { - const faceImg = createCanvas({width, height}); - getContext2dOrThrow(faceImg).putImageData(ctx.getImageData(x, y, width, height), 0, 0); - return faceImg; - }); -} - -// build/src/dom/extractFaceTensors.js -import { - slice3d, - tidy as tidy5 -} from "@tensorflow/tfjs"; -async function extractFaceTensors(imageTensor, detections) { - if (!isTensor3D(imageTensor) && !isTensor4D(imageTensor)) { - throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D"); - } - if (isTensor4D(imageTensor) && imageTensor.shape[0] > 1) { - throw new Error("extractFaceTensors - batchSize > 1 not supported"); - } - return tidy5(() => { - const [imgHeight, imgWidth, numChannels] = imageTensor.shape.slice(isTensor4D(imageTensor) ? 1 : 0); - const boxes = detections.map((det) => det instanceof FaceDetection ? det.forSize(imgWidth, imgHeight).box : det).map((box) => box.clipAtImageBorders(imgWidth, imgHeight)); - const faceTensors = boxes.map(({x, y, width, height}) => slice3d(imageTensor.as3D(imgHeight, imgWidth, numChannels), [y, x, 0], [height, width, numChannels])); - return faceTensors; - }); -} - -// build/src/dom/fetchOrThrow.js -async function fetchOrThrow(url, init) { - const fetch2 = env.getEnv().fetch; - const res = await fetch2(url, init); - if (!(res.status < 400)) { - throw new Error(`failed to fetch: (${res.status}) ${res.statusText}, from url: ${res.url}`); - } - return res; -} - -// build/src/dom/fetchImage.js -async function fetchImage(uri) { - const res = await fetchOrThrow(uri); - const blob = await res.blob(); - if (!blob.type.startsWith("image/")) { - throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${blob.type}, for url: ${res.url}`); - } - return bufferToImage(blob); -} - -// build/src/dom/fetchJson.js -async function fetchJson(uri) { - return (await fetchOrThrow(uri)).json(); -} - -// build/src/dom/fetchNetWeights.js -async function fetchNetWeights(uri) { - return new Float32Array(await (await fetchOrThrow(uri)).arrayBuffer()); -} - -// build/src/common/getModelUris.js -function getModelUris(uri, defaultModelName) { - const defaultManifestFilename = `${defaultModelName}-weights_manifest.json`; - if (!uri) { - return { - modelBaseUri: "", - manifestUri: defaultManifestFilename - }; - } - if (uri === "/") { - return { - modelBaseUri: "/", - manifestUri: `/${defaultManifestFilename}` - }; - } - const protocol = uri.startsWith("http://") ? "http://" : uri.startsWith("https://") ? "https://" : ""; - uri = uri.replace(protocol, ""); - const parts = uri.split("/").filter((s) => s); - const manifestFile = uri.endsWith(".json") ? parts[parts.length - 1] : defaultManifestFilename; - let modelBaseUri = protocol + (uri.endsWith(".json") ? parts.slice(0, parts.length - 1) : parts).join("/"); - modelBaseUri = uri.startsWith("/") ? `/${modelBaseUri}` : modelBaseUri; - return { - modelBaseUri, - manifestUri: modelBaseUri === "/" ? `/${manifestFile}` : `${modelBaseUri}/${manifestFile}` - }; -} - -// build/src/dom/loadWeightMap.js -import { - io -} from "@tensorflow/tfjs"; -async function loadWeightMap(uri, defaultModelName) { - const {manifestUri, modelBaseUri} = getModelUris(uri, defaultModelName); - let manifest = await fetchJson(manifestUri); - return io.loadWeights(manifest, modelBaseUri); -} - -// build/src/dom/matchDimensions.js -function matchDimensions(input, reference, useMediaDimensions = false) { - const {width, height} = useMediaDimensions ? getMediaDimensions(reference) : reference; - input.width = width; - input.height = height; - return {width, height}; -} - -// build/src/dom/types.js - -// build/src/dom/index.js - -// build/src/NeuralNetwork.js -import { - Tensor as Tensor3, - Variable, - io as io2, - tensor -} from "@tensorflow/tfjs"; -class NeuralNetwork { - constructor(_name) { - this._name = _name; - this._params = void 0; - this._paramMappings = []; - } - get params() { - return this._params; - } - get paramMappings() { - return this._paramMappings; - } - get isLoaded() { - return !!this.params; - } - getParamFromPath(paramPath) { - const {obj, objProp} = this.traversePropertyPath(paramPath); - return obj[objProp]; - } - reassignParamFromPath(paramPath, tensor2) { - const {obj, objProp} = this.traversePropertyPath(paramPath); - obj[objProp].dispose(); - obj[objProp] = tensor2; - } - getParamList() { - return this._paramMappings.map(({paramPath}) => ({ - path: paramPath, - tensor: this.getParamFromPath(paramPath) - })); - } - getTrainableParams() { - return this.getParamList().filter((param) => param.tensor instanceof Variable); - } - getFrozenParams() { - return this.getParamList().filter((param) => !(param.tensor instanceof Variable)); - } - variable() { - this.getFrozenParams().forEach(({path, tensor: tensor2}) => { - this.reassignParamFromPath(path, tensor2.variable()); - }); - } - freeze() { - this.getTrainableParams().forEach(({path, tensor: variable}) => { - const tensor2 = tensor(variable.dataSync()); - variable.dispose(); - this.reassignParamFromPath(path, tensor2); - }); - } - dispose(throwOnRedispose = true) { - this.getParamList().forEach((param) => { - if (throwOnRedispose && param.tensor.isDisposed) { - throw new Error(`param tensor has already been disposed for path ${param.path}`); - } - param.tensor.dispose(); - }); - this._params = void 0; - } - serializeParams() { - return new Float32Array(this.getParamList().map(({tensor: tensor2}) => Array.from(tensor2.dataSync())).reduce((flat, arr) => flat.concat(arr))); - } - async load(weightsOrUrl) { - if (weightsOrUrl instanceof Float32Array) { - this.extractWeights(weightsOrUrl); - return; - } - await this.loadFromUri(weightsOrUrl); - } - async loadFromUri(uri) { - if (uri && typeof uri !== "string") { - throw new Error(`${this._name}.loadFromUri - expected model uri`); - } - const weightMap = await loadWeightMap(uri, this.getDefaultModelName()); - this.loadFromWeightMap(weightMap); - } - async loadFromDisk(filePath) { - if (filePath && typeof filePath !== "string") { - throw new Error(`${this._name}.loadFromDisk - expected model file path`); - } - const {readFile} = env.getEnv(); - const {manifestUri, modelBaseUri} = getModelUris(filePath, this.getDefaultModelName()); - const fetchWeightsFromDisk = (filePaths) => Promise.all(filePaths.map((filePath2) => readFile(filePath2).then((buf) => buf.buffer))); - const loadWeights = io2.weightsLoaderFactory(fetchWeightsFromDisk); - const manifest = JSON.parse((await readFile(manifestUri)).toString()); - const weightMap = await loadWeights(manifest, modelBaseUri); - this.loadFromWeightMap(weightMap); - } - loadFromWeightMap(weightMap) { - const {paramMappings, params} = this.extractParamsFromWeigthMap(weightMap); - this._paramMappings = paramMappings; - this._params = params; - } - extractWeights(weights) { - const {paramMappings, params} = this.extractParams(weights); - this._paramMappings = paramMappings; - this._params = params; - } - traversePropertyPath(paramPath) { - if (!this.params) { - throw new Error(`traversePropertyPath - model has no loaded params`); - } - const result = paramPath.split("/").reduce((res, objProp2) => { - if (!res.nextObj.hasOwnProperty(objProp2)) { - throw new Error(`traversePropertyPath - object does not have property ${objProp2}, for path ${paramPath}`); - } - return {obj: res.nextObj, objProp: objProp2, nextObj: res.nextObj[objProp2]}; - }, {nextObj: this.params}); - const {obj, objProp} = result; - if (!obj || !objProp || !(obj[objProp] instanceof Tensor3)) { - throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${paramPath}`); - } - return {obj, objProp}; - } -} - -// build/src/common/depthwiseSeparableConv.js -import { - add, - separableConv2d, - tidy as tidy6 -} from "@tensorflow/tfjs"; -function depthwiseSeparableConv(x, params, stride) { - return tidy6(() => { - let out = separableConv2d(x, params.depthwise_filter, params.pointwise_filter, stride, "same"); - out = add(out, params.bias); - return out; - }); -} - -// build/src/faceFeatureExtractor/denseBlock.js -import { - add as add2, - conv2d, - relu, - tidy as tidy7 -} from "@tensorflow/tfjs"; -function denseBlock3(x, denseBlockParams, isFirstLayer = false) { - return tidy7(() => { - const out1 = relu(isFirstLayer ? add2(conv2d(x, denseBlockParams.conv0.filters, [2, 2], "same"), denseBlockParams.conv0.bias) : depthwiseSeparableConv(x, denseBlockParams.conv0, [2, 2])); - const out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1]); - const in3 = relu(add2(out1, out2)); - const out3 = depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1]); - return relu(add2(out1, add2(out2, out3))); - }); -} -function denseBlock4(x, denseBlockParams, isFirstLayer = false, isScaleDown = true) { - return tidy7(() => { - const out1 = relu(isFirstLayer ? add2(conv2d(x, denseBlockParams.conv0.filters, isScaleDown ? [2, 2] : [1, 1], "same"), denseBlockParams.conv0.bias) : depthwiseSeparableConv(x, denseBlockParams.conv0, isScaleDown ? [2, 2] : [1, 1])); - const out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1]); - const in3 = relu(add2(out1, out2)); - const out3 = depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1]); - const in4 = relu(add2(out1, add2(out2, out3))); - const out4 = depthwiseSeparableConv(in4, denseBlockParams.conv3, [1, 1]); - return relu(add2(out1, add2(out2, add2(out3, out4)))); - }); -} - -// build/src/common/convLayer.js -import { - add as add3, - conv2d as conv2d2, - relu as relu2, - tidy as tidy8 -} from "@tensorflow/tfjs"; -function convLayer(x, params, padding = "same", withRelu = false) { - return tidy8(() => { - const out = add3(conv2d2(x, params.filters, [1, 1], padding), params.bias); - return withRelu ? relu2(out) : out; - }); -} - -// build/src/common/disposeUnusedWeightTensors.js -function disposeUnusedWeightTensors(weightMap, paramMappings) { - Object.keys(weightMap).forEach((path) => { - if (!paramMappings.some((pm) => pm.originalPath === path)) { - weightMap[path].dispose(); - } - }); -} - -// build/src/common/extractConvParamsFactory.js -import { - tensor1d, - tensor4d -} from "@tensorflow/tfjs"; -function extractConvParamsFactory(extractWeights, paramMappings) { - return function(channelsIn, channelsOut, filterSize, mappedPrefix) { - const filters = tensor4d(extractWeights(channelsIn * channelsOut * filterSize * filterSize), [filterSize, filterSize, channelsIn, channelsOut]); - const bias = tensor1d(extractWeights(channelsOut)); - paramMappings.push({paramPath: `${mappedPrefix}/filters`}, {paramPath: `${mappedPrefix}/bias`}); - return {filters, bias}; - }; -} - -// build/src/common/extractFCParamsFactory.js -import { - tensor1d as tensor1d2, - tensor2d -} from "@tensorflow/tfjs"; -function extractFCParamsFactory(extractWeights, paramMappings) { - return function(channelsIn, channelsOut, mappedPrefix) { - const fc_weights = tensor2d(extractWeights(channelsIn * channelsOut), [channelsIn, channelsOut]); - const fc_bias = tensor1d2(extractWeights(channelsOut)); - paramMappings.push({paramPath: `${mappedPrefix}/weights`}, {paramPath: `${mappedPrefix}/bias`}); - return { - weights: fc_weights, - bias: fc_bias - }; - }; -} - -// build/src/common/types.js -class SeparableConvParams { - constructor(depthwise_filter, pointwise_filter, bias) { - this.depthwise_filter = depthwise_filter; - this.pointwise_filter = pointwise_filter; - this.bias = bias; - } -} - -// build/src/common/extractSeparableConvParamsFactory.js -import { - tensor1d as tensor1d3, - tensor4d as tensor4d2 -} from "@tensorflow/tfjs"; -function extractSeparableConvParamsFactory(extractWeights, paramMappings) { - return function(channelsIn, channelsOut, mappedPrefix) { - const depthwise_filter = tensor4d2(extractWeights(3 * 3 * channelsIn), [3, 3, channelsIn, 1]); - const pointwise_filter = tensor4d2(extractWeights(channelsIn * channelsOut), [1, 1, channelsIn, channelsOut]); - const bias = tensor1d3(extractWeights(channelsOut)); - paramMappings.push({paramPath: `${mappedPrefix}/depthwise_filter`}, {paramPath: `${mappedPrefix}/pointwise_filter`}, {paramPath: `${mappedPrefix}/bias`}); - return new SeparableConvParams(depthwise_filter, pointwise_filter, bias); - }; -} -function loadSeparableConvParamsFactory(extractWeightEntry) { - return function(prefix) { - const depthwise_filter = extractWeightEntry(`${prefix}/depthwise_filter`, 4); - const pointwise_filter = extractWeightEntry(`${prefix}/pointwise_filter`, 4); - const bias = extractWeightEntry(`${prefix}/bias`, 1); - return new SeparableConvParams(depthwise_filter, pointwise_filter, bias); - }; -} - -// build/src/common/extractWeightEntryFactory.js -function extractWeightEntryFactory(weightMap, paramMappings) { - return function(originalPath, paramRank, mappedPath) { - const tensor2 = weightMap[originalPath]; - if (!isTensor(tensor2, paramRank)) { - throw new Error(`expected weightMap[${originalPath}] to be a Tensor${paramRank}D, instead have ${tensor2}`); - } - paramMappings.push({originalPath, paramPath: mappedPath || originalPath}); - return tensor2; - }; -} - -// build/src/common/extractWeightsFactory.js -function extractWeightsFactory(weights) { - let remainingWeights = weights; - function extractWeights(numWeights) { - const ret = remainingWeights.slice(0, numWeights); - remainingWeights = remainingWeights.slice(numWeights); - return ret; - } - function getRemainingWeights() { - return remainingWeights; - } - return { - extractWeights, - getRemainingWeights - }; -} - -// build/src/common/index.js - -// build/src/faceFeatureExtractor/extractorsFactory.js -function extractorsFactory(extractWeights, paramMappings) { - const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings); - const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings); - function extractDenseBlock3Params(channelsIn, channelsOut, mappedPrefix, isFirstLayer = false) { - const conv0 = isFirstLayer ? extractConvParams(channelsIn, channelsOut, 3, `${mappedPrefix}/conv0`) : extractSeparableConvParams(channelsIn, channelsOut, `${mappedPrefix}/conv0`); - const conv1 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv1`); - const conv22 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv2`); - return {conv0, conv1, conv2: conv22}; - } - function extractDenseBlock4Params(channelsIn, channelsOut, mappedPrefix, isFirstLayer = false) { - const {conv0, conv1, conv2: conv22} = extractDenseBlock3Params(channelsIn, channelsOut, mappedPrefix, isFirstLayer); - const conv3 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv3`); - return {conv0, conv1, conv2: conv22, conv3}; - } - return { - extractDenseBlock3Params, - extractDenseBlock4Params - }; -} - -// build/src/faceFeatureExtractor/extractParams.js -function extractParams(weights) { - const paramMappings = []; - const {extractWeights, getRemainingWeights} = extractWeightsFactory(weights); - const {extractDenseBlock4Params} = extractorsFactory(extractWeights, paramMappings); - const dense0 = extractDenseBlock4Params(3, 32, "dense0", true); - const dense1 = extractDenseBlock4Params(32, 64, "dense1"); - const dense2 = extractDenseBlock4Params(64, 128, "dense2"); - const dense3 = extractDenseBlock4Params(128, 256, "dense3"); - if (getRemainingWeights().length !== 0) { - throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`); - } - return { - paramMappings, - params: {dense0, dense1, dense2, dense3} - }; -} - -// build/src/common/loadConvParamsFactory.js -function loadConvParamsFactory(extractWeightEntry) { - return function(prefix) { - const filters = extractWeightEntry(`${prefix}/filters`, 4); - const bias = extractWeightEntry(`${prefix}/bias`, 1); - return {filters, bias}; - }; -} - -// build/src/faceFeatureExtractor/loadParamsFactory.js -function loadParamsFactory(weightMap, paramMappings) { - const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings); - const extractConvParams = loadConvParamsFactory(extractWeightEntry); - const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry); - function extractDenseBlock3Params(prefix, isFirstLayer = false) { - const conv0 = isFirstLayer ? extractConvParams(`${prefix}/conv0`) : extractSeparableConvParams(`${prefix}/conv0`); - const conv1 = extractSeparableConvParams(`${prefix}/conv1`); - const conv22 = extractSeparableConvParams(`${prefix}/conv2`); - return {conv0, conv1, conv2: conv22}; - } - function extractDenseBlock4Params(prefix, isFirstLayer = false) { - const conv0 = isFirstLayer ? extractConvParams(`${prefix}/conv0`) : extractSeparableConvParams(`${prefix}/conv0`); - const conv1 = extractSeparableConvParams(`${prefix}/conv1`); - const conv22 = extractSeparableConvParams(`${prefix}/conv2`); - const conv3 = extractSeparableConvParams(`${prefix}/conv3`); - return {conv0, conv1, conv2: conv22, conv3}; - } - return { - extractDenseBlock3Params, - extractDenseBlock4Params - }; -} - -// build/src/faceFeatureExtractor/extractParamsFromWeigthMap.js -function extractParamsFromWeigthMap(weightMap) { - const paramMappings = []; - const {extractDenseBlock4Params} = loadParamsFactory(weightMap, paramMappings); - const params = { - dense0: extractDenseBlock4Params("dense0", true), - dense1: extractDenseBlock4Params("dense1"), - dense2: extractDenseBlock4Params("dense2"), - dense3: extractDenseBlock4Params("dense3") - }; - disposeUnusedWeightTensors(weightMap, paramMappings); - return {params, paramMappings}; -} - -// build/src/faceFeatureExtractor/FaceFeatureExtractor.js -import { - avgPool, - scalar, - tidy as tidy9 -} from "@tensorflow/tfjs"; -class FaceFeatureExtractor extends NeuralNetwork { - constructor() { - super("FaceFeatureExtractor"); - } - forwardInput(input) { - const {params} = this; - if (!params) { - throw new Error("FaceFeatureExtractor - load model before inference"); - } - return tidy9(() => { - const batchTensor = input.toBatchTensor(112, true); - const meanRgb = [122.782, 117.001, 104.298]; - const normalized = normalize(batchTensor, meanRgb).div(scalar(255)); - let out = denseBlock4(normalized, params.dense0, true); - out = denseBlock4(out, params.dense1); - out = denseBlock4(out, params.dense2); - out = denseBlock4(out, params.dense3); - out = avgPool(out, [7, 7], [2, 2], "valid"); - return out; - }); - } - async forward(input) { - return this.forwardInput(await toNetInput(input)); - } - getDefaultModelName() { - return "face_feature_extractor_model"; - } - extractParamsFromWeigthMap(weightMap) { - return extractParamsFromWeigthMap(weightMap); - } - extractParams(weights) { - return extractParams(weights); - } -} - -// build/src/common/fullyConnectedLayer.js -import { - add as add4, - matMul, - tidy as tidy10 -} from "@tensorflow/tfjs"; -function fullyConnectedLayer(x, params) { - return tidy10(() => add4(matMul(x, params.weights), params.bias)); -} - -// build/src/faceProcessor/extractParams.js -function extractParams3(weights, channelsIn, channelsOut) { - const paramMappings = []; - const {extractWeights, getRemainingWeights} = extractWeightsFactory(weights); - const extractFCParams = extractFCParamsFactory(extractWeights, paramMappings); - const fc = extractFCParams(channelsIn, channelsOut, "fc"); - if (getRemainingWeights().length !== 0) { - throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`); - } - return { - paramMappings, - params: {fc} - }; -} - -// build/src/faceProcessor/extractParamsFromWeigthMap.js -function extractParamsFromWeigthMap3(weightMap) { - const paramMappings = []; - const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings); - function extractFcParams(prefix) { - const weights = extractWeightEntry(`${prefix}/weights`, 2); - const bias = extractWeightEntry(`${prefix}/bias`, 1); - return {weights, bias}; - } - const params = { - fc: extractFcParams("fc") - }; - disposeUnusedWeightTensors(weightMap, paramMappings); - return {params, paramMappings}; -} - -// build/src/faceProcessor/util.js -function seperateWeightMaps(weightMap) { - const featureExtractorMap = {}; - const classifierMap = {}; - Object.keys(weightMap).forEach((key) => { - const map = key.startsWith("fc") ? classifierMap : featureExtractorMap; - map[key] = weightMap[key]; - }); - return {featureExtractorMap, classifierMap}; -} - -// build/src/faceProcessor/FaceProcessor.js -import { - tidy as tidy11 -} from "@tensorflow/tfjs"; -class FaceProcessor extends NeuralNetwork { - constructor(_name, faceFeatureExtractor) { - super(_name); - this._faceFeatureExtractor = faceFeatureExtractor; - } - get faceFeatureExtractor() { - return this._faceFeatureExtractor; - } - runNet(input) { - const {params} = this; - if (!params) { - throw new Error(`${this._name} - load model before inference`); - } - return tidy11(() => { - const bottleneckFeatures = input instanceof NetInput ? this.faceFeatureExtractor.forwardInput(input) : input; - return fullyConnectedLayer(bottleneckFeatures.as2D(bottleneckFeatures.shape[0], -1), params.fc); - }); - } - dispose(throwOnRedispose = true) { - this.faceFeatureExtractor.dispose(throwOnRedispose); - super.dispose(throwOnRedispose); - } - loadClassifierParams(weights) { - const {params, paramMappings} = this.extractClassifierParams(weights); - this._params = params; - this._paramMappings = paramMappings; - } - extractClassifierParams(weights) { - return extractParams3(weights, this.getClassifierChannelsIn(), this.getClassifierChannelsOut()); - } - extractParamsFromWeigthMap(weightMap) { - const {featureExtractorMap, classifierMap} = seperateWeightMaps(weightMap); - this.faceFeatureExtractor.loadFromWeightMap(featureExtractorMap); - return extractParamsFromWeigthMap3(classifierMap); - } - extractParams(weights) { - const cIn = this.getClassifierChannelsIn(); - const cOut = this.getClassifierChannelsOut(); - const classifierWeightSize = cOut * cIn + cOut; - const featureExtractorWeights = weights.slice(0, weights.length - classifierWeightSize); - const classifierWeights = weights.slice(weights.length - classifierWeightSize); - this.faceFeatureExtractor.extractWeights(featureExtractorWeights); - return this.extractClassifierParams(classifierWeights); - } -} - -// build/src/faceExpressionNet/FaceExpressions.js -const FACE_EXPRESSION_LABELS = ["neutral", "happy", "sad", "angry", "fearful", "disgusted", "surprised"]; -class FaceExpressions { - constructor(probabilities) { - if (probabilities.length !== 7) { - throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${probabilities.length}`); - } - FACE_EXPRESSION_LABELS.forEach((expression, idx) => { - this[expression] = probabilities[idx]; - }); - } - asSortedArray() { - return FACE_EXPRESSION_LABELS.map((expression) => ({expression, probability: this[expression]})).sort((e0, e1) => e1.probability - e0.probability); - } -} - -// build/src/faceExpressionNet/FaceExpressionNet.js -import { - softmax, - tidy as tidy12, - unstack -} from "@tensorflow/tfjs"; -class FaceExpressionNet extends FaceProcessor { - constructor(faceFeatureExtractor = new FaceFeatureExtractor()) { - super("FaceExpressionNet", faceFeatureExtractor); - } - forwardInput(input) { - return tidy12(() => softmax(this.runNet(input))); - } - async forward(input) { - return this.forwardInput(await toNetInput(input)); - } - async predictExpressions(input) { - const netInput = await toNetInput(input); - const out = await this.forwardInput(netInput); - const probabilitesByBatch = await Promise.all(unstack(out).map(async (t) => { - const data = await t.data(); - t.dispose(); - return data; - })); - out.dispose(); - const predictionsByBatch = probabilitesByBatch.map((probabilites) => new FaceExpressions(probabilites)); - return netInput.isBatchInput ? predictionsByBatch : predictionsByBatch[0]; - } - getDefaultModelName() { - return "face_expression_model"; - } - getClassifierChannelsIn() { - return 256; - } - getClassifierChannelsOut() { - return 7; - } -} - -// build/src/faceExpressionNet/index.js - -// build/src/factories/WithFaceExpressions.js -function isWithFaceExpressions(obj) { - return obj["expressions"] instanceof FaceExpressions; -} -function extendWithFaceExpressions(sourceObj, expressions) { - const extension = {expressions}; - return Object.assign({}, sourceObj, extension); -} - -// build/src/draw/drawFaceExpressions.js -function drawFaceExpressions(canvasArg, faceExpressions, minConfidence = 0.1, textFieldAnchor) { - const faceExpressionsArray = Array.isArray(faceExpressions) ? faceExpressions : [faceExpressions]; - faceExpressionsArray.forEach((e) => { - const expr = e instanceof FaceExpressions ? e : isWithFaceExpressions(e) ? e.expressions : void 0; - if (!expr) { - throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof"); - } - const sorted = expr.asSortedArray(); - const resultsToDisplay = sorted.filter((expr2) => expr2.probability > minConfidence); - const anchor = isWithFaceDetection(e) ? e.detection.box.bottomLeft : textFieldAnchor || new Point(0, 0); - const drawTextField = new DrawTextField(resultsToDisplay.map((expr2) => `${expr2.expression} (${round(expr2.probability)})`), anchor); - drawTextField.draw(canvasArg); - }); -} - -// build/src/factories/WithFaceLandmarks.js -function isWithFaceLandmarks(obj) { - return isWithFaceDetection(obj) && obj["landmarks"] instanceof FaceLandmarks && obj["unshiftedLandmarks"] instanceof FaceLandmarks && obj["alignedRect"] instanceof FaceDetection; -} -function extendWithFaceLandmarks(sourceObj, unshiftedLandmarks) { - const {box: shift} = sourceObj.detection; - const landmarks = unshiftedLandmarks.shiftBy(shift.x, shift.y); - const rect = landmarks.align(); - const {imageDims} = sourceObj.detection; - const alignedRect = new FaceDetection(sourceObj.detection.score, rect.rescale(imageDims.reverse()), imageDims); - const extension = { - landmarks, - unshiftedLandmarks, - alignedRect - }; - return Object.assign({}, sourceObj, extension); -} - -// build/src/draw/DrawFaceLandmarks.js -class DrawFaceLandmarksOptions { - constructor(options = {}) { - const {drawLines = true, drawPoints = true, lineWidth, lineColor, pointSize, pointColor} = options; - this.drawLines = drawLines; - this.drawPoints = drawPoints; - this.lineWidth = lineWidth || 1; - this.pointSize = pointSize || 2; - this.lineColor = lineColor || "rgba(0, 255, 255, 1)"; - this.pointColor = pointColor || "rgba(255, 0, 255, 1)"; - } -} -class DrawFaceLandmarks { - constructor(faceLandmarks, options = {}) { - this.faceLandmarks = faceLandmarks; - this.options = new DrawFaceLandmarksOptions(options); - } - draw(canvasArg) { - const ctx = getContext2dOrThrow(canvasArg); - const {drawLines, drawPoints, lineWidth, lineColor, pointSize, pointColor} = this.options; - if (drawLines && this.faceLandmarks instanceof FaceLandmarks68) { - ctx.strokeStyle = lineColor; - ctx.lineWidth = lineWidth; - drawContour(ctx, this.faceLandmarks.getJawOutline()); - drawContour(ctx, this.faceLandmarks.getLeftEyeBrow()); - drawContour(ctx, this.faceLandmarks.getRightEyeBrow()); - drawContour(ctx, this.faceLandmarks.getNose()); - drawContour(ctx, this.faceLandmarks.getLeftEye(), true); - drawContour(ctx, this.faceLandmarks.getRightEye(), true); - drawContour(ctx, this.faceLandmarks.getMouth(), true); - } - if (drawPoints) { - ctx.strokeStyle = pointColor; - ctx.fillStyle = pointColor; - const drawPoint = (pt) => { - ctx.beginPath(); - ctx.arc(pt.x, pt.y, pointSize, 0, 2 * Math.PI); - ctx.fill(); - }; - this.faceLandmarks.positions.forEach(drawPoint); - } - } -} -function drawFaceLandmarks(canvasArg, faceLandmarks) { - const faceLandmarksArray = Array.isArray(faceLandmarks) ? faceLandmarks : [faceLandmarks]; - faceLandmarksArray.forEach((f) => { - const landmarks = f instanceof FaceLandmarks ? f : isWithFaceLandmarks(f) ? f.landmarks : void 0; - if (!landmarks) { - throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof"); - } - new DrawFaceLandmarks(landmarks).draw(canvasArg); - }); -} - -// build/src/draw/index.js -const draw_exports = {}; -__export(draw_exports, { - AnchorPosition: () => AnchorPosition, - DrawBox: () => DrawBox, - DrawBoxOptions: () => DrawBoxOptions, - DrawFaceLandmarks: () => DrawFaceLandmarks, - DrawFaceLandmarksOptions: () => DrawFaceLandmarksOptions, - DrawTextField: () => DrawTextField, - DrawTextFieldOptions: () => DrawTextFieldOptions, - drawContour: () => drawContour, - drawDetections: () => drawDetections, - drawFaceExpressions: () => drawFaceExpressions, - drawFaceLandmarks: () => drawFaceLandmarks -}); - -// build/src/xception/extractParams.js -function extractorsFactory3(extractWeights, paramMappings) { - const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings); - const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings); - function extractReductionBlockParams(channelsIn, channelsOut, mappedPrefix) { - const separable_conv0 = extractSeparableConvParams(channelsIn, channelsOut, `${mappedPrefix}/separable_conv0`); - const separable_conv1 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/separable_conv1`); - const expansion_conv = extractConvParams(channelsIn, channelsOut, 1, `${mappedPrefix}/expansion_conv`); - return {separable_conv0, separable_conv1, expansion_conv}; - } - function extractMainBlockParams(channels, mappedPrefix) { - const separable_conv0 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv0`); - const separable_conv1 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv1`); - const separable_conv2 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv2`); - return {separable_conv0, separable_conv1, separable_conv2}; - } - return { - extractConvParams, - extractSeparableConvParams, - extractReductionBlockParams, - extractMainBlockParams - }; -} -function extractParams5(weights, numMainBlocks) { - const paramMappings = []; - const {extractWeights, getRemainingWeights} = extractWeightsFactory(weights); - const {extractConvParams, extractSeparableConvParams, extractReductionBlockParams, extractMainBlockParams} = extractorsFactory3(extractWeights, paramMappings); - const entry_flow_conv_in = extractConvParams(3, 32, 3, "entry_flow/conv_in"); - const entry_flow_reduction_block_0 = extractReductionBlockParams(32, 64, "entry_flow/reduction_block_0"); - const entry_flow_reduction_block_1 = extractReductionBlockParams(64, 128, "entry_flow/reduction_block_1"); - const entry_flow = { - conv_in: entry_flow_conv_in, - reduction_block_0: entry_flow_reduction_block_0, - reduction_block_1: entry_flow_reduction_block_1 - }; - const middle_flow = {}; - range(numMainBlocks, 0, 1).forEach((idx) => { - middle_flow[`main_block_${idx}`] = extractMainBlockParams(128, `middle_flow/main_block_${idx}`); - }); - const exit_flow_reduction_block = extractReductionBlockParams(128, 256, "exit_flow/reduction_block"); - const exit_flow_separable_conv = extractSeparableConvParams(256, 512, "exit_flow/separable_conv"); - const exit_flow = { - reduction_block: exit_flow_reduction_block, - separable_conv: exit_flow_separable_conv - }; - if (getRemainingWeights().length !== 0) { - throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`); - } - return { - paramMappings, - params: {entry_flow, middle_flow, exit_flow} - }; -} - -// build/src/xception/extractParamsFromWeigthMap.js -function loadParamsFactory3(weightMap, paramMappings) { - const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings); - const extractConvParams = loadConvParamsFactory(extractWeightEntry); - const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry); - function extractReductionBlockParams(mappedPrefix) { - const separable_conv0 = extractSeparableConvParams(`${mappedPrefix}/separable_conv0`); - const separable_conv1 = extractSeparableConvParams(`${mappedPrefix}/separable_conv1`); - const expansion_conv = extractConvParams(`${mappedPrefix}/expansion_conv`); - return {separable_conv0, separable_conv1, expansion_conv}; - } - function extractMainBlockParams(mappedPrefix) { - const separable_conv0 = extractSeparableConvParams(`${mappedPrefix}/separable_conv0`); - const separable_conv1 = extractSeparableConvParams(`${mappedPrefix}/separable_conv1`); - const separable_conv2 = extractSeparableConvParams(`${mappedPrefix}/separable_conv2`); - return {separable_conv0, separable_conv1, separable_conv2}; - } - return { - extractConvParams, - extractSeparableConvParams, - extractReductionBlockParams, - extractMainBlockParams - }; -} -function extractParamsFromWeigthMap5(weightMap, numMainBlocks) { - const paramMappings = []; - const {extractConvParams, extractSeparableConvParams, extractReductionBlockParams, extractMainBlockParams} = loadParamsFactory3(weightMap, paramMappings); - const entry_flow_conv_in = extractConvParams("entry_flow/conv_in"); - const entry_flow_reduction_block_0 = extractReductionBlockParams("entry_flow/reduction_block_0"); - const entry_flow_reduction_block_1 = extractReductionBlockParams("entry_flow/reduction_block_1"); - const entry_flow = { - conv_in: entry_flow_conv_in, - reduction_block_0: entry_flow_reduction_block_0, - reduction_block_1: entry_flow_reduction_block_1 - }; - const middle_flow = {}; - range(numMainBlocks, 0, 1).forEach((idx) => { - middle_flow[`main_block_${idx}`] = extractMainBlockParams(`middle_flow/main_block_${idx}`); - }); - const exit_flow_reduction_block = extractReductionBlockParams("exit_flow/reduction_block"); - const exit_flow_separable_conv = extractSeparableConvParams("exit_flow/separable_conv"); - const exit_flow = { - reduction_block: exit_flow_reduction_block, - separable_conv: exit_flow_separable_conv - }; - disposeUnusedWeightTensors(weightMap, paramMappings); - return {params: {entry_flow, middle_flow, exit_flow}, paramMappings}; -} - -// build/src/xception/TinyXception.js -import { - add as add5, - conv2d as conv2d3, - maxPool, - relu as relu3, - scalar as scalar2, - tidy as tidy13 -} from "@tensorflow/tfjs"; -function conv(x, params, stride) { - return add5(conv2d3(x, params.filters, stride, "same"), params.bias); -} -function reductionBlock(x, params, isActivateInput = true) { - let out = isActivateInput ? relu3(x) : x; - out = depthwiseSeparableConv(out, params.separable_conv0, [1, 1]); - out = depthwiseSeparableConv(relu3(out), params.separable_conv1, [1, 1]); - out = maxPool(out, [3, 3], [2, 2], "same"); - out = add5(out, conv(x, params.expansion_conv, [2, 2])); - return out; -} -function mainBlock(x, params) { - let out = depthwiseSeparableConv(relu3(x), params.separable_conv0, [1, 1]); - out = depthwiseSeparableConv(relu3(out), params.separable_conv1, [1, 1]); - out = depthwiseSeparableConv(relu3(out), params.separable_conv2, [1, 1]); - out = add5(out, x); - return out; -} -class TinyXception extends NeuralNetwork { - constructor(numMainBlocks) { - super("TinyXception"); - this._numMainBlocks = numMainBlocks; - } - forwardInput(input) { - const {params} = this; - if (!params) { - throw new Error("TinyXception - load model before inference"); - } - return tidy13(() => { - const batchTensor = input.toBatchTensor(112, true); - const meanRgb = [122.782, 117.001, 104.298]; - const normalized = normalize(batchTensor, meanRgb).div(scalar2(256)); - let out = relu3(conv(normalized, params.entry_flow.conv_in, [2, 2])); - out = reductionBlock(out, params.entry_flow.reduction_block_0, false); - out = reductionBlock(out, params.entry_flow.reduction_block_1); - range(this._numMainBlocks, 0, 1).forEach((idx) => { - out = mainBlock(out, params.middle_flow[`main_block_${idx}`]); - }); - out = reductionBlock(out, params.exit_flow.reduction_block); - out = relu3(depthwiseSeparableConv(out, params.exit_flow.separable_conv, [1, 1])); - return out; - }); - } - async forward(input) { - return this.forwardInput(await toNetInput(input)); - } - getDefaultModelName() { - return "tiny_xception_model"; - } - extractParamsFromWeigthMap(weightMap) { - return extractParamsFromWeigthMap5(weightMap, this._numMainBlocks); - } - extractParams(weights) { - return extractParams5(weights, this._numMainBlocks); - } -} - -// build/src/ageGenderNet/extractParams.js -function extractParams7(weights) { - const paramMappings = []; - const {extractWeights, getRemainingWeights} = extractWeightsFactory(weights); - const extractFCParams = extractFCParamsFactory(extractWeights, paramMappings); - const age = extractFCParams(512, 1, "fc/age"); - const gender = extractFCParams(512, 2, "fc/gender"); - if (getRemainingWeights().length !== 0) { - throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`); - } - return { - paramMappings, - params: {fc: {age, gender}} - }; -} - -// build/src/ageGenderNet/extractParamsFromWeigthMap.js -function extractParamsFromWeigthMap7(weightMap) { - const paramMappings = []; - const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings); - function extractFcParams(prefix) { - const weights = extractWeightEntry(`${prefix}/weights`, 2); - const bias = extractWeightEntry(`${prefix}/bias`, 1); - return {weights, bias}; - } - const params = { - fc: { - age: extractFcParams("fc/age"), - gender: extractFcParams("fc/gender") - } - }; - disposeUnusedWeightTensors(weightMap, paramMappings); - return {params, paramMappings}; -} - -// build/src/ageGenderNet/types.js -var Gender; -(function(Gender2) { - Gender2["FEMALE"] = "female"; - Gender2["MALE"] = "male"; -})(Gender || (Gender = {})); - -// build/src/ageGenderNet/AgeGenderNet.js -import { - avgPool as avgPool2, - softmax as softmax2, - tidy as tidy14, - unstack as unstack2 -} from "@tensorflow/tfjs"; -class AgeGenderNet extends NeuralNetwork { - constructor(faceFeatureExtractor = new TinyXception(2)) { - super("AgeGenderNet"); - this._faceFeatureExtractor = faceFeatureExtractor; - } - get faceFeatureExtractor() { - return this._faceFeatureExtractor; - } - runNet(input) { - const {params} = this; - if (!params) { - throw new Error(`${this._name} - load model before inference`); - } - return tidy14(() => { - const bottleneckFeatures = input instanceof NetInput ? this.faceFeatureExtractor.forwardInput(input) : input; - const pooled = avgPool2(bottleneckFeatures, [7, 7], [2, 2], "valid").as2D(bottleneckFeatures.shape[0], -1); - const age = fullyConnectedLayer(pooled, params.fc.age).as1D(); - const gender = fullyConnectedLayer(pooled, params.fc.gender); - return {age, gender}; - }); - } - forwardInput(input) { - return tidy14(() => { - const {age, gender} = this.runNet(input); - return {age, gender: softmax2(gender)}; - }); - } - async forward(input) { - return this.forwardInput(await toNetInput(input)); - } - async predictAgeAndGender(input) { - const netInput = await toNetInput(input); - const out = await this.forwardInput(netInput); - const ages = unstack2(out.age); - const genders = unstack2(out.gender); - const ageAndGenderTensors = ages.map((ageTensor, i) => ({ - ageTensor, - genderTensor: genders[i] - })); - const predictionsByBatch = await Promise.all(ageAndGenderTensors.map(async ({ageTensor, genderTensor}) => { - const age = (await ageTensor.data())[0]; - const probMale = (await genderTensor.data())[0]; - const isMale = probMale > 0.5; - const gender = isMale ? Gender.MALE : Gender.FEMALE; - const genderProbability = isMale ? probMale : 1 - probMale; - ageTensor.dispose(); - genderTensor.dispose(); - return {age, gender, genderProbability}; - })); - out.age.dispose(); - out.gender.dispose(); - return netInput.isBatchInput ? predictionsByBatch : predictionsByBatch[0]; - } - getDefaultModelName() { - return "age_gender_model"; - } - dispose(throwOnRedispose = true) { - this.faceFeatureExtractor.dispose(throwOnRedispose); - super.dispose(throwOnRedispose); - } - loadClassifierParams(weights) { - const {params, paramMappings} = this.extractClassifierParams(weights); - this._params = params; - this._paramMappings = paramMappings; - } - extractClassifierParams(weights) { - return extractParams7(weights); - } - extractParamsFromWeigthMap(weightMap) { - const {featureExtractorMap, classifierMap} = seperateWeightMaps(weightMap); - this.faceFeatureExtractor.loadFromWeightMap(featureExtractorMap); - return extractParamsFromWeigthMap7(classifierMap); - } - extractParams(weights) { - const classifierWeightSize = 512 * 1 + 1 + (512 * 2 + 2); - const featureExtractorWeights = weights.slice(0, weights.length - classifierWeightSize); - const classifierWeights = weights.slice(weights.length - classifierWeightSize); - this.faceFeatureExtractor.extractWeights(featureExtractorWeights); - return this.extractClassifierParams(classifierWeights); - } -} - -// build/src/ageGenderNet/index.js - -// build/src/faceLandmarkNet/FaceLandmark68NetBase.js -import { - fill as fill3, - stack as stack2, - tidy as tidy15, - unstack as unstack3 -} from "@tensorflow/tfjs"; -class FaceLandmark68NetBase extends FaceProcessor { - postProcess(output, inputSize, originalDimensions) { - const inputDimensions = originalDimensions.map(({width, height}) => { - const scale2 = inputSize / Math.max(height, width); - return { - width: width * scale2, - height: height * scale2 - }; - }); - const batchSize = inputDimensions.length; - return tidy15(() => { - const createInterleavedTensor = (fillX, fillY) => stack2([ - fill3([68], fillX), - fill3([68], fillY) - ], 1).as2D(1, 136).as1D(); - const getPadding = (batchIdx, cond) => { - const {width, height} = inputDimensions[batchIdx]; - return cond(width, height) ? Math.abs(width - height) / 2 : 0; - }; - const getPaddingX = (batchIdx) => getPadding(batchIdx, (w, h) => w < h); - const getPaddingY = (batchIdx) => getPadding(batchIdx, (w, h) => h < w); - const landmarkTensors = output.mul(fill3([batchSize, 136], inputSize)).sub(stack2(Array.from(Array(batchSize), (_, batchIdx) => createInterleavedTensor(getPaddingX(batchIdx), getPaddingY(batchIdx))))).div(stack2(Array.from(Array(batchSize), (_, batchIdx) => createInterleavedTensor(inputDimensions[batchIdx].width, inputDimensions[batchIdx].height)))); - return landmarkTensors; - }); - } - forwardInput(input) { - return tidy15(() => { - const out = this.runNet(input); - return this.postProcess(out, input.inputSize, input.inputDimensions.map(([height, width]) => ({height, width}))); - }); - } - async forward(input) { - return this.forwardInput(await toNetInput(input)); - } - async detectLandmarks(input) { - const netInput = await toNetInput(input); - const landmarkTensors = tidy15(() => unstack3(this.forwardInput(netInput))); - const landmarksForBatch = await Promise.all(landmarkTensors.map(async (landmarkTensor, batchIdx) => { - const landmarksArray = Array.from(await landmarkTensor.data()); - const xCoords = landmarksArray.filter((_, i) => isEven(i)); - const yCoords = landmarksArray.filter((_, i) => !isEven(i)); - return new FaceLandmarks68(Array(68).fill(0).map((_, i) => new Point(xCoords[i], yCoords[i])), { - height: netInput.getInputHeight(batchIdx), - width: netInput.getInputWidth(batchIdx) - }); - })); - landmarkTensors.forEach((t) => t.dispose()); - return netInput.isBatchInput ? landmarksForBatch : landmarksForBatch[0]; - } - getClassifierChannelsOut() { - return 136; - } -} - -// build/src/faceLandmarkNet/FaceLandmark68Net.js -class FaceLandmark68Net extends FaceLandmark68NetBase { - constructor(faceFeatureExtractor = new FaceFeatureExtractor()) { - super("FaceLandmark68Net", faceFeatureExtractor); - } - getDefaultModelName() { - return "face_landmark_68_model"; - } - getClassifierChannelsIn() { - return 256; - } -} - -// build/src/faceFeatureExtractor/extractParamsFromWeigthMapTiny.js -function extractParamsFromWeigthMapTiny(weightMap) { - const paramMappings = []; - const {extractDenseBlock3Params} = loadParamsFactory(weightMap, paramMappings); - const params = { - dense0: extractDenseBlock3Params("dense0", true), - dense1: extractDenseBlock3Params("dense1"), - dense2: extractDenseBlock3Params("dense2") - }; - disposeUnusedWeightTensors(weightMap, paramMappings); - return {params, paramMappings}; -} - -// build/src/faceFeatureExtractor/extractParamsTiny.js -function extractParamsTiny(weights) { - const paramMappings = []; - const {extractWeights, getRemainingWeights} = extractWeightsFactory(weights); - const {extractDenseBlock3Params} = extractorsFactory(extractWeights, paramMappings); - const dense0 = extractDenseBlock3Params(3, 32, "dense0", true); - const dense1 = extractDenseBlock3Params(32, 64, "dense1"); - const dense2 = extractDenseBlock3Params(64, 128, "dense2"); - if (getRemainingWeights().length !== 0) { - throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`); - } - return { - paramMappings, - params: {dense0, dense1, dense2} - }; -} - -// build/src/faceFeatureExtractor/TinyFaceFeatureExtractor.js -import { - avgPool as avgPool3, - scalar as scalar3, - tidy as tidy16 -} from "@tensorflow/tfjs"; -class TinyFaceFeatureExtractor extends NeuralNetwork { - constructor() { - super("TinyFaceFeatureExtractor"); - } - forwardInput(input) { - const {params} = this; - if (!params) { - throw new Error("TinyFaceFeatureExtractor - load model before inference"); - } - return tidy16(() => { - const batchTensor = input.toBatchTensor(112, true); - const meanRgb = [122.782, 117.001, 104.298]; - const normalized = normalize(batchTensor, meanRgb).div(scalar3(255)); - let out = denseBlock3(normalized, params.dense0, true); - out = denseBlock3(out, params.dense1); - out = denseBlock3(out, params.dense2); - out = avgPool3(out, [14, 14], [2, 2], "valid"); - return out; - }); - } - async forward(input) { - return this.forwardInput(await toNetInput(input)); - } - getDefaultModelName() { - return "face_feature_extractor_tiny_model"; - } - extractParamsFromWeigthMap(weightMap) { - return extractParamsFromWeigthMapTiny(weightMap); - } - extractParams(weights) { - return extractParamsTiny(weights); - } -} - -// build/src/faceLandmarkNet/FaceLandmark68TinyNet.js -class FaceLandmark68TinyNet extends FaceLandmark68NetBase { - constructor(faceFeatureExtractor = new TinyFaceFeatureExtractor()) { - super("FaceLandmark68TinyNet", faceFeatureExtractor); - } - getDefaultModelName() { - return "face_landmark_68_tiny_model"; - } - getClassifierChannelsIn() { - return 128; - } -} - -// build/src/faceLandmarkNet/index.js -class FaceLandmarkNet extends FaceLandmark68Net { -} - -// build/src/faceRecognitionNet/scaleLayer.js -import { - add as add6, - mul -} from "@tensorflow/tfjs"; -function scale(x, params) { - return add6(mul(x, params.weights), params.biases); -} - -// build/src/faceRecognitionNet/convLayer.js -import { - add as add7, - conv2d as conv2d4, - relu as relu4 -} from "@tensorflow/tfjs"; -function convLayer2(x, params, strides, withRelu, padding = "same") { - const {filters, bias} = params.conv; - let out = conv2d4(x, filters, strides, padding); - out = add7(out, bias); - out = scale(out, params.scale); - return withRelu ? relu4(out) : out; -} -function conv2(x, params) { - return convLayer2(x, params, [1, 1], true); -} -function convNoRelu(x, params) { - return convLayer2(x, params, [1, 1], false); -} -function convDown(x, params) { - return convLayer2(x, params, [2, 2], true, "valid"); -} - -// build/src/faceRecognitionNet/extractParams.js -import { - tensor1d as tensor1d4, - tensor2d as tensor2d2, - tensor4d as tensor4d3, - tidy as tidy17, - transpose -} from "@tensorflow/tfjs"; -function extractorsFactory5(extractWeights, paramMappings) { - function extractFilterValues(numFilterValues, numFilters, filterSize) { - const weights = extractWeights(numFilterValues); - const depth = weights.length / (numFilters * filterSize * filterSize); - if (isFloat(depth)) { - throw new Error(`depth has to be an integer: ${depth}, weights.length: ${weights.length}, numFilters: ${numFilters}, filterSize: ${filterSize}`); - } - return tidy17(() => transpose(tensor4d3(weights, [numFilters, depth, filterSize, filterSize]), [2, 3, 1, 0])); - } - function extractConvParams(numFilterValues, numFilters, filterSize, mappedPrefix) { - const filters = extractFilterValues(numFilterValues, numFilters, filterSize); - const bias = tensor1d4(extractWeights(numFilters)); - paramMappings.push({paramPath: `${mappedPrefix}/filters`}, {paramPath: `${mappedPrefix}/bias`}); - return {filters, bias}; - } - function extractScaleLayerParams(numWeights, mappedPrefix) { - const weights = tensor1d4(extractWeights(numWeights)); - const biases = tensor1d4(extractWeights(numWeights)); - paramMappings.push({paramPath: `${mappedPrefix}/weights`}, {paramPath: `${mappedPrefix}/biases`}); - return { - weights, - biases - }; - } - function extractConvLayerParams(numFilterValues, numFilters, filterSize, mappedPrefix) { - const conv3 = extractConvParams(numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv`); - const scale2 = extractScaleLayerParams(numFilters, `${mappedPrefix}/scale`); - return {conv: conv3, scale: scale2}; - } - function extractResidualLayerParams(numFilterValues, numFilters, filterSize, mappedPrefix, isDown = false) { - const conv1 = extractConvLayerParams((isDown ? 0.5 : 1) * numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv1`); - const conv22 = extractConvLayerParams(numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv2`); - return {conv1, conv2: conv22}; - } - return { - extractConvLayerParams, - extractResidualLayerParams - }; -} -function extractParams9(weights) { - const {extractWeights, getRemainingWeights} = extractWeightsFactory(weights); - const paramMappings = []; - const {extractConvLayerParams, extractResidualLayerParams} = extractorsFactory5(extractWeights, paramMappings); - const conv32_down = extractConvLayerParams(4704, 32, 7, "conv32_down"); - const conv32_1 = extractResidualLayerParams(9216, 32, 3, "conv32_1"); - const conv32_2 = extractResidualLayerParams(9216, 32, 3, "conv32_2"); - const conv32_3 = extractResidualLayerParams(9216, 32, 3, "conv32_3"); - const conv64_down = extractResidualLayerParams(36864, 64, 3, "conv64_down", true); - const conv64_1 = extractResidualLayerParams(36864, 64, 3, "conv64_1"); - const conv64_2 = extractResidualLayerParams(36864, 64, 3, "conv64_2"); - const conv64_3 = extractResidualLayerParams(36864, 64, 3, "conv64_3"); - const conv128_down = extractResidualLayerParams(147456, 128, 3, "conv128_down", true); - const conv128_1 = extractResidualLayerParams(147456, 128, 3, "conv128_1"); - const conv128_2 = extractResidualLayerParams(147456, 128, 3, "conv128_2"); - const conv256_down = extractResidualLayerParams(589824, 256, 3, "conv256_down", true); - const conv256_1 = extractResidualLayerParams(589824, 256, 3, "conv256_1"); - const conv256_2 = extractResidualLayerParams(589824, 256, 3, "conv256_2"); - const conv256_down_out = extractResidualLayerParams(589824, 256, 3, "conv256_down_out"); - const fc = tidy17(() => transpose(tensor2d2(extractWeights(256 * 128), [128, 256]), [1, 0])); - paramMappings.push({paramPath: `fc`}); - if (getRemainingWeights().length !== 0) { - throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`); - } - const params = { - conv32_down, - conv32_1, - conv32_2, - conv32_3, - conv64_down, - conv64_1, - conv64_2, - conv64_3, - conv128_down, - conv128_1, - conv128_2, - conv256_down, - conv256_1, - conv256_2, - conv256_down_out, - fc - }; - return {params, paramMappings}; -} - -// build/src/faceRecognitionNet/extractParamsFromWeigthMap.js -function extractorsFactory6(weightMap, paramMappings) { - const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings); - function extractScaleLayerParams(prefix) { - const weights = extractWeightEntry(`${prefix}/scale/weights`, 1); - const biases = extractWeightEntry(`${prefix}/scale/biases`, 1); - return {weights, biases}; - } - function extractConvLayerParams(prefix) { - const filters = extractWeightEntry(`${prefix}/conv/filters`, 4); - const bias = extractWeightEntry(`${prefix}/conv/bias`, 1); - const scale2 = extractScaleLayerParams(prefix); - return {conv: {filters, bias}, scale: scale2}; - } - function extractResidualLayerParams(prefix) { - return { - conv1: extractConvLayerParams(`${prefix}/conv1`), - conv2: extractConvLayerParams(`${prefix}/conv2`) - }; - } - return { - extractConvLayerParams, - extractResidualLayerParams - }; -} -function extractParamsFromWeigthMap9(weightMap) { - const paramMappings = []; - const {extractConvLayerParams, extractResidualLayerParams} = extractorsFactory6(weightMap, paramMappings); - const conv32_down = extractConvLayerParams("conv32_down"); - const conv32_1 = extractResidualLayerParams("conv32_1"); - const conv32_2 = extractResidualLayerParams("conv32_2"); - const conv32_3 = extractResidualLayerParams("conv32_3"); - const conv64_down = extractResidualLayerParams("conv64_down"); - const conv64_1 = extractResidualLayerParams("conv64_1"); - const conv64_2 = extractResidualLayerParams("conv64_2"); - const conv64_3 = extractResidualLayerParams("conv64_3"); - const conv128_down = extractResidualLayerParams("conv128_down"); - const conv128_1 = extractResidualLayerParams("conv128_1"); - const conv128_2 = extractResidualLayerParams("conv128_2"); - const conv256_down = extractResidualLayerParams("conv256_down"); - const conv256_1 = extractResidualLayerParams("conv256_1"); - const conv256_2 = extractResidualLayerParams("conv256_2"); - const conv256_down_out = extractResidualLayerParams("conv256_down_out"); - const fc = weightMap["fc"]; - paramMappings.push({originalPath: "fc", paramPath: "fc"}); - if (!isTensor2D(fc)) { - throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${fc}`); - } - const params = { - conv32_down, - conv32_1, - conv32_2, - conv32_3, - conv64_down, - conv64_1, - conv64_2, - conv64_3, - conv128_down, - conv128_1, - conv128_2, - conv256_down, - conv256_1, - conv256_2, - conv256_down_out, - fc - }; - disposeUnusedWeightTensors(weightMap, paramMappings); - return {params, paramMappings}; -} - -// build/src/faceRecognitionNet/residualLayer.js -import { - add as add8, - avgPool as avgPool4, - concat as concat3, - relu as relu5, - zeros -} from "@tensorflow/tfjs"; -function residual(x, params) { - let out = conv2(x, params.conv1); - out = convNoRelu(out, params.conv2); - out = add8(out, x); - out = relu5(out); - return out; -} -function residualDown(x, params) { - let out = convDown(x, params.conv1); - out = convNoRelu(out, params.conv2); - let pooled = avgPool4(x, 2, 2, "valid"); - const zeros2 = zeros(pooled.shape); - const isPad = pooled.shape[3] !== out.shape[3]; - const isAdjustShape = pooled.shape[1] !== out.shape[1] || pooled.shape[2] !== out.shape[2]; - if (isAdjustShape) { - const padShapeX = [...out.shape]; - padShapeX[1] = 1; - const zerosW = zeros(padShapeX); - out = concat3([out, zerosW], 1); - const padShapeY = [...out.shape]; - padShapeY[2] = 1; - const zerosH = zeros(padShapeY); - out = concat3([out, zerosH], 2); - } - pooled = isPad ? concat3([pooled, zeros2], 3) : pooled; - out = add8(pooled, out); - out = relu5(out); - return out; -} - -// build/src/faceRecognitionNet/FaceRecognitionNet.js -import { - cast as cast3, - matMul as matMul2, - maxPool as maxPool2, - scalar as scalar4, - tidy as tidy18, - unstack as unstack4 -} from "@tensorflow/tfjs"; -class FaceRecognitionNet extends NeuralNetwork { - constructor() { - super("FaceRecognitionNet"); - } - forwardInput(input) { - const {params} = this; - if (!params) { - throw new Error("FaceRecognitionNet - load model before inference"); - } - return tidy18(() => { - const batchTensor = cast3(input.toBatchTensor(150, true), "float32"); - const meanRgb = [122.782, 117.001, 104.298]; - const normalized = normalize(batchTensor, meanRgb).div(scalar4(256)); - let out = convDown(normalized, params.conv32_down); - out = maxPool2(out, 3, 2, "valid"); - out = residual(out, params.conv32_1); - out = residual(out, params.conv32_2); - out = residual(out, params.conv32_3); - out = residualDown(out, params.conv64_down); - out = residual(out, params.conv64_1); - out = residual(out, params.conv64_2); - out = residual(out, params.conv64_3); - out = residualDown(out, params.conv128_down); - out = residual(out, params.conv128_1); - out = residual(out, params.conv128_2); - out = residualDown(out, params.conv256_down); - out = residual(out, params.conv256_1); - out = residual(out, params.conv256_2); - out = residualDown(out, params.conv256_down_out); - const globalAvg = out.mean([1, 2]); - const fullyConnected = matMul2(globalAvg, params.fc); - return fullyConnected; - }); - } - async forward(input) { - return this.forwardInput(await toNetInput(input)); - } - async computeFaceDescriptor(input) { - const netInput = await toNetInput(input); - const faceDescriptorTensors = tidy18(() => unstack4(this.forwardInput(netInput))); - const faceDescriptorsForBatch = await Promise.all(faceDescriptorTensors.map((t) => t.data())); - faceDescriptorTensors.forEach((t) => t.dispose()); - return netInput.isBatchInput ? faceDescriptorsForBatch : faceDescriptorsForBatch[0]; - } - getDefaultModelName() { - return "face_recognition_model"; - } - extractParamsFromWeigthMap(weightMap) { - return extractParamsFromWeigthMap9(weightMap); - } - extractParams(weights) { - return extractParams9(weights); - } -} - -// build/src/faceRecognitionNet/index.js -function createFaceRecognitionNet(weights) { - const net = new FaceRecognitionNet(); - net.extractWeights(weights); - return net; -} - -// build/src/factories/WithFaceDescriptor.js -function extendWithFaceDescriptor(sourceObj, descriptor) { - const extension = {descriptor}; - return Object.assign({}, sourceObj, extension); -} - -// build/src/factories/WithAge.js -function isWithAge(obj) { - return typeof obj["age"] === "number"; -} -function extendWithAge(sourceObj, age) { - const extension = {age}; - return Object.assign({}, sourceObj, extension); -} - -// build/src/factories/WithGender.js -function isWithGender(obj) { - return (obj["gender"] === Gender.MALE || obj["gender"] === Gender.FEMALE) && isValidProbablitiy(obj["genderProbability"]); -} -function extendWithGender(sourceObj, gender, genderProbability) { - const extension = {gender, genderProbability}; - return Object.assign({}, sourceObj, extension); -} - -// build/src/factories/index.js - -// build/src/ssdMobilenetv1/extractParams.js -import { - tensor1d as tensor1d5, - tensor3d, - tensor4d as tensor4d4 -} from "@tensorflow/tfjs"; -function extractorsFactory7(extractWeights, paramMappings) { - function extractDepthwiseConvParams(numChannels, mappedPrefix) { - const filters = tensor4d4(extractWeights(3 * 3 * numChannels), [3, 3, numChannels, 1]); - const batch_norm_scale = tensor1d5(extractWeights(numChannels)); - const batch_norm_offset = tensor1d5(extractWeights(numChannels)); - const batch_norm_mean = tensor1d5(extractWeights(numChannels)); - const batch_norm_variance = tensor1d5(extractWeights(numChannels)); - paramMappings.push({paramPath: `${mappedPrefix}/filters`}, {paramPath: `${mappedPrefix}/batch_norm_scale`}, {paramPath: `${mappedPrefix}/batch_norm_offset`}, {paramPath: `${mappedPrefix}/batch_norm_mean`}, {paramPath: `${mappedPrefix}/batch_norm_variance`}); - return { - filters, - batch_norm_scale, - batch_norm_offset, - batch_norm_mean, - batch_norm_variance - }; - } - function extractConvParams(channelsIn, channelsOut, filterSize, mappedPrefix, isPointwiseConv) { - const filters = tensor4d4(extractWeights(channelsIn * channelsOut * filterSize * filterSize), [filterSize, filterSize, channelsIn, channelsOut]); - const bias = tensor1d5(extractWeights(channelsOut)); - paramMappings.push({paramPath: `${mappedPrefix}/filters`}, {paramPath: `${mappedPrefix}/${isPointwiseConv ? "batch_norm_offset" : "bias"}`}); - return {filters, bias}; - } - function extractPointwiseConvParams(channelsIn, channelsOut, filterSize, mappedPrefix) { - const {filters, bias} = extractConvParams(channelsIn, channelsOut, filterSize, mappedPrefix, true); - return { - filters, - batch_norm_offset: bias - }; - } - function extractConvPairParams(channelsIn, channelsOut, mappedPrefix) { - const depthwise_conv = extractDepthwiseConvParams(channelsIn, `${mappedPrefix}/depthwise_conv`); - const pointwise_conv = extractPointwiseConvParams(channelsIn, channelsOut, 1, `${mappedPrefix}/pointwise_conv`); - return {depthwise_conv, pointwise_conv}; - } - function extractMobilenetV1Params() { - const conv_0 = extractPointwiseConvParams(3, 32, 3, "mobilenetv1/conv_0"); - const conv_1 = extractConvPairParams(32, 64, "mobilenetv1/conv_1"); - const conv_2 = extractConvPairParams(64, 128, "mobilenetv1/conv_2"); - const conv_3 = extractConvPairParams(128, 128, "mobilenetv1/conv_3"); - const conv_4 = extractConvPairParams(128, 256, "mobilenetv1/conv_4"); - const conv_5 = extractConvPairParams(256, 256, "mobilenetv1/conv_5"); - const conv_6 = extractConvPairParams(256, 512, "mobilenetv1/conv_6"); - const conv_7 = extractConvPairParams(512, 512, "mobilenetv1/conv_7"); - const conv_8 = extractConvPairParams(512, 512, "mobilenetv1/conv_8"); - const conv_9 = extractConvPairParams(512, 512, "mobilenetv1/conv_9"); - const conv_10 = extractConvPairParams(512, 512, "mobilenetv1/conv_10"); - const conv_11 = extractConvPairParams(512, 512, "mobilenetv1/conv_11"); - const conv_12 = extractConvPairParams(512, 1024, "mobilenetv1/conv_12"); - const conv_13 = extractConvPairParams(1024, 1024, "mobilenetv1/conv_13"); - return { - conv_0, - conv_1, - conv_2, - conv_3, - conv_4, - conv_5, - conv_6, - conv_7, - conv_8, - conv_9, - conv_10, - conv_11, - conv_12, - conv_13 - }; - } - function extractPredictionLayerParams() { - const conv_0 = extractPointwiseConvParams(1024, 256, 1, "prediction_layer/conv_0"); - const conv_1 = extractPointwiseConvParams(256, 512, 3, "prediction_layer/conv_1"); - const conv_2 = extractPointwiseConvParams(512, 128, 1, "prediction_layer/conv_2"); - const conv_3 = extractPointwiseConvParams(128, 256, 3, "prediction_layer/conv_3"); - const conv_4 = extractPointwiseConvParams(256, 128, 1, "prediction_layer/conv_4"); - const conv_5 = extractPointwiseConvParams(128, 256, 3, "prediction_layer/conv_5"); - const conv_6 = extractPointwiseConvParams(256, 64, 1, "prediction_layer/conv_6"); - const conv_7 = extractPointwiseConvParams(64, 128, 3, "prediction_layer/conv_7"); - const box_encoding_0_predictor = extractConvParams(512, 12, 1, "prediction_layer/box_predictor_0/box_encoding_predictor"); - const class_predictor_0 = extractConvParams(512, 9, 1, "prediction_layer/box_predictor_0/class_predictor"); - const box_encoding_1_predictor = extractConvParams(1024, 24, 1, "prediction_layer/box_predictor_1/box_encoding_predictor"); - const class_predictor_1 = extractConvParams(1024, 18, 1, "prediction_layer/box_predictor_1/class_predictor"); - const box_encoding_2_predictor = extractConvParams(512, 24, 1, "prediction_layer/box_predictor_2/box_encoding_predictor"); - const class_predictor_2 = extractConvParams(512, 18, 1, "prediction_layer/box_predictor_2/class_predictor"); - const box_encoding_3_predictor = extractConvParams(256, 24, 1, "prediction_layer/box_predictor_3/box_encoding_predictor"); - const class_predictor_3 = extractConvParams(256, 18, 1, "prediction_layer/box_predictor_3/class_predictor"); - const box_encoding_4_predictor = extractConvParams(256, 24, 1, "prediction_layer/box_predictor_4/box_encoding_predictor"); - const class_predictor_4 = extractConvParams(256, 18, 1, "prediction_layer/box_predictor_4/class_predictor"); - const box_encoding_5_predictor = extractConvParams(128, 24, 1, "prediction_layer/box_predictor_5/box_encoding_predictor"); - const class_predictor_5 = extractConvParams(128, 18, 1, "prediction_layer/box_predictor_5/class_predictor"); - const box_predictor_0 = { - box_encoding_predictor: box_encoding_0_predictor, - class_predictor: class_predictor_0 - }; - const box_predictor_1 = { - box_encoding_predictor: box_encoding_1_predictor, - class_predictor: class_predictor_1 - }; - const box_predictor_2 = { - box_encoding_predictor: box_encoding_2_predictor, - class_predictor: class_predictor_2 - }; - const box_predictor_3 = { - box_encoding_predictor: box_encoding_3_predictor, - class_predictor: class_predictor_3 - }; - const box_predictor_4 = { - box_encoding_predictor: box_encoding_4_predictor, - class_predictor: class_predictor_4 - }; - const box_predictor_5 = { - box_encoding_predictor: box_encoding_5_predictor, - class_predictor: class_predictor_5 - }; - return { - conv_0, - conv_1, - conv_2, - conv_3, - conv_4, - conv_5, - conv_6, - conv_7, - box_predictor_0, - box_predictor_1, - box_predictor_2, - box_predictor_3, - box_predictor_4, - box_predictor_5 - }; - } - return { - extractMobilenetV1Params, - extractPredictionLayerParams - }; -} -function extractParams11(weights) { - const paramMappings = []; - const {extractWeights, getRemainingWeights} = extractWeightsFactory(weights); - const {extractMobilenetV1Params, extractPredictionLayerParams} = extractorsFactory7(extractWeights, paramMappings); - const mobilenetv1 = extractMobilenetV1Params(); - const prediction_layer = extractPredictionLayerParams(); - const extra_dim = tensor3d(extractWeights(5118 * 4), [1, 5118, 4]); - const output_layer = { - extra_dim - }; - paramMappings.push({paramPath: "output_layer/extra_dim"}); - if (getRemainingWeights().length !== 0) { - throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`); - } - return { - params: { - mobilenetv1, - prediction_layer, - output_layer - }, - paramMappings - }; -} - -// build/src/ssdMobilenetv1/extractParamsFromWeigthMap.js -function extractorsFactory8(weightMap, paramMappings) { - const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings); - function extractPointwiseConvParams(prefix, idx, mappedPrefix) { - const filters = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/weights`, 4, `${mappedPrefix}/filters`); - const batch_norm_offset = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/convolution_bn_offset`, 1, `${mappedPrefix}/batch_norm_offset`); - return {filters, batch_norm_offset}; - } - function extractConvPairParams(idx) { - const mappedPrefix = `mobilenetv1/conv_${idx}`; - const prefixDepthwiseConv = `MobilenetV1/Conv2d_${idx}_depthwise`; - const mappedPrefixDepthwiseConv = `${mappedPrefix}/depthwise_conv`; - const mappedPrefixPointwiseConv = `${mappedPrefix}/pointwise_conv`; - const filters = extractWeightEntry(`${prefixDepthwiseConv}/depthwise_weights`, 4, `${mappedPrefixDepthwiseConv}/filters`); - const batch_norm_scale = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/gamma`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_scale`); - const batch_norm_offset = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/beta`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_offset`); - const batch_norm_mean = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_mean`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_mean`); - const batch_norm_variance = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_variance`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_variance`); - return { - depthwise_conv: { - filters, - batch_norm_scale, - batch_norm_offset, - batch_norm_mean, - batch_norm_variance - }, - pointwise_conv: extractPointwiseConvParams("MobilenetV1", idx, mappedPrefixPointwiseConv) - }; - } - function extractMobilenetV1Params() { - return { - conv_0: extractPointwiseConvParams("MobilenetV1", 0, "mobilenetv1/conv_0"), - conv_1: extractConvPairParams(1), - conv_2: extractConvPairParams(2), - conv_3: extractConvPairParams(3), - conv_4: extractConvPairParams(4), - conv_5: extractConvPairParams(5), - conv_6: extractConvPairParams(6), - conv_7: extractConvPairParams(7), - conv_8: extractConvPairParams(8), - conv_9: extractConvPairParams(9), - conv_10: extractConvPairParams(10), - conv_11: extractConvPairParams(11), - conv_12: extractConvPairParams(12), - conv_13: extractConvPairParams(13) - }; - } - function extractConvParams(prefix, mappedPrefix) { - const filters = extractWeightEntry(`${prefix}/weights`, 4, `${mappedPrefix}/filters`); - const bias = extractWeightEntry(`${prefix}/biases`, 1, `${mappedPrefix}/bias`); - return {filters, bias}; - } - function extractBoxPredictorParams(idx) { - const box_encoding_predictor = extractConvParams(`Prediction/BoxPredictor_${idx}/BoxEncodingPredictor`, `prediction_layer/box_predictor_${idx}/box_encoding_predictor`); - const class_predictor = extractConvParams(`Prediction/BoxPredictor_${idx}/ClassPredictor`, `prediction_layer/box_predictor_${idx}/class_predictor`); - return {box_encoding_predictor, class_predictor}; - } - function extractPredictionLayerParams() { - return { - conv_0: extractPointwiseConvParams("Prediction", 0, "prediction_layer/conv_0"), - conv_1: extractPointwiseConvParams("Prediction", 1, "prediction_layer/conv_1"), - conv_2: extractPointwiseConvParams("Prediction", 2, "prediction_layer/conv_2"), - conv_3: extractPointwiseConvParams("Prediction", 3, "prediction_layer/conv_3"), - conv_4: extractPointwiseConvParams("Prediction", 4, "prediction_layer/conv_4"), - conv_5: extractPointwiseConvParams("Prediction", 5, "prediction_layer/conv_5"), - conv_6: extractPointwiseConvParams("Prediction", 6, "prediction_layer/conv_6"), - conv_7: extractPointwiseConvParams("Prediction", 7, "prediction_layer/conv_7"), - box_predictor_0: extractBoxPredictorParams(0), - box_predictor_1: extractBoxPredictorParams(1), - box_predictor_2: extractBoxPredictorParams(2), - box_predictor_3: extractBoxPredictorParams(3), - box_predictor_4: extractBoxPredictorParams(4), - box_predictor_5: extractBoxPredictorParams(5) - }; - } - return { - extractMobilenetV1Params, - extractPredictionLayerParams - }; -} -function extractParamsFromWeigthMap11(weightMap) { - const paramMappings = []; - const {extractMobilenetV1Params, extractPredictionLayerParams} = extractorsFactory8(weightMap, paramMappings); - const extra_dim = weightMap["Output/extra_dim"]; - paramMappings.push({originalPath: "Output/extra_dim", paramPath: "output_layer/extra_dim"}); - if (!isTensor3D(extra_dim)) { - throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${extra_dim}`); - } - const params = { - mobilenetv1: extractMobilenetV1Params(), - prediction_layer: extractPredictionLayerParams(), - output_layer: { - extra_dim - } - }; - disposeUnusedWeightTensors(weightMap, paramMappings); - return {params, paramMappings}; -} - -// build/src/ssdMobilenetv1/pointwiseConvLayer.js -import { - add as add9, - clipByValue, - conv2d as conv2d5, - tidy as tidy19 -} from "@tensorflow/tfjs"; -function pointwiseConvLayer(x, params, strides) { - return tidy19(() => { - let out = conv2d5(x, params.filters, strides, "same"); - out = add9(out, params.batch_norm_offset); - return clipByValue(out, 0, 6); - }); -} - -// build/src/ssdMobilenetv1/mobileNetV1.js -import { - batchNorm, - clipByValue as clipByValue2, - depthwiseConv2d, - tidy as tidy20 -} from "@tensorflow/tfjs"; -const epsilon = 0.0010000000474974513; -function depthwiseConvLayer(x, params, strides) { - return tidy20(() => { - let out = depthwiseConv2d(x, params.filters, strides, "same"); - out = batchNorm(out, params.batch_norm_mean, params.batch_norm_variance, params.batch_norm_offset, params.batch_norm_scale, epsilon); - return clipByValue2(out, 0, 6); - }); -} -function getStridesForLayerIdx(layerIdx) { - return [2, 4, 6, 12].some((idx) => idx === layerIdx) ? [2, 2] : [1, 1]; -} -function mobileNetV1(x, params) { - return tidy20(() => { - let conv11; - let out = pointwiseConvLayer(x, params.conv_0, [2, 2]); - const convPairParams = [ - params.conv_1, - params.conv_2, - params.conv_3, - params.conv_4, - params.conv_5, - params.conv_6, - params.conv_7, - params.conv_8, - params.conv_9, - params.conv_10, - params.conv_11, - params.conv_12, - params.conv_13 - ]; - convPairParams.forEach((param, i) => { - const layerIdx = i + 1; - const depthwiseConvStrides = getStridesForLayerIdx(layerIdx); - out = depthwiseConvLayer(out, param.depthwise_conv, depthwiseConvStrides); - out = pointwiseConvLayer(out, param.pointwise_conv, [1, 1]); - if (layerIdx === 11) { - conv11 = out; - } - }); - if (conv11 === null) { - throw new Error("mobileNetV1 - output of conv layer 11 is null"); - } - return { - out, - conv11 - }; - }); -} - -// build/src/ssdMobilenetv1/nonMaxSuppression.js -function nonMaxSuppression2(boxes, scores, maxOutputSize, iouThreshold, scoreThreshold) { - const numBoxes = boxes.shape[0]; - const outputSize = Math.min(maxOutputSize, numBoxes); - const candidates = scores.map((score, boxIndex) => ({score, boxIndex})).filter((c) => c.score > scoreThreshold).sort((c1, c2) => c2.score - c1.score); - const suppressFunc = (x) => x <= iouThreshold ? 1 : 0; - const selected = []; - candidates.forEach((c) => { - if (selected.length >= outputSize) { - return; - } - const originalScore = c.score; - for (let j = selected.length - 1; j >= 0; --j) { - const iou3 = IOU(boxes, c.boxIndex, selected[j]); - if (iou3 === 0) { - continue; - } - c.score *= suppressFunc(iou3); - if (c.score <= scoreThreshold) { - break; - } - } - if (originalScore === c.score) { - selected.push(c.boxIndex); - } - }); - return selected; -} -function IOU(boxes, i, j) { - const boxesData = boxes.arraySync(); - const yminI = Math.min(boxesData[i][0], boxesData[i][2]); - const xminI = Math.min(boxesData[i][1], boxesData[i][3]); - const ymaxI = Math.max(boxesData[i][0], boxesData[i][2]); - const xmaxI = Math.max(boxesData[i][1], boxesData[i][3]); - const yminJ = Math.min(boxesData[j][0], boxesData[j][2]); - const xminJ = Math.min(boxesData[j][1], boxesData[j][3]); - const ymaxJ = Math.max(boxesData[j][0], boxesData[j][2]); - const xmaxJ = Math.max(boxesData[j][1], boxesData[j][3]); - const areaI = (ymaxI - yminI) * (xmaxI - xminI); - const areaJ = (ymaxJ - yminJ) * (xmaxJ - xminJ); - if (areaI <= 0 || areaJ <= 0) { - return 0; - } - const intersectionYmin = Math.max(yminI, yminJ); - const intersectionXmin = Math.max(xminI, xminJ); - const intersectionYmax = Math.min(ymaxI, ymaxJ); - const intersectionXmax = Math.min(xmaxI, xmaxJ); - const intersectionArea = Math.max(intersectionYmax - intersectionYmin, 0) * Math.max(intersectionXmax - intersectionXmin, 0); - return intersectionArea / (areaI + areaJ - intersectionArea); -} - -// build/src/ssdMobilenetv1/outputLayer.js -import { - add as add10, - div, - exp, - mul as mul2, - reshape, - scalar as scalar5, - sigmoid as sigmoid2, - slice, - stack as stack3, - sub as sub2, - tidy as tidy21, - tile, - transpose as transpose2, - unstack as unstack5 -} from "@tensorflow/tfjs"; -function getCenterCoordinatesAndSizesLayer(x) { - const vec = unstack5(transpose2(x, [1, 0])); - const sizes = [ - sub2(vec[2], vec[0]), - sub2(vec[3], vec[1]) - ]; - const centers = [ - add10(vec[0], div(sizes[0], scalar5(2))), - add10(vec[1], div(sizes[1], scalar5(2))) - ]; - return { - sizes, - centers - }; -} -function decodeBoxesLayer(x0, x1) { - const {sizes, centers} = getCenterCoordinatesAndSizesLayer(x0); - const vec = unstack5(transpose2(x1, [1, 0])); - const div0_out = div(mul2(exp(div(vec[2], scalar5(5))), sizes[0]), scalar5(2)); - const add0_out = add10(mul2(div(vec[0], scalar5(10)), sizes[0]), centers[0]); - const div1_out = div(mul2(exp(div(vec[3], scalar5(5))), sizes[1]), scalar5(2)); - const add1_out = add10(mul2(div(vec[1], scalar5(10)), sizes[1]), centers[1]); - return transpose2(stack3([ - sub2(add0_out, div0_out), - sub2(add1_out, div1_out), - add10(add0_out, div0_out), - add10(add1_out, div1_out) - ]), [1, 0]); -} -function outputLayer(boxPredictions, classPredictions, params) { - return tidy21(() => { - const batchSize = boxPredictions.shape[0]; - let boxes = decodeBoxesLayer(reshape(tile(params.extra_dim, [batchSize, 1, 1]), [-1, 4]), reshape(boxPredictions, [-1, 4])); - boxes = reshape(boxes, [batchSize, boxes.shape[0] / batchSize, 4]); - const scoresAndClasses = sigmoid2(slice(classPredictions, [0, 0, 1], [-1, -1, -1])); - let scores = slice(scoresAndClasses, [0, 0, 0], [-1, -1, 1]); - scores = reshape(scores, [batchSize, scores.shape[1]]); - const boxesByBatch = unstack5(boxes); - const scoresByBatch = unstack5(scores); - return { - boxes: boxesByBatch, - scores: scoresByBatch - }; - }); -} - -// build/src/ssdMobilenetv1/boxPredictionLayer.js -import { - reshape as reshape2, - tidy as tidy22 -} from "@tensorflow/tfjs"; -function boxPredictionLayer(x, params) { - return tidy22(() => { - const batchSize = x.shape[0]; - const boxPredictionEncoding = reshape2(convLayer(x, params.box_encoding_predictor), [batchSize, -1, 1, 4]); - const classPrediction = reshape2(convLayer(x, params.class_predictor), [batchSize, -1, 3]); - return { - boxPredictionEncoding, - classPrediction - }; - }); -} - -// build/src/ssdMobilenetv1/predictionLayer.js -import { - concat as concat4, - tidy as tidy23 -} from "@tensorflow/tfjs"; -function predictionLayer(x, conv11, params) { - return tidy23(() => { - const conv0 = pointwiseConvLayer(x, params.conv_0, [1, 1]); - const conv1 = pointwiseConvLayer(conv0, params.conv_1, [2, 2]); - const conv22 = pointwiseConvLayer(conv1, params.conv_2, [1, 1]); - const conv3 = pointwiseConvLayer(conv22, params.conv_3, [2, 2]); - const conv4 = pointwiseConvLayer(conv3, params.conv_4, [1, 1]); - const conv5 = pointwiseConvLayer(conv4, params.conv_5, [2, 2]); - const conv6 = pointwiseConvLayer(conv5, params.conv_6, [1, 1]); - const conv7 = pointwiseConvLayer(conv6, params.conv_7, [2, 2]); - const boxPrediction0 = boxPredictionLayer(conv11, params.box_predictor_0); - const boxPrediction1 = boxPredictionLayer(x, params.box_predictor_1); - const boxPrediction2 = boxPredictionLayer(conv1, params.box_predictor_2); - const boxPrediction3 = boxPredictionLayer(conv3, params.box_predictor_3); - const boxPrediction4 = boxPredictionLayer(conv5, params.box_predictor_4); - const boxPrediction5 = boxPredictionLayer(conv7, params.box_predictor_5); - const boxPredictions = concat4([ - boxPrediction0.boxPredictionEncoding, - boxPrediction1.boxPredictionEncoding, - boxPrediction2.boxPredictionEncoding, - boxPrediction3.boxPredictionEncoding, - boxPrediction4.boxPredictionEncoding, - boxPrediction5.boxPredictionEncoding - ], 1); - const classPredictions = concat4([ - boxPrediction0.classPrediction, - boxPrediction1.classPrediction, - boxPrediction2.classPrediction, - boxPrediction3.classPrediction, - boxPrediction4.classPrediction, - boxPrediction5.classPrediction - ], 1); - return { - boxPredictions, - classPredictions - }; - }); -} - -// build/src/ssdMobilenetv1/SsdMobilenetv1Options.js -class SsdMobilenetv1Options { - constructor({minConfidence, maxResults} = {}) { - this._name = "SsdMobilenetv1Options"; - this._minConfidence = minConfidence || 0.5; - this._maxResults = maxResults || 100; - if (typeof this._minConfidence !== "number" || this._minConfidence <= 0 || this._minConfidence >= 1) { - throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`); - } - if (typeof this._maxResults !== "number") { - throw new Error(`${this._name} - expected maxResults to be a number`); - } - } - get minConfidence() { - return this._minConfidence; - } - get maxResults() { - return this._maxResults; - } -} - -// build/src/ssdMobilenetv1/SsdMobilenetv1.js -import { - cast as cast4, - mul as mul3, - scalar as scalar6, - sub as sub3, - tidy as tidy24 -} from "@tensorflow/tfjs"; -class SsdMobilenetv1 extends NeuralNetwork { - constructor() { - super("SsdMobilenetv1"); - } - forwardInput(input) { - const {params} = this; - if (!params) { - throw new Error("SsdMobilenetv1 - load model before inference"); - } - return tidy24(() => { - const batchTensor = cast4(input.toBatchTensor(512, false), "float32"); - const x = sub3(mul3(batchTensor, scalar6(0.007843137718737125)), scalar6(1)); - const features = mobileNetV1(x, params.mobilenetv1); - const {boxPredictions, classPredictions} = predictionLayer(features.out, features.conv11, params.prediction_layer); - return outputLayer(boxPredictions, classPredictions, params.output_layer); - }); - } - async forward(input) { - return this.forwardInput(await toNetInput(input)); - } - async locateFaces(input, options = {}) { - const {maxResults, minConfidence} = new SsdMobilenetv1Options(options); - const netInput = await toNetInput(input); - const {boxes: _boxes, scores: _scores} = this.forwardInput(netInput); - const boxes = _boxes[0]; - const scores = _scores[0]; - for (let i = 1; i < _boxes.length; i++) { - _boxes[i].dispose(); - _scores[i].dispose(); - } - const scoresData = Array.from(await scores.data()); - const iouThreshold = 0.5; - const indices = nonMaxSuppression2(boxes, scoresData, maxResults, iouThreshold, minConfidence); - const reshapedDims = netInput.getReshapedInputDimensions(0); - const inputSize = netInput.inputSize; - const padX = inputSize / reshapedDims.width; - const padY = inputSize / reshapedDims.height; - const boxesData = boxes.arraySync(); - const results = indices.map((idx) => { - const [top, bottom] = [ - Math.max(0, boxesData[idx][0]), - Math.min(1, boxesData[idx][2]) - ].map((val) => val * padY); - const [left, right] = [ - Math.max(0, boxesData[idx][1]), - Math.min(1, boxesData[idx][3]) - ].map((val) => val * padX); - return new FaceDetection(scoresData[idx], new Rect(left, top, right - left, bottom - top), { - height: netInput.getInputHeight(0), - width: netInput.getInputWidth(0) - }); - }); - boxes.dispose(); - scores.dispose(); - return results; - } - getDefaultModelName() { - return "ssd_mobilenetv1_model"; - } - extractParamsFromWeigthMap(weightMap) { - return extractParamsFromWeigthMap11(weightMap); - } - extractParams(weights) { - return extractParams11(weights); - } -} - -// build/src/ssdMobilenetv1/index.js -function createSsdMobilenetv1(weights) { - const net = new SsdMobilenetv1(); - net.extractWeights(weights); - return net; -} -function createFaceDetectionNet(weights) { - return createSsdMobilenetv1(weights); -} -class FaceDetectionNet extends SsdMobilenetv1 { -} - -// build/src/tinyYolov2/const.js -const IOU_THRESHOLD = 0.4; -const BOX_ANCHORS = [ - new Point(0.738768, 0.874946), - new Point(2.42204, 2.65704), - new Point(4.30971, 7.04493), - new Point(10.246, 4.59428), - new Point(12.6868, 11.8741) -]; -const BOX_ANCHORS_SEPARABLE = [ - new Point(1.603231, 2.094468), - new Point(6.041143, 7.080126), - new Point(2.882459, 3.518061), - new Point(4.266906, 5.178857), - new Point(9.041765, 10.66308) -]; -const MEAN_RGB_SEPARABLE = [117.001, 114.697, 97.404]; -const DEFAULT_MODEL_NAME = "tiny_yolov2_model"; -const DEFAULT_MODEL_NAME_SEPARABLE_CONV = "tiny_yolov2_separable_conv_model"; - -// build/src/tinyYolov2/config.js -const isNumber = (arg) => typeof arg === "number"; -function validateConfig(config2) { - if (!config2) { - throw new Error(`invalid config: ${config2}`); - } - if (typeof config2.withSeparableConvs !== "boolean") { - throw new Error(`config.withSeparableConvs has to be a boolean, have: ${config2.withSeparableConvs}`); - } - if (!isNumber(config2.iouThreshold) || config2.iouThreshold < 0 || config2.iouThreshold > 1) { - throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${config2.iouThreshold}`); - } - if (!Array.isArray(config2.classes) || !config2.classes.length || !config2.classes.every((c) => typeof c === "string")) { - throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(config2.classes)}`); - } - if (!Array.isArray(config2.anchors) || !config2.anchors.length || !config2.anchors.map((a) => a || {}).every((a) => isNumber(a.x) && isNumber(a.y))) { - throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(config2.anchors)}`); - } - if (config2.meanRgb && (!Array.isArray(config2.meanRgb) || config2.meanRgb.length !== 3 || !config2.meanRgb.every(isNumber))) { - throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(config2.meanRgb)}`); - } -} - -// build/src/tinyYolov2/leaky.js -import { - add as add11, - mul as mul4, - relu as relu6, - scalar as scalar7, - sub as sub4, - tidy as tidy25 -} from "@tensorflow/tfjs"; -function leaky(x) { - return tidy25(() => { - const min = mul4(x, scalar7(0.10000000149011612)); - return add11(relu6(sub4(x, min)), min); - }); -} - -// build/src/tinyYolov2/convWithBatchNorm.js -import { - add as add12, - conv2d as conv2d6, - mul as mul5, - pad, - sub as sub5, - tidy as tidy26 -} from "@tensorflow/tfjs"; -function convWithBatchNorm(x, params) { - return tidy26(() => { - let out = pad(x, [[0, 0], [1, 1], [1, 1], [0, 0]]); - out = conv2d6(out, params.conv.filters, [1, 1], "valid"); - out = sub5(out, params.bn.sub); - out = mul5(out, params.bn.truediv); - out = add12(out, params.conv.bias); - return leaky(out); - }); -} - -// build/src/tinyYolov2/depthwiseSeparableConv.js -import { - add as add13, - pad as pad2, - separableConv2d as separableConv2d2, - tidy as tidy27 -} from "@tensorflow/tfjs"; -function depthwiseSeparableConv3(x, params) { - return tidy27(() => { - let out = pad2(x, [[0, 0], [1, 1], [1, 1], [0, 0]]); - out = separableConv2d2(out, params.depthwise_filter, params.pointwise_filter, [1, 1], "valid"); - out = add13(out, params.bias); - return leaky(out); - }); -} - -// build/src/tinyYolov2/extractParams.js -import { - tensor1d as tensor1d6 -} from "@tensorflow/tfjs"; -function extractorsFactory9(extractWeights, paramMappings) { - const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings); - function extractBatchNormParams(size, mappedPrefix) { - const sub6 = tensor1d6(extractWeights(size)); - const truediv = tensor1d6(extractWeights(size)); - paramMappings.push({paramPath: `${mappedPrefix}/sub`}, {paramPath: `${mappedPrefix}/truediv`}); - return {sub: sub6, truediv}; - } - function extractConvWithBatchNormParams(channelsIn, channelsOut, mappedPrefix) { - const conv3 = extractConvParams(channelsIn, channelsOut, 3, `${mappedPrefix}/conv`); - const bn = extractBatchNormParams(channelsOut, `${mappedPrefix}/bn`); - return {conv: conv3, bn}; - } - const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings); - return { - extractConvParams, - extractConvWithBatchNormParams, - extractSeparableConvParams - }; -} -function extractParams13(weights, config2, boxEncodingSize, filterSizes) { - const {extractWeights, getRemainingWeights} = extractWeightsFactory(weights); - const paramMappings = []; - const {extractConvParams, extractConvWithBatchNormParams, extractSeparableConvParams} = extractorsFactory9(extractWeights, paramMappings); - let params; - if (config2.withSeparableConvs) { - const [s0, s1, s2, s3, s4, s5, s6, s7, s8] = filterSizes; - const conv0 = config2.isFirstLayerConv2d ? extractConvParams(s0, s1, 3, "conv0") : extractSeparableConvParams(s0, s1, "conv0"); - const conv1 = extractSeparableConvParams(s1, s2, "conv1"); - const conv22 = extractSeparableConvParams(s2, s3, "conv2"); - const conv3 = extractSeparableConvParams(s3, s4, "conv3"); - const conv4 = extractSeparableConvParams(s4, s5, "conv4"); - const conv5 = extractSeparableConvParams(s5, s6, "conv5"); - const conv6 = s7 ? extractSeparableConvParams(s6, s7, "conv6") : void 0; - const conv7 = s8 ? extractSeparableConvParams(s7, s8, "conv7") : void 0; - const conv8 = extractConvParams(s8 || s7 || s6, 5 * boxEncodingSize, 1, "conv8"); - params = {conv0, conv1, conv2: conv22, conv3, conv4, conv5, conv6, conv7, conv8}; - } else { - const [s0, s1, s2, s3, s4, s5, s6, s7, s8] = filterSizes; - const conv0 = extractConvWithBatchNormParams(s0, s1, "conv0"); - const conv1 = extractConvWithBatchNormParams(s1, s2, "conv1"); - const conv22 = extractConvWithBatchNormParams(s2, s3, "conv2"); - const conv3 = extractConvWithBatchNormParams(s3, s4, "conv3"); - const conv4 = extractConvWithBatchNormParams(s4, s5, "conv4"); - const conv5 = extractConvWithBatchNormParams(s5, s6, "conv5"); - const conv6 = extractConvWithBatchNormParams(s6, s7, "conv6"); - const conv7 = extractConvWithBatchNormParams(s7, s8, "conv7"); - const conv8 = extractConvParams(s8, 5 * boxEncodingSize, 1, "conv8"); - params = {conv0, conv1, conv2: conv22, conv3, conv4, conv5, conv6, conv7, conv8}; - } - if (getRemainingWeights().length !== 0) { - throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`); - } - return {params, paramMappings}; -} - -// build/src/tinyYolov2/extractParamsFromWeigthMap.js -function extractorsFactory10(weightMap, paramMappings) { - const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings); - function extractBatchNormParams(prefix) { - const sub6 = extractWeightEntry(`${prefix}/sub`, 1); - const truediv = extractWeightEntry(`${prefix}/truediv`, 1); - return {sub: sub6, truediv}; - } - function extractConvParams(prefix) { - const filters = extractWeightEntry(`${prefix}/filters`, 4); - const bias = extractWeightEntry(`${prefix}/bias`, 1); - return {filters, bias}; - } - function extractConvWithBatchNormParams(prefix) { - const conv3 = extractConvParams(`${prefix}/conv`); - const bn = extractBatchNormParams(`${prefix}/bn`); - return {conv: conv3, bn}; - } - const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry); - return { - extractConvParams, - extractConvWithBatchNormParams, - extractSeparableConvParams - }; -} -function extractParamsFromWeigthMap13(weightMap, config2) { - const paramMappings = []; - const {extractConvParams, extractConvWithBatchNormParams, extractSeparableConvParams} = extractorsFactory10(weightMap, paramMappings); - let params; - if (config2.withSeparableConvs) { - const numFilters = config2.filterSizes && config2.filterSizes.length || 9; - params = { - conv0: config2.isFirstLayerConv2d ? extractConvParams("conv0") : extractSeparableConvParams("conv0"), - conv1: extractSeparableConvParams("conv1"), - conv2: extractSeparableConvParams("conv2"), - conv3: extractSeparableConvParams("conv3"), - conv4: extractSeparableConvParams("conv4"), - conv5: extractSeparableConvParams("conv5"), - conv6: numFilters > 7 ? extractSeparableConvParams("conv6") : void 0, - conv7: numFilters > 8 ? extractSeparableConvParams("conv7") : void 0, - conv8: extractConvParams("conv8") - }; - } else { - params = { - conv0: extractConvWithBatchNormParams("conv0"), - conv1: extractConvWithBatchNormParams("conv1"), - conv2: extractConvWithBatchNormParams("conv2"), - conv3: extractConvWithBatchNormParams("conv3"), - conv4: extractConvWithBatchNormParams("conv4"), - conv5: extractConvWithBatchNormParams("conv5"), - conv6: extractConvWithBatchNormParams("conv6"), - conv7: extractConvWithBatchNormParams("conv7"), - conv8: extractConvParams("conv8") - }; - } - disposeUnusedWeightTensors(weightMap, paramMappings); - return {params, paramMappings}; -} - -// build/src/tinyYolov2/TinyYolov2Options.js -var TinyYolov2SizeType; -(function(TinyYolov2SizeType2) { - TinyYolov2SizeType2[TinyYolov2SizeType2["XS"] = 224] = "XS"; - TinyYolov2SizeType2[TinyYolov2SizeType2["SM"] = 320] = "SM"; - TinyYolov2SizeType2[TinyYolov2SizeType2["MD"] = 416] = "MD"; - TinyYolov2SizeType2[TinyYolov2SizeType2["LG"] = 608] = "LG"; -})(TinyYolov2SizeType || (TinyYolov2SizeType = {})); -class TinyYolov2Options { - constructor({inputSize, scoreThreshold} = {}) { - this._name = "TinyYolov2Options"; - this._inputSize = inputSize || 416; - this._scoreThreshold = scoreThreshold || 0.5; - if (typeof this._inputSize !== "number" || this._inputSize % 32 !== 0) { - throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`); - } - if (typeof this._scoreThreshold !== "number" || this._scoreThreshold <= 0 || this._scoreThreshold >= 1) { - throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`); - } - } - get inputSize() { - return this._inputSize; - } - get scoreThreshold() { - return this._scoreThreshold; - } -} - -// build/src/tinyYolov2/TinyYolov2Base.js -import { - cast as cast5, - maxPool as maxPool3, - scalar as scalar8, - softmax as softmax3, - tidy as tidy28, - unstack as unstack6 -} from "@tensorflow/tfjs"; -class TinyYolov2Base extends NeuralNetwork { - constructor(config2) { - super("TinyYolov2"); - validateConfig(config2); - this._config = config2; - } - get config() { - return this._config; - } - get withClassScores() { - return this.config.withClassScores || this.config.classes.length > 1; - } - get boxEncodingSize() { - return 5 + (this.withClassScores ? this.config.classes.length : 0); - } - runTinyYolov2(x, params) { - let out = convWithBatchNorm(x, params.conv0); - out = maxPool3(out, [2, 2], [2, 2], "same"); - out = convWithBatchNorm(out, params.conv1); - out = maxPool3(out, [2, 2], [2, 2], "same"); - out = convWithBatchNorm(out, params.conv2); - out = maxPool3(out, [2, 2], [2, 2], "same"); - out = convWithBatchNorm(out, params.conv3); - out = maxPool3(out, [2, 2], [2, 2], "same"); - out = convWithBatchNorm(out, params.conv4); - out = maxPool3(out, [2, 2], [2, 2], "same"); - out = convWithBatchNorm(out, params.conv5); - out = maxPool3(out, [2, 2], [1, 1], "same"); - out = convWithBatchNorm(out, params.conv6); - out = convWithBatchNorm(out, params.conv7); - return convLayer(out, params.conv8, "valid", false); - } - runMobilenet(x, params) { - let out = this.config.isFirstLayerConv2d ? leaky(convLayer(x, params.conv0, "valid", false)) : depthwiseSeparableConv3(x, params.conv0); - out = maxPool3(out, [2, 2], [2, 2], "same"); - out = depthwiseSeparableConv3(out, params.conv1); - out = maxPool3(out, [2, 2], [2, 2], "same"); - out = depthwiseSeparableConv3(out, params.conv2); - out = maxPool3(out, [2, 2], [2, 2], "same"); - out = depthwiseSeparableConv3(out, params.conv3); - out = maxPool3(out, [2, 2], [2, 2], "same"); - out = depthwiseSeparableConv3(out, params.conv4); - out = maxPool3(out, [2, 2], [2, 2], "same"); - out = depthwiseSeparableConv3(out, params.conv5); - out = maxPool3(out, [2, 2], [1, 1], "same"); - out = params.conv6 ? depthwiseSeparableConv3(out, params.conv6) : out; - out = params.conv7 ? depthwiseSeparableConv3(out, params.conv7) : out; - return convLayer(out, params.conv8, "valid", false); - } - forwardInput(input, inputSize) { - const {params} = this; - if (!params) { - throw new Error("TinyYolov2 - load model before inference"); - } - return tidy28(() => { - let batchTensor = cast5(input.toBatchTensor(inputSize, false), "float32"); - batchTensor = this.config.meanRgb ? normalize(batchTensor, this.config.meanRgb) : batchTensor; - batchTensor = batchTensor.div(scalar8(256)); - return this.config.withSeparableConvs ? this.runMobilenet(batchTensor, params) : this.runTinyYolov2(batchTensor, params); - }); - } - async forward(input, inputSize) { - return await this.forwardInput(await toNetInput(input), inputSize); - } - async detect(input, forwardParams = {}) { - const {inputSize, scoreThreshold} = new TinyYolov2Options(forwardParams); - const netInput = await toNetInput(input); - const out = await this.forwardInput(netInput, inputSize); - const out0 = tidy28(() => unstack6(out)[0].expandDims()); - const inputDimensions = { - width: netInput.getInputWidth(0), - height: netInput.getInputHeight(0) - }; - const results = await this.extractBoxes(out0, netInput.getReshapedInputDimensions(0), scoreThreshold); - out.dispose(); - out0.dispose(); - const boxes = results.map((res) => res.box); - const scores = results.map((res) => res.score); - const classScores = results.map((res) => res.classScore); - const classNames = results.map((res) => this.config.classes[res.label]); - const indices = nonMaxSuppression(boxes.map((box) => box.rescale(inputSize)), scores, this.config.iouThreshold, true); - const detections = indices.map((idx) => new ObjectDetection(scores[idx], classScores[idx], classNames[idx], boxes[idx], inputDimensions)); - return detections; - } - getDefaultModelName() { - return ""; - } - extractParamsFromWeigthMap(weightMap) { - return extractParamsFromWeigthMap13(weightMap, this.config); - } - extractParams(weights) { - const filterSizes = this.config.filterSizes || TinyYolov2Base.DEFAULT_FILTER_SIZES; - const numFilters = filterSizes ? filterSizes.length : void 0; - if (numFilters !== 7 && numFilters !== 8 && numFilters !== 9) { - throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${numFilters} filterSizes in config`); - } - return extractParams13(weights, this.config, this.boxEncodingSize, filterSizes); - } - async extractBoxes(outputTensor, inputBlobDimensions, scoreThreshold) { - const {width, height} = inputBlobDimensions; - const inputSize = Math.max(width, height); - const correctionFactorX = inputSize / width; - const correctionFactorY = inputSize / height; - const numCells = outputTensor.shape[1]; - const numBoxes = this.config.anchors.length; - const [boxesTensor, scoresTensor, classScoresTensor] = tidy28(() => { - const reshaped = outputTensor.reshape([numCells, numCells, numBoxes, this.boxEncodingSize]); - const boxes = reshaped.slice([0, 0, 0, 0], [numCells, numCells, numBoxes, 4]); - const scores = reshaped.slice([0, 0, 0, 4], [numCells, numCells, numBoxes, 1]); - const classScores = this.withClassScores ? softmax3(reshaped.slice([0, 0, 0, 5], [numCells, numCells, numBoxes, this.config.classes.length]), 3) : scalar8(0); - return [boxes, scores, classScores]; - }); - const results = []; - const scoresData = await scoresTensor.array(); - const boxesData = await boxesTensor.array(); - for (let row = 0; row < numCells; row++) { - for (let col = 0; col < numCells; col++) { - for (let anchor = 0; anchor < numBoxes; anchor++) { - const score = sigmoid(scoresData[row][col][anchor][0]); - if (!scoreThreshold || score > scoreThreshold) { - const ctX = (col + sigmoid(boxesData[row][col][anchor][0])) / numCells * correctionFactorX; - const ctY = (row + sigmoid(boxesData[row][col][anchor][1])) / numCells * correctionFactorY; - const width2 = Math.exp(boxesData[row][col][anchor][2]) * this.config.anchors[anchor].x / numCells * correctionFactorX; - const height2 = Math.exp(boxesData[row][col][anchor][3]) * this.config.anchors[anchor].y / numCells * correctionFactorY; - const x = ctX - width2 / 2; - const y = ctY - height2 / 2; - const pos = {row, col, anchor}; - const {classScore, label} = this.withClassScores ? await this.extractPredictedClass(classScoresTensor, pos) : {classScore: 1, label: 0}; - results.push({ - box: new BoundingBox(x, y, x + width2, y + height2), - score, - classScore: score * classScore, - label, - ...pos - }); + `}}class X0{constructor(e,t,s){this.variableNames=["A"];const{windowSize:n,batchSize:i,outSize:r}=e;s||this.variableNames.push("bestIndicesA"),this.outputShape=[i,r];const o=t==="max"?">":"<",a=s?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=` + void main() { + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + int outIdx = coords[1]; + int inOffset = outIdx * ${n}; + + int bestIndex = inOffset; + float bestValue = getA(batch, bestIndex); + + for (int i = 0; i < ${n}; i++) { + int inIdx = ${a}; + float candidate = getA(batch, inIdx); + if (candidate ${o} bestValue) { + bestValue = candidate; + bestIndex = inIdx; } } + setOutput(float(bestIndex)); } + `}}function Bw(e,t){return["x","y","z","w","u","v"].slice(0,t).map(s=>`${e}.${s}`)}function _t(e,t){return t===1?[e]:Bw(e,t)}function J0(e,t){if(e===1)return"rc";let s="";for(let n=0;n 0.0 || val < 0.0) ? false : val != 0.0; + } + + bvec4 isnan_custom(vec4 val) { + return bvec4(isnan_custom(val.x), + isnan_custom(val.y), isnan_custom(val.z), isnan_custom(val.w)); + } + + #define isnan(value) isnan_custom(value) + `,l="",c=` + #define round(value) newRound(value) + int newRound(float value) { + return int(floor(value + 0.5)); + } + + ivec4 newRound(vec4 value) { + return ivec4(floor(value + vec4(0.5))); + } + `):(e="",t="attribute",s="varying",n="varying",i="texture2D",r="gl_FragColor",o="",a=` + #define isnan(value) isnan_custom(value) + bool isnan_custom(float val) { + return (val > 0. || val < 1. || val == 0.) ? false : true; + } + bvec4 isnan_custom(vec4 val) { + return bvec4(isnan(val.x), isnan(val.y), isnan(val.z), isnan(val.w)); + } + `,l=` + uniform float INFINITY; + + bool isinf(float val) { + return abs(val) == INFINITY; + } + bvec4 isinf(vec4 val) { + return equal(abs(val), vec4(INFINITY)); + } + `,c=` + int round(float value) { + return int(floor(value + 0.5)); + } + + ivec4 round(vec4 value) { + return ivec4(floor(value + vec4(0.5))); + } + `),{version:e,attribute:t,varyingVs:s,varyingFs:n,texture2D:i,output:r,defineOutput:o,defineSpecialNaN:a,defineSpecialInf:l,defineRound:c}}function jn(e,t,s="index"){const n=N.computeStrides(t);return n.map((i,r)=>{const o=`int ${e[r]} = ${s} / ${i}`,a=r===n.length-1?`int ${e[r+1]} = ${s} - ${e[r]} * ${i}`:`index -= ${e[r]} * ${i}`;return`${o}; ${a};`}).join("")}function Pl(e){const t=N.computeStrides(e).map(s=>s.toString());return` + int getFlatIndex(ivec3 coords) { + return coords.x * ${t[0]} + coords.y * ${t[1]} + coords.z; + } +`}const Sf=` + const float FLOAT_MAX = 1.70141184e38; + const float FLOAT_MIN = 1.17549435e-38; + + lowp vec4 encode_float(highp float v) { + if (isnan(v)) { + return vec4(255, 255, 255, 255); } - boxesTensor.dispose(); - scoresTensor.dispose(); - classScoresTensor.dispose(); - return results; - } - async extractPredictedClass(classesTensor, pos) { - const {row, col, anchor} = pos; - const classesData = await classesTensor.array(); - return Array(this.config.classes.length).fill(0).map((_, i) => classesData[row][col][anchor][i]).map((classScore, label) => ({ - classScore, - label - })).reduce((max, curr) => max.classScore > curr.classScore ? max : curr); - } -} -TinyYolov2Base.DEFAULT_FILTER_SIZES = [ - 3, - 16, - 32, - 64, - 128, - 256, - 512, - 1024, - 1024 -]; -// build/src/tinyYolov2/TinyYolov2.js -class TinyYolov2 extends TinyYolov2Base { - constructor(withSeparableConvs = true) { - const config2 = Object.assign({}, { - withSeparableConvs, - iouThreshold: IOU_THRESHOLD, - classes: ["face"] - }, withSeparableConvs ? { - anchors: BOX_ANCHORS_SEPARABLE, - meanRgb: MEAN_RGB_SEPARABLE - } : { - anchors: BOX_ANCHORS, - withClassScores: true - }); - super(config2); - } - get withSeparableConvs() { - return this.config.withSeparableConvs; - } - get anchors() { - return this.config.anchors; - } - async locateFaces(input, forwardParams) { - const objectDetections = await this.detect(input, forwardParams); - return objectDetections.map((det) => new FaceDetection(det.score, det.relativeBox, {width: det.imageWidth, height: det.imageHeight})); - } - getDefaultModelName() { - return this.withSeparableConvs ? DEFAULT_MODEL_NAME_SEPARABLE_CONV : DEFAULT_MODEL_NAME; - } - extractParamsFromWeigthMap(weightMap) { - return super.extractParamsFromWeigthMap(weightMap); - } -} + highp float av = abs(v); -// build/src/tinyYolov2/types.js + if(av < FLOAT_MIN) { + return vec4(0.0, 0.0, 0.0, 0.0); + } else if(v > FLOAT_MAX) { + return vec4(0.0, 0.0, 128.0, 127.0) / 255.0; + } else if(v < -FLOAT_MAX) { + return vec4(0.0, 0.0, 128.0, 255.0) / 255.0; + } -// build/src/tinyYolov2/index.js -function createTinyYolov2(weights, withSeparableConvs = true) { - const net = new TinyYolov2(withSeparableConvs); - net.extractWeights(weights); - return net; -} + highp vec4 c = vec4(0,0,0,0); -// build/src/tinyFaceDetector/TinyFaceDetectorOptions.js -class TinyFaceDetectorOptions extends TinyYolov2Options { - constructor() { - super(...arguments); - this._name = "TinyFaceDetectorOptions"; + highp float e = floor(log2(av)); + highp float m = exp2(fract(log2(av))) - 1.0; + + c[2] = floor(128.0 * m); + m -= c[2] / 128.0; + c[1] = floor(32768.0 * m); + m -= c[1] / 32768.0; + c[0] = floor(8388608.0 * m); + + highp float ebias = e + 127.0; + c[3] = floor(ebias / 2.0); + ebias -= c[3] * 2.0; + c[2] += floor(ebias) * 128.0; + + c[3] += 128.0 * step(0.0, -v); + + return c / 255.0; } -} +`;const{getBroadcastDims:Z0}=U;function Q0(e,t,s,n){const i=[];e.forEach(m=>{const f=N.sizeFromShape(m.shapeInfo.logicalShape);m.shapeInfo.isUniform?i.push(`uniform float ${m.name}${f>1?`[${f}]`:""};`):(i.push(`uniform sampler2D ${m.name};`),i.push(`uniform int offset${m.name};`))});const r=i.join(` +`),o=e.map(m=>c3(m,t,n)).join(` +`),a=t.texShape,l=at(),c=h3(l);let p,u,h=f3(l);t.isPacked?(p=p3(t.logicalShape,a),u=m3(l)):(p=u3(t.logicalShape,a),u=d3(l)),n&&(h+=g3);const d=[h,c,u,r,p,o,s].join(` +`);return d}function Bl(e){const t=e.shapeInfo.logicalShape;switch(t.length){case 0:return y3(e);case 1:return b3(e);case 2:return w3(e);case 3:return x3(e);case 4:return L3(e);case 5:return S3(e);case 6:return I3(e);default:throw new Error(`${t.length}-D input sampling is not yet supported`)}}function eR(e){const t=e.shapeInfo.logicalShape;switch(t.length){case 0:return v3(e);case 1:return T3(e);case 2:return A3(e);case 3:return N3(e);default:return C3(e)}}function c3(e,t,s=!1){let n="";s?n+=eR(e):n+=Bl(e);const i=e.shapeInfo.logicalShape,r=t.logicalShape;return i.length<=r.length&&(s?n+=R3(e,t):n+=O3(e,t)),n}function p3(e,t){switch(e.length){case 0:return tR();case 1:return E3(e,t);case 2:return D3(e,t);case 3:return _3(e,t);default:return k3(e,t)}}function u3(e,t){switch(e.length){case 0:return tR();case 1:return F3(e,t);case 2:return z3(e,t);case 3:return M3(e,t);case 4:return U3(e,t);case 5:return $3(e,t);case 6:return W3(e,t);default:throw new Error(`${e.length}-D output sampling is not yet supported`)}}function h3(e){return` + float sampleTexture(sampler2D textureSampler, vec2 uv) { + return ${e.texture2D}(textureSampler, uv).r; + } + `}function d3(e){return` + void setOutput(float val) { + ${e.output} = vec4(val, 0, 0, 0); + } + `}function m3(e){return` + void setOutput(vec4 val) { + ${e.output} = val; + } + `}function f3(e){const t=`${e.version} + precision highp float; + precision highp int; + precision highp sampler2D; + ${e.varyingFs} vec2 resultUV; + ${e.defineOutput} + const vec2 halfCR = vec2(0.5, 0.5); -// build/src/globalApi/ComposableTask.js -class ComposableTask { - async then(onfulfilled) { - return onfulfilled(await this.run()); - } - async run() { - throw new Error("ComposableTask - run is not implemented"); - } -} - -// build/src/globalApi/extractFacesAndComputeResults.js -import { - Tensor as Tensor4 -} from "@tensorflow/tfjs"; -async function extractAllFacesAndComputeResults(parentResults, input, computeResults, extractedFaces, getRectForAlignment = ({alignedRect}) => alignedRect) { - const faceBoxes = parentResults.map((parentResult) => isWithFaceLandmarks(parentResult) ? getRectForAlignment(parentResult) : parentResult.detection); - const faces = extractedFaces || (input instanceof Tensor4 ? await extractFaceTensors(input, faceBoxes) : await extractFaces(input, faceBoxes)); - const results = await computeResults(faces); - faces.forEach((f) => f instanceof Tensor4 && f.dispose()); - return results; -} -async function extractSingleFaceAndComputeResult(parentResult, input, computeResult, extractedFaces, getRectForAlignment) { - return extractAllFacesAndComputeResults([parentResult], input, async (faces) => computeResult(faces[0]), extractedFaces, getRectForAlignment); -} - -// build/src/tinyFaceDetector/const.js -const IOU_THRESHOLD2 = 0.4; -const BOX_ANCHORS2 = [ - new Point(1.603231, 2.094468), - new Point(6.041143, 7.080126), - new Point(2.882459, 3.518061), - new Point(4.266906, 5.178857), - new Point(9.041765, 10.66308) -]; -const MEAN_RGB = [117.001, 114.697, 97.404]; - -// build/src/tinyFaceDetector/TinyFaceDetector.js -class TinyFaceDetector extends TinyYolov2Base { - constructor() { - const config2 = { - withSeparableConvs: true, - iouThreshold: IOU_THRESHOLD2, - classes: ["face"], - anchors: BOX_ANCHORS2, - meanRgb: MEAN_RGB, - isFirstLayerConv2d: true, - filterSizes: [3, 16, 32, 64, 128, 256, 512] + struct ivec5 + { + int x; + int y; + int z; + int w; + int u; }; - super(config2); - } - get anchors() { - return this.config.anchors; - } - async locateFaces(input, forwardParams) { - const objectDetections = await this.detect(input, forwardParams); - return objectDetections.map((det) => new FaceDetection(det.score, det.relativeBox, {width: det.imageWidth, height: det.imageHeight})); - } - getDefaultModelName() { - return "tiny_face_detector_model"; - } - extractParamsFromWeigthMap(weightMap) { - return super.extractParamsFromWeigthMap(weightMap); - } -} -// build/src/globalApi/nets.js -const nets = { - ssdMobilenetv1: new SsdMobilenetv1(), - tinyFaceDetector: new TinyFaceDetector(), - tinyYolov2: new TinyYolov2(), - faceLandmark68Net: new FaceLandmark68Net(), - faceLandmark68TinyNet: new FaceLandmark68TinyNet(), - faceRecognitionNet: new FaceRecognitionNet(), - faceExpressionNet: new FaceExpressionNet(), - ageGenderNet: new AgeGenderNet() -}; -const ssdMobilenetv1 = (input, options) => nets.ssdMobilenetv1.locateFaces(input, options); -const tinyFaceDetector = (input, options) => nets.tinyFaceDetector.locateFaces(input, options); -const tinyYolov23 = (input, options) => nets.tinyYolov2.locateFaces(input, options); -const detectFaceLandmarks = (input) => nets.faceLandmark68Net.detectLandmarks(input); -const detectFaceLandmarksTiny = (input) => nets.faceLandmark68TinyNet.detectLandmarks(input); -const computeFaceDescriptor = (input) => nets.faceRecognitionNet.computeFaceDescriptor(input); -const recognizeFaceExpressions = (input) => nets.faceExpressionNet.predictExpressions(input); -const predictAgeAndGender = (input) => nets.ageGenderNet.predictAgeAndGender(input); -const loadSsdMobilenetv1Model = (url) => nets.ssdMobilenetv1.load(url); -const loadTinyFaceDetectorModel = (url) => nets.tinyFaceDetector.load(url); -const loadTinyYolov2Model = (url) => nets.tinyYolov2.load(url); -const loadFaceLandmarkModel = (url) => nets.faceLandmark68Net.load(url); -const loadFaceLandmarkTinyModel = (url) => nets.faceLandmark68TinyNet.load(url); -const loadFaceRecognitionModel = (url) => nets.faceRecognitionNet.load(url); -const loadFaceExpressionModel = (url) => nets.faceExpressionNet.load(url); -const loadAgeGenderModel = (url) => nets.ageGenderNet.load(url); -const loadFaceDetectionModel = loadSsdMobilenetv1Model; -const locateFaces = ssdMobilenetv1; -const detectLandmarks = detectFaceLandmarks; - -// build/src/globalApi/PredictFaceExpressionsTask.js -class PredictFaceExpressionsTaskBase extends ComposableTask { - constructor(parentTask, input, extractedFaces) { - super(); - this.parentTask = parentTask; - this.input = input; - this.extractedFaces = extractedFaces; - } -} -class PredictAllFaceExpressionsTask extends PredictFaceExpressionsTaskBase { - async run() { - const parentResults = await this.parentTask; - const faceExpressionsByFace = await extractAllFacesAndComputeResults(parentResults, this.input, async (faces) => await Promise.all(faces.map((face) => nets.faceExpressionNet.predictExpressions(face))), this.extractedFaces); - return parentResults.map((parentResult, i) => extendWithFaceExpressions(parentResult, faceExpressionsByFace[i])); - } - withAgeAndGender() { - return new PredictAllAgeAndGenderTask(this, this.input); - } -} -class PredictSingleFaceExpressionsTask extends PredictFaceExpressionsTaskBase { - async run() { - const parentResult = await this.parentTask; - if (!parentResult) { - return; - } - const faceExpressions = await extractSingleFaceAndComputeResult(parentResult, this.input, (face) => nets.faceExpressionNet.predictExpressions(face), this.extractedFaces); - return extendWithFaceExpressions(parentResult, faceExpressions); - } - withAgeAndGender() { - return new PredictSingleAgeAndGenderTask(this, this.input); - } -} -class PredictAllFaceExpressionsWithFaceAlignmentTask extends PredictAllFaceExpressionsTask { - withAgeAndGender() { - return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input); - } - withFaceDescriptors() { - return new ComputeAllFaceDescriptorsTask(this, this.input); - } -} -class PredictSingleFaceExpressionsWithFaceAlignmentTask extends PredictSingleFaceExpressionsTask { - withAgeAndGender() { - return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input); - } - withFaceDescriptor() { - return new ComputeSingleFaceDescriptorTask(this, this.input); - } -} - -// build/src/globalApi/PredictAgeAndGenderTask.js -class PredictAgeAndGenderTaskBase extends ComposableTask { - constructor(parentTask, input, extractedFaces) { - super(); - this.parentTask = parentTask; - this.input = input; - this.extractedFaces = extractedFaces; - } -} -class PredictAllAgeAndGenderTask extends PredictAgeAndGenderTaskBase { - async run() { - const parentResults = await this.parentTask; - const ageAndGenderByFace = await extractAllFacesAndComputeResults(parentResults, this.input, async (faces) => await Promise.all(faces.map((face) => nets.ageGenderNet.predictAgeAndGender(face))), this.extractedFaces); - return parentResults.map((parentResult, i) => { - const {age, gender, genderProbability} = ageAndGenderByFace[i]; - return extendWithAge(extendWithGender(parentResult, gender, genderProbability), age); - }); - } - withFaceExpressions() { - return new PredictAllFaceExpressionsTask(this, this.input); - } -} -class PredictSingleAgeAndGenderTask extends PredictAgeAndGenderTaskBase { - async run() { - const parentResult = await this.parentTask; - if (!parentResult) { - return; - } - const {age, gender, genderProbability} = await extractSingleFaceAndComputeResult(parentResult, this.input, (face) => nets.ageGenderNet.predictAgeAndGender(face), this.extractedFaces); - return extendWithAge(extendWithGender(parentResult, gender, genderProbability), age); - } - withFaceExpressions() { - return new PredictSingleFaceExpressionsTask(this, this.input); - } -} -class PredictAllAgeAndGenderWithFaceAlignmentTask extends PredictAllAgeAndGenderTask { - withFaceExpressions() { - return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input); - } - withFaceDescriptors() { - return new ComputeAllFaceDescriptorsTask(this, this.input); - } -} -class PredictSingleAgeAndGenderWithFaceAlignmentTask extends PredictSingleAgeAndGenderTask { - withFaceExpressions() { - return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input); - } - withFaceDescriptor() { - return new ComputeSingleFaceDescriptorTask(this, this.input); - } -} - -// build/src/globalApi/ComputeFaceDescriptorsTasks.js -class ComputeFaceDescriptorsTaskBase extends ComposableTask { - constructor(parentTask, input) { - super(); - this.parentTask = parentTask; - this.input = input; - } -} -class ComputeAllFaceDescriptorsTask extends ComputeFaceDescriptorsTaskBase { - async run() { - const parentResults = await this.parentTask; - const descriptors = await extractAllFacesAndComputeResults(parentResults, this.input, (faces) => Promise.all(faces.map((face) => nets.faceRecognitionNet.computeFaceDescriptor(face))), null, (parentResult) => parentResult.landmarks.align(null, {useDlibAlignment: true})); - return descriptors.map((descriptor, i) => extendWithFaceDescriptor(parentResults[i], descriptor)); - } - withFaceExpressions() { - return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input); - } - withAgeAndGender() { - return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input); - } -} -class ComputeSingleFaceDescriptorTask extends ComputeFaceDescriptorsTaskBase { - async run() { - const parentResult = await this.parentTask; - if (!parentResult) { - return; - } - const descriptor = await extractSingleFaceAndComputeResult(parentResult, this.input, (face) => nets.faceRecognitionNet.computeFaceDescriptor(face), null, (parentResult2) => parentResult2.landmarks.align(null, {useDlibAlignment: true})); - return extendWithFaceDescriptor(parentResult, descriptor); - } - withFaceExpressions() { - return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input); - } - withAgeAndGender() { - return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input); - } -} - -// build/src/globalApi/DetectFaceLandmarksTasks.js -import { - Tensor as Tensor5 -} from "@tensorflow/tfjs"; -class DetectFaceLandmarksTaskBase extends ComposableTask { - constructor(parentTask, input, useTinyLandmarkNet) { - super(); - this.parentTask = parentTask; - this.input = input; - this.useTinyLandmarkNet = useTinyLandmarkNet; - } - get landmarkNet() { - return this.useTinyLandmarkNet ? nets.faceLandmark68TinyNet : nets.faceLandmark68Net; - } -} -class DetectAllFaceLandmarksTask extends DetectFaceLandmarksTaskBase { - async run() { - const parentResults = await this.parentTask; - const detections = parentResults.map((res) => res.detection); - const faces = this.input instanceof Tensor5 ? await extractFaceTensors(this.input, detections) : await extractFaces(this.input, detections); - const faceLandmarksByFace = await Promise.all(faces.map((face) => this.landmarkNet.detectLandmarks(face))); - faces.forEach((f) => f instanceof Tensor5 && f.dispose()); - return parentResults.map((parentResult, i) => extendWithFaceLandmarks(parentResult, faceLandmarksByFace[i])); - } - withFaceExpressions() { - return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input); - } - withAgeAndGender() { - return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input); - } - withFaceDescriptors() { - return new ComputeAllFaceDescriptorsTask(this, this.input); - } -} -class DetectSingleFaceLandmarksTask extends DetectFaceLandmarksTaskBase { - async run() { - const parentResult = await this.parentTask; - if (!parentResult) { - return; - } - const {detection} = parentResult; - const faces = this.input instanceof Tensor5 ? await extractFaceTensors(this.input, [detection]) : await extractFaces(this.input, [detection]); - const landmarks = await this.landmarkNet.detectLandmarks(faces[0]); - faces.forEach((f) => f instanceof Tensor5 && f.dispose()); - return extendWithFaceLandmarks(parentResult, landmarks); - } - withFaceExpressions() { - return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input); - } - withAgeAndGender() { - return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input); - } - withFaceDescriptor() { - return new ComputeSingleFaceDescriptorTask(this, this.input); - } -} - -// build/src/globalApi/DetectFacesTasks.js -class DetectFacesTaskBase extends ComposableTask { - constructor(input, options = new SsdMobilenetv1Options()) { - super(); - this.input = input; - this.options = options; - } -} -class DetectAllFacesTask extends DetectFacesTaskBase { - async run() { - const {input, options} = this; - const faceDetectionFunction = options instanceof TinyFaceDetectorOptions ? (input2) => nets.tinyFaceDetector.locateFaces(input2, options) : options instanceof SsdMobilenetv1Options ? (input2) => nets.ssdMobilenetv1.locateFaces(input2, options) : options instanceof TinyYolov2Options ? (input2) => nets.tinyYolov2.locateFaces(input2, options) : null; - if (!faceDetectionFunction) { - throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | MtcnnOptions | TinyYolov2Options"); - } - return faceDetectionFunction(input); - } - runAndExtendWithFaceDetections() { - return new Promise(async (res) => { - const detections = await this.run(); - return res(detections.map((detection) => extendWithFaceDetection({}, detection))); - }); - } - withFaceLandmarks(useTinyLandmarkNet = false) { - return new DetectAllFaceLandmarksTask(this.runAndExtendWithFaceDetections(), this.input, useTinyLandmarkNet); - } - withFaceExpressions() { - return new PredictAllFaceExpressionsTask(this.runAndExtendWithFaceDetections(), this.input); - } - withAgeAndGender() { - return new PredictAllAgeAndGenderTask(this.runAndExtendWithFaceDetections(), this.input); - } -} -class DetectSingleFaceTask extends DetectFacesTaskBase { - async run() { - const faceDetections = await new DetectAllFacesTask(this.input, this.options); - let faceDetectionWithHighestScore = faceDetections[0]; - faceDetections.forEach((faceDetection) => { - if (faceDetection.score > faceDetectionWithHighestScore.score) { - faceDetectionWithHighestScore = faceDetection; - } - }); - return faceDetectionWithHighestScore; - } - runAndExtendWithFaceDetection() { - return new Promise(async (res) => { - const detection = await this.run(); - return res(detection ? extendWithFaceDetection({}, detection) : void 0); - }); - } - withFaceLandmarks(useTinyLandmarkNet = false) { - return new DetectSingleFaceLandmarksTask(this.runAndExtendWithFaceDetection(), this.input, useTinyLandmarkNet); - } - withFaceExpressions() { - return new PredictSingleFaceExpressionsTask(this.runAndExtendWithFaceDetection(), this.input); - } - withAgeAndGender() { - return new PredictSingleAgeAndGenderTask(this.runAndExtendWithFaceDetection(), this.input); - } -} - -// build/src/globalApi/detectFaces.js -function detectSingleFace(input, options = new SsdMobilenetv1Options()) { - return new DetectSingleFaceTask(input, options); -} -function detectAllFaces(input, options = new SsdMobilenetv1Options()) { - return new DetectAllFacesTask(input, options); -} - -// build/src/globalApi/allFaces.js -async function allFacesSsdMobilenetv1(input, minConfidence) { - console.warn("allFacesSsdMobilenetv1 is deprecated and will be removed soon, use the high level api instead"); - return await detectAllFaces(input, new SsdMobilenetv1Options(minConfidence ? {minConfidence} : {})).withFaceLandmarks().withFaceDescriptors(); -} -async function allFacesTinyYolov2(input, forwardParams = {}) { - console.warn("allFacesTinyYolov2 is deprecated and will be removed soon, use the high level api instead"); - return await detectAllFaces(input, new TinyYolov2Options(forwardParams)).withFaceLandmarks().withFaceDescriptors(); -} -const allFaces = allFacesSsdMobilenetv1; - -// build/src/euclideanDistance.js -function euclideanDistance(arr1, arr2) { - if (arr1.length !== arr2.length) - throw new Error("euclideanDistance: arr1.length !== arr2.length"); - const desc1 = Array.from(arr1); - const desc2 = Array.from(arr2); - return Math.sqrt(desc1.map((val, i) => val - desc2[i]).reduce((res, diff) => res + Math.pow(diff, 2), 0)); -} - -// build/src/globalApi/FaceMatcher.js -class FaceMatcher { - constructor(inputs, distanceThreshold = 0.6) { - this._distanceThreshold = distanceThreshold; - const inputArray = Array.isArray(inputs) ? inputs : [inputs]; - if (!inputArray.length) { - throw new Error(`FaceRecognizer.constructor - expected atleast one input`); - } - let count = 1; - const createUniqueLabel = () => `person ${count++}`; - this._labeledDescriptors = inputArray.map((desc) => { - if (desc instanceof LabeledFaceDescriptors) { - return desc; - } - if (desc instanceof Float32Array) { - return new LabeledFaceDescriptors(createUniqueLabel(), [desc]); - } - if (desc.descriptor && desc.descriptor instanceof Float32Array) { - return new LabeledFaceDescriptors(createUniqueLabel(), [desc.descriptor]); - } - throw new Error(`FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>`); - }); - } - get labeledDescriptors() { - return this._labeledDescriptors; - } - get distanceThreshold() { - return this._distanceThreshold; - } - computeMeanDistance(queryDescriptor, descriptors) { - return descriptors.map((d) => euclideanDistance(d, queryDescriptor)).reduce((d1, d2) => d1 + d2, 0) / (descriptors.length || 1); - } - matchDescriptor(queryDescriptor) { - return this.labeledDescriptors.map(({descriptors, label}) => new FaceMatch(label, this.computeMeanDistance(queryDescriptor, descriptors))).reduce((best, curr) => best.distance < curr.distance ? best : curr); - } - findBestMatch(queryDescriptor) { - const bestMatch = this.matchDescriptor(queryDescriptor); - return bestMatch.distance < this.distanceThreshold ? bestMatch : new FaceMatch("unknown", bestMatch.distance); - } - toJSON() { - return { - distanceThreshold: this.distanceThreshold, - labeledDescriptors: this.labeledDescriptors.map((ld) => ld.toJSON()) + struct ivec6 + { + int x; + int y; + int z; + int w; + int u; + int v; }; - } - static fromJSON(json) { - const labeledDescriptors = json.labeledDescriptors.map((ld) => LabeledFaceDescriptors.fromJSON(ld)); - return new FaceMatcher(labeledDescriptors, json.distanceThreshold); - } -} -// build/src/globalApi/types.js + uniform float NAN; + ${e.defineSpecialNaN} + ${e.defineSpecialInf} + ${e.defineRound} -// build/src/globalApi/index.js - -// build/src/tinyFaceDetector/index.js -function createTinyFaceDetector(weights) { - const net = new TinyFaceDetector(); - net.extractWeights(weights); - return net; -} - -// build/src/resizeResults.js -function resizeResults(results, dimensions) { - const {width, height} = new Dimensions(dimensions.width, dimensions.height); - if (width <= 0 || height <= 0) { - throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width, height})}`); - } - if (Array.isArray(results)) { - return results.map((obj) => resizeResults(obj, {width, height})); - } - if (isWithFaceLandmarks(results)) { - const resizedDetection = results.detection.forSize(width, height); - const resizedLandmarks = results.unshiftedLandmarks.forSize(resizedDetection.box.width, resizedDetection.box.height); - return extendWithFaceLandmarks(extendWithFaceDetection(results, resizedDetection), resizedLandmarks); - } - if (isWithFaceDetection(results)) { - return extendWithFaceDetection(results, results.detection.forSize(width, height)); - } - if (results instanceof FaceLandmarks || results instanceof FaceDetection) { - return results.forSize(width, height); - } - return results; -} - -// build/package.json -var version = "0.5.3"; - -// build/src/Platform.js -class PlatformBrowser { - fetch(path, init) { - return fetch(path, init); - } - now() { - return performance.now(); - } - encode(text, encoding) { - if (encoding !== "utf-8" && encoding !== "utf8") { - throw new Error(`Browser's encoder only supports utf-8, but got ${encoding}`); + int imod(int x, int y) { + return x - y * (x / y); } - if (this.textEncoder == null) { - this.textEncoder = new TextEncoder(); - } - return this.textEncoder.encode(text); - } - decode(bytes, encoding) { - return new TextDecoder(encoding).decode(bytes); - } -} -// build/src/index.js -import { - env as env16 -}, * as tf42 from "@tensorflow/tfjs"; -const node = typeof process !== "undefined"; -const browser3 = typeof navigator !== "undefined" && typeof navigator.userAgent !== "undefined"; -const version2 = {faceapi: version, node, browser: browser3}; -if (!env16().platform && env16().get("IS_BROWSER")) - env16().setPlatform("browser", new PlatformBrowser()); -export { - AgeGenderNet, - BoundingBox, - Box, - ComposableTask, - ComputeAllFaceDescriptorsTask, - ComputeFaceDescriptorsTaskBase, - ComputeSingleFaceDescriptorTask, - DetectAllFaceLandmarksTask, - DetectAllFacesTask, - DetectFaceLandmarksTaskBase, - DetectFacesTaskBase, - DetectSingleFaceLandmarksTask, - DetectSingleFaceTask, - Dimensions, - FACE_EXPRESSION_LABELS, - FaceDetection, - FaceDetectionNet, - FaceExpressionNet, - FaceExpressions, - FaceLandmark68Net, - FaceLandmark68TinyNet, - FaceLandmarkNet, - FaceLandmarks, - FaceLandmarks5, - FaceLandmarks68, - FaceMatch, - FaceMatcher, - FaceRecognitionNet, - Gender, - LabeledBox, - LabeledFaceDescriptors, - NetInput, - NeuralNetwork, - ObjectDetection, - Point, - PredictedBox, - Rect, - SsdMobilenetv1, - SsdMobilenetv1Options, - TinyFaceDetector, - TinyFaceDetectorOptions, - TinyYolov2, - TinyYolov2Options, - TinyYolov2SizeType, - allFaces, - allFacesSsdMobilenetv1, - allFacesTinyYolov2, - awaitMediaLoaded, - bufferToImage, - computeFaceDescriptor, - createCanvas, - createCanvasFromMedia, - createFaceDetectionNet, - createFaceRecognitionNet, - createSsdMobilenetv1, - createTinyFaceDetector, - createTinyYolov2, - detectAllFaces, - detectFaceLandmarks, - detectFaceLandmarksTiny, - detectLandmarks, - detectSingleFace, - draw_exports as draw, - env, - euclideanDistance, - extendWithAge, - extendWithFaceDescriptor, - extendWithFaceDetection, - extendWithFaceExpressions, - extendWithFaceLandmarks, - extendWithGender, - extractFaceTensors, - extractFaces, - fetchImage, - fetchJson, - fetchNetWeights, - fetchOrThrow, - getContext2dOrThrow, - getMediaDimensions, - imageTensorToCanvas, - imageToSquare, - inverseSigmoid, - iou, - isMediaElement, - isMediaLoaded, - isWithAge, - isWithFaceDetection, - isWithFaceExpressions, - isWithFaceLandmarks, - isWithGender, - loadAgeGenderModel, - loadFaceDetectionModel, - loadFaceExpressionModel, - loadFaceLandmarkModel, - loadFaceLandmarkTinyModel, - loadFaceRecognitionModel, - loadSsdMobilenetv1Model, - loadTinyFaceDetectorModel, - loadTinyYolov2Model, - loadWeightMap, - locateFaces, - matchDimensions, - minBbox, - nets, - nonMaxSuppression, - normalize, - padToSquare, - predictAgeAndGender, - recognizeFaceExpressions, - resizeResults, - resolveInput, - shuffleArray, - sigmoid, - ssdMobilenetv1, - tf42 as tf, - tinyFaceDetector, - tinyYolov23 as tinyYolov2, - toNetInput, - utils_exports as utils, - validateConfig, - version2 as version + int idiv(int a, int b, float sign) { + int res = a / b; + int mod = imod(a, b); + if (sign < 0. && mod != 0) { + res -= 1; + } + return res; + } + + //Based on the work of Dave Hoskins + //https://www.shadertoy.com/view/4djSRW + #define HASHSCALE1 443.8975 + float random(float seed){ + vec2 p = resultUV * seed; + vec3 p3 = fract(vec3(p.xyx) * HASHSCALE1); + p3 += dot(p3, p3.yzx + 19.19); + return fract((p3.x + p3.y) * p3.z); + } + + ${P3} + ${B3} + ${j3} + `;return t}const P3=` +vec2 uvFromFlat(int texNumR, int texNumC, int index) { + int texR = index / texNumC; + int texC = index - texR * texNumC; + return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); +} +vec2 packedUVfrom1D(int texNumR, int texNumC, int index) { + int texelIndex = index / 2; + int texR = texelIndex / texNumC; + int texC = texelIndex - texR * texNumC; + return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); +} +`,B3=` +vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, + int texNumC, int row, int col) { + int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2); + int texR = texelIndex / texNumC; + int texC = texelIndex - texR * texNumC; + return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); +} +`,j3=` +vec2 packedUVfrom3D(int texNumR, int texNumC, + int texelsInBatch, int texelsInLogicalRow, int b, + int row, int col) { + int index = b * texelsInBatch + (row / 2) * texelsInLogicalRow + (col / 2); + int texR = index / texNumC; + int texC = index - texR * texNumC; + return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); +} +`,g3=` + float getChannel(vec4 frag, vec2 innerDims) { + vec2 modCoord = mod(innerDims, 2.); + return modCoord.x == 0. ? + (modCoord.y == 0. ? frag.r : frag.g) : + (modCoord.y == 0. ? frag.b : frag.a); + } + float getChannel(vec4 frag, int dim) { + float modCoord = mod(float(dim), 2.); + return modCoord == 0. ? frag.r : frag.g; + } +`;function tR(){return` + int getOutputCoords() { + return 0; + } + `}function E3(e,t){const s=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return s[0]===1?` + int getOutputCoords() { + return 2 * int(resultUV.x * ${s[1]}.0); + } + `:s[1]===1?` + int getOutputCoords() { + return 2 * int(resultUV.y * ${s[0]}.0); + } + `:` + int getOutputCoords() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${s[0]}, ${s[1]})); + return 2 * (resTexRC.x * ${s[1]} + resTexRC.y); + } + `}function F3(e,t){return t[0]===1?` + int getOutputCoords() { + return int(resultUV.x * ${t[1]}.0); + } + `:t[1]===1?` + int getOutputCoords() { + return int(resultUV.y * ${t[0]}.0); + } + `:` + int getOutputCoords() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${t[0]}, ${t[1]})); + return resTexRC.x * ${t[1]} + resTexRC.y; + } + `}function _3(e,t){const s=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],n=Math.ceil(e[2]/2),i=n*Math.ceil(e[1]/2);return` + ivec3 getOutputCoords() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${s[0]}, ${s[1]})); + int index = resTexRC.x * ${s[1]} + resTexRC.y; + + int b = index / ${i}; + index -= b * ${i}; + + int r = 2 * (index / ${n}); + int c = imod(index, ${n}) * 2; + + return ivec3(b, r, c); + } + `}function M3(e,t){const s=jn(["r","c","d"],e);return` + ivec3 getOutputCoords() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${t[0]}, ${t[1]})); + int index = resTexRC.x * ${t[1]} + resTexRC.y; + ${s} + return ivec3(r, c, d); + } + `}function k3(e,t){const s=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],n=Math.ceil(e[e.length-1]/2),i=n*Math.ceil(e[e.length-2]/2);let r=i,o="",a="b, r, c";for(let l=2;l=1?p="coords = 0;":p=a.map(w=>`coords.${u[w+c]} = 0;`).join(` +`);let h="";o<2&&r>0?h="coords":h=e.shapeInfo.logicalShape.map((w,x)=>`coords.${u[x+c]}`).join(", ");let d="return outputValue;";const m=N.sizeFromShape(e.shapeInfo.logicalShape),f=m===1,g=N.sizeFromShape(t.logicalShape),y=g===1;if(r===1&&!f&&!y)d=` + return vec4(outputValue.xy, outputValue.xy); + `;else if(f&&!y)o===1?d=` + return vec4(outputValue.x, outputValue.x, 0., 0.); + `:d=` + return vec4(outputValue.x); + `;else if(a.length){const w=r-2,x=r-1;a.indexOf(w)>-1&&a.indexOf(x)>-1?d="return vec4(outputValue.x);":a.indexOf(w)>-1?d="return vec4(outputValue.x, outputValue.y, outputValue.x, outputValue.y);":a.indexOf(x)>-1&&(d="return vec4(outputValue.xx, outputValue.zz);")}return` + vec4 ${i}() { + ${l} coords = getOutputCoords(); + ${p} + vec4 outputValue = get${n}(${h}); + ${d} + } + `}function O3(e,t){const s=e.name,n=s.charAt(0).toUpperCase()+s.slice(1),i="get"+n+"AtOutCoords",r=t.texShape,o=e.shapeInfo.texShape,a=e.shapeInfo.logicalShape.length,l=t.logicalShape.length;if(!e.shapeInfo.isUniform&&a===l&&e.shapeInfo.flatOffset==null&&N.arraysEqual(o,r))return` + float ${i}() { + return sampleTexture(${s}, resultUV); + } + `;const c=Re(l),p=Z0(e.shapeInfo.logicalShape,t.logicalShape),u=l-a;let h;const d=["x","y","z","w","u","v"];a===0?h="":l<2&&p.length>=1?h="coords = 0;":h=p.map(f=>`coords.${d[f+u]} = 0;`).join(` +`);let m="";return l<2&&a>0?m="coords":m=e.shapeInfo.logicalShape.map((f,g)=>`coords.${d[g+u]}`).join(", "),` + float ${i}() { + ${c} coords = getOutputCoords(); + ${h} + return get${n}(${m}); + } + `}function Re(e){if(e<=1)return"int";if(e===2)return"ivec2";if(e===3)return"ivec3";if(e===4)return"ivec4";if(e===5)return"ivec5";if(e===6)return"ivec6";throw Error(`GPU for rank ${e} is not yet supported`)}function Vl(e,t){const s=JSON.parse(JSON.stringify(e));return s.shapeInfo.logicalShape=t,s}function Gl(e,t){return t.map(s=>e[s]).join(", ")}class sR{constructor(e,t,s,n){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,N.assert(e.length>2,()=>`Packed arg${s.charAt(0).toUpperCase()+s.slice(1)} supports only inputs with rank above 2.`);const i=e[e.length-1],r=Math.ceil(i/t);this.outputShape=e.slice(0,-1),r>1&&this.outputShape.push(r),n||this.variableNames.push("bestIndicesA");const o=this.outputShape,a=o.length,l=Re(a),c=_t("coords",a);let p,u;if(r===1){u=a+1;const E=Re(u);p=` + ${E} sourceLocR = ${E}(${c.join()}, 0); + ++${c[a-1]}; + ${E} sourceLocG = ${E}(${c.join()}, 0); + ++${c[a-2]}; + ${E} sourceLocA = ${E}(${c.join()}, 0); + --${c[a-1]}; + ${E} sourceLocB = ${E}(${c.join()}, 0); + --${c[a-2]};`}else u=a,p=` + ${l} sourceLocR = coords; + ++${c[a-1]}; + ${l} sourceLocG = coords; + ++${c[a-2]}; + ${l} sourceLocA = coords; + --${c[a-1]}; + ${l} sourceLocB = coords; + --${c[a-2]};`;const h=["x","y","z","w","u","v"].slice(0,u),d="."+h[u-1],m=h.map(E=>"int "+E),f=_t("sourceLocR",u-1).concat("inIdx.r"),g=_t("sourceLocG",u-1).concat("inIdx.g"),y=_t("sourceLocB",u-1).concat("inIdx.b"),w=_t("sourceLocA",u-1).concat("inIdx.a"),x=s==="max"?"greaterThan":"lessThan",T=n?"":` + inIdx = round(vec4(getBestIndicesAChannel(${f.join()}), + getBestIndicesAChannel(${g.join()}), + getBestIndicesAChannel(${y.join()}), + getBestIndicesAChannel(${w.join()})));`,A=`vec4( + getAChannel(${f.join()}), + hasNextCol ? getAChannel(${g.join()}) : 0., + hasNextRow ? getAChannel(${y.join()}) : 0., + hasNextRow && hasNextCol ? getAChannel(${w.join()}) : 0.)`,_=n?"":` + float getBestIndicesAChannel(${m.join()}) { + return getChannel(getBestIndicesA(${h.join()}), + vec2(${h.slice(-2).join()})); + }`;this.userCode=` + float getAChannel(${m.join()}) { + return getChannel(getA(${h.join()}), + vec2(${h.slice(-2).join()})); + } + ${_} + void main() { + ${l} coords = getOutputCoords(); + bool hasNextCol = ${c[a-1]} < ${o[a-1]-1}; + bool hasNextRow = ${c[a-2]} < ${o[a-2]-1}; + ${p} + ivec4 srcIdx = ivec4(sourceLocR${d}, sourceLocG${d}, + sourceLocB${d}, sourceLocA${d}) * ${t}; + ivec4 inIdx = srcIdx; + vec4 bestIndex = vec4(inIdx); + vec4 bestValue = ${A}; + + for (int i = 0; i < ${t}; i++) { + inIdx = srcIdx; + ${T} + vec4 candidate = ${A}; + bvec4 nan = isnan(candidate); + bvec4 replace = bvec4( + vec4(${x}(candidate, bestValue)) * (vec4(1.0) - vec4(nan))); + + bestValue = vec4(replace.x ? candidate.x : bestValue.x, + replace.y ? candidate.y : bestValue.y, + replace.z ? candidate.z : bestValue.z, + replace.w ? candidate.w : bestValue.w); + bestIndex = mix(bestIndex, vec4(inIdx), vec4(replace)); + srcIdx++; + } + setOutput(bestIndex); + } + `}}class nR{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;const t=e.filterHeight,s=e.filterWidth,n=e.strideHeight,i=e.strideWidth,r=e.dilationHeight,o=e.dilationWidth,a=e.effectiveFilterHeight,l=e.effectiveFilterWidth,c=a-1-e.padInfo.top,p=l-1-e.padInfo.left,u=1/(t*s);this.userCode=` + const ivec2 pads = ivec2(${c}, ${p}); + const float avgMultiplier = float(${u}); + + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + + ivec2 dyRCCorner = coords.yz - pads; + int dyRCorner = dyRCCorner.x; + int dyCCorner = dyRCCorner.y; + + // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + for (int wR = 0; wR < ${a}; + wR += ${r}) { + float dyR = float(dyRCorner + wR) / ${n}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + for (int wC = 0; wC < ${l}; + wC+= ${o}) { + float dyC = float(dyCCorner + wC) / ${i}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + float dyValue = getDy(b, idyR, idyC, d); + + dotProd += dyValue * avgMultiplier; + } + } + setOutput(dotProd); + } + `}}class iR{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;const t=e.filterDepth,s=e.filterHeight,n=e.filterWidth,i=e.strideDepth,r=e.strideHeight,o=e.strideWidth,a=e.dilationDepth,l=e.dilationHeight,c=e.dilationWidth,p=e.effectiveFilterDepth,u=e.effectiveFilterHeight,h=e.effectiveFilterWidth,d=p-1-e.padInfo.front,m=u-1-e.padInfo.top,f=h-1-e.padInfo.left,g=1/(t*s*n);this.userCode=` + const ivec3 pads = ivec3(${d}, ${m}, ${f}); + const float avgMultiplier = float(${g}); + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int ch = coords.u; + + ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads; + int dyDCorner = dyCorner.x; + int dyRCorner = dyCorner.y; + int dyCCorner = dyCorner.z; + + // Convolve dy(?, ?, ?, d) with pos mask(:, :, :, ch) to get + // dx(xD, xR, xC, ch). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + + for (int wD = 0; wD < ${p}; + wD += ${a}) { + float dyD = float(dyDCorner + wD) / ${i}.0; + + if (dyD < 0.0 || dyD >= ${e.outDepth}.0 || fract(dyD) > 0.0) { + continue; + } + int idyD = int(dyD); + + for (int wR = 0; wR < ${u}; + wR += ${l}) { + float dyR = float(dyRCorner + wR) / ${r}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || + fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + for (int wC = 0; wC < ${h}; + wC += ${c}) { + float dyC = float(dyCCorner + wC) / ${o}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + float dyValue = getDy(batch, idyD, idyR, idyC, ch); + + dotProd += dyValue * avgMultiplier; + } + } + } + setOutput(dotProd); + } + `}}const jw={REAL:"return areal * breal - aimag * bimag;",IMAG:"return areal * bimag + aimag * breal;"};class Vw{constructor(e,t,s){this.variableNames=["AReal","AImag","BReal","BImag"],this.outputShape=U.assertAndGetBroadcastShape(t,s),this.userCode=` + float binaryOpComplex( + float areal, float aimag, float breal, float bimag) { + ${e} + } + + void main() { + float areal = getARealAtOutCoords(); + float aimag = getAImagAtOutCoords(); + float breal = getBRealAtOutCoords(); + float bimag = getBImagAtOutCoords(); + setOutput(binaryOpComplex(areal, aimag, breal, bimag)); + } + `}}const rR=` + if (isnan(a)) return a; + if (isnan(b)) return b; +`,If="return a + b;",vf="return a - b;",Gw="return a * b;",oR=` + float s = sign(a) * sign(b); + int ia = round(a); + int ib = round(b); + if (ib != 0) { + // Windows (D3D) wants guaranteed non-zero int division at compile-time. + return float(idiv(ia, ib, s)); + } else { + return NAN; + } +`,aR=` +if(a < 0.0 && floor(b) < b){ + return NAN; +} +if (b == 0.0) { + return 1.0; +} +return (round(mod(b, 2.0)) != 1) ? + pow(abs(a), b) : sign(a) * pow(abs(a), b); +`,lR="return float(a == b);",cR="return float(a != b);",pR="return float(a < b);",uR="return float(a <= b);",hR="return float(a > b);",dR="return float(a >= b);",mR="return float(a >= 1.0 && b >= 1.0);",fR="return float(a >= 1.0 || b >= 1.0);",gR=rR+` + return max(a, b); +`,yR=rR+` + return min(a, b); +`,bR=`if (b == 0.0) return NAN; + return mod(a, b);`,wR="return (b >= 1.0) ? a : a * (b + 1.0);",qw="return (a < 0.) ? b * a : a;";class kt{constructor(e,t,s){this.variableNames=["A","B"],this.outputShape=U.assertAndGetBroadcastShape(t,s),this.userCode=` + float binaryOperation(float a, float b) { + ${e} + } + + void main() { + float a = getAAtOutCoords(); + float b = getBAtOutCoords(); + setOutput(binaryOperation(a, b)); + } + `}}const Tf=` + result.r = isNaN.r > 0. ? NAN : result.r; + result.g = isNaN.g > 0. ? NAN : result.g; + result.b = isNaN.b > 0. ? NAN : result.b; + result.a = isNaN.a > 0. ? NAN : result.a; +`,xR=` + ivec4 ia = round(a); + ivec4 ib = round(b); + bvec4 cond = notEqual(ib, ivec4(0)); + ivec4 result = ivec4(0); + vec4 s = sign(a) * sign(b); + + // Windows (D3D) wants guaranteed non-zero int division at compile-time. + if (cond[0]) { + result[0] = idiv(ia[0], ib[0], s[0]); + } + if (cond[1]) { + result[1] = idiv(ia[1], ib[1], s[1]); + } + if (cond[2]) { + result[2] = idiv(ia[2], ib[2], s[2]); + } + if (cond[3]) { + result[3] = idiv(ia[3], ib[3], s[3]); + } + return vec4(result); +`,LR=` + // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise. + vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1))); + vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1); + vec4 result = multiplier * pow(abs(a), b); + + // Ensure that a^0 = 1, including 0^0 = 1 as this correspond to TF and JS + bvec4 isExpZero = equal(b, vec4(0.0)); + result.r = isExpZero.r ? 1.0 : result.r; + result.g = isExpZero.g ? 1.0 : result.g; + result.b = isExpZero.b ? 1.0 : result.b; + result.a = isExpZero.a ? 1.0 : result.a; + + vec4 isNaN = vec4(lessThan(a, vec4(0.0))) * vec4(lessThan(floor(b), b)); + `+Tf+` + return result; +`,Hw=` + vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); + return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); +`,SR=` + vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.))); + return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0)))); +`,IR=` + return vec4(equal(a, b)); +`,vR=` + return vec4(notEqual(a, b)); +`,TR=` + return vec4(lessThan(a, b)); +`,AR=` + return vec4(lessThanEqual(a, b)); +`,NR=` + return vec4(greaterThan(a, b)); +`,CR=` + return vec4(greaterThanEqual(a, b)); +`,RR=` + return vec4( + vec4(greaterThanEqual(a, vec4(1.0))) * + vec4(greaterThanEqual(b, vec4(1.0)))); +`,OR=` + return min( + vec4(greaterThanEqual(a, vec4(1.0))) + + vec4(greaterThanEqual(b, vec4(1.0))), + vec4(1.0)); +`,ER=` + vec4 result = vec4(max(a, b)); + vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0)); + `+Tf+` + return result; +`,_R=` + vec4 result = vec4(min(a, b)); + vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0)); + `+Tf+` + return result; +`,kR=` + vec4 result = mod(a, b); + vec4 isNaN = vec4(equal(b, vec4(0.0))); + `+Tf+` + return result; +`;class bi{constructor(e,t,s,n=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=U.assertAndGetBroadcastShape(t,s);const i=this.outputShape.length;let r="";if(n)if(i===0||N.sizeFromShape(this.outputShape)===1)r=` + result.y = 0.; + result.z = 0.; + result.w = 0.; + `;else{const o=Re(i);if(r=` + ${o} coords = getOutputCoords(); + `,i===1)r+=` + result.y = (coords + 1) >= ${this.outputShape[0]} ? 0. : result.y; + result.z = 0.; + result.w = 0.; + `;else{const a=_t("coords",i);r+=` + bool nextRowOutOfBounds = + (${a[i-2]} + 1) >= ${this.outputShape[i-2]}; + bool nextColOutOfBounds = + (${a[i-1]} + 1) >= ${this.outputShape[i-1]}; + result.y = nextColOutOfBounds ? 0. : result.y; + result.z = nextRowOutOfBounds ? 0. : result.z; + result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w; + `}}this.userCode=` + vec4 binaryOperation(vec4 a, vec4 b) { + ${e} + } + + void main() { + vec4 a = getAAtOutCoords(); + vec4 b = getBAtOutCoords(); + + vec4 result = binaryOperation(a, b); + ${r} + + setOutput(result); + } + `}}class DR{constructor(e){this.variableNames=["A"],this.outputShape=e,this.userCode=` + uniform float minVal; + uniform float maxVal; + + void main() { + float value = getAAtOutCoords(); + if (isnan(value)) { + setOutput(value); + return; + } + + setOutput(clamp(value, minVal, maxVal)); + } + `}getCustomSetupFunc(e,t){return(s,n)=>{this.minLoc==null&&(this.minLoc=s.getUniformLocationNoThrow(n,"minVal"),this.maxLoc=s.getUniformLocationNoThrow(n,"maxVal")),s.gl.uniform1f(this.minLoc,e),s.gl.uniform1f(this.maxLoc,t)}}}class FR{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode=` + uniform float minVal; + uniform float maxVal; + + void main() { + vec4 value = getAAtOutCoords(); + + if (any(isnan(value))) { + setOutput(value); + return; + } + + setOutput(clamp(value, vec4(minVal), vec4(maxVal))); + } + `}getCustomSetupFunc(e,t){return(s,n)=>{this.minLoc==null&&(this.minLoc=s.getUniformLocationNoThrow(n,"minVal"),this.maxLoc=s.getUniformLocationNoThrow(n,"maxVal")),s.gl.uniform1f(this.minLoc,e),s.gl.uniform1f(this.maxLoc,t)}}}class MR{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` + void main() { + float re = abs(getRealAtOutCoords()); + float im = abs(getImagAtOutCoords()); + float mx = max(re, im); + + // sadly the length function in glsl is not underflow-safe + // (at least not on Intel GPUs). So the safe solution is + // to ensure underflow-safety in all cases. + setOutput( + mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx)) + ); + } + `}}class UR{constructor(e){this.outputShape=[],this.outputShape=U.computeOutShape(e,1),this.variableNames=e.map((r,o)=>`T${o}`);const t=new Array(e.length-1);t[0]=e[0][1];for(let r=1;r`T${f}`);const a=new Array(e.length-1);a[0]=e[0][t];for(let m=1;m= ${a[m-1]}) { + return getChannel( + getT${m}(${Af(o,l,f)}), + vec2(${Af(c,l,f)})); + }`}const h=a.length,d=a[a.length-1];u+=` + return getChannel( + getT${h}(${Af(o,l,d)}), + vec2(${Af(c,l,d)}));`,this.userCode=` + float getValue(${o.map(m=>"int "+m)}) { + ${u} + } + + void main() { + ${i} coords = getOutputCoords(); + vec4 result = vec4(getValue(${r}), 0., 0., 0.); + + ${r[n-1]} = ${r[n-1]} + 1; + if (${r[n-1]} < ${s[n-1]}) { + result.g = getValue(${r}); + } + + ${r[n-2]} = ${r[n-2]} + 1; + if (${r[n-2]} < ${s[n-2]}) { + result.a = getValue(${r}); + } + + ${r[n-1]} = ${r[n-1]} - 1; + if (${r[n-2]} < ${s[n-2]} && + ${r[n-1]} < ${s[n-1]}) { + result.b = getValue(${r}); + } + setOutput(result); + } + `}}function Af(e,t,s){const n=e.indexOf(t),i=e.map((r,o)=>o===n?`${r} - ${s}`:r);return i.join()}class WR{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideHeight,s=e.strideWidth,n=e.padInfo.top,i=e.padInfo.left,r=e.dataFormat==="channelsLast";this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int wR = coords.x; + int wC = coords.y; + int d1 = coords.z; + int d2 = coords.w; + + // Convolve x(?, ?, d1) with dy(:, :, d2) to get dw(wR, wC, d1, d2). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + + for (int b = 0; b < ${e.batchSize}; b++) { + for (int yR = 0; yR < ${e.outHeight}; yR++) { + int xR = wR + yR * ${t} - ${n}; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int yC = 0; yC < ${e.outWidth}; yC++) { + int xC = wC + yC * ${s} - ${i}; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + if (${r}) { + float dyValue = getDy(b, yR, yC, d2); + float xValue = getX(b, xR, xC, d1); + dotProd += (xValue * dyValue); + } else { + float dyValue = getDy(b, d2, yR, yC); + float xValue = getX(b, d1, xR, xC); + dotProd += (xValue * dyValue); + } + + } + } + } + setOutput(dotProd); + } + `}}class zR{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterHeight,s=e.filterWidth,n=e.strideHeight,i=e.strideWidth,r=e.dataFormat==="channelsLast",o=t-1-e.padInfo.top,a=s-1-e.padInfo.left,l=r?1:2,c=r?2:3,p=r?3:1;this.userCode=` + const ivec2 pads = ivec2(${o}, ${a}); + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords[0]; + int d1 = coords[${p}]; + + ivec2 dyCorner = ivec2(coords[${l}], coords[${c}]) - pads; + int dyRCorner = dyCorner.x; + int dyCCorner = dyCorner.y; + + // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + for (int wR = 0; wR < ${t}; wR++) { + float dyR = float(dyRCorner + wR) / ${n}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + int wRPerm = ${t} - 1 - wR; + + for (int wC = 0; wC < ${s}; wC++) { + float dyC = float(dyCCorner + wC) / ${i}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + int wCPerm = ${s} - 1 - wC; + + for (int d2 = 0; d2 < ${e.outChannels}; d2++) { + + if (${r}) { + float xValue = getDy(batch, idyR, idyC, d2); + float wValue = getW(wRPerm, wCPerm, d1, d2); + dotProd += xValue * wValue; + } else { + float xValue = getDy(batch, d2, idyR, idyC); + float wValue = getW(wRPerm, wCPerm, d1, d2); + dotProd += xValue * wValue; + } + + } + } + } + setOutput(dotProd); + } + `}}class PR{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideDepth,s=e.strideHeight,n=e.strideWidth,i=e.padInfo.front,r=e.padInfo.top,o=e.padInfo.left;this.userCode=` + void main() { + ivec5 coords = getOutputCoords(); + int wF = coords.x; + int wR = coords.y; + int wC = coords.z; + int d1 = coords.w; + int d2 = coords.u; + + float dotProd = 0.0; + + for (int b = 0; b < ${e.batchSize}; b++) { + for (int yF = 0; yF < ${e.outDepth}; yF++) { + int xF = wF + yF * ${t} - ${i}; + + if (xF < 0 || xF >= ${e.inDepth}) { + continue; + } + + for (int yR = 0; yR < ${e.outHeight}; yR++) { + int xR = wR + yR * ${s} - ${r}; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int yC = 0; yC < ${e.outWidth}; yC++) { + int xC = wC + yC * ${n} - ${o}; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + float dyValue = getDy(b, yF, yR, yC, d2); + float xValue = getX(b, xF, xR, xC, d1); + dotProd += (xValue * dyValue); + } + } + } + } + setOutput(dotProd); + } + `}}class BR{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterDepth,s=e.filterHeight,n=e.filterWidth,i=e.strideDepth,r=e.strideHeight,o=e.strideWidth,a=t-1-e.padInfo.front,l=s-1-e.padInfo.top,c=n-1-e.padInfo.left;this.userCode=` + const ivec3 pads = ivec3(${a}, ${l}, ${c}); + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int d1 = coords.u; + + + ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads; + int dyFCorner = dyCorner.x; + int dyRCorner = dyCorner.y; + int dyCCorner = dyCorner.z; + + float dotProd = 0.0; + for (int wF = 0; wF < ${t}; wF++) { + float dyF = float(dyFCorner + wF) / ${i}.0; + + if (dyF < 0.0 || dyF >= ${e.outDepth}.0 || fract(dyF) > 0.0) { + continue; + } + int idyF = int(dyF); + + int wFPerm = ${t} - 1 - wF; + + for (int wR = 0; wR < ${s}; wR++) { + float dyR = float(dyRCorner + wR) / ${r}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || + fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + int wRPerm = ${s} - 1 - wR; + + for (int wC = 0; wC < ${n}; wC++) { + float dyC = float(dyCCorner + wC) / ${o}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + int wCPerm = ${n} - 1 - wC; + + for (int d2 = 0; d2 < ${e.outChannels}; d2++) { + float xValue = getDy(batch, idyF, idyR, idyC, d2); + float wValue = getW(wFPerm, wRPerm, wCPerm, d1, d2); + dotProd += xValue * wValue; + } + } + } + } + setOutput(dotProd); + } + `}}class jR{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideHeight,s=e.strideWidth,n=e.padInfo.top,i=e.padInfo.left,r=e.outChannels/e.inChannels;this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int wR = coords.x; + int wC = coords.y; + int d1 = coords.z; + int dm = coords.w; + int d2 = d1 * ${r} + dm; + + float dotProd = 0.0; + + // TO DO: Vec4 over the batch size + for (int b = 0; b < ${e.batchSize}; b++) { + for (int yR = 0; yR < ${e.outHeight}; yR++) { + int xR = wR + yR * ${t} - ${n}; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int yC = 0; yC < ${e.outWidth}; yC++) { + int xC = wC + yC * ${s} - ${i}; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + float dyValue = getDy(b, yR, yC, d2); + float xValue = getX(b, xR, xC, d1); + dotProd += (xValue * dyValue); + } + } + } + setOutput(dotProd); + } + `}}class VR{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterHeight,s=e.filterWidth,n=e.strideHeight,i=e.strideWidth,r=t-1-e.padInfo.top,o=s-1-e.padInfo.left,a=e.outChannels/e.inChannels;this.userCode=` + const ivec2 pads = ivec2(${r}, ${o}); + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords[0]; + int d1 = coords[3]; + ivec2 dyCorner = coords.yz - pads; + int dyRCorner = dyCorner.x; + int dyCCorner = dyCorner.y; + + float dotProd = 0.0; + + for (int wR = 0; wR < ${t}; wR++) { + float dyR = float(dyRCorner + wR) / ${n}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + int wRPerm = ${t} - 1 - wR; + + for (int wC = 0; wC < ${s}; wC++) { + float dyC = float(dyCCorner + wC) / ${i}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + int wCPerm = ${s} - 1 - wC; + + // TO DO: Vec4 over the channelMul + for (int dm = 0; dm < ${a}; dm++) { + int d2 = d1 * ${a} + dm; + float xValue = getDy(batch, idyR, idyC, d2); + float wValue = getW(wRPerm, wCPerm, d1, dm); + dotProd += xValue * wValue; + } + } + } + setOutput(dotProd); + } + `}}class Yw{constructor(e,t=!1,s=null,n=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;const i=e.padInfo.top,r=e.padInfo.left,o=e.strideHeight,a=e.strideWidth,l=e.dilationHeight,c=e.dilationWidth,p=e.filterHeight,u=e.filterWidth,h=Math.floor(e.inChannels/4)*4,d=e.inChannels%4,m=e.dataFormat==="channelsLast",f=m?1:2,g=m?2:3,y=m?3:1;let w="",x="";s&&(n?w=`float activation(float a) { + float b = getPreluActivationWeightsAtOutCoords(); + ${s} + }`:w=` + float activation(float x) { + ${s} + } + `,x="result = activation(result);");const T=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),n&&this.variableNames.push("preluActivationWeights"),this.userCode=` + ${w} + + const ivec2 strides = ivec2(${o}, ${a}); + const ivec2 pads = ivec2(${i}, ${r}); + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords[0]; + int d2 = coords[${y}]; + + ivec2 xRCCorner = + ivec2(coords[${f}], coords[${g}]) * strides - pads; + int xRCorner = xRCCorner.x; + int xCCorner = xRCCorner.y; + + // Convolve x(?, ?, d1) with w(:, :, d1, d2) to get y(yR, yC, d2). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + for (int wR = 0; wR < ${p}; wR++) { + int xR = xRCorner + wR * ${l}; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${u}; wC++) { + int xC = xCCorner + wC * ${c}; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + for (int d1 = 0; d1 < ${h}; d1 += 4) { + vec4 wValues = vec4( + getW(wR, wC, d1, d2), + getW(wR, wC, d1 + 1, d2), + getW(wR, wC, d1 + 2, d2), + getW(wR, wC, d1 + 3, d2) + ); + + if (${m}) { + vec4 xValues = vec4( + getX(batch, xR, xC, d1), + getX(batch, xR, xC, d1 + 1), + getX(batch, xR, xC, d1 + 2), + getX(batch, xR, xC, d1 + 3) + ); + dotProd += dot(xValues, wValues); + } else { + vec4 xValues = vec4( + getX(batch, d1, xR, xC), + getX(batch, d1 + 1, xR, xC), + getX(batch, d1 + 2, xR, xC), + getX(batch, d1 + 3, xR, xC) + ); + dotProd += dot(xValues, wValues); + } + } + + if (${d===1}) { + + if (${m}) { + dotProd += + getX(batch, xR, xC, ${h}) * + getW(wR, wC, ${h}, d2); + } else { + dotProd += + getX(batch, ${h}, xR, xC) * + getW(wR, wC, ${h}, d2); + } + + } else if (${d===2}) { + vec2 wValues = vec2( + getW(wR, wC, ${h}, d2), + getW(wR, wC, ${h} + 1, d2) + ); + + if (${m}) { + vec2 xValues = vec2( + getX(batch, xR, xC, ${h}), + getX(batch, xR, xC, ${h} + 1) + ); + dotProd += dot(xValues, wValues); + } else { + vec2 xValues = vec2( + getX(batch, ${h}, xR, xC), + getX(batch, ${h} + 1, xR, xC) + ); + dotProd += dot(xValues, wValues); + } + + } else if (${d===3}) { + vec3 wValues = vec3( + getW(wR, wC, ${h}, d2), + getW(wR, wC, ${h} + 1, d2), + getW(wR, wC, ${h} + 2, d2) + ); + + if (${m}) { + vec3 xValues = vec3( + getX(batch, xR, xC, ${h}), + getX(batch, xR, xC, ${h} + 1), + getX(batch, xR, xC, ${h} + 2) + ); + dotProd += dot(xValues, wValues); + } else { + vec3 xValues = vec3( + getX(batch, ${h}, xR, xC), + getX(batch, ${h} + 1, xR, xC), + getX(batch, ${h} + 2, xR, xC) + ); + dotProd += dot(xValues, wValues); + } + + } + } + } + + float result = dotProd; + ${T} + ${x} + setOutput(result); + } + `}}class GR{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;const t=e.padInfo.front,s=e.padInfo.top,n=e.padInfo.left,i=e.strideDepth,r=e.strideHeight,o=e.strideWidth,a=e.dilationDepth,l=e.dilationHeight,c=e.dilationWidth,p=e.filterDepth,u=e.filterHeight,h=e.filterWidth,d=Math.floor(e.inChannels/4)*4,m=e.inChannels%4;this.userCode=` + const ivec3 strides = ivec3(${i}, ${r}, ${o}); + const ivec3 pads = ivec3(${t}, ${s}, ${n}); + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int d2 = coords.u; + + ivec3 xFRCCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads; + int xFCorner = xFRCCorner.x; + int xRCorner = xFRCCorner.y; + int xCCorner = xFRCCorner.z; + + // Convolve x(?, ?, ?, d1) with w(:, :, :, d1, d2) to get + // y(yF, yR, yC, d2). ? = to be determined. : = across all + // values in that axis. + float dotProd = 0.0; + for (int wF = 0; wF < ${p}; wF++) { + int xF = xFCorner + wF * ${a}; + + if (xF < 0 || xF >= ${e.inDepth}) { + continue; + } + + for (int wR = 0; wR < ${u}; wR++) { + int xR = xRCorner + wR * ${l}; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${h}; wC++) { + int xC = xCCorner + wC * ${c}; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + for (int d1 = 0; d1 < ${d}; d1 += 4) { + vec4 xValues = vec4( + getX(batch, xF, xR, xC, d1), + getX(batch, xF, xR, xC, d1 + 1), + getX(batch, xF, xR, xC, d1 + 2), + getX(batch, xF, xR, xC, d1 + 3) + ); + vec4 wValues = vec4( + getW(wF, wR, wC, d1, d2), + getW(wF, wR, wC, d1 + 1, d2), + getW(wF, wR, wC, d1 + 2, d2), + getW(wF, wR, wC, d1 + 3, d2) + ); + + dotProd += dot(xValues, wValues); + } + + if (${m===1}) { + dotProd += + getX(batch, xF, xR, xC, ${d}) * + getW(wF, wR, wC, ${d}, d2); + } else if (${m===2}) { + vec2 xValues = vec2( + getX(batch, xF, xR, xC, ${d}), + getX(batch, xF, xR, xC, ${d} + 1) + ); + vec2 wValues = vec2( + getW(wF, wR, wC, ${d}, d2), + getW(wF, wR, wC, ${d} + 1, d2) + ); + dotProd += dot(xValues, wValues); + } else if (${m===3}) { + vec3 xValues = vec3( + getX(batch, xF, xR, xC, ${d}), + getX(batch, xF, xR, xC, ${d} + 1), + getX(batch, xF, xR, xC, ${d} + 2) + ); + vec3 wValues = vec3( + getW(wF, wR, wC, ${d}, d2), + getW(wF, wR, wC, ${d} + 1, d2), + getW(wF, wR, wC, ${d} + 2, d2) + ); + dotProd += dot(xValues, wValues); + } + } + } + } + setOutput(dotProd); + } + `}}class Kw{constructor(e,t=!1,s=null,n=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;const i=e.inHeight,r=e.inWidth,o=e.padInfo.top,a=e.padInfo.left,l=e.strideHeight,c=e.strideWidth,p=e.dilationHeight,u=e.dilationWidth,h=e.filterHeight,d=e.filterWidth,m=e.outChannels/e.inChannels;let f="",g="";s&&(n?f=`float activation(float a) { + float b = getPreluActivationWeightsAtOutCoords(); + ${s} + }`:f=` + float activation(float x) { + ${s} + } + `,g="result = activation(result);");const y=t?"result += getBiasAtOutCoords();":"";t&&this.variableNames.push("bias"),n&&this.variableNames.push("preluActivationWeights"),this.userCode=` + ${f} + + const ivec2 strides = ivec2(${l}, ${c}); + const ivec2 pads = ivec2(${o}, ${a}); + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords.x; + ivec2 xRCCorner = coords.yz * strides - pads; + int d2 = coords.w; + int d1 = d2 / ${m}; + int q = d2 - d1 * ${m}; + + int xRCorner = xRCCorner.x; + int xCCorner = xRCCorner.y; + + // Convolve x(?, ?, d1) with w(:, :, d1, q) to get y(yR, yC, d2). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + // TO DO(dsmilkov): Flatten the two for loops and vec4 the operations. + for (int wR = 0; wR < ${h}; wR++) { + int xR = xRCorner + wR * ${p}; + + if (xR < 0 || xR >= ${i}) { + continue; + } + + for (int wC = 0; wC < ${d}; wC++) { + int xC = xCCorner + wC * ${u}; + + if (xC < 0 || xC >= ${r}) { + continue; + } + + float xVal = getX(batch, xR, xC, d1); + float wVal = getW(wR, wC, d1, q); + dotProd += xVal * wVal; + } + } + + float result = dotProd; + ${y} + ${g} + setOutput(result); + } + `}}class Xw{constructor(e,t=!1,s=null,n=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e.outShape;const i=e.inHeight,r=e.inWidth,o=e.padInfo.top,a=e.padInfo.left,l=e.strideHeight,c=e.strideWidth,p=e.dilationHeight,u=e.dilationWidth,h=e.filterHeight,d=e.filterWidth,m=d;let f="int xR; int xC; int xCOffset;";for(let x=0;x= 0 && xR < ${i} && xCOffset >= 0 && xCOffset < ${r}) { + xTexelR${x}C${A} = getX(batch, xR, xCOffset, d1); + + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if(xCOffset + 1 >= ${r}) { + xTexelR${x}C${A}.zw = vec2(0.); + } + } else { + xTexelR${x}C${A} = vec4(0.); + } + + xCOffset = xC + 1 - 2; + if(xR >= 0 && xR < ${i} && xCOffset >= 0 && xCOffset < ${r}) { + vec4 previous = getX(batch, xR, xCOffset, d1); + + // Need to manually clear unused channels in case + // we're reading from recycled texture. + if(xCOffset + 1 >= ${r}) { + previous.zw = vec2(0.); + } + + xR${x}C${A} = vec4(previous.zw, xTexelR${x}C${A}.xy); + } else { + xR${x}C${A} = vec4(0, 0, xTexelR${x}C${A}.xy); + } + `:f+=` + if(xR >= 0 && xR < ${i} && xC >= 0 && xC < ${r}) { + xTexelR${x}C${A} = getX(batch, xR, xC, d1); + } else { + xTexelR${x}C${A} = vec4(0.); + } + + xR${x}C${A} = xTexelR${x}C${A}; + `,A+1= 0 && xR < ${i} && + xCOffset >= 0 && xCOffset < ${r}) { + xTexelR${x}C${A+2} = getX(batch, xR, xCOffset, d1); + } + `,u>1&&(f+=` + xCOffset -= 2; + if(xR >= 0 && xR < ${i} && + xCOffset >= 0 && xCOffset < ${r}) { + xTexelR${x}C${A} = getX(batch, xR, xCOffset, d1); + } else { + xTexelR${x}C${A} = vec4(0.); + } + `),f+=` + xR${x}C${A+1} = vec4( + xTexelR${x}C${A}.zw, xTexelR${x}C${A+2}.xy); + `):f+=` + xCOffset = xC + ${_}; + + if(xR >= 0 && xR < ${i} && + xCOffset >= 0 && xCOffset < ${r}) { + xTexelR${x}C${A+2} = getX(batch, xR, xCOffset, d1); + } + + xR${x}C${A+1} = xTexelR${x}C${A+2}; + `}}else A= 0 && xR < ${i}) { + `,a%2===1?(f+=` + xCOffset = xC + 1 - ${c}; + if(xCOffset >= 0 && xCOffset < ${r}) { + xTexelR${x}C${A} = getX(batch, xR, xCOffset, d1); + } else { + xTexelR${x}C${A} = vec4(0.); + } + + if(xC + 1 >= 0 && xC + 1 < ${r}) { + xTexelR${x}C${A+2} = getX(batch, xR, xC + 1, d1); + } else { + xTexelR${x}C${A+2} = vec4(0.); + } + + xR${x}C${A} = vec4( + xTexelR${x}C${A}.zw, xTexelR${x}C${A+2}.zw); + `,A+1= 0 && xCOffset < ${r}) { + final = getX(batch, xR, xCOffset, d1); + } + xR${x}C${A+1} = vec4(xTexelR${x}C${A+2}.xy, final.xy); + `)):(f+=` + if(xC >= 0 && xC < ${r}) { + xTexelR${x}C${A} = getX(batch, xR, xC, d1); + } else { + xTexelR${x}C${A} = vec4(0.); + } + + xCOffset = xC + ${c}; + if(xCOffset >= 0 && xCOffset < ${r}) { + xTexelR${x}C${A+2} = getX(batch, xR, xCOffset, d1); + } else { + xTexelR${x}C${A+2} = vec4(0.); + } + + xR${x}C${A} = vec4( + xTexelR${x}C${A}.xy, xTexelR${x}C${A+2}.xy); + `,A+11?[`${(o-1)/(p-1)}`,"(y2-y1) * height_ratio",`y1*${d} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${d}`],[w,x,T]=u>1?[`${(a-1)/(u-1)}`,"(x2-x1) * width_ratio",`x1*${m} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${m}`];this.userCode=` + const float height_ratio = float(${f}); + const float width_ratio = float(${w}); + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int y = coords[1]; + int x = coords[2]; + int d = coords[3]; + + // get box vals + float y1 = getBoxes(b,0); + float x1 = getBoxes(b,1); + float y2 = getBoxes(b,2); + float x2 = getBoxes(b,3); + + // get image in batch index + int bInd = round(getBoxInd(b)); + if(bInd < 0 || bInd >= ${r}) { + return; + } + + float height_scale = ${g}; + float width_scale = ${x}; + + float in_y = ${y}; + if( in_y < 0.0 || in_y > ${d} ) { + setOutput(float(${i})); + return; + } + float in_x = ${T}; + if( in_x < 0.0 || in_x > ${m} ) { + setOutput(float(${i})); + return; + } + + vec2 sourceFracIndexCR = vec2(in_x,in_y); + if(${h} == 1) { + // Compute the four integer indices. + ivec2 sourceFloorCR = ivec2(sourceFracIndexCR); + ivec2 sourceCeilCR = ivec2(ceil(sourceFracIndexCR)); + + float topLeft = getImage(b, sourceFloorCR.y, sourceFloorCR.x, d); + float bottomLeft = getImage(b, sourceCeilCR.y, sourceFloorCR.x, d); + float topRight = getImage(b, sourceFloorCR.y, sourceCeilCR.x, d); + float bottomRight = getImage(b, sourceCeilCR.y, sourceCeilCR.x, d); + + vec2 fracCR = sourceFracIndexCR - vec2(sourceFloorCR); + + float top = topLeft + (topRight - topLeft) * fracCR.x; + float bottom = bottomLeft + (bottomRight - bottomLeft) * fracCR.x; + float newValue = top + (bottom - top) * fracCR.y; + setOutput(newValue); + } else { + // Compute the coordinators of nearest neighbor point. + ivec2 sourceNearestCR = ivec2(floor( + sourceFracIndexCR + vec2(0.5,0.5))); + float newValue = getImage(b, sourceNearestCR.y, sourceNearestCR.x, d); + setOutput(newValue); + } + } + `}}class Jw{constructor(e,t,s){this.variableNames=["x"],this.outputShape=e;const n=e.length,i=t?"0.0":`getX(${HR(n,"coords")})`,r=e[e.length-1];let o="",a="";t?(o=s?`end != ${r-1}`:"end != 0",a=s?"end + 1":"end - 1"):(o=s?`end + pow2 < ${r}`:"end >= pow2",a=s?"end + pow2":"end - pow2"),this.userCode=` + uniform float index; + void main() { + ${Re(n)} coords = getOutputCoords(); + int end = ${YR(n,"coords")}; + float val = ${i}; + int pow2 = int(pow(2.0, index)); + if (${o}) { + int idx = ${a}; + ${YR(n,"coords")} = idx; + val += getX(${HR(n,"coords")}); + } + setOutput(val); + } + `}getCustomSetupFunc(e){return(t,s)=>{this.index==null&&(this.index=t.getUniformLocation(s,"index")),t.gl.uniform1f(this.index,e)}}}function HR(e,t){if(e===1)return`${t}`;if(e===2)return`${t}.x, ${t}.y`;if(e===3)return`${t}.x, ${t}.y, ${t}.z`;if(e===4)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw Error(`Cumulative sum for rank ${e} is not yet supported`)}function YR(e,t){if(e===1)return`${t}`;if(e===2)return`${t}.y`;if(e===3)return`${t}.z`;if(e===4)return`${t}.w`;throw Error(`Cumulative sum for rank ${e} is not yet supported`)}class KR{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=lo.DENSE;const t=co(e),s=at();this.outputShape=e,this.userCode=` + ivec3 outCoordsFromFlatIndex(int index) { + ${jn(["r","c","d"],e)} + return ivec3(r, c, d); + } + + void main() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${t[0]}, ${t[1]})); + int index = 4 * (resTexRC.x * ${t[1]} + resTexRC.y); + + vec4 result = vec4(0.); + + for (int i=0; i<4; i++) { + int flatIndex = index + i; + ivec3 rc = outCoordsFromFlatIndex(flatIndex); + result[i] = getA(rc.x, rc.y, rc.z); + } + + ${s.output} = result; + } + `}}class XR{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=lo.DENSE;const t=co(e),s=at();this.outputShape=e,this.userCode=` + ivec3 outCoordsFromFlatIndex(int index) { + ${jn(["r","c","d"],e)} + return ivec3(r, c, d); + } + + void main() { + ivec2 resTexRC = ivec2(resultUV.yx * + vec2(${t[0]}, ${t[1]})); + int index = 4 * (resTexRC.x * ${t[1]} + resTexRC.y); + + vec4 result = vec4(0.); + + for (int i=0; i<4; i++) { + int flatIndex = index + i; + ivec3 rc = outCoordsFromFlatIndex(flatIndex); + result[i] = getChannel(getA(rc.x, rc.y, rc.z), vec2(rc.y, rc.z)); + } + + ${s.output} = result; + } + `}}class JR{constructor(e,t,s){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=s,this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int h = ${this.getHeightCoordString()}; + int w = ${this.getWidthCoordString()}; + int d = ${this.getDepthCoordString()}; + + int in_h = h / ${t}; + int offset_h = imod(h, ${t}); + int in_w = w / ${t}; + int offset_w = imod(w, ${t}); + int offset_d = (offset_h * ${t} + offset_w) * + ${this.getOutputDepthSize()}; + int in_d = d + offset_d; + + float result = ${this.getInputSamplingString()}; + setOutput(result); + } + `}getHeightCoordString(){return this.dataFormat==="NHWC"?"coords[1]":"coords[2]"}getWidthCoordString(){return this.dataFormat==="NHWC"?"coords[2]":"coords[3]"}getDepthCoordString(){return this.dataFormat==="NHWC"?"coords[3]":"coords[1]"}getOutputDepthSize(){return this.dataFormat==="NHWC"?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return this.dataFormat==="NHWC"?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"}}class ZR{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode=` + void main() { + ivec2 coords = getOutputCoords(); + float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0; + setOutput(val); + } + `}}class QR{constructor(e){this.variableNames=["A"],this.outTexUsage=ns.DOWNLOAD;const t=at();this.outputShape=e,this.userCode=` + ${Sf} + + void main() { + float x = getAAtOutCoords(); + ${t.output} = encode_float(x); + } + `}}class e2{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=ns.DOWNLOAD;const t=at();this.outputShape=e,this.userCode=` + ${Sf} + + void main() { + ivec3 coords = getOutputCoords(); + float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z)); + ${t.output} = encode_float(x); + } + `}}class t2{constructor(e,t,s=!1){this.variableNames=["A"];const n=at(),[i,r]=t;this.outputShape=e;let o="result";s&&(o="floor(result * 255. + 0.5)"),this.userCode=` + ${Pl(e)} + + void main() { + ivec3 coords = getOutputCoords(); + + int flatIndex = getFlatIndex(coords); + int offset = imod(flatIndex, 4); + + flatIndex = idiv(flatIndex, 4, 1.); + + int r = flatIndex / ${r}; + int c = imod(flatIndex, ${r}); + vec2 uv = (vec2(c, r) + halfCR) / vec2(${r}.0, ${i}.0); + vec4 values = ${n.texture2D}(A, uv); + + float result; + + if(offset == 0) { + result = values[0]; + } else if(offset == 1) { + result = values[1]; + } else if(offset == 2) { + result = values[2]; + } else { + result = values[3]; + } + + ${n.output} = vec4(${o}, 0., 0., 0.); + } + `}}class s2{constructor(e,t,s=!1){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;const n=at(),[i,r]=t;this.outputShape=e;let o="",a="result";s&&(a="floor(result * 255. + 0.5)");for(let l=0;l<=1;l++)for(let c=0;c<=1;c++){const p=l*2+c;o+=` + localCoords = coords; + if(localCoords[2] + ${c} < ${e[2]}) { + localCoords[2] += ${c}; + if(localCoords[1] + ${l} < ${e[1]}) { + localCoords[1] += ${l}; + + flatIndex = getFlatIndex(localCoords); + offset = imod(flatIndex, 4); + + flatIndex = idiv(flatIndex, 4, 1.); + + r = flatIndex / ${r}; + c = imod(flatIndex, ${r}); + uv = (vec2(c, r) + halfCR) / vec2(${r}.0, ${i}.0); + values = ${n.texture2D}(A, uv); + + if(offset == 0) { + result[${p}] = values[0]; + } else if(offset == 1) { + result[${p}] = values[1]; + } else if(offset == 2) { + result[${p}] = values[2]; + } else { + result[${p}] = values[3]; + } + } + } + `}this.userCode=` + ${Pl(e)} + + void main() { + ivec3 coords = getOutputCoords(); + + vec4 result = vec4(0.); + int flatIndex, r, c, offset; + ivec3 localCoords; + vec2 uv; + vec4 values; + + ${o} + + ${n.output} = ${a}; + } + `}}const Zw={REAL:"return real * expR - imag * expI;",IMAG:"return real * expI + imag * expR;"};class Qw{constructor(e,t,s){this.variableNames=["real","imag"];const n=t[1];this.outputShape=t;const i=s?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,r=s?`${n}.0`:"1.0";this.userCode=` + const float exponentMultiplier = ${i}; + + float unaryOpComplex(float real, float expR, float imag, float expI) { + ${e} + } + + float mulMatDFT(int batch, int index) { + float indexRatio = float(index) / float(${n}); + float exponentMultiplierTimesIndexRatio = + exponentMultiplier * indexRatio; + + float result = 0.0; + + for (int i = 0; i < ${n}; i++) { + // x = (-2|2 * PI / N) * index * i; + float x = exponentMultiplierTimesIndexRatio * float(i); + float expR = cos(x); + float expI = sin(x); + float real = getReal(batch, i); + float imag = getImag(batch, i); + + result += + unaryOpComplex(real, expR, imag, expI) / ${r}; + } + + return result; + } + + void main() { + ivec2 coords = getOutputCoords(); + setOutput(mulMatDFT(coords[0], coords[1])); + } + `}}class n2{constructor(e,t){this.outputShape=[],this.variableNames=["x"],this.outputShape=e,this.userCode=` + uniform float value; + void main() { + // Input can be obtained from uniform value. + setOutput(value); + } + `}getCustomSetupFunc(e){return(t,s)=>{this.valueLoc==null&&(this.valueLoc=t.getUniformLocationNoThrow(s,"value")),t.gl.uniform1f(this.valueLoc,e)}}}class i2{constructor(e,t,s){this.variableNames=["A","indices"];const n=e.slice();n[s]=t,this.outputShape=n,this.rank=n.length;const i=Re(this.rank),r=V3(e,s);this.userCode=` + void main() { + ${i} resRC = getOutputCoords(); + setOutput(getA(${r})); + } + `}}function V3(e,t){const s=e.length;if(s>4)throw Error(`Gather for rank ${s} is not yet supported`);if(s===1)return"int(getIndices(resRC))";const n=["resRC.x","resRC.y","resRC.z","resRC.w"],i=[];for(let r=0;r1?"strides[j]":"strides";this.userCode=` + ${n} strides = ${n}(${this.strides}); + void main() { + ${i} coords = getOutputCoords(); + int flattenIndex = 0; + for (int j = 0; j < ${this.sliceDim}; j++) { + int index = round(getIndices(coords[0], j)); + flattenIndex += index * ${r}; + } + setOutput(getX(flattenIndex, coords[1])); + } + `}}function o2(e){const t=at(),s=`${t.version} + precision highp float; + ${t.attribute} vec3 clipSpacePos; + ${t.attribute} vec2 uv; + ${t.varyingVs} vec2 resultUV; + + void main() { + gl_Position = vec4(clipSpacePos, 1); + resultUV = uv; + }`;return g0(e,s)}function a2(e){const t=new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]);return x0(e,t)}function l2(e){const t=new Uint16Array([0,1,2,2,1,3]);return L0(e,t)}function wu(e,t,s,n,i,r){I0(t,s);const o=S0(e),a=e.TEXTURE_2D;return pe(e,()=>e.bindTexture(a,o)),pe(e,()=>e.texParameteri(a,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)),pe(e,()=>e.texParameteri(a,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),pe(e,()=>e.texParameteri(a,e.TEXTURE_MIN_FILTER,e.NEAREST)),pe(e,()=>e.texParameteri(a,e.TEXTURE_MAG_FILTER,e.NEAREST)),pe(e,()=>e.texImage2D(a,0,n,t,s,0,i,r,null)),pe(e,()=>e.bindTexture(e.TEXTURE_2D,null)),o}function ex(e){return e.internalFormatFloat}function c2(e,t,s,n){const[i,r]=pa(t,s);return wu(e,i,r,ex(n),n.textureFormatFloat,e.FLOAT)}function tx(e){return e.internalFormatHalfFloat}function p2(e,t,s,n){const[i,r]=pa(t,s);return wu(e,i,r,tx(n),n.textureFormatFloat,n.textureTypeHalfFloat)}function sx(e){return e.downloadTextureFormat}function u2(e,t,s,n){const[i,r]=pa(t,s);return wu(e,i,r,sx(n),e.RGBA,e.UNSIGNED_BYTE)}function nx(e){return e.internalFormatPackedFloat}function h2(e,t,s,n){const[i,r]=gi(t,s);return wu(e,i,r,nx(n),e.RGBA,e.FLOAT)}function ix(e){return e.internalFormatPackedHalfFloat}function d2(e,t,s,n){const[i,r]=gi(t,s);return wu(e,i,r,ix(n),e.RGBA,n.textureTypeHalfFloat)}function m2(e,t,s){const n=0,i=3*4,r=3*4+2*4;pe(e,()=>e.bindBuffer(e.ARRAY_BUFFER,s));const o=Mw(e,t,"clipSpacePos",s,3,r,n);return o&&Mw(e,t,"uv",s,2,r,i)}function f2(e,t,s,n,i,r){pe(e,()=>e.bindTexture(e.TEXTURE_2D,t));let o,a,l;i instanceof Uint8Array?(o=new Uint8Array(s*n*4),a=e.UNSIGNED_BYTE,l=e.RGBA):(o=new Float32Array(s*n*4),a=e.FLOAT,l=r.internalFormatPackedFloat),o.set(i),pe(e,()=>e.texImage2D(e.TEXTURE_2D,0,l,s,n,0,e.RGBA,a,o)),pe(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function g2(e,t,s){pe(e,()=>e.bindTexture(e.TEXTURE_2D,t)),s.data instanceof Uint8Array?pe(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,s.width,s.height,0,e.RGBA,e.UNSIGNED_BYTE,s.data)):pe(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,s)),pe(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function y2(e,t,s,n){const i=e.createBuffer();pe(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,i));const r=4,o=4,a=r*o*t*s;return pe(e,()=>e.bufferData(e.PIXEL_PACK_BUFFER,a,e.STREAM_READ)),pe(e,()=>e.readPixels(0,0,s,t,e.RGBA,e.FLOAT,0)),pe(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null)),i}function b2(e,t,s){const n=e,i=new Float32Array(s);return n.bindBuffer(n.PIXEL_PACK_BUFFER,t),n.getBufferSubData(n.PIXEL_PACK_BUFFER,0,i),n.bindBuffer(n.PIXEL_PACK_BUFFER,null),i}function w2(e,t,s,n){const[i,r]=pa(t,s),o=4,a=new Uint8Array(d0(t*s,o));return pe(e,()=>e.readPixels(0,0,i,r,n.downloadTextureFormat,e.UNSIGNED_BYTE,a)),new Float32Array(a.buffer)}function x2(e,t,s,n,i,r,o,a){const l=e,c=new Float32Array(m0(r,o));return l.bindBuffer(l.PIXEL_PACK_BUFFER,t),l.getBufferSubData(l.PIXEL_PACK_BUFFER,0,c),l.bindBuffer(l.PIXEL_PACK_BUFFER,null),c}function L2(e,t,s){const n=new Float32Array(t*s*4);return pe(e,()=>e.readPixels(0,0,s,t,e.RGBA,e.FLOAT,n)),n}class rx{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];const t=W().getNumber("WEBGL_VERSION");e!=null?(this.gl=e,Fw(t,e)):this.gl=nn(t);let s="WEBGL_color_buffer_float";const n="EXT_color_buffer_half_float";if(W().getNumber("WEBGL_VERSION")===1){const i="OES_texture_float",r="OES_texture_half_float";if(this.textureFloatExtension=yu(this.gl,i),rn(this.gl,r))this.textureHalfFloatExtension=yu(this.gl,r);else if(W().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.");if(this.colorBufferFloatExtension=this.gl.getExtension(s),rn(this.gl,n))this.colorBufferHalfFloatExtension=yu(this.gl,n);else if(W().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(s="EXT_color_buffer_float",rn(this.gl,s))this.colorBufferFloatExtension=this.gl.getExtension(s);else if(rn(this.gl,n))this.colorBufferHalfFloatExtension=this.gl.getExtension(n);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=a2(this.gl),this.indexBuffer=l2(this.gl),this.framebuffer=v0(this.gl),this.textureConfig=gu(this.gl,this.textureHalfFloatExtension)}get debug(){return W().getBool("DEBUG")}dispose(){if(this.disposed)return;this.program!=null&&console.warn("Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing."),this.outputTexture!=null&&console.warn("Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.");const e=this.gl;pe(e,()=>e.finish()),pe(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),pe(e,()=>e.deleteFramebuffer(this.framebuffer)),pe(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),pe(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),pe(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),c2(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),p2(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),u2(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),g2(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,s,n){this.throwIfDisposed(),f2(this.gl,e,t,s,n,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),d2(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),h2(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(Uw(this.gl,this.framebuffer),this.outputTexture=null),pe(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,s){return this.downloadMatrixDriver(e,()=>w2(this.gl,t,s,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,s,n,i,r){return x2(this.gl,e,t,s,n,i,r,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return b2(this.gl,e,t)}createBufferFromTexture(e,t,s){this.bindTextureToFrameBuffer(e);const n=y2(this.gl,t,s,this.textureConfig);return this.unbindTextureToFrameBuffer(),n}createAndWaitForFence(){const e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,s;if(W().getBool("WEBGL_FENCE_API_ENABLED")){const n=e,i=n.fenceSync(n.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),s=()=>{const r=n.clientWaitSync(i,0,0);return r===n.ALREADY_SIGNALED||r===n.CONDITION_SATISFIED},t=i}else W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),s=()=>this.isQueryAvailable(t,W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):s=()=>!0;return{query:t,isFencePassed:s}}downloadMatrixFromPackedTexture(e,t,s){return this.downloadMatrixDriver(e,()=>L2(this.gl,t,s))}createProgram(e){this.throwIfDisposed();const t=this.gl,s=y0(t,e),n=o2(t),i=b0(t);return pe(t,()=>t.attachShader(i,n)),pe(t,()=>t.attachShader(i,s)),w0(t,i),this.debug&&yf(t,i),this.vertexAttrsAreBound||(this.setProgram(i),this.vertexAttrsAreBound=m2(t,this.program,this.vertexBuffer)),i}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&pe(this.gl,()=>this.gl.deleteProgram(e))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&this.debug&&yf(this.gl,this.program),pe(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,s=!0){return this.throwIfDisposed(),s?T0(this.gl,e,t):A0(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),pe(this.gl,()=>this.gl.getAttribLocation(e,t))}getUniformLocationNoThrow(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)}setInputMatrixTexture(e,t,s){this.throwIfDisposed(),this.throwIfNoProgram(),N0(this.gl,e,t,s)}setOutputMatrixTexture(e,t,s){this.setOutputMatrixTextureDriver(e,s,t)}setOutputPackedMatrixTexture(e,t,s){this.throwIfDisposed();const[n,i]=gi(t,s);this.setOutputMatrixTextureDriver(e,n,i)}setOutputMatrixWriteRegion(e,t,s,n){this.setOutputMatrixWriteRegionDriver(s,e,n,t)}setOutputPackedMatrixWriteRegion(e,t,s,n){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){this.program!=null&&yf(this.gl,this.program),bu(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();const e=this.gl;this.debug&&this.debugValidate(),pe(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),pe(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=yu(this.gl,W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){const s=this.gl,n=this.getQueryTimerExtensionWebGL2(),i=s.createQuery();return s.beginQuery(n.TIME_ELAPSED_EXT,i),i}const e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if(W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){const t=this.gl,s=this.getQueryTimerExtensionWebGL2();t.endQuery(s.TIME_ELAPSED_EXT);return}const e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await N.repeatedTry(()=>this.disposed||this.isQueryAvailable(e,W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(t===0)return null;if(t===2){const s=this.gl,n=s.getQueryParameter(e,s.QUERY_RESULT);return n/1e6}else{const s=this.getQueryTimerExtensionWebGL1(),n=s.getQueryObjectEXT(e,s.QUERY_RESULT_EXT);return n/1e6}}isQueryAvailable(e,t){if(t===0)return!0;if(t===2){const s=this.gl,n=this.getQueryTimerExtensionWebGL2(),i=s.getQueryParameter(e,s.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),i&&!this.disjoint}else{const s=this.getQueryTimerExtensionWebGL1(),n=s.getQueryObjectEXT(e,s.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(s.GPU_DISJOINT_EXT)),n&&!this.disjoint}}pollFence(e){return new Promise(t=>{this.addItemToPoll(()=>e.isFencePassed(),()=>t())})}pollItems(){const e=G3(this.itemsToPoll.map(t=>t.isDoneFn));for(let t=0;t<=e;++t){const{resolveFn:s}=this.itemsToPoll[t];s()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){if(this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),this.itemsToPoll.length>1)return;N.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0))}bindTextureToFrameBuffer(e){this.throwIfDisposed(),bf(this.gl,e,this.framebuffer),this.debug&&bu(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(bf(this.gl,this.outputTexture,this.framebuffer),this.debug&&bu(this.gl)):Uw(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);const s=t();return this.unbindTextureToFrameBuffer(),s}setOutputMatrixTextureDriver(e,t,s){this.throwIfDisposed();const n=this.gl;bf(n,e,this.framebuffer),this.debug&&bu(n),this.outputTexture=e,pe(n,()=>n.viewport(0,0,t,s)),pe(n,()=>n.scissor(0,0,t,s))}setOutputMatrixWriteRegionDriver(e,t,s,n){this.throwIfDisposed(),pe(this.gl,()=>this.gl.scissor(e,t,s,n))}throwIfDisposed(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(this.program==null)throw new Error("No GPU program is currently set.")}}function G3(e){let t=0;for(;t{const f={logicalShape:d.shape,texShape:d.isUniform?null:d.texData.texShape,isUniform:d.isUniform,isPacked:d.isUniform?!1:d.texData.isPacked,flatOffset:null};return d.texData!=null&&d.texData.slice!=null&&d.texData.slice.flatOffset>0&&(f.flatOffset=d.texData.slice.flatOffset),{name:t.variableNames[m],shapeInfo:f}}),o=r.map(d=>d.shapeInfo),a={logicalShape:n.shape,texShape:n.texData.texShape,isUniform:!1,isPacked:n.texData.isPacked,flatOffset:null},l=Q0(r,a,i,t.packedInputs),c=e.createProgram(l);let p=null;const u=e.getUniformLocation(c,"NAN",!1);W().getNumber("WEBGL_VERSION")===1&&(p=e.getUniformLocation(c,"INFINITY",!1));const h={};for(let d=0;d{const i=s.logicalShape,r=t[n],o=r.shape;if(!N.arraysEqual(i,o))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${i} and ${o} must match`);if(s.isUniform&&r.isUniform)return;const a=s.texShape,l=r.isUniform?null:r.texData.texShape;if(!N.arraysEqual(a,l))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${a} and ${l} must match`)})}function v2(e,t,s,n,i){I2(t.inShapeInfos,s),I2([t.outShapeInfo],[n]);const r=n.texData.texture,o=n.texData.texShape;n.texData.isPacked?e.setOutputPackedMatrixTexture(r,o[0],o[1]):e.setOutputMatrixTexture(r,o[0],o[1]),e.setProgram(t.webGLProgram),W().getNumber("WEBGL_VERSION")===1&&(t.infLoc!==null&&e.gl.uniform1f(t.infLoc,Infinity)),t.nanLoc!==null&&e.gl.uniform1f(t.nanLoc,NaN),s.forEach((a,l)=>{const c=t.program.variableNames[l],p=t.uniformLocations[c],u=t.uniformLocations[`offset${c}`];if(p==null)return;if(a.isUniform){if(N.sizeFromShape(a.shape)<2)e.gl.uniform1f(p,a.uniformValues[0]);else{let h=a.uniformValues;h instanceof Float32Array||(h=new Float32Array(h)),e.gl.uniform1fv(p,h)}return}a.texData.slice!=null&&u!=null&&e.gl.uniform1i(u,a.texData.slice.flatOffset),e.setInputMatrixTexture(a.texData.texture,p,l)}),i!=null&&i(e,t.webGLProgram),e.executeProgram()}function T2(e,t,s){let n="";t.concat(s).forEach(o=>{const a=o.texData!=null&&o.texData.slice!=null&&o.texData.slice.flatOffset>0,l=o.isUniform?"uniform":o.texData.texShape;n+=`${o.shape}_${l}_${a}`});const i=e.userCode;let r=e.constructor.name;return r+="_"+n+"_"+i,r}class A2{constructor(e,t,s){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;const{filterWidth:n,inChannels:i,strideWidth:r,strideHeight:o,padInfo:a,outWidth:l,dilationWidth:c,dilationHeight:p,dataFormat:u}=s,{left:h,top:d}=a,m=i*n,f=at(),g=u==="channelsLast",y=g?0:1,w=g?1:2;let x="";for(let T=0;T<=1;T++)for(let A=0;A<=1;A++)x+=` + blockIndex = rc.y + ${A}; + pos = rc.x + ${T}; + + if(blockIndex < ${e[1]} && pos < ${e[0]}) { + offsetY = int(blockIndex / (${l})) * ${o} - ${d}; + d0 = offsetY + ${p} * (pos / ${m}); + + if(d0 < ${t[y]} && d0 >= 0) { + + offsetX = int(mod(float(blockIndex), ${l}.) * ${r}. - ${h}.); + d1 = offsetX + ${c} * (int(mod(float(pos), ${m}.) / ${i}.)); + + if(d1 < ${t[w]} && d1 >= 0) { + + ch = int(mod(float(pos), ${i}.)); + + if (${g}) { + innerDims = vec2(d1, ch); + result[${T*2+A}] = getChannel( + getA(d0, int(innerDims.x), + int(innerDims.y)), innerDims); + } else { + innerDims = vec2(d0, d1); + result[${T*2+A}] = getChannel( + getA(ch, int(innerDims.x), + int(innerDims.y)), innerDims); + } + } + } + } + `;this.userCode=` + void main() { + ivec2 rc = getOutputCoords(); + + vec4 result = vec4(0); + + int blockIndex, pos, offsetY, d0, offsetX, d1, ch; + vec2 innerDims; + + ${x} + + ${f.output} = result; + } + `}}class N2{constructor(e,t,s,n,i){this.variableNames=["x"],this.outputShape=[];const r=t,o=e[3]-1;this.outputShape=e;let a;const l=`float(${s}) + float(${n}) * sum`;i===.5?a=`inversesqrt(${l})`:i===1?a=`1.0/(${l})`:a=`exp(log(${l}) * float(-${i}));`,this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int r = coords[1]; + int c = coords[2]; + int d = coords[3]; + float x = getX(b, r, c, d); + float sum = 0.0; + for (int j = -${r}; j <= ${r}; j++) { + int idx = d + j; + if (idx >= 0 && idx <= ${o}) { + float z = getX(b, r, c, idx); + sum += z * z; + } + } + float val = x * ${a}; + setOutput(val); + } + `}}class C2{constructor(e,t,s,n,i){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=s,this.alpha=n,this.beta=i,this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int r = coords[1]; + int c = coords[2]; + + float result = 0.0; + for (int d = 0; d < ${this.depth}; ++d) { + int depthBegin = int(max(0.0, float(d - ${t}))); + int depthEnd = int(min(float(${this.depth}), + float(d + ${t} + 1))); + + const int MIN_DEPTH_BEGIN = 0; + const int MAX_DEPTH_END = ${this.depth}; + + float norm = 0.0; + for (int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k) { + if (k < depthBegin){ + continue; + } + else if (k >= depthBegin && k < depthEnd) { + norm += getInputImage(b, r, c, k) * getInputImage(b, r, c, k); + } + else { + break; + } + } + + norm = float(${n}) * norm + float(${s}); + + for(int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k){ + if (k < depthBegin){ + continue; + } + else if (k >= depthBegin && k < depthEnd){ + float dyi = -2.0 * float(${n}) + * float(${i}) + * getInputImage(b ,r ,c, k) * getOutputImage(b, r, c, d) + / norm; + if (k == d) { + dyi += pow(norm, -1.0 * ${i}); + } + if (k == coords[3]) { + dyi *= getDy(b, r, c, d); + result += dyi; + } + } + else { + break; + } + } + } + setOutput(result); + } + `}}class R2{constructor(e,t,s,n,i){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;const r=t,o=e[3]-1;this.outputShape=e;let a;const l=`float(${s}) + float(${n}) * sum`;i===.5?a=`inversesqrt(${l})`:i===1?a=`1.0/(${l})`:a=`exp(log(${l}) * float(-${i}));`,this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords.x; + int r = coords.y; + int c = coords.z; + int d = coords.w; + + bool hasNextCol = d < ${this.outputShape[3]}; + bool hasNextRow = c < ${this.outputShape[2]}; + + vec4 sum = vec4(0.); + vec4 xFragAtOutputCoords = getX(b, r, c, d); + + vec4 xAtOutputCoords = vec4( + getChannel(xFragAtOutputCoords, vec2(c, d)), + hasNextCol ? + getChannel(xFragAtOutputCoords, vec2(c, d + 1)) : 0.0, + hasNextRow ? + getChannel(xFragAtOutputCoords , vec2(c + 1, d)) : 0.0, + (hasNextRow && hasNextCol) ? + getChannel(xFragAtOutputCoords, vec2(c + 1, d + 1)) : 0.0 + ); + + int firstChannel = d - ${r}; + vec2 cache = vec2(0.); + if(firstChannel >= 0){ + vec4 firstChannelFrag = getX(b, r, c, firstChannel); + cache.x = getChannel(firstChannelFrag, vec2(c, firstChannel)); + if(hasNextRow){ + cache.y = getChannel(firstChannelFrag, vec2(c + 1, firstChannel)); + } + } + + ivec2 depth = ivec2(d, d + 1); + for (int j = - ${r}; j <= ${r}; j++) { + ivec2 idx = depth + j; + bvec2 aboveLowerBound = greaterThanEqual(idx, ivec2(0)); + bvec2 belowUpperBound = lessThanEqual(idx, ivec2(${o})); + + bool depthInRange = aboveLowerBound.x && belowUpperBound.x; + bool depthPlusOneInRange = aboveLowerBound.y && belowUpperBound.y; + + if(depthInRange || depthPlusOneInRange){ + vec4 z = vec4(0.); + vec4 xFragAtCurrentDepth; + z.xz = cache.xy; + if(depthPlusOneInRange && hasNextCol){ + xFragAtCurrentDepth = idx.y != d ? + getX(b, r, c, idx.y) : xFragAtOutputCoords; + z.y = getChannel(xFragAtCurrentDepth, vec2(c, idx.y)); + if(hasNextRow){ + z.w = getChannel(xFragAtCurrentDepth, vec2(c + 1, idx.y)); + } + } + cache.xy = z.yw; + sum += z * z; + } + } + vec4 result = xAtOutputCoords * ${a}; + setOutput(result); + } + `}}class O2{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;const t=e.strideHeight,s=e.strideWidth,n=e.dilationHeight,i=e.effectiveFilterHeight,r=e.effectiveFilterWidth,o=i-1-e.padInfo.top,a=r-1-e.padInfo.left,l=i*r-1;this.userCode=` + const ivec2 pads = ivec2(${o}, ${a}); + + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + + ivec2 dyRCCorner = coords.yz - pads; + int dyRCorner = dyRCCorner.x; + int dyCCorner = dyRCCorner.y; + + // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + for (int wR = 0; wR < ${i}; + wR += ${n}) { + float dyR = float(dyRCorner + wR) / ${t}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + for (int wC = 0; wC < ${r}; wC++) { + float dyC = float(dyCCorner + wC) / ${s}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + float dyValue = getDy(b, idyR, idyC, d); + int maxPosValue = ${l} - int(getMaxPos(b, idyR, idyC, d)); + + // Get the current value, check it against the value from the + // position matrix. + int curPosValue = wR * ${r} + wC; + float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0); + + dotProd += dyValue * mask; + } + } + setOutput(dotProd); + } + `}}class E2{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;const t=e.strideDepth,s=e.strideHeight,n=e.strideWidth,i=e.dilationDepth,r=e.dilationHeight,o=e.dilationWidth,a=e.effectiveFilterDepth,l=e.effectiveFilterHeight,c=e.effectiveFilterWidth,p=a-1-e.padInfo.front,u=l-1-e.padInfo.top,h=c-1-e.padInfo.left,d=a*l*c-1;this.userCode=` + const ivec3 pads = ivec3(${p}, ${u}, ${h}); + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int ch = coords.u; + + ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads; + int dyDCorner = dyCorner.x; + int dyRCorner = dyCorner.y; + int dyCCorner = dyCorner.z; + + // Convolve dy(?, ?, ?, ch) with pos mask(:, :, :, d) to get + // dx(xD, xR, xC, ch). + // ? = to be determined. : = across all values in that axis. + float dotProd = 0.0; + + for (int wD = 0; wD < ${a}; + wD += ${i}) { + float dyD = float(dyDCorner + wD) / ${t}.0; + + if (dyD < 0.0 || dyD >= ${e.outDepth}.0 || fract(dyD) > 0.0) { + continue; + } + int idyD = int(dyD); + + for (int wR = 0; wR < ${l}; + wR += ${r}) { + float dyR = float(dyRCorner + wR) / ${s}.0; + + if (dyR < 0.0 || dyR >= ${e.outHeight}.0 || + fract(dyR) > 0.0) { + continue; + } + int idyR = int(dyR); + + for (int wC = 0; wC < ${c}; + wC += ${o}) { + float dyC = float(dyCCorner + wC) / ${n}.0; + + if (dyC < 0.0 || dyC >= ${e.outWidth}.0 || + fract(dyC) > 0.0) { + continue; + } + int idyC = int(dyC); + + float dyValue = getDy(batch, idyD, idyR, idyC, ch); + int maxPosValue = ${d} - + int(getMaxPos(batch, idyD, idyR, idyC, ch)); + + // Get the current value, check it against the value from the + // position matrix. + int curPosValue = + wD * ${l} * ${c} + + wR * ${c} + wC; + float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0); + + dotProd += dyValue * mask; + } + } + } + setOutput(dotProd); + } + `}}class Nf{constructor(e,t,s=!1,n=!1,i=!1,r=null,o=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t;const a=s?e[1]:e[2],l=Math.ceil(a/2),c=s?"i * 2, rc.y":"rc.y, i * 2",p=n?"rc.z, i * 2":"i * 2, rc.z",u=s?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],h=n?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"];let d="",m="";r&&(o?d=`vec4 activation(vec4 a) { + vec4 b = getPreluActivationWeightsAtOutCoords(); + ${r} + }`:d=`vec4 activation(vec4 x) { + ${r} + }`,m="result = activation(result);");const f=i?"result += getBiasAtOutCoords();":"";i&&this.variableNames.push("bias"),o&&this.variableNames.push("preluActivationWeights"),this.userCode=` + ${d} + + const float sharedDimension = ${l}.0; + + vec4 dot2x2ARowBCol(ivec3 rc) { + vec4 result = vec4(0); + for (int i = 0; i < ${l}; i++) { + vec4 a = getMatrixA(rc.x, ${c}); + vec4 b = getMatrixB(rc.x, ${p}); + + // These swizzled products need to be separately added. + // See: https://github.com/tensorflow/tfjs/issues/1735 + result += (${u[0]} * ${h[0]}); + result += (${u[1]} * ${h[1]}); + } + return result; + } + + void main() { + ivec3 rc = getOutputCoords(); + vec4 result = dot2x2ARowBCol(rc); + + ${f} + + ${m} + + setOutput(result); + } + `}}class _2{constructor(e,t,s){this.variableNames=["probs"],this.outputShape=[e,s],this.userCode=` + uniform float seed; + + void main() { + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + + float r = random(seed); + float cdf = 0.0; + + for (int i = 0; i < ${t-1}; i++) { + cdf += getProbs(batch, i); + + if (r < cdf) { + setOutput(float(i)); + return; + } + } + + // If no other event happened, last event happened. + setOutput(float(${t-1})); + } + `}getCustomSetupFunc(e){return(t,s)=>{this.seedLoc==null&&(this.seedLoc=t.getUniformLocation(s,"seed")),t.gl.uniform1f(this.seedLoc,e)}}}class k2{constructor(e,t,s,n){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=` + void main() { + ivec2 coords = getOutputCoords(); + int index = round(getIndices(coords.x)); + setOutput(mix(float(${n}), float(${s}), + float(index == coords.y))); + } + `}}class D2{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outputShape=e;const t=e.length;if(t===0)this.userCode=` + void main() { + setOutput(vec4(getA(), 0., 0., 0.)); + } + `;else{const s=_t("rc",t),n=Re(t),i=q3(t,e,s),r=H3(t,e[e.length-1],e[e.length-2],s),o=Y3(e,s);this.userCode=` + void main() { + ${n} rc = getOutputCoords(); + + if(${i}) { + setOutput(vec4(0)); + } else { + ${r} + + setOutput(vec4(${o})); + } + } + `}}}function K3(e,t){const s=[];for(let n=0;n<=1;n++)for(let i=0;i<=1;i++){let r=`${n===0?"r":"rp1"}, ${i===0?"c":"cp1"}`;for(let o=2;o ${t[0]}`;let n="";for(let i=e-2;i= ${t[i]}`,i= ${t}; + bool rEdge = rp1 >= ${s}; + `}function Y3(e,t){const s=e.length,n=K3(s,t);return s===1?`getA(rc), + rc + 1 >= ${e[0]} ? 0. : getA(rc + 1), + 0, 0`:`getA(${n[0]}), + cEdge ? 0. : getA(${n[1]}), + rEdge ? 0. : getA(${n[2]}), + rEdge || cEdge ? 0. : getA(${n[3]})`}class F2{constructor(e,t,s){this.variableNames=["x"],this.outputShape=t.map((l,c)=>l[0]+e[c]+l[1]);const n=e.length,i=Re(n),r=t.map(l=>l[0]).join(","),o=t.map((l,c)=>l[0]+e[c]).join(","),a=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,n);if(n===1){this.userCode=` + int start = ${r}; + int end = ${o}; + + void main() { + int outC = getOutputCoords(); + if (outC < start || outC >= end) { + setOutput(float(${s})); + } else { + setOutput(getX(outC - start)); + } + } + `;return}this.userCode=` + ${i} start = ${i}(${r}); + ${i} end = ${i}(${o}); + + void main() { + ${i} outC = getOutputCoords(); + if (any(lessThan(outC, start)) || any(greaterThanEqual(outC, end))) { + setOutput(float(${s})); + } else { + ${i} coords = outC - start; + setOutput(getX(${a})); + } + } + `}}class M2{constructor(e,t,s){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((m,f)=>m[0]+e[f]+m[1]);const n=e.length,i=Re(n),r=t.map(m=>m[0]).join(","),o=t.map((m,f)=>m[0]+e[f]).join(","),a=_t("rc",n),l=_t("source",n),c=`${a[n-1]} < ${this.outputShape[n-1]}`,p=n===1?"source":`vec2(${l.slice(-2).join()})`,u=[`${i} rc = outputLoc;`,`${a[n-1]} += 1; + if(${c}) { + `,n===1?"":`} + rc = outputLoc; + ${a[n-2]} += 1; + if(${a[n-2]} < ${this.outputShape[n-2]}) {`,n===1?"":` ${a[n-1]} += 1; + if(${c}) {`],h=n===1?"rc < start || rc >= end":"any(lessThan(rc, start)) || any(greaterThanEqual(rc, end))";let d="";for(let m=0,f=n===1?2:4;m= ${e.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${u}; + wC += ${c}) { + int xC = xCCorner + wC; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + float value = getX(batch, xR, xC, d); + + // If a min / max value has already been found, use it. If not, + // use the current value. + float currMinMaxValue = mix( + value, minMaxValue, minMaxValueFound); + if (value ${E} currMinMaxValue) { + minMaxValue = value; + minMaxValueFound = 1.0; + minMaxPosition = ${n?i?f:g:`wR * ${u} + wC`}; + } + } + } + setOutput(float(minMaxPosition)); + } + `;return}const w="max";let x=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(x="avgValue / count");const T=Math.floor(r/4)*4,A=r%4,_=` + if (${m}) { + avgValue += dot(values, ones); + } else { + minMaxValue = ${w}(values, minMaxValue); + } + `;this.userCode=` + const ivec2 strides = ivec2(${o}, ${a}); + const ivec2 pads = ivec2(${h}, ${d}); + const float initializationValue = ${y}; + const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0); + + float count = 0.0; + + float getValue(int batch, int xR, int xC, int d) { + if (xC < 0 || xC >= ${e.inWidth}) { + return initializationValue; + } + count += 1.0; + return getX(batch, xR, xC, d); + } + + void main() { + ivec4 coords = getOutputCoords(); + int batch = coords[0]; + int d = coords[3]; + + ivec2 xRCCorner = coords.yz * strides - pads; + int xRCorner = xRCCorner.x; + int xCCorner = xRCCorner.y; + + // max/min x(?, ?, d) to get y(yR, yC, d). + // ? = to be determined + vec4 minMaxValue = vec4(${y}); + float avgValue = 0.0; + count = 0.0; + + for (int wR = 0; wR < ${p}; + wR += ${l}) { + int xR = xRCorner + wR; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${T}; wC += 4) { + int xC = xCCorner + wC * ${c}; + + vec4 values = vec4( + getValue(batch, xR, xC, d), + getValue(batch, xR, xC + ${c}, d), + getValue(batch, xR, xC + 2 * ${c}, d), + getValue(batch, xR, xC + 3 * ${c}, d) + ); + + ${_} + } + + int xC = xCCorner + ${T}; + if (${A===1}) { + vec4 values = vec4( + getValue(batch, xR, xC, d), + initializationValue, + initializationValue, + initializationValue + ); + + ${_} + } else if (${A===2}) { + vec4 values = vec4( + getValue(batch, xR, xC, d), + getValue(batch, xR, xC + ${c}, d), + initializationValue, + initializationValue + ); + + ${_} + } else if (${A===3}) { + vec4 values = vec4( + getValue(batch, xR, xC, d), + getValue(batch, xR, xC + ${c}, d), + getValue(batch, xR, xC + 2 * ${c}, d), + initializationValue + ); + + ${_} + } + } + setOutput(${x}); + } + `}}class Cf{constructor(e,t,s,n=!1,i=!1){if(this.variableNames=["x"],t==="avg"&&s)throw new Error("Cannot compute positions for average pool.");const r=e.filterWidth,o=e.strideDepth,a=e.strideHeight,l=e.strideWidth,c=e.dilationDepth,p=e.dilationHeight,u=e.dilationWidth,h=e.effectiveFilterDepth,d=e.effectiveFilterHeight,m=e.effectiveFilterWidth,f=e.padInfo.front,g=e.padInfo.top,y=e.padInfo.left;this.outputShape=e.outShape;const w=t==="avg";let x="0.0";if(w||(x="-1.0 / 1e-20"),s){const D=">=";this.userCode=` + const ivec3 strides = + ivec3(${o}, ${a}, ${l}); + const ivec3 pads = ivec3(${f}, ${g}, ${y}); + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int ch = coords.u; + + ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads; + int xDCorner = xCorner.x; + int xRCorner = xCorner.y; + int xCCorner = xCorner.z; + + // max/min x(?, ?, ?, ch) to get y(yD, yR, yC, ch). + // ? = to be determined + float minMaxValue = 0.0; + float minMaxValueFound = 0.0; + int minMaxPosition = 0; + + for (int wD = 0; wD < ${h}; + wD += ${c}) { + int xD = xDCorner + wD; + + if (xD < 0 || xD >= ${e.inDepth}) { + continue; + } + + for (int wR = 0; wR < ${d}; + wR += ${p}) { + int xR = xRCorner + wR; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${m}; + wC += ${u}) { + int xC = xCCorner + wC; + + if (xC < 0 || xC >= ${e.inWidth}) { + continue; + } + + float value = getX(batch, xD, xR, xC, ch); + + // If a min / max value has already been found, use it. If not, + // use the current value. + float currMinMaxValue = mix( + value, minMaxValue, minMaxValueFound); + if (value ${D} currMinMaxValue) { + minMaxValue = value; + minMaxValueFound = 1.0; + minMaxPosition = ${n?i?`(((batch * ${e.inDepth} + xD) * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`((xD * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + ch`:`wD * ${d} * ${m} + + wR * ${m} + wC`}; + } + } + } + } + setOutput(float(minMaxPosition)); + } + `;return}const T="max";let A=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(A="avgValue / count");const _=Math.floor(r/4)*4,E=r%4,F=` + if (${w}) { + avgValue += dot(values, ones); + } else { + minMaxValue = ${T}(values, minMaxValue); + } + `;this.userCode=` + const ivec3 strides = + ivec3(${o}, ${a}, ${l}); + const ivec3 pads = ivec3(${f}, ${g}, ${y}); + const float initializationValue = ${x}; + const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0); + + float count = 0.0; + + float getValue(int batch, int xD, int xR, int xC, int ch) { + if (xC < 0 || xC >= ${e.inWidth}) { + return initializationValue; + } + count += 1.0; + return getX(batch, xD, xR, xC, ch); + } + + void main() { + ivec5 coords = getOutputCoords(); + int batch = coords.x; + int ch = coords.u; + + ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads; + int xDCorner = xCorner.x; + int xRCorner = xCorner.y; + int xCCorner = xCorner.z; + + // max/min x(?, ?, ?, d) to get y(yD, yR, yC, ch). + // ? = to be determined + vec4 minMaxValue = vec4(${x}); + float avgValue = 0.0; + count = 0.0; + + for (int wD = 0; wD < ${h}; + wD += ${c}) { + int xD = xDCorner + wD; + + if (xD < 0 || xD >= ${e.inDepth}) { + continue; + } + + for (int wR = 0; wR < ${d}; + wR += ${p}) { + int xR = xRCorner + wR; + + if (xR < 0 || xR >= ${e.inHeight}) { + continue; + } + + for (int wC = 0; wC < ${_}; wC += 4) { + int xC = xCCorner + wC * ${u}; + + vec4 values = vec4( + getValue(batch, xD, xR, xC, ch), + getValue(batch, xD, xR, xC + ${u}, ch), + getValue(batch, xD, xR, xC + 2 * ${u}, ch), + getValue(batch, xD, xR, xC + 3 * ${u}, ch) + ); + + ${F} + } + + int xC = xCCorner + ${_}; + if (${E===1}) { + vec4 values = vec4( + getValue(batch, xD, xR, xC, ch), + initializationValue, + initializationValue, + initializationValue + ); + + ${F} + } else if (${E===2}) { + vec4 values = vec4( + getValue(batch, xD, xR, xC, ch), + getValue(batch, xD, xR, xC + ${u}, ch), + initializationValue, + initializationValue + ); + + ${F} + } else if (${E===3}) { + vec4 values = vec4( + getValue(batch, xD, xR, xC, ch), + getValue(batch, xD, xR, xC + ${u}, ch), + getValue(batch, xD, xR, xC + 2 * ${u}, ch), + initializationValue + ); + + ${F} + } + } + setOutput(${A}); + } + } + `}}class Rf{constructor(e,t){this.variableNames=["x"];const{windowSize:s,batchSize:n,inSize:i,outSize:r}=e;this.outputShape=[n,r];let o="0.0",a="";t==="prod"?o="1.0":t==="min"?(o="1.0 / 1e-20",a="min"):t==="max"&&(o="-1.0 / 1e-20",a="max");let l=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="sum"?l="sumValue":t==="prod"?l="prodValue":t==="all"?l="allValue":t==="any"&&(l="anyValue");const c=Math.floor(s/4)*4,p=s%4;let u=` + if (${t==="sum"}) { + sumValue += dot(values, ones); + } else if (${t==="prod"}) { + vec2 tmp = vec2(values[0], values[1]) * vec2(values[2], values[3]); + prodValue *= tmp[0] * tmp[1]; + } else { + minMaxValue = ${a}(values, minMaxValue); + } + `,h="vec4";t==="all"?(o="1.0",u=` + bool reducedAllValue = all(values); + float floatedReducedAllValue = float(reducedAllValue); + allValue = float(allValue >= 1.0 && floatedReducedAllValue >= 1.0); + `,h="bvec4"):t==="any"&&(o="0.0",u=` + bool reducedAnyValue = any(values); + float floatedReducedAnyValue = float(reducedAnyValue); + anyValue = float(anyValue >= 1.0 || floatedReducedAnyValue >= 1.0); + `,h="bvec4");let d="";i%s>0&&(d=` + if (inIdx < 0 || inIdx >= ${i}) { + return initializationValue; + } + `),this.userCode=` + const float initializationValue = ${o}; + const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0); + + float getValue(int batch, int inIdx) { + ${d} + return getX(batch, inIdx); + } + + void main() { + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + int outIdx = coords[1]; + int inOffset = outIdx * ${s}; + + vec4 minMaxValue = vec4(${o}); + float prodValue = 1.0; + float sumValue = 0.0; + float allValue = 1.0; + float anyValue = 0.0; + + for (int i = 0; i < ${c}; i += 4) { + int inIdx = inOffset + i; + ${h} values = ${h}( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + getValue(batch, inIdx + 2), + getValue(batch, inIdx + 3) + ); + + ${u} + } + + int inIdx = inOffset + ${c}; + if (${p===1}) { + ${h} values = ${h}( + getValue(batch, inIdx), + initializationValue, + initializationValue, + initializationValue + ); + + ${u} + } else if (${p===2}) { + ${h} values = ${h}( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + initializationValue, + initializationValue + ); + + ${u} + } else if (${p===3}) { + ${h} values = ${h}( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + getValue(batch, inIdx + 2), + initializationValue + ); + + ${u} + } + setOutput(${l}); + } + `}}class Of{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;let s="";for(let n=0;n<4;n++){let i="thisRC = rc;";n%2===1&&(i+="thisRC.z += 1;"),n>1&&(i+="thisRC.y += 1;"),s+=` + ${i} + ${n>0?"if(thisRC.y < rows && thisRC.z < cols){":""} + int flatIndex = getFlatIndex(thisRC); + + ivec3 inputRC = inputCoordsFromReshapedOutCoords(flatIndex); + vec2 inputRCInnerDims = vec2(float(inputRC.y),float(inputRC.z)); + + result[${n}] = + getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims); + ${n>0?"}":""} + `}this.userCode=` + ${X3(t)} + ${Pl(e)} + + void main() { + ivec3 rc = getOutputCoords(); + + vec4 result = vec4(0.); + + ivec3 thisRC; + int rows = ${e[1]}; + int cols = ${e[2]}; + + ${s} + + setOutput(result); + } + `}}function X3(e){const t=jn(["r","c","d"],e);return` + ivec3 inputCoordsFromReshapedOutCoords(int index) { + ${t} + return ivec3(r, c, d); + } + `}class U2{constructor(e,t,s){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t.shape;const[,n,i]=t.shape,[,r,o]=e.shape,a=[s&&r>1?n-1:n,s&&o>1?i-1:i],l=[s&&r>1?r-1:r,s&&o>1?o-1:o],c=a[0]/l[0],p=a[1]/l[1],u=1/c,h=1/p,d=Math.ceil(u)*2+2,m=Math.ceil(h)*2+2;this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + int r = coords[1]; + int c = coords[2]; + + float accumulator = 0.0; + + const float heightScale = float(${c}); + const float widthScale = float(${p}); + + const float invHeightScale = float(${u}); + const float invWidthScale = float(${h}); + + const int winHeight = int(${d}); + const int winWidth = int(${m}); + + // Compute bounds for where in dy we will look + float startRLerp = floor(float(r) * invHeightScale); + int startDyR = int(startRLerp - float(winHeight / 2)); + + float startCLerp = floor(float(c) * invWidthScale); + int startDyC = int(startCLerp - float(winWidth / 2)); + + // Loop over dy + for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) { + int dyR = dyROffset + startDyR; + + // Guard against the window exceeding the bounds of dy + if (dyR < 0 || dyR >= ${r}) { + continue; + } + + for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) { + int dyC = dyCOffset + startDyC; + + // Guard against the window exceeding the bounds of dy + if (dyC < 0 || dyC >= ${o}) { + continue; + } + + float dxR = float(dyR) * heightScale; + int topDxRIndex = int(floor(dxR)); + int bottomDxRIndex = int(min(ceil(dxR), ${n-1}.0)); + float dxRLerp = dxR - float(topDxRIndex); + float inverseDxRLerp = 1.0 - dxRLerp; + + float dxC = float(dyC) * widthScale; + int leftDxCIndex = int(floor(dxC)); + int rightDxCIndex = int(min(ceil(dxC), ${i-1}.0)); + float dxCLerp = dxC - float(leftDxCIndex); + float inverseDxCLerp = 1.0 - dxCLerp; + + if (r == topDxRIndex && c == leftDxCIndex) { + // topLeft + accumulator += + getDy(b, dyR, dyC, d) * inverseDxRLerp * inverseDxCLerp; + } + + if (r == topDxRIndex && c == rightDxCIndex) { + // topRight + accumulator += getDy(b, dyR, dyC, d) * inverseDxRLerp * dxCLerp; + } + + if (r == bottomDxRIndex && c == leftDxCIndex) { + // bottomLeft + accumulator += getDy(b, dyR, dyC, d) * dxRLerp * inverseDxCLerp; + } + + if (r == bottomDxRIndex && c == rightDxCIndex) { + // bottomRight + accumulator += getDy(b, dyR, dyC, d) * dxRLerp * dxCLerp; + } + } + } + // End loop over dy + + setOutput(accumulator); + } + `}}class $2{constructor(e,t,s,n){this.variableNames=["A"],this.outputShape=[];const[i,r,o,a]=e;this.outputShape=[i,t,s,a];const l=[n&&t>1?r-1:r,n&&s>1?o-1:o],c=[n&&t>1?t-1:t,n&&s>1?s-1:s];this.userCode=` + const vec2 effectiveInputOverOutputRatioRC = vec2( + ${l[0]/c[0]}, + ${l[1]/c[1]}); + const vec2 inputShapeRC = vec2(${r}.0, ${o}.0); + + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + ivec2 yRC = coords.yz; + + // Fractional source index. + vec2 sourceFracIndexRC = vec2(yRC) * effectiveInputOverOutputRatioRC; + + // Compute the four integer indices. + ivec2 sourceFloorRC = ivec2(sourceFracIndexRC); + ivec2 sourceCeilRC = ivec2( + min(inputShapeRC - 1.0, ceil(sourceFracIndexRC))); + + float topLeft = getA(b, sourceFloorRC.x, sourceFloorRC.y, d); + float bottomLeft = getA(b, sourceCeilRC.x, sourceFloorRC.y, d); + float topRight = getA(b, sourceFloorRC.x, sourceCeilRC.y, d); + float bottomRight = getA(b, sourceCeilRC.x, sourceCeilRC.y, d); + + vec2 fracRC = sourceFracIndexRC - vec2(sourceFloorRC); + + float top = topLeft + (topRight - topLeft) * fracRC.y; + float bottom = bottomLeft + (bottomRight - bottomLeft) * fracRC.y; + float newValue = top + (bottom - top) * fracRC.x; + + setOutput(newValue); + } + `}}class W2{constructor(e,t,s,n){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];const[i,r,o,a]=e;this.outputShape=[i,t,s,a];const l=[n&&t>1?r-1:r,n&&s>1?o-1:o],c=[n&&t>1?t-1:t,n&&s>1?s-1:s];this.userCode=` + const vec3 effectiveInputOverOutputRatioRC = vec3( + ${l[0]/c[0]}, + ${l[1]/c[1]}, + ${l[1]/c[1]}); + const vec3 inputShapeRC = vec3(${r}.0, ${o}.0, + ${o}.0); + + float getAValue(int b, int r, int c, int d) { + return getChannel(getA(b, r, c, d), vec2(c, d)); + } + + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + // Calculate values for next column in yRC.z. + ivec3 yRC = coords.yzz + ivec3(0, 0, 1); + + // Fractional source index. + vec3 sourceFracIndexRC = vec3(yRC) * effectiveInputOverOutputRatioRC; + + // Compute the four integer indices. + ivec3 sourceFloorRC = ivec3(sourceFracIndexRC); + ivec3 sourceCeilRC = ivec3( + min(inputShapeRC - 1.0, ceil(sourceFracIndexRC))); + + // Should we calculate next column and row elements in 2x2 packed cell. + bool hasNextCol = d < ${a-1}; + bool hasNextRow = coords.z < ${s-1}; + + // In parallel, construct four corners for all four components in + // packed 2x2 cell. + vec4 topLeft = vec4( + getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d), + hasNextCol ? getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d + 1) + : 0.0, + hasNextRow ? getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d) + : 0.0, + (hasNextRow && hasNextCol) ? + getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d + 1) : 0.0); + + vec4 bottomLeft = vec4( + getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d), + hasNextCol ? getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d + 1) + : 0.0, + hasNextRow ? getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d) + : 0.0, + (hasNextRow && hasNextCol) ? + getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d + 1) : 0.0); + + vec4 topRight = vec4( + getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d), + hasNextCol ? getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d + 1) + : 0.0, + hasNextRow ? getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d) + : 0.0, + (hasNextRow && hasNextCol) ? + getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d + 1) : 0.0); + + vec4 bottomRight = vec4( + getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d), + hasNextCol ? getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d + 1) + : 0.0, + hasNextRow ? getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d) + : 0.0, + (hasNextRow && hasNextCol) ? + getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d + 1) : 0.0); + + vec3 fracRC = sourceFracIndexRC - vec3(sourceFloorRC); + + vec4 top = mix(topLeft, topRight, fracRC.yyzz); + vec4 bottom = mix(bottomLeft, bottomRight, fracRC.yyzz); + vec4 newValue = mix(top, bottom, fracRC.x); + + setOutput(newValue); + } + `}}class z2{constructor(e,t,s){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t.shape;const[,n,i]=t.shape,[,r,o]=e.shape,a=[s&&r>1?n-1:n,s&&o>1?i-1:i],l=[s&&r>1?r-1:r,s&&o>1?o-1:o],c=a[0]/l[0],p=a[1]/l[1],u=1/c,h=1/p,d=Math.ceil(u)*2+2,m=Math.ceil(h)*2+2;this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + int r = coords[1]; + int c = coords[2]; + + float accumulator = 0.0; + + const float heightScale = float(${c}); + const float widthScale = float(${p}); + + const float invHeightScale = float(${u}); + const float invWidthScale = float(${h}); + + const int winHeight = int(${d}); + const int winWidth = int(${m}); + + // Compute bounds for where in dy we will look + float startRLerp = floor(float(r) * invHeightScale); + int startDyR = int(floor(startRLerp - float(winHeight / 2))); + + float startCLerp = floor(float(c) * invWidthScale); + int startDyC = int(floor(startCLerp - float(winWidth / 2))); + + // Loop over dy + for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) { + int dyR = dyROffset + startDyR; + + // Guard against the window exceeding the bounds of dy + if (dyR < 0 || dyR >= ${r}) { + continue; + } + + for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) { + int dyC = dyCOffset + startDyC; + + // Guard against the window exceeding the bounds of dy + if (dyC < 0 || dyC >= ${o}) { + continue; + } + + float sourceFracRow = + float(${a[0]}) * + (float(dyR) / float(${l[0]})); + + float sourceFracCol = + float(${a[1]}) * + (float(dyC) / float(${l[1]})); + + int sourceNearestRow = int(min( + float(int(${n}) - 1), + ${s} ? float(round(sourceFracRow)) : + float(floor(sourceFracRow)))); + + int sourceNearestCol = int(min( + float(int(${i}) - 1), + ${s} ? float(round(sourceFracCol)) : + float(floor(sourceFracCol)))); + + if (r == sourceNearestRow && c == sourceNearestCol) { + accumulator += getDy(b, dyR, dyC, d); + } + } + } + // End loop over dy + + setOutput(accumulator); + } + `}}class P2{constructor(e,t,s,n){this.variableNames=["A"],this.outputShape=[];const[i,r,o,a]=e;this.outputShape=[i,t,s,a];const l=[n&&t>1?r-1:r,n&&s>1?o-1:o],c=[n&&t>1?t-1:t,n&&s>1?s-1:s],p=n?"0.5":"0.0";this.userCode=` + const vec2 effectiveInputOverOutputRatioRC = vec2( + ${l[0]/c[0]}, + ${l[1]/c[1]}); + const vec2 inputShapeRC = vec2(${r}.0, ${o}.0); + + void main() { + ivec4 coords = getOutputCoords(); + int b = coords[0]; + int d = coords[3]; + ivec2 yRC = coords.yz; + + // Fractional source index. + vec2 sourceFracIndexRC = vec2(yRC) * effectiveInputOverOutputRatioRC; + + // Compute the coordinators of nearest neighbor point. + ivec2 sourceNearestRC = ivec2( + min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${p}))); + + float newValue = getA(b, sourceNearestRC.x, sourceNearestRC.y, d); + + setOutput(newValue); + } + `}}class B2{constructor(e,t){this.variableNames=["x"];const s=e.length;if(s>4)throw new Error(`WebGL backend: Reverse of rank-${s} tensor is not yet supported`);if(this.outputShape=e,s===1){this.userCode=` + void main() { + int coord = getOutputCoords(); + setOutput(getX(${e[0]} - coord - 1)); + } + `;return}const n=o=>t.indexOf(o)!==-1&&e[o]!==1?`${e[o]} - coords[${o}] - 1`:`coords[${o}]`,i=e.map((o,a)=>n(a)).join(","),r=Re(s);this.userCode=` + void main() { + ${r} coords = getOutputCoords(); + setOutput(getX(${i})); + } + `}}class j2{constructor(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;const s=e.length;if(s>4)throw new Error(`WebGL backend: Reverse of rank-${s} tensor is not yet supported`);this.outputShape=e;const n=_t("rc",s),i=`${n[s-1]} + 1 < ${this.outputShape[s-1]}`,r=`${n[s-2]} + 1 < ${this.outputShape[s-2]}`,o=Re(s);s===1?this.userCode=` + void main(){ + int rc = getOutputCoords(); + vec4 result = vec4(0.); + result.r = getChannel(getX(${e[0]} - rc - 1), + ${e[0]} - rc - 1); + if(${i}){ + result.g = getChannel(getX(${e[0]} - (rc + 1) - 1), + ${e[0]} - (rc + 1) - 1); + } + setOutput(result); + } + `:this.userCode=` + void main() { + ${o} rc = getOutputCoords(); + vec4 result = vec4(0.); + result.r = ${a(n.slice())}; + if(${i}){ + result.g = ${l(n.slice())}; + } + if(${r}) { + result.b = ${c(n.slice())}; + if(${i}) { + result.a = ${p(n.slice())}; + } + } + setOutput(result); + } + `;function a(d){return u(d)}function l(d){return d[s-1]="("+d[s-1]+" + 1)",u(d)}function c(d){return d[s-2]="("+d[s-2]+" + 1)",u(d)}function p(d){return d[s-1]="("+d[s-1]+" + 1)",d[s-2]="("+d[s-2]+" + 1)",u(d)}function u(d){const m=e.map((y,w)=>h(w,d)),f=m.join(","),g=m.slice(-2).join(",");return`getChannel(getX(${f}), vec2(${g}))`}function h(d,m){return t.indexOf(d)!==-1&&e[d]!==1?`${e[d]} - ${m[d]} - 1`:`${m[d]}`}}}class ox{constructor(e,t,s,n,i,r,o=!0){this.variableNames=["updates","indices","defaultValue"],this.outputShape=r;const a=Re(i.length),l=Re(r.length);let c="";s===1?c="i":s===2&&(c="i, j");const p=`getIndices(${c})`;let u="";n===1?u="i":n===2&&(u="i, coords[1]");const h=`getUpdates(${u})`,d=t>1?"strides[j]":"strides";this.userCode=` + ${a} strides = ${a}(${i}); + + void main() { + ${l} coords = getOutputCoords(); + float sum = 0.0; + bool found = false; + for (int i = 0; i < ${e}; i++) { + int flattenedIndex = 0; + for (int j = 0; j < ${t}; j++) { + int index = round(${p}); + flattenedIndex += index * ${d}; + } + if (flattenedIndex == coords[0]) { + sum += ${h}; + found = true; + } + } + setOutput(mix(getDefaultValue(), sum, float(found))); + } + `}}class V2{constructor(e,t){this.variableNames=["x","segmentIds"];const s=e.windowSize,n=e.batchSize,i=e.inSize,r=e.numSegments,o=r*Math.ceil(i/s);this.outputShape=[n,o];const a="0.0",l="sumValue",c=Math.floor(s/4)*4,p=s%4,u=` + sumValue += dot(values, segFilter); + `;let h="";i%s>0&&(h=` + if (inIdx < 0 || inIdx >= ${i}) { + return initializationValue; + } + `);let d="";i%s>0&&(d=` + if (inIdx < 0 || inIdx >= ${i}) { + return -1.0; + } + `),this.userCode=` + const float initializationValue = ${a}; + + float getValue(int batch, int inIdx) { + ${h} + return getX(batch, inIdx); + } + + float getSegmentIdAtIndex(int inIdx) { + ${d} + return getSegmentIds(inIdx); + } + + void main() { + ivec2 coords = getOutputCoords(); + int batch = coords[0]; + int outIdx = coords[1]; + int inOffset = int(floor(float(outIdx) / float( + ${r})) * float(${s})); + int currentSeg = int(mod(float(outIdx), float(${r}))); + + float sumValue = 0.0; + + for (int i = 0; i < ${c}; i += 4) { + int inIdx = inOffset + i; + vec4 values = vec4( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + getValue(batch, inIdx + 2), + getValue(batch, inIdx + 3) + ); + + vec4 segFilter = vec4( + int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 3)) == currentSeg ? 1 : 0 + ); + + ${u} + } + + int inIdx = inOffset + ${c}; + if (${p===1}) { + vec4 values = vec4( + getValue(batch, inIdx), + initializationValue, + initializationValue, + initializationValue + ); + + int inIdxSeg = int(getSegmentIdAtIndex(inIdx)); + + vec4 segFilter = vec4( + int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0, + 0, + 0, + 0 + ); + + ${u} + } else if (${p===2}) { + vec4 values = vec4( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + initializationValue, + initializationValue + ); + + vec4 segFilter = vec4( + int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0, + 0, + 0 + ); + + ${u} + } else if (${p===3}) { + vec4 values = vec4( + getValue(batch, inIdx), + getValue(batch, inIdx + 1), + getValue(batch, inIdx + 2), + initializationValue + ); + + vec4 segFilter = vec4( + int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0, + int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0, + 0 + ); + + ${u} + } + setOutput(${l}); + } + `}}class G2{constructor(e,t,s){this.variableNames=["c","a","b"],this.outputShape=t;let n,i;if(s>4)throw Error(`Where for rank ${s} is not yet supported`);if(s===1)i="resRC",n="resRC";else{const o=["resRC.x","resRC.y","resRC.z","resRC.w"],a=[],l=[];for(let c=0;c= 1.0) { + setOutput(getA(${i})); + } else { + setOutput(getB(${i})); + } + } + `}}class q2{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;const t=Re(this.rank),s=`uniform int start[${this.rank}];`,n=J3(this.rank);let i;const r=e.map((o,a)=>`sourceLoc.${ax[a]} = start[${a}] + coords.${ax[a]};`);i=` + ${t} sourceLoc; + ${t} coords = getOutputCoords(); + ${r.join(` +`)} + `,this.userCode=` + ${s} + void main() { + ${i} + setOutput(getSource(${n})); + } + `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,s)=>{if(this.startLoc==null&&(this.startLoc=t.getUniformLocationNoThrow(s,"start"),this.startLoc==null))return;t.gl.uniform1iv(this.startLoc,e)}}}const ax=["x","y","z","w","u","v"];function J3(e){if(e===1)return"sourceLoc";if(e<=6)return ax.slice(0,e).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}class H2{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length;const t=Re(this.rank),s=_t("coords",this.rank),n=_t("sourceLoc",this.rank),i=this.rank===1?"sourceLoc":`vec2(${n.slice(-2).join()})`,r=`getChannel(getSource(${n.join()}), ${i})`,o=` + result.x = ${r}; + if (++${s[this.rank-1]} < ${e[this.rank-1]}) { + ++${n[this.rank-1]}; + result.y = ${r}; + --${n[this.rank-1]}; + } + `,a=this.rank===1?"":` + --${s[this.rank-1]}; + if (++${s[this.rank-2]} < ${e[this.rank-2]}) { + ++${n[this.rank-2]}; + result.z = ${r}; + if (++${s[this.rank-1]} < ${e[this.rank-1]}) { + ++${n[this.rank-1]}; + result.w = ${r}; + } + } + `,l=this.rank<=4?`sourceLoc = coords + + ${t}(${e.map((c,p)=>`start[${p}]`).join()});`:e.map((c,p)=>`${n[p]} = ${s[p]} + start[${p}];`).join(` +`);this.userCode=` + uniform int start[${this.rank}]; + void main() { + ${t} coords = getOutputCoords(); + ${t} sourceLoc; + ${l} + vec4 result = vec4(0.); + ${o} + ${a} + setOutput(result); + } + `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,s)=>{if(this.startLoc==null&&(this.startLoc=t.getUniformLocationNoThrow(s,"start"),this.startLoc==null))return;t.gl.uniform1iv(this.startLoc,e)}}}class Y2{constructor(e,t,s){this.variableNames=["x"],this.outputShape=s;const n=s.length,i=Re(s.length),r=Re(s.length);let o="";if(n===1)o="coords * strides + begin";else{let a=0;o=s.map((l,c)=>(a++,s.length===1?`coords * strides[${c}] + begin[${c}]`:`coords[${a-1}] * strides[${c}] + begin[${c}]`)).join(",")}this.userCode=` + ${i} begin = ${i}(${e}); + ${i} strides = ${i}(${t}); + + void main() { + ${r} coords = getOutputCoords(); + setOutput(getX(${o})); + } + `}}class Z2{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}acquireTexture(e,t,s){const n=X2(t,s),i=J2(e,n,s);i in this.freeTextures||(this.freeTextures[i]=[]),i in this.usedTextures||(this.usedTextures[i]=[]);const r=K2(e,n,this.gpgpu.gl,this.gpgpu.textureConfig,s);if(this.freeTextures[i].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=r,this.log();const a=this.freeTextures[i].shift();return this.usedTextures[i].push(a),a}let o;return n===Xt.PACKED_2X2_FLOAT32?o=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):n===Xt.PACKED_2X2_FLOAT16?o=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):n===Xt.UNPACKED_FLOAT32?o=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):n===Xt.UNPACKED_FLOAT16?o=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):n===Xt.PACKED_4X1_UNSIGNED_BYTE&&(o=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[i].push(o),this.numUsedTextures++,this._numBytesAllocated+=r,this.log(),o}releaseTexture(e,t,s,n){if(this.freeTextures==null)return;const i=X2(s,n),r=J2(t,i,n);r in this.freeTextures||(this.freeTextures[r]=[]);const o=K2(t,i,this.gpgpu.gl,this.gpgpu.textureConfig,n),a=W().get("WEBGL_DELETE_TEXTURE_THRESHOLD");a!==-1&&this._numBytesAllocated>a?(this.gpgpu.deleteMatrixTexture(e),this._numBytesAllocated-=o):(this.freeTextures[r].push(e),this.numFreeTextures++,this._numBytesFree+=o),this.numUsedTextures--;const l=this.usedTextures[r],c=l.indexOf(e);if(c<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l.splice(c,1),this.log()}log(){if(!this.logEnabled)return;const e=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${e})`);const t=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*t)}%)`)}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(this.freeTextures==null)return;for(const e in this.freeTextures)this.freeTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t)});for(const e in this.usedTextures)this.usedTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}function Z3(e,t){const s=e;if(t===s.R32F)return 4;if(t===s.R16F)return 2;if(t===s.RGBA32F)return 16;if(t===e.RGBA)return 16;if(t===s.RGBA16F)return 8;throw new Error(`Unknown internal format ${t}`)}function K2(e,t,s,n,i){const r=Q3(t,n);let o;if(i){const[l,c]=gi(e[0],e[1]);o=l*c}else{const[l,c]=pa(e[0],e[1]);o=l*c}const a=Z3(s,r);return o*a}function Q3(e,t){switch(e){case Xt.PACKED_2X2_FLOAT32:return nx(t);case Xt.PACKED_2X2_FLOAT16:return ix(t);case Xt.UNPACKED_FLOAT32:return ex(t);case Xt.UNPACKED_FLOAT16:return tx(t);case Xt.PACKED_4X1_UNSIGNED_BYTE:return sx(t);default:throw new Error(`Unknown physical texture type ${e}`)}}function eV(e){return W().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?Xt.PACKED_2X2_FLOAT32:Xt.UNPACKED_FLOAT32:e?Xt.PACKED_2X2_FLOAT16:Xt.UNPACKED_FLOAT16}function X2(e,t){if(e===ns.UPLOAD)return Xt.PACKED_2X2_FLOAT32;if(e===ns.RENDER||e==null)return eV(t);if(e===ns.DOWNLOAD||e===ns.PIXELS)return Xt.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function J2(e,t,s){return`${e[0]}_${e[1]}_${t}_${s}`}class Q2{constructor(e,t){this.variableNames=["A"];const s=new Array(e.length);for(let r=0;r5)throw Error(`Tile for rank ${t} is not yet supported`);if(t===1)return`imod(resRC, ${e[0]})`;const s=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],n=[];for(let i=0;i= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0); +`;function sO(e=0){return Xi+` + return x > 0.0 ? 1.0 : float(${e}); + `}const hx="return -x;",dx="return ceil(x);",mx="return floor(x);",nO=` + if (isnan(x)) { return 0.0; } + return sign(x); +`,iO="return float(isnan(x));",rO="return float(isinf(x));",oO="return float(!isnan(x) && !isinf(x));",aO=` + // OpenGL ES does not support round function. + // The algorithm is based on banker's rounding. + float base = floor(x); + if ((x - base) < 0.5) { + return floor(x); + } else if ((x - base) > 0.5) { + return ceil(x); + } else { + if (mod(base, 2.0) == 0.0) { + return base; + } else { + return base + 1.0; + } + } +`,fx="return exp(x);",gx="return exp(x) - 1.0;",lO=`if (x < 0.0) return NAN; + return log(x);`,cO="return log(1.0 + x);",pO="return sqrt(x);",uO="return inversesqrt(x);",hO="return 1.0 / (1.0 + exp(-1.0 * x));",dO=` + float epsilon = 1.1920928955078125e-7; + float threshold = log(epsilon) + 2.0; + + bool too_large = x > -threshold; + bool too_small = x < threshold; + + float result; + float exp_x = exp(x); + + if (too_large){ + result = x; + } + else if (too_small){ + result = exp_x; + } + else{ + result = log(exp_x + 1.0); + } + return result; +`,mO=Xi+` + if (abs(x) > 1.) { + return NAN; + } + return asin(x); +`,fO=Xi+` + if (abs(x) > 1.) { + return NAN; + } + return acos(x); +`,gO=Xi+` + return atan(x); +`,yO=` + float e2x = exp(x); + return (e2x - 1.0 / e2x) / 2.0; +`,bO=` + float e2x = exp(-x); + return (e2x + 1.0 / e2x) / 2.0; +`,wO=` + float e2x = exp(-2.0 * abs(x)); + return sign(x) * (1.0 - e2x) / (1.0 + e2x); +`,xO=Xi+"return log(x + sqrt(x * x + 1.0));",LO=Xi+` + if (x < 1.0) return NAN; + return log(x + sqrt(x * x - 1.0));`,SO=Xi+` + if ((x < -1.0) || (x > 1.0)) return NAN; + return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,IO=` + // Error function is calculated approximately with elementary function. + // See "Handbook of Mathematical Functions with Formulas, + // Graphs, and Mathematical Tables", Abramowitz and Stegun. + float p = ${U.ERF_P}; + float a1 = ${U.ERF_A1}; + float a2 = ${U.ERF_A2}; + float a3 = ${U.ERF_A3}; + float a4 = ${U.ERF_A4}; + float a5 = ${U.ERF_A5}; + + float sign = sign(x); + x = abs(x); + float t = 1.0 / (1.0 + p * x); + return sign * (1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x)); +`,vO="return 1.0 / x;",TO="return float(!(x >= 1.0));",AO="return float(int(x));",xu="return x;";const NO="return x;",CO=` + vec4 result = log(x); + vec4 isNaN = vec4(lessThan(x, vec4(0.0))); + result.r = isNaN.r == 1.0 ? NAN : result.r; + result.g = isNaN.g == 1.0 ? NAN : result.g; + result.b = isNaN.b == 1.0 ? NAN : result.b; + result.a = isNaN.a == 1.0 ? NAN : result.a; + + return result; +`,yx=` + vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); + bvec4 isNaN = isnan(x); + + result.r = isNaN.r ? x.r : result.r; + result.g = isNaN.g ? x.g : result.g; + result.b = isNaN.b ? x.b : result.b; + result.a = isNaN.a ? x.a : result.a; + + return result; +`,bx=` + vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); + bvec4 isNaN = isnan(x); + + result.r = isNaN.r ? x.r : result.r; + result.g = isNaN.g ? x.g : result.g; + result.b = isNaN.b ? x.b : result.b; + result.a = isNaN.a ? x.a : result.a; + + return result; +`,wx=` + vec4 result; + + result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); + result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0); + result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0); + result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); + + return result; +`;class ql{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode=` + vec4 unaryOperation(vec4 x) { + ${t} + } + + void main() { + vec4 x = getAAtOutCoords(); + vec4 y = unaryOperation(x); + + setOutput(y); + } + `}}class RO{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e;const t=e.length,s=_t("rc",t),n=Re(t),i=J0(t,s),r=s.slice(-2),o=t<=1?"rc":`vec2(${r.join(",")})`;this.userCode=` + void main() { + ${n} rc = getOutputCoords(); + vec4 packedInput = getA(${i}); + + setOutput(getChannel(packedInput, ${o})); + } + `}}const{segment_util:OO}=U,sV=vt.split,nV=vt.tile,iV=vt.topkImpl,rV=vt.whereImpl,oV=1e-7,aV=1e-4,Ef={};function lV(e){return e in Ef||(Ef[e]={}),Ef[e]}function _f(e,t=!1){if(e==="linear")return t?NO:eO;if(e==="relu")return t?yx:cx;if(e==="elu")return t?wx:ux;if(e==="relu6")return t?bx:px;if(e==="prelu")return t?Hw:qw;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}const cV=128,pV=600;function uV(){return W().global.screen==null?1024:W().global.screen.height*W().global.screen.width*window.devicePixelRatio*pV/1024/1024}const EO=1e3;class xx extends go{constructor(e){super();if(this.pendingRead=new WeakMap,this.pendingDisposal=new WeakSet,this.dataRefCount=new WeakMap,this.numBytesInGPU=0,this.uploadWaitMs=0,this.downloadWaitMs=0,this.warnedAboutMemory=!1,this.warnedAboutCPUBackend=!1,this.pendingDeletes=0,this.disposed=!1,!W().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");if(e==null){const t=nn(W().getNumber("WEBGL_VERSION"));this.binaryCache=lV(W().getNumber("WEBGL_VERSION")),this.gpgpu=new rx(t),this.canvas=t.canvas,this.gpgpuCreatedLocally=!0}else this.gpgpu=e,this.binaryCache={},this.gpgpuCreatedLocally=!1,this.canvas=e.gl.canvas;this.textureManager=new Z2(this.gpgpu),this.numMBBeforeWarning=uV(),this.texData=new gc(this,Ms())}numDataIds(){return this.texData.numDataIds()+(this.cpuBackend?this.cpuBackend.numDataIds():0)-this.pendingDeletes}write(e,t,s){if((W().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||W().getBool("DEBUG"))&&this.checkNumericalProblems(e),s==="complex64"&&e!=null)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");const n={};return this.texData.set(n,{shape:t,dtype:s,values:e,usage:ns.UPLOAD,refCount:1}),n}incRef(e){const t=this.texData.get(e);t.refCount++}decRef(e){if(this.texData.has(e)){const t=this.texData.get(e);t.refCount--}}move(e,t,s,n){if(W().getBool("DEBUG")&&this.checkNumericalProblems(t),n==="complex64")throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(e,{shape:s,dtype:n,values:t,usage:ns.UPLOAD,refCount:1})}disposeIntermediateTensorInfo(e){const t=e.dataId;if(this.texData.has(t)){const s=this.texData.get(t);s.refCount--,s.refCount<1&&this.disposeData(t)}}readSync(e){const t=this.texData.get(e),{values:s,dtype:n,complexTensors:i,slice:r,shape:o,isPacked:a}=t;if(r!=null){let u;a?u=new ql(o,xu):u=new $e(o,xu);const h=this.runWebGLProgram(u,[{dataId:e,shape:o,dtype:n}],n),d=this.readSync(h.dataId);return this.disposeIntermediateTensorInfo(h),d}if(s!=null)return this.convertAndCacheOnCPU(e);if(n==="string")return s;const l=this.activeTimers!=null;let c;l&&(c=N.now());let p;if(n==="complex64"){const u=i.real.dataSync(),h=i.imag.dataSync();p=U.mergeRealAndImagArrays(u,h)}else p=this.getValuesFromTexture(e);return l&&(this.downloadWaitMs+=N.now()-c),this.convertAndCacheOnCPU(e,p)}async read(e){if(this.pendingRead.has(e)){const d=this.pendingRead.get(e);return new Promise(m=>d.push(m))}const t=this.texData.get(e),{values:s,shape:n,slice:i,dtype:r,complexTensors:o,isPacked:a}=t;if(i!=null){let d;a?d=new ql(n,xu):d=new $e(n,xu);const m=this.runWebGLProgram(d,[{dataId:e,shape:n,dtype:r}],r),f=this.read(m.dataId);return this.disposeIntermediateTensorInfo(m),f}if(s!=null)return this.convertAndCacheOnCPU(e);if(!W().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&W().getNumber("WEBGL_VERSION")===2)throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let l=null,c;if(r!=="complex64"&&W().get("WEBGL_BUFFER_SUPPORTED")){c=this.decode(e);const d=this.texData.get(c.dataId);l=this.gpgpu.createBufferFromTexture(d.texture,...co(n))}this.pendingRead.set(e,[]),r!=="complex64"&&await this.gpgpu.createAndWaitForFence();let p;if(r==="complex64"){const d=await Promise.all([o.real.data(),o.imag.data()]),m=d[0],f=d[1];p=U.mergeRealAndImagArrays(m,f)}else if(l==null)p=this.getValuesFromTexture(e);else{const d=N.sizeFromShape(n);p=this.gpgpu.downloadFloat32MatrixFromBuffer(l,d)}c!=null&&this.disposeIntermediateTensorInfo(c);const u=this.convertAndCacheOnCPU(e,p),h=this.pendingRead.get(e);return this.pendingRead.delete(e),h.forEach(d=>d(u)),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e),this.pendingDeletes--),u}checkNumericalProblems(e){if(e==null)return;for(let t=0;ta.query)).filter(a=>a!=null),r=N.flatten(this.activeTimers.map(a=>a.name)).filter(a=>a!=null);this.activeTimers=t,n&&(this.programTimersStack=null);const o={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};if(W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){const a=await Promise.all(i);o.kernelMs=N.sum(a),o.getExtraProfileInfo=()=>a.map((l,c)=>({name:r[c],ms:l})).map(l=>`${l.name}: ${l.ms}`).join(", ")}else o.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,o}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:N.now(),endMs:null}}endTimer(e){return W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=N.now(),e)}async getQueryTime(e){if(W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(e);const t=e;return t.endMs-t.startMs}disposeData(e){if(this.pendingDisposal.has(e))return;if(this.pendingRead.has(e)){this.pendingDisposal.add(e),this.pendingDeletes++;return}if(!this.texData.has(e))return;this.releaseGPUData(e);const{complexTensors:t}=this.texData.get(e);t!=null&&(t.real.dispose(),t.imag.dispose()),this.texData.delete(e)}releaseGPUData(e){const{texture:t,dtype:s,texShape:n,usage:i,isPacked:r,slice:o}=this.texData.get(e),a=o&&o.origDataId||e,l=this.dataRefCount.get(a);l>1?this.dataRefCount.set(a,l-1):(this.dataRefCount.delete(a),t!=null&&(this.numBytesInGPU-=this.computeBytes(n,s),this.textureManager.releaseTexture(t,n,i,r)));const c=this.texData.get(e);c.texture=null,c.texShape=null,c.isPacked=!1,c.slice=null}getTexture(e){return this.uploadToGPU(e),this.texData.get(e).texture}getDataInfo(e){return this.texData.get(e)}getCPUBackend(){return W().getBool("WEBGL_CPU_FORWARD")?(this.cpuBackend==null&&(this.cpuBackend=Ms().findBackend("cpu")),this.cpuBackend):null}shouldExecuteOnCPU(e,t=cV){const s=this.getCPUBackend();return!this.warnedAboutCPUBackend&&s==null&&(console.warn("Your application contains ops that are small enough to be executed on the CPU backend, however the CPU backend cannot be found. Consider importing the CPU backend (@tensorflow/tfjs-backend-cpu) for better performance."),this.warnedAboutCPUBackend=!0),s!=null&&e.every(n=>this.texData.get(n.dataId).texture==null&&N.sizeFromShape(n.shape)this.cpuBackend.stridedSlice(e,t,s,n));if(i)return i;const r=Fs.computeOutShape(t,s,n);if(r.some(a=>a===0))return ze([],r);const o=new Y2(t,n,r);return this.compileAndRun(o,[e])}reverse(e,t){const s=W().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new j2(e.shape,t):new B2(e.shape,t);return this.compileAndRun(s,[e])}concat(e,t){if(e[0].dtype==="complex64"){const o=e.map(l=>Xs(l)),a=e.map(l=>dn(l));return Gt(this.concat(o,t),this.concat(a,t))}if(e.length===1)return e[0];if(e.length>W().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){const o=Math.floor(e.length/2),a=this.concat(e.slice(0,o),t),l=this.concat(e.slice(o),t);return this.concat([a,l],t)}if(W().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&e[0].rank>1){const o=new $R(e.map(a=>a.shape),t);return this.compileAndRun(o,e)}const s=U.computeOutShape(e.map(o=>o.shape),t),n=e.map(o=>o.as2D(-1,N.sizeFromShape(o.shape.slice(t)))),i=new UR(n.map(o=>o.shape)),r=this.compileAndRun(i,n);return r.reshape(s)}neg(e){const t=this.tryRunOnCpuOrThrow([e],()=>this.cpuBackend.neg(e));if(t)return t;if(W().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,hx,e.dtype);const s=new $e(e.shape,hx);return this.compileAndRun(s,[e])}batchMatMul(e,t,s,n){const i=s?e.shape[2]:e.shape[1],r=n?t.shape[1]:t.shape[2],o=s?e.shape[1]:e.shape[2],[a,,]=e.shape;if((i===1||r===1)&&o>EO){s&&(e=se(e,[0,2,1])),n&&(t=se(t,[0,2,1]));const p=r===1?e:e.as3D(a,o,1),u=r===1?2:1,h=r===1?t.as3D(a,1,o):t;return this.multiply(p,h).sum(u,!0)}const l=Ft(e.dtype,t.dtype),c=new Nf(e.shape,[a,i,r],s,n);return this.compileAndRun(c,[e,t],l)}fusedBatchMatMul({a:e,b:t,transposeA:s,transposeB:n,bias:i,activation:r,preluActivationWeights:o}){const a=s?e.shape[2]:e.shape[1],l=n?t.shape[1]:t.shape[2],[c,,]=e.shape,p=Ft(e.dtype,t.dtype),u=i!=null,h=o!=null,d=r?_f(r,!0):null,m=new Nf(e.shape,[c,a,l],s,n,u,d,h),f=[e,t];return i&&f.push(i),o&&f.push(o),this.compileAndRun(m,f,p)}multiply(e,t){if(e.dtype==="complex64"){const i=this.texData.get(e.dataId),r=this.texData.get(t.dataId),o=new Vw(jw.REAL,e.shape,t.shape),a=new Vw(jw.IMAG,e.shape,t.shape),l=[this.makeComplexComponentTensorInfo(e,i.complexTensors.real),this.makeComplexComponentTensorInfo(e,i.complexTensors.imag),this.makeComplexComponentTensorInfo(t,r.complexTensors.real),this.makeComplexComponentTensorInfo(t,r.complexTensors.imag)],c=this.compileAndRun(o,l),p=this.compileAndRun(a,l),u=this.complex(c,p);return c.dispose(),p.dispose(),u}const s=Ft(e.dtype,t.dtype);if(this.shouldExecuteOnCPU([e,t])){const i=this.texData.get(e.dataId),r=this.texData.get(t.dataId),[o,a]=j0(e.shape,t.shape,i.values,r.values,s);return this.makeOutput(a,s,o)}if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,Gw,e.dtype);const n=new kt(Gw,e.shape,t.shape);return this.compileAndRun(n,[e,t],e.dtype)}localResponseNormalization4D(e,t,s,n,i){const r=W().getBool("WEBGL_PACK_NORMALIZATION")?new R2(e.shape,t,s,n,i):new N2(e.shape,t,s,n,i);return this.compileAndRun(r,[e])}LRNGrad(e,t,s,n,i,r,o){const a=new C2(t.shape,n,i,r,o);return this.compileAndRun(a,[t,s,e])}tile(e,t){if(e.dtype==="string"){const n=this.readSync(e.dataId),i=n.map(o=>N.decodeString(o)),r=ge(e.shape,e.dtype,i);return nV(r,t)}const s=new Q2(e.shape,t);return this.compileAndRun(s,[e])}pad(e,t,s){const n=W().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new M2(e.shape,t,s):new F2(e.shape,t,s);return this.compileAndRun(n,[e])}gather(e,t,s){const n=this.tryRunOnCpuOrThrow([e,t],()=>this.cpuBackend.gather(e,t,s));if(n)return n;const i=new i2(e.shape,t.size,s);return this.compileAndRun(i,[e,t])}batchToSpaceND(e,t,s){N.assert(e.rank<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");const n=t.reduce((c,p)=>c*p),i=U.getReshaped(e.shape,t,n),r=U.getPermuted(i.length,t.length),o=U.getReshapedPermuted(e.shape,t,n),a=U.getSliceBeginCoords(s,t.length),l=U.getSliceSize(o,s,t.length);return se(e.reshape(i),r).reshape(o).slice(a,l)}spaceToBatchND(e,t,s){N.assert(e.rank<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");const n=t.reduce((p,u)=>p*u),i=[[0,0]];i.push(...s);for(let p=1+t.length;pthis.cpuBackend.prod(e,t));if(s)return s;const[n,i]=U.computeOutAndReduceShapes(e.shape,t),r=N.sizeFromShape(i),o=e.as2D(-1,r),a=yp(e.dtype);return this.reduce(o,"prod",a).reshape(n)}unsortedSegmentSum(e,t,s){let n=0;const i=U.getAxesPermutation([n],e.rank);let r=e;i!=null&&(r=se(e,i),n=U.getInnerMostAxes(1,e.rank)[0]);const o=OO.computeOutShape(r.shape,n,s),a=N.sizeFromShape([r.shape[n]]),l=r.as2D(-1,a),c=yp(e.dtype);let p=this.segOpCompute(l,"unsortedSegmentSum",t,c,s).reshape(o);return i!=null&&(p=se(p,U.getUndoAxesPermutation(i))),p}segOpCompute(e,t,s,n,i){const r=e.shape[0],o=e.shape[1],a=OO.segOpComputeOptimalWindowSize(o,i),l={windowSize:a,inSize:o,batchSize:r,numSegments:i},c=new V2(l,t),p=this.compileAndRun(c,[e,s],n);return p.shape[1]===i?p:(s=Fi(0,i).tile([o/a]),this.segOpCompute(p,t,s,n,i))}argMinMaxReduce(e,t,s){const n=[t];if(U.assertAxesAreInnerMostDims("arg"+s.charAt(0).toUpperCase()+s.slice(1),n,e.rank),!W().getBool("WEBGL_PACK_REDUCE")||e.rank<=2){const[i,r]=U.computeOutAndReduceShapes(e.shape,n),o=N.sizeFromShape(r),a=e.as2D(-1,o);return this.argReduce(a,s).reshape(i)}return this.argReducePacked(e,s)}argMin(e,t){return this.argMinMaxReduce(e,t,"min")}argMax(e,t){return this.argMinMaxReduce(e,t,"max")}cumsum(e,t,s,n){if(t!==e.rank-1)throw new Error(`WebGL cumsum shader expects an inner-most axis=${e.rank-1} but got axis=${t}`);const i=e.shape[t];let r=e;for(let o=0;o<=Math.ceil(Math.log2(i))-1;o++){const a=new Jw(e.shape,!1,n),l=a.getCustomSetupFunc(o),c=r;r=this.compileAndRun(a,[r],r.dtype,l),c.dispose()}if(s){const o=new Jw(e.shape,s,n),a=r;r=this.compileAndRun(o,[r]),a.dispose()}return r}equal(e,t){if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,IR,"bool");const s=new kt(lR,e.shape,t.shape);return this.compileAndRun(s,[e,t],"bool")}notEqual(e,t){if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,vR,"bool");const s=new kt(cR,e.shape,t.shape);return this.compileAndRun(s,[e,t],"bool")}less(e,t){const s=this.tryRunOnCpuOrThrow([e,t],()=>this.cpuBackend.less(e,t));if(s)return s;if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,TR,"bool");const n=new kt(pR,e.shape,t.shape);return this.compileAndRun(n,[e,t],"bool")}lessEqual(e,t){if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,AR,"bool");const s=new kt(uR,e.shape,t.shape);return this.compileAndRun(s,[e,t],"bool")}greater(e,t){const s=this.tryRunOnCpuOrThrow([e,t],()=>this.cpuBackend.greater(e,t));if(s)return s;if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,NR,"bool");const n=new kt(hR,e.shape,t.shape);return this.compileAndRun(n,[e,t],"bool")}greaterEqual(e,t){if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,CR,"bool");const s=new kt(dR,e.shape,t.shape);return this.compileAndRun(s,[e,t],"bool")}logicalNot(e){const t=new $e(e.shape,TO);return this.compileAndRun(t,[e])}logicalAnd(e,t){if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,RR,"bool");const s=new kt(mR,e.shape,t.shape);return this.compileAndRun(s,[e,t],"bool")}logicalOr(e,t){if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,OR,"bool");const s=new kt(fR,e.shape,t.shape);return this.compileAndRun(s,[e,t],"bool")}select(e,t,s){const n=new G2(e.rank,t.shape,t.rank);return this.compileAndRun(n,[e,t,s],Ft(t.dtype,s.dtype))}where(e){U.warn("tf.where() in webgl locks the UI thread. Call tf.whereAsync() instead");const t=e.dataSync();return rV(e.shape,t)}topk(e,t,s){const n=e.dataSync();return iV(n,e.shape,e.dtype,t,s)}min(e,t){U.assertAxesAreInnerMostDims("min",t,e.rank);const[s,n]=U.computeOutAndReduceShapes(e.shape,t),i=N.sizeFromShape(n),r=e.as2D(-1,i);return this.reduce(r,"min",r.dtype).reshape(s)}minimum(e,t){const s=this.tryRunOnCpuOrThrow([e,t],()=>this.cpuBackend.minimum(e,t));if(s)return s;const n=W().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new bi(_R,e.shape,t.shape):new kt(yR,e.shape,t.shape);return this.compileAndRun(n,[e,t])}mod(e,t){const s=W().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new bi(kR,e.shape,t.shape):new kt(bR,e.shape,t.shape);return this.compileAndRun(s,[e,t])}maximum(e,t){const s=this.tryRunOnCpuOrThrow([e,t],()=>this.cpuBackend.maximum(e,t));if(s)return s;const n=W().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new bi(ER,e.shape,t.shape):new kt(gR,e.shape,t.shape);return this.compileAndRun(n,[e,t])}all(e,t){U.assertAxesAreInnerMostDims("all",t,e.rank);const[s,n]=U.computeOutAndReduceShapes(e.shape,t),i=N.sizeFromShape(n),r=e.as2D(-1,i);return this.reduce(r,"all",r.dtype).reshape(s)}any(e,t){U.assertAxesAreInnerMostDims("any",t,e.rank);const[s,n]=U.computeOutAndReduceShapes(e.shape,t),i=N.sizeFromShape(n),r=e.as2D(-1,i);return this.reduce(r,"any",r.dtype).reshape(s)}floorDiv(e,t){const s=oR,n="int32";if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,xR,n);const i=new kt(s,e.shape,t.shape);return this.compileAndRun(i,[e,t],n)}add(e,t){if(e.dtype==="complex64"&&t.dtype==="complex64")return this.complexSeparableBinaryOp(e,t,If);const s=Ft(e.dtype,t.dtype);if(this.shouldExecuteOnCPU([e,t])){const i=this.texData.get(e.dataId),r=this.texData.get(t.dataId),[o,a]=M0(e.shape,t.shape,i.values,r.values,s);return this.makeOutput(a,s,o)}if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,If,s);const n=new kt(If,e.shape,t.shape);return this.compileAndRun(n,[e,t],s)}packedUnaryOp(e,t,s){const n=new ql(e.shape,t);return this.compileAndRun(n,[e],s)}packedBinaryOp(e,t,s,n,i=!1){const r=new bi(s,e.shape,t.shape,i);return this.compileAndRun(r,[e,t],n)}complexSeparableBinaryOp(e,t,s){const n=this.texData.get(e.dataId),i=this.texData.get(t.dataId),[r,o]=[[n.complexTensors.real,i.complexTensors.real],[n.complexTensors.imag,i.complexTensors.imag]].map(l=>{const[c,p]=l,u=this.makeComplexComponentTensorInfo(e,c),h=this.makeComplexComponentTensorInfo(t,p),d=new kt(s,e.shape,t.shape);return this.compileAndRun(d,[u,h],Ft(c.dtype,p.dtype))}),a=this.complex(r,o);return r.dispose(),o.dispose(),a}makeComplexComponentTensorInfo(e,t){return{dataId:t.dataId,dtype:t.dtype,shape:e.shape}}addN(e){if(e.length===1)return e[0];if(e.length>W().get("WEBGL_MAX_TEXTURES_IN_SHADER")){const r=Math.floor(e.length/2),o=this.addN(e.slice(0,r)),a=this.addN(e.slice(r));return this.addN([o,a])}const t=e.map(r=>r.dtype).reduce((r,o)=>Ft(r,o)),s=e.map(r=>r.shape),n=W().getBool("WEBGL_PACK"),i=n?new K0(e[0].shape,s):new Y0(e[0].shape,s);return this.compileAndRun(i,e,t)}subtract(e,t){if(e.dtype==="complex64"&&t.dtype==="complex64")return this.complexSeparableBinaryOp(e,t,vf);const s=Ft(e.dtype,t.dtype);if(this.shouldExecuteOnCPU([e,t])){const i=this.texData.get(e.dataId),r=this.texData.get(t.dataId),[o,a]=q0(e.shape,t.shape,i.values,r.values,s);return this.makeOutput(a,s,o)}if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,vf,e.dtype);const n=new kt(vf,e.shape,t.shape);return this.compileAndRun(n,[e,t],s)}pow(e,t){const s=W().getBool("WEBGL_PACK_BINARY_OPERATIONS"),n=s?new bi(LR,e.shape,t.shape):new kt(aR,e.shape,t.shape),i=Ft(e.dtype,t.dtype);return this.compileAndRun(n,[e,t],i)}ceil(e){if(this.shouldExecuteOnCPU([e])){const s=U0(this.texData.get(e.dataId).values,e.dtype);return this.makeOutput(e.shape,e.dtype,s)}if(W().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,dx,e.dtype);const t=new $e(e.shape,dx);return this.compileAndRun(t,[e])}floor(e){if(this.shouldExecuteOnCPU([e])){const s=z0(this.texData.get(e.dataId).values,e.dtype);return this.makeOutput(e.shape,e.dtype,s)}if(W().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,mx,e.dtype);const t=new $e(e.shape,mx);return this.compileAndRun(t,[e])}sign(e){const t=new $e(e.shape,nO);return this.compileAndRun(t,[e])}isNaN(e){const t=new $e(e.shape,iO);return this.compileAndRun(t,[e],"bool")}isInf(e){const t=new $e(e.shape,rO);return this.compileAndRun(t,[e],"bool")}isFinite(e){const t=new $e(e.shape,oO);return this.compileAndRun(t,[e],"bool")}round(e){const t=new $e(e.shape,aO);return this.compileAndRun(t,[e])}exp(e){if(this.shouldExecuteOnCPU([e])){const s=$0(this.texData.get(e.dataId).values,e.dtype);return this.makeOutput(e.shape,e.dtype,s)}if(W().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,fx,e.dtype);const t=new $e(e.shape,fx);return this.compileAndRun(t,[e])}expm1(e){if(this.shouldExecuteOnCPU([e])){const s=W0(this.texData.get(e.dataId).values,e.dtype);return this.makeOutput(e.shape,e.dtype,s)}if(W().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,gx,e.dtype);const t=new $e(e.shape,gx);return this.compileAndRun(t,[e])}softmax(e,t){const s=N.parseAxisParam([t],e.shape),n=xt(e,s),i=U.expandShapeToKeepDim(n.shape,s),r=this.subtract(e,n.reshape(i)),o=this.exp(r),a=this.sum(o,s).reshape(i);return Z(o,a)}log(e){if(this.shouldExecuteOnCPU([e])){const s=P0(this.texData.get(e.dataId).values,e.dtype);return this.makeOutput(e.shape,e.dtype,s)}if(W().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,CO,e.dtype);const t=new $e(e.shape,lO);return this.compileAndRun(t,[e])}log1p(e){const t=new $e(e.shape,cO);return this.compileAndRun(t,[e])}sqrt(e){const t=new $e(e.shape,pO);return this.compileAndRun(t,[e])}rsqrt(e){if(this.shouldExecuteOnCPU([e])){const s=V0(this.texData.get(e.dataId).values,e.dtype);return this.makeOutput(e.shape,e.dtype,s)}const t=new $e(e.shape,uO);return this.compileAndRun(t,[e])}reciprocal(e){const t=new $e(e.shape,vO);return this.compileAndRun(t,[e])}relu(e){let t;return W().getBool("WEBGL_PACK")?t=new ql(e.shape,yx):t=new $e(e.shape,cx),this.compileAndRun(t,[e])}relu6(e){let t;return W().getBool("WEBGL_PACK")?t=new ql(e.shape,bx):t=new $e(e.shape,px),this.compileAndRun(t,[e])}prelu(e,t){const s=W().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new bi(Hw,e.shape,t.shape):new kt(qw,e.shape,t.shape);return this.compileAndRun(s,[e,t])}elu(e){if(W().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,wx,e.dtype);const t=new $e(e.shape,ux);return this.compileAndRun(t,[e])}eluDer(e,t){const s=W().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new bi(SR,e.shape,t.shape):new kt(wR,e.shape,t.shape);return this.compileAndRun(s,[e,t])}selu(e){const t=new $e(e.shape,tO);return this.compileAndRun(t,[e])}int(e){const t=new $e(e.shape,AO);return this.compileAndRun(t,[e],"int32")}clip(e,t,s){let n;W().getBool("WEBGL_PACK_CLIP")?n=new FR(e.shape):n=new DR(e.shape);const i=n.getCustomSetupFunc(t,s);return this.compileAndRun(n,[e],null,i)}abs(e){if(this.shouldExecuteOnCPU([e])&&e.dtype!=="complex64"){const s=F0(this.texData.get(e.dataId).values);return this.makeOutput(e.shape,e.dtype,s)}if(W().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,lx,e.dtype);const t=new $e(e.shape,lx);return this.compileAndRun(t,[e])}complexAbs(e){const t=this.texData.get(e.dataId),s=new MR(e.shape),n=[this.makeComplexComponentTensorInfo(e,t.complexTensors.real),this.makeComplexComponentTensorInfo(e,t.complexTensors.imag)];return this.compileAndRun(s,n)}sigmoid(e){const t=new $e(e.shape,hO);return this.compileAndRun(t,[e])}softplus(e){const t=new $e(e.shape,dO);return this.compileAndRun(t,[e])}asin(e){const t=new $e(e.shape,mO);return this.compileAndRun(t,[e])}acos(e){const t=new $e(e.shape,fO);return this.compileAndRun(t,[e])}atan(e){const t=new $e(e.shape,gO);return this.compileAndRun(t,[e])}sinh(e){const t=new $e(e.shape,yO);return this.compileAndRun(t,[e])}cosh(e){const t=new $e(e.shape,bO);return this.compileAndRun(t,[e])}tanh(e){const t=new $e(e.shape,wO);return this.compileAndRun(t,[e])}asinh(e){const t=new $e(e.shape,xO);return this.compileAndRun(t,[e])}acosh(e){const t=new $e(e.shape,LO);return this.compileAndRun(t,[e])}atanh(e){const t=new $e(e.shape,SO);return this.compileAndRun(t,[e])}erf(e){const t=new $e(e.shape,IO);return this.compileAndRun(t,[e])}step(e,t){const s=new $e(e.shape,sO(t));return this.compileAndRun(s,[e])}conv2dByMatMul(e,t,s,n,i,r){const o=e.shape,a=this.texData.get(e.dataId),l=s.inChannels,c=o[0]*o[1]*o[2],p=s.outChannels,u=s.dataFormat==="channelsLast",h=!1,d=!1,m=(c===1||p===1)&&l>EO,f=o[2]%2!==0&&!!a.isPacked;if(m||!W().getBool("WEBGL_LAZILY_UNPACK")||!W().getBool("WEBGL_PACK_BINARY_OPERATIONS")||!f){const _=u?o[0]*o[1]*o[2]:o[0]*o[2]*o[3],E=O(e,[1,_,s.inChannels]),F=O(t,[1,s.inChannels,s.outChannels]),D=this.fusedBatchMatMul({a:E,b:F,transposeA:h,transposeB:d,bias:n,activation:i,preluActivationWeights:r});return O(D,s.outShape)}const g=u?o[0]*o[1]*(o[2]+1):o[0]*o[2]*(o[3]+1),y={dataId:e.dataId,shape:[1,g,s.inChannels],dtype:e.dtype},w=a.shape;a.shape=a.shape.slice(),a.shape[a.shape.length-2]++,N.assert(zl(a.shape,y.shape),()=>`packed reshape ${a.shape} to ${y.shape} isn't free`);const x=O(t,[1,s.inChannels,s.outChannels]),T=this.fusedBatchMatMul({a:y,b:x,transposeA:h,transposeB:d,bias:n,activation:i,preluActivationWeights:r}),A=this.texData.get(T.dataId);return N.assert(A.isPacked,()=>"batchMatMul result is expected to be packed"),a.shape=w,A.shape=s.outShape,Ms().makeTensorFromDataId(T.dataId,s.outShape,T.dtype)}conv2dWithIm2Row(e,t,s,n,i,r){const{filterWidth:o,filterHeight:a,inChannels:l,outWidth:c,outHeight:p,dataFormat:u}=s,h=u==="channelsLast",d=o*a*l,m=p*c,f=[d,m],g=!0,y=!1,w=e.squeeze([0]),x=t.reshape([1,d,-1]),T=new A2(f,w.shape,s),A=this.compileAndRun(T,[w]).reshape([1,f[0],f[1]]),_=n!=null,E=r!=null,F=i?_f(i,!0):null,D=new Nf(A.shape,[1,m,s.outChannels],g,y,_,F,E),M=[A,x];n&&M.push(n),E&&M.push(r);const P=this.compileAndRun(D,M);return h?P.reshape([1,p,c,s.outChannels]):P.reshape([1,s.outChannels,p,c])}fusedConv2d({input:e,filter:t,convInfo:s,bias:n,activation:i,preluActivationWeights:r}){if(s.filterHeight===1&&s.filterWidth===1&&s.dilationHeight===1&&s.dilationWidth===1&&s.strideHeight===1&&s.strideWidth===1&&(s.padInfo.type==="SAME"||s.padInfo.type==="VALID"))return this.conv2dByMatMul(e,t,s,n,i,r);if(W().getBool("WEBGL_CONV_IM2COL")&&e.shape[0]===1)return this.conv2dWithIm2Row(e,t,s,n,i,r);const o=n!=null,a=r!=null,l=i?_f(i,!1):null,c=new Yw(s,o,l,a),p=[e,t];return n&&p.push(n),r&&p.push(r),this.compileAndRun(c,p)}conv2d(e,t,s){if(s.filterHeight===1&&s.filterWidth===1&&s.dilationHeight===1&&s.dilationWidth===1&&s.strideHeight===1&&s.strideWidth===1&&(s.padInfo.type==="SAME"||s.padInfo.type==="VALID"))return this.conv2dByMatMul(e,t,s);if(W().getBool("WEBGL_CONV_IM2COL")&&e.shape[0]===1)return this.conv2dWithIm2Row(e,t,s);const n=new Yw(s);return this.compileAndRun(n,[e,t])}conv2dDerInput(e,t,s){const n=new zR(s);return this.compileAndRun(n,[e,t])}conv2dDerFilter(e,t,s){const n=new WR(s);return this.compileAndRun(n,[e,t])}fusedDepthwiseConv2D({input:e,filter:t,convInfo:s,bias:n,activation:i,preluActivationWeights:r}){const o=W().getBool("WEBGL_PACK_DEPTHWISECONV")&&s.strideWidth<=2&&s.outChannels/s.inChannels===1,a=i?_f(i,o):null,l=[e,t],c=n!=null,p=r!=null;c&&l.push(n),p&&l.push(r);let u;return o?(u=new Xw(s,c,a,p),this.compileAndRun(u,l)):(u=new Kw(s,c,a,p),this.compileAndRun(u,l))}depthwiseConv2D(e,t,s){let n;return W().getBool("WEBGL_PACK_DEPTHWISECONV")&&s.strideWidth<=2&&s.outChannels/s.inChannels===1?(n=new Xw(s),this.compileAndRun(n,[e,t])):(n=new Kw(s),this.compileAndRun(n,[e,t]))}depthwiseConv2DDerInput(e,t,s){const n=new VR(s);return this.compileAndRun(n,[e,t])}depthwiseConv2DDerFilter(e,t,s){const n=new jR(s);return this.compileAndRun(n,[e,t])}conv3d(e,t,s){const n=new GR(s);return this.compileAndRun(n,[e,t])}conv3dDerInput(e,t,s){const n=new BR(s);return this.compileAndRun(n,[e,t])}conv3dDerFilter(e,t,s){const n=new PR(s);return this.compileAndRun(n,[e,t])}cast(e,t){return U.castTensor(e,t,this)}unstack(e,t){const s=e.shape[t],n=new Array(e.rank-1);let i=0;for(let l=0;l1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`);const n=e.shape[0],i=s==="NHWC"?e.shape[1]:e.shape[2],r=s==="NHWC"?e.shape[2]:e.shape[3],o=s==="NHWC"?e.shape[3]:e.shape[1],a=i*t,l=r*t,c=o/(t*t),p=s==="NHWC"?[n,a,l,c]:[n,c,a,l],u=new JR(p,t,s);return this.compileAndRun(u,[e])}split(e,t,s){return sV(e,t,s)}scatterND(e,t,s){const{sliceRank:n,numUpdates:i,sliceSize:r,strides:o,outputSize:a}=U.calculateShapes(t,e,s),l=[a/r,r],c=e.reshape([i,n]),p=t.reshape([i,r]);if(a===0)return U.reshapeTensor(ze([]),s);const u=j(0),h=new ox(i,n,c.rank,p.rank,o,l),d=this.compileAndRun(h,[p,c,u]);return d.reshape(s)}sparseToDense(e,t,s,n){const{sliceRank:i,numUpdates:r,strides:o,outputSize:a}=U.calculateShapes(t,e,s),l=!1,c=new ox(r,i,e.rank,t.rank,o,[a,1],l),p=this.compileAndRun(c,[t,e,n]);return p.reshape(s)}fft(e){const t=!1;return this.fftImpl(e,t)}ifft(e){const t=!0;return this.fftImpl(e,t)}fftImpl(e,t){const s=this.texData.get(e.dataId),n=new Qw(Zw.REAL,e.shape,t),i=new Qw(Zw.IMAG,e.shape,t),r=[this.makeComplexComponentTensorInfo(e,s.complexTensors.real),this.makeComplexComponentTensorInfo(e,s.complexTensors.imag)],o=this.compileAndRun(n,r),a=this.compileAndRun(i,r),l=this.complex(o,a).as2D(e.shape[0],e.shape[1]);return o.dispose(),a.dispose(),l}gatherND(e,t){const s=t.shape,n=s[s.length-1],[i,r,o,a]=U.prepareAndValidate(e,t),l=t.reshape([r,n]),c=e.reshape([e.size/o,o]),p=new r2(n,a,[r,o]),u=this.compileAndRun(p,[c,l]);return u.reshape(i)}fill(e,t,s){if(s=s||N.inferDtype(t),s==="string"){const n=N.getArrayFromDType(s,N.sizeFromShape(e));return n.fill(t),Ms().makeTensor(n,e,s,this)}else{const n=new n2(e,t),i=n.getCustomSetupFunc(t);return this.compileAndRun(n,[],s,i)}}onesLike(e){if(e.dtype==="string")throw new Error("onesLike is not supported under string dtype");return this.fill(e.shape,1,e.dtype)}zerosLike(e){return this.fill(e.shape,e.dtype==="string"?"":0,e.dtype)}linspace(e,t,s){return U.linspaceImpl(e,t,s)}makeTensorInfo(e,t,s){const n=this.write(s,e,t);return this.texData.get(n).usage=null,{dataId:n,shape:e,dtype:t}}makeOutput(e,t,s){const{dataId:n}=this.makeTensorInfo(e,t,s);return Ms().makeTensorFromDataId(n,e,t,this)}unpackTensor(e){const t=new RO(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){const t=new D2(e.shape),s=!0;return this.runWebGLProgram(t,[e],e.dtype,null,s)}packedReshape(e,t){const s=[po(e.shape),...uo(e.shape)],n={dtype:e.dtype,shape:s,dataId:e.dataId},i=[po(t),...uo(t)],r=new Of(i,s),o=!0,a=this.runWebGLProgram(r,[n],e.dtype,null,o);return{dataId:a.dataId,shape:t,dtype:a.dtype}}decode(e){const t=this.texData.get(e),{isPacked:s,shape:n,dtype:i}=t,r=wf(n);let o;s?o=new XR(r):o=new KR(r);const a=!0,l=this.runWebGLProgram(o,[{shape:r,dtype:i,dataId:e}],i,null,a);return{dtype:i,shape:n,dataId:l.dataId}}runWebGLProgram(e,t,s,n,i=!1){const r=this.makeTensorInfo(e.outputShape,s),o=this.texData.get(r.dataId);if(e.packedOutput&&(o.isPacked=!0),e.outPackingScheme===lo.DENSE){const m=co(e.outputShape);o.texShape=m.map(f=>f*2)}if(e.outTexUsage!=null&&(o.usage=e.outTexUsage),N.sizeFromShape(r.shape)===0)return o.values=N.getTypedArrayFromDType(r.dtype,0),r;const a=[],l=t.map(m=>{if(m.dtype==="complex64")throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let f=this.texData.get(m.dataId);if(f.texture==null){if(!e.packedInputs&&N.sizeFromShape(m.shape)<=W().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:m.shape,texData:null,isUniform:!0,uniformValues:f.values};e.packedInputs&&(f.isPacked=!0,f.shape=m.shape)}else if(!!f.isPacked!==!!e.packedInputs)m=f.isPacked?this.unpackTensor(m):this.packTensor(m),a.push(m),f=this.texData.get(m.dataId);else if(f.isPacked&&!zl(f.shape,m.shape)){const g=m,y=m.shape;m.shape=f.shape,m=this.packedReshape(m,y),a.push(m),f=this.texData.get(m.dataId),g.shape=y}return this.uploadToGPU(m.dataId),{shape:m.shape,texData:f,isUniform:!1}});this.uploadToGPU(r.dataId);const c={shape:r.shape,texData:o,isUniform:!1},p=T2(e,l,c),u=this.getAndSaveBinary(p,()=>S2(this.gpgpu,e,l,c)),h=this.activeTimers!=null;let d;if(h&&(d=this.startTimer()),v2(this.gpgpu,u,l,c,n),a.forEach(m=>this.disposeIntermediateTensorInfo(m)),h&&(d=this.endTimer(d),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(d)})),!W().getBool("WEBGL_LAZILY_UNPACK")&&o.isPacked&&i===!1){const m=this.unpackTensor(r);return this.disposeIntermediateTensorInfo(r),m}return r}compileAndRun(e,t,s,n,i=!1){s=s||t[0].dtype;const r=this.runWebGLProgram(e,t,s,n,i);return Ms().makeTensorFromDataId(r.dataId,r.shape,r.dtype)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){if(this.disposed)return;if(!W().getBool("IS_TEST")){const e=Object.keys(this.binaryCache);e.forEach(t=>{this.gpgpu.deleteProgram(this.binaryCache[t].webGLProgram),delete this.binaryCache[t]})}this.textureManager.dispose(),this.canvas!=null&&typeof HTMLCanvasElement!="undefined"&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0}floatPrecision(){return this.floatPrecisionValue==null&&(this.floatPrecisionValue=C(()=>{if(!W().get("WEBGL_RENDER_FLOAT32_ENABLED")){const e=W().getBool("DEBUG");W().set("DEBUG",!1);const t=this.abs(j(1e-8)).dataSync()[0];if(W().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?oV:aV}uploadToGPU(e){const t=this.texData.get(e),{shape:s,dtype:n,values:i,texture:r,usage:o,isPacked:a}=t;if(r!=null)return;const l=this.activeTimers!=null;let c;l&&(c=N.now());let p=t.texShape;if(p==null&&(p=C0(s,a),t.texShape=p),i!=null){const u=wf(s);let h,d=p[1],m=p[0];const f=i instanceof Uint8Array;a?([d,m]=gi(p[0],p[1]),h=new s2(u,[m,d],f)):h=new t2(u,[m,d],f);const g=this.makeTensorInfo([m,d],n);f?this.texData.get(g.dataId).usage=ns.PIXELS:this.texData.get(g.dataId).usage=ns.UPLOAD,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(g.dataId),d,m,i);const y=!0,w=this.runWebGLProgram(h,[g],n,null,y),x=this.texData.get(w.dataId);t.texture=x.texture,t.texShape=x.texShape,t.isPacked=x.isPacked,t.usage=x.usage,this.disposeIntermediateTensorInfo(g),this.texData.delete(w.dataId),t.values=null,l&&(this.uploadWaitMs+=N.now()-c)}else{const u=this.acquireTexture(p,o,n,a);t.texture=u}}convertAndCacheOnCPU(e,t){const s=this.texData.get(e),{dtype:n}=s;return this.releaseGPUData(e),t!=null&&(s.values=hV(t,n)),s.values}acquireTexture(e,t,s,n){if(this.numBytesInGPU+=this.computeBytes(e,s),!this.warnedAboutMemory&&this.numBytesInGPU>this.numMBBeforeWarning*1024*1024){const i=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${i} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(e,t,n)}computeBytes(e,t){return e[0]*e[1]*N.bytesPerElement(t)}tryRunOnCpuOrThrow(e,t){if(this.shouldExecuteOnCPU(e))try{return t()}catch(s){if(W().getBool("IS_TEST"))throw new Error("CPU forwarding failed")}return null}}function hV(e,t){if(t==="float32"||t==="complex64")return e;if(t==="int32"||t==="bool"){const s=t==="int32"?new Int32Array(e.length):new Uint8Array(e.length);for(let n=0;nnew xx,2);const H8e={forceHalfFloat:_O};const kf="if (isnan(x)) return x;",kO=` + if (isnan(a)) return a; + if (isnan(b)) return b; +`,DO=` + result.r = isNaN.r > 0. ? NAN : result.r; + result.g = isNaN.g > 0. ? NAN : result.g; + result.b = isNaN.b > 0. ? NAN : result.b; + result.a = isNaN.a > 0. ? NAN : result.a; +`;function ho(e){return({inputs:t,backend:s})=>{const{x:n}=t,i=s,r=new $e(n.shape,e);return i.runWebGLProgram(r,[n],n.dtype)}}function Hl(e,t,s,n){return({inputs:i,backend:r})=>{const{a:o,b:a}=i,l=r,c=W().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new bi(t,o.shape,a.shape,!!s):new kt(e,o.shape,a.shape),p=n||o.dtype,u=l.runWebGLProgram(c,[o,a],p);return u}}const dV=kO+` + return atan(a, b); +`,mV=` + vec4 result = atan(a, b); + vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0)); + `+DO+` + return result; +`,fV=Hl(dV,mV),FO={kernelName:bo,backendName:"webgl",kernelFunc:fV};function Lu(e){const{inputs:t,backend:s}=e,{x:n}=t;return s.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}const MO={kernelName:Ti,backendName:"webgl",kernelFunc:Lu};function gV(e){const{inputs:t,backend:s,attrs:n}=e,{x:i}=t;yi(i,"avgPool");const{filterSize:r,strides:o,pad:a,dimRoundingMode:l}=n,c=1;N.assert(U.eitherStridesOrDilationsAreOne(o,c),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${o} and dilations '${c}'`);const p=U.computePool2DInfo(i.shape,r,o,c,a,l);if(p.filterWidth===1&&p.filterHeight===1&&N.arraysEqual(p.inShape,p.outShape))return Lu({inputs:{x:i},backend:s});const u=new Ki(p,"avg",!1);return s.runWebGLProgram(u,[i],"float32")}const UO={kernelName:Si,backendName:"webgl",kernelFunc:gV};function yV(e){const{inputs:t,backend:s,attrs:n}=e,{dy:i,input:r}=t,o=r;yi([i,r],"avgPoolBackprop");const{filterSize:a,strides:l,pad:c}=n,p=U.computePool2DInfo(o.shape,a,l,1,c),u=new nR(p);return s.runWebGLProgram(u,[i],o.dtype)}const $O={kernelName:wo,backendName:"webgl",kernelFunc:yV};class WO{constructor(e,t,s,n,i,r){this.outputShape=[],this.variableNames=["x","mean","variance"],U.assertAndGetBroadcastShape(e,t),U.assertAndGetBroadcastShape(e,s);let o="0.0";n!=null&&(U.assertAndGetBroadcastShape(e,n),this.variableNames.push("offset"),o="getOffsetAtOutCoords()");let a="1.0";i!=null&&(U.assertAndGetBroadcastShape(e,i),this.variableNames.push("scale"),a="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + void main() { + float x = getXAtOutCoords(); + float mean = getMeanAtOutCoords(); + float variance = getVarianceAtOutCoords(); + float offset = ${o}; + float scale = ${a}; + float inv = scale * inversesqrt(variance + float(${r})); + setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1))); + } + `}}class zO{constructor(e,t,s,n,i,r){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],U.assertAndGetBroadcastShape(e,t),U.assertAndGetBroadcastShape(e,s);let o="vec4(0.0)";n!=null&&(U.assertAndGetBroadcastShape(e,n),this.variableNames.push("offset"),o="getOffsetAtOutCoords()");let a="vec4(1.0)";i!=null&&(U.assertAndGetBroadcastShape(e,i),this.variableNames.push("scale"),a="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + void main() { + vec4 offset = ${o}; + vec4 scale = ${a}; + + vec4 x = getXAtOutCoords(); + vec4 mean = getMeanAtOutCoords(); + vec4 variance = getVarianceAtOutCoords(); + + vec4 inv = scale * inversesqrt(variance + vec4(${r})); + + setOutput((x - mean) * inv + offset); + } + `}}const bV=({inputs:e,backend:t,attrs:s})=>{const{x:n,mean:i,variance:r,offset:o,scale:a}=e;N.assert(i.shape.length===r.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),N.assert(o==null||i.shape.length===o.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),N.assert(a==null||i.shape.length===a.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let{varianceEpsilon:l}=s;l==null&&(l=.001);const c=[n,i,r];let p=null;o!=null&&(p=o.shape,c.push(o));let u=null;a!=null&&(u=a.shape,c.push(a));const h=W().getBool("WEBGL_PACK_NORMALIZATION")?new zO(n.shape,i.shape,r.shape,p,u,l):new WO(n.shape,i.shape,r.shape,p,u,l),d=t.runWebGLProgram(h,c,c[0].dtype);return d},PO={kernelName:vi,backendName:"webgl",kernelFunc:bV};const wV=kf+` + return cos(x); +`,xV=ho(wV),BO={kernelName:Xn,backendName:"webgl",kernelFunc:xV};const LV=` +if (a == b) { + return 1.0; }; +return a / b;`,SV=` + // vec4 one = vec4(equal(a, b)); + // return one + (vec4(1.0) - one) * a / b; + vec4 result = a / b; + if(a.x == b.x) { + result.x = 1.; + } + if(a.y == b.y) { + result.y = 1.; + } + if(a.z == b.z) { + result.z = 1.; + } + if(a.w == b.w) { + result.w = 1.; + } + + return result; +`,IV=Hl(LV,SV,!0),jO={kernelName:Jn,backendName:"webgl",kernelFunc:IV};class VO{constructor(e){this.variableNames=["Image"],this.outputShape=[];const t=e[2];this.outputShape=e,this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int x = coords[2]; + + int coordX = ${t} - x; + float outputValue; + if(coordX >= 0 && coordX < ${t}) { + outputValue = getImage(coords[0], coords[1], coordX, coords[3]); + } else { + outputValue = getImage(coords[0], coords[1], coords[2], coords[3]); + } + setOutput(outputValue); + } + `}}const GO={kernelName:So,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{const{image:s}=e,n=t,i=new VO(s.shape),r=n.runWebGLProgram(i,[s],s.dtype);return r}};class qO{constructor(e){this.variableNames=["A"];const t=at(),[s,n]=e;this.outputShape=e,this.userCode=` + void main() { + ivec3 coords = getOutputCoords(); + int texR = coords[0]; + int texC = coords[1]; + int depth = coords[2]; + vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${n}.0, ${s}.0); + + vec4 values = ${t.texture2D}(A, uv); + float value; + if (depth == 0) { + value = values.r; + } else if (depth == 1) { + value = values.g; + } else if (depth == 2) { + value = values.b; + } else if (depth == 3) { + value = values.a; + } + + setOutput(floor(value * 255.0 + 0.5)); + } + `}}class HO{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;const t=at(),[s,n]=e;this.outputShape=e,this.userCode=` + void main() { + ivec3 coords = getOutputCoords(); + int texR = coords[0]; + int texC = coords[1]; + int depth = coords[2]; + + vec4 result = vec4(0.); + + for(int row=0; row<=1; row++) { + for(int col=0; col<=1; col++) { + texC = coords[1] + row; + depth = coords[2] + col; + + vec2 uv = (vec2(texC, texR) + halfCR) / + vec2(${n}.0, ${s}.0); + vec4 values = ${t.texture2D}(A, uv); + float value; + if (depth == 0) { + value = values.r; + } else if (depth == 1) { + value = values.g; + } else if (depth == 2) { + value = values.b; + } else if (depth == 3) { + value = values.a; + } + + result[row * 2 + col] = floor(value * 255.0 + 0.5); + } + } + + ${t.output} = result; + } + `}}const YO={kernelName:Da,backendName:"webgl",kernelFunc:vV};let Yl;function vV(e){const{inputs:t,backend:s,attrs:n}=e;let{pixels:i}=t;const{numChannels:r}=n,o=typeof HTMLVideoElement!="undefined"&&i instanceof HTMLVideoElement,a=typeof HTMLImageElement!="undefined"&&i instanceof HTMLImageElement,[l,c]=o?[i.videoWidth,i.videoHeight]:[i.width,i.height],p=[c,l],u=[c,l,r];(a||o)&&(Yl==null&&(Yl=document.createElement("canvas").getContext("2d")),Yl.canvas.width=l,Yl.canvas.height=c,Yl.drawImage(i,0,0,l,c),i=Yl.canvas);const h=s.makeTensorInfo(p,"int32");s.texData.get(h.dataId).usage=ns.PIXELS,s.gpgpu.uploadPixelDataToTexture(s.getTexture(h.dataId),i);const d=W().getBool("WEBGL_PACK")?new HO(u):new qO(u),m=s.runWebGLProgram(d,[h],"int32");return s.disposeData(h.dataId),m}function TV(e){const t=[];for(;t.length===0||t[t.length-1].outSize!==1;){const s=t.length?t[t.length-1].outSize:e[1],n=U.computeOptimalWindowSize(s);t.push({inSize:s,windowSize:n,outSize:Math.ceil(s/n)})}return t}function KO(e,t,s,n){const i=TV(e.shape);let r=e;for(let o=0;o`The new shape (${l}) has ${c} elements and the old shape (${i.shape}) has ${a} elements. The new shape and old shape must have the same number of elements.`);const p=o.texData.get(i.dataId);return p.isPacked&&!zl(i.shape,l)&&!(p.texture!==null&&zl(p.shape,l))?XO(i,l,o):(o.incRef(i.dataId),{dataId:i.dataId,shape:l,dtype:i.dtype})}const JO={kernelName:Ci,backendName:"webgl",kernelFunc:Df};function ZO(e,t,s,n){const i=N.sizeFromShape(t),r=N.sizeFromShape(e.shape),o=r/i,a=Df({inputs:{x:e},attrs:{shape:[o,i]},backend:n}),l=KO(a,e.dtype,"max",n),c=Df({inputs:{x:l},attrs:{shape:s},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(l),c}class QO{constructor(e,t){this.variableNames=["A"];const s=new Array(e.length);for(let r=0;r6)throw Error(`Transpose for rank ${t} is not yet supported`);const s=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],n=new Array(t);for(let i=0;i6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);const n=Re(this.rank),i=Bw("rc",this.rank),r=new Array(this.rank);for(let c=0;c{const{x:n}=e,{reductionIndices:i,keepDims:r}=t,o=s,a=n.shape.length,l=N.parseAxisParam(i,n.shape);let c=l;const p=U.getAxesPermutation(c,a),u=p!=null,h=o.shouldExecuteOnCPU([n]);let d=n;if(u){if(h){const w=o.texData.get(d.dataId),x=w.values,T=new Array(a);for(let E=0;E`Error in maxPool: Either strides or dilations must be 1. Got strides ${o} and dilations '${c}'`);const p=U.computePool2DInfo(i.shape,r,o,c,a,l);if(p.filterWidth===1&&p.filterHeight===1&&N.arraysEqual(p.inShape,p.outShape))return Lu({inputs:{x:i},backend:s});const u=new Ki(p,"max",!1);return s.runWebGLProgram(u,[i],i.dtype)}const s1={kernelName:Ni,backendName:"webgl",kernelFunc:NV};function CV(e){const{inputs:t,backend:s,attrs:n}=e,{dy:i,input:r,output:o}=t,a=r;yi([r,o],"maxPoolBackprop");const{filterSize:l,strides:c,pad:p,dimRoundingMode:u}=n,h=U.computePool2DInfo(a.shape,l,c,1,p,u),d=!0,m=new Ki(h,"max",d),f=s.runWebGLProgram(m,[a],a.dtype),g=new O2(h),y=s.runWebGLProgram(g,[i,f],a.dtype);return s.disposeIntermediateTensorInfo(f),y}const n1={kernelName:Io,backendName:"webgl",kernelFunc:CV};function i1(e,t,s,n){let i=new Ki(s,"max",!1);const r=n.runWebGLProgram(i,[e],"float32");i=new Ki(s,"max",!0,!0,t);const o=n.runWebGLProgram(i,[e],"float32");return[r,o]}const r1={kernelName:vo,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:s})=>{const{x:n}=e,{filterSize:i,strides:r,pad:o,includeBatchInIndex:a}=t,l=s;N.assert(n.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${n.shape.length}.`);const c=[1,1];N.assert(U.eitherStridesOrDilationsAreOne(r,c),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${r} and dilations '${c}'`);const p=U.computePool2DInfo(n.shape,i,r,c,o),[u,h]=i1(n,a,p,l);return[u,h]}};const o1={kernelName:Vc,backendName:"webgl",kernelFunc:({inputs:e,backend:t,attrs:s})=>{U.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");const{boxes:n,scores:i}=e,{maxOutputSize:r,iouThreshold:o,scoreThreshold:a}=s,l=t,c=l.readSync(n.dataId),p=l.readSync(i.dataId),u=r,h=o,d=a;return vt.nonMaxSuppressionV3Impl(c,p,u,h,d)}};const RV=vt.nonMaxSuppressionV4Impl,a1={kernelName:To,backendName:"webgl",kernelFunc:({inputs:e,backend:t,attrs:s})=>{U.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");const{boxes:n,scores:i}=e,{maxOutputSize:r,iouThreshold:o,scoreThreshold:a,padToMaxOutputSize:l}=s,c=t,p=c.readSync(n.dataId),u=c.readSync(i.dataId),{selectedIndices:h,validOutputs:d}=RV(p,u,r,o,a,l);return[h,d]}};const OV=vt.nonMaxSuppressionV5Impl,l1={kernelName:Ao,backendName:"webgl",kernelFunc:({inputs:e,backend:t,attrs:s})=>{U.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");const{boxes:n,scores:i}=e,{maxOutputSize:r,iouThreshold:o,scoreThreshold:a,softNmsSigma:l}=s,c=t,p=c.readSync(n.dataId),u=c.readSync(i.dataId),h=r,d=o,m=a,f=l,{selectedIndices:g,selectedScores:y}=OV(p,u,h,d,m,f);return[g,y]}};class c1{constructor(e,t,s,n){this.variableNames=["Image"],this.outputShape=[];const i=e[1],r=e[2],o=Math.sin(t).toFixed(3),a=Math.cos(t).toFixed(3);this.outputShape=e;const[l,c]=U.getImageCenter(n,i,r),p=l.toFixed(3),u=c.toFixed(3);let h="";typeof s=="number"?h=`float outputValue = ${s.toFixed(2)};`:h=` + vec3 fill = vec3(${s.join(",")}); + float outputValue = fill[coords[3]];`,this.userCode=` + void main() { + ivec4 coords = getOutputCoords(); + int x = coords[2]; + int y = coords[1]; + float coordXFloat = (float(x) - ${p}) * ${a} - (float(y) - ${u}) * ${o}; + float coordYFloat = (float(x) - ${p}) * ${o} + (float(y) - ${u}) * ${a}; + int coordX = int(round(coordXFloat + ${p})); + int coordY = int(round(coordYFloat + ${u})); + ${h} + if(coordX >= 0 && coordX < ${r} && coordY >= 0 && coordY < ${i}) { + outputValue = getImage(coords[0], coordY, coordX, coords[3]); + } + setOutput(outputValue); + } + `}}const p1={kernelName:_o,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:s})=>{const{image:n}=e,{radians:i,fillValue:r,center:o}=t,a=s,l=new c1(n.shape,i,r,o),c=a.runWebGLProgram(l,[n],n.dtype);return c}};const EV=kf+` + return sin(x); +`,_V=ho(EV),u1={kernelName:Zn,backendName:"webgl",kernelFunc:_V};const kV="return x * x;",DV=ho(kV),h1={kernelName:Oo,backendName:"webgl",kernelFunc:DV};const d1="return (a - b) * (a - b);",FV=Hl(d1,d1),m1={kernelName:Qn,backendName:"webgl",kernelFunc:FV};const MV="return tan(x);",UV=ho(MV),f1={kernelName:ei,backendName:"webgl",kernelFunc:UV};const g1={kernelName:Ri,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:s})=>{const{x:n}=e,{perm:i}=t,r=s,o=n.shape.length,a=new Array(o);for(let c=0;cyo,Acos:()=>nr,Acosh:()=>ir,AdadeltaOptimizer:()=>Yo,AdagradOptimizer:()=>Ko,AdamOptimizer:()=>Xo,AdamaxOptimizer:()=>Jo,Add:()=>Kn,AddN:()=>yc,All:()=>xg,Any:()=>Lg,ArgMax:()=>bc,ArgMin:()=>wc,Asin:()=>rr,Asinh:()=>or,Atan:()=>ar,Atan2:()=>bo,Atanh:()=>lr,AvgPool:()=>Si,AvgPool3D:()=>xc,AvgPool3DBackprop:()=>Sg,AvgPoolBackprop:()=>wo,BatchMatMul:()=>Lc,BatchToSpaceND:()=>Sc,BroadcastTo:()=>Ic,Callback:()=>Db,CallbackList:()=>hb,Cast:()=>Ii,Ceil:()=>cr,ClipByValue:()=>pr,Complex:()=>vc,Concat:()=>xo,Conv2D:()=>Tc,Conv2DBackpropFilter:()=>Ig,Conv2DBackpropInput:()=>Ac,Conv3D:()=>Nc,Conv3DBackpropFilterV2:()=>vg,Conv3DBackpropInputV2:()=>Tg,Cos:()=>Xn,Cosh:()=>ur,CropAndResize:()=>Ag,Cumsum:()=>Cc,CustomCallback:()=>mb,DataStorage:()=>gc,DepthToSpace:()=>Ng,DepthwiseConv2dNative:()=>Rc,DepthwiseConv2dNativeBackpropFilter:()=>Cg,DepthwiseConv2dNativeBackpropInput:()=>Rg,Diag:()=>Og,Dilation2D:()=>Lo,Dilation2DBackpropFilter:()=>Ea,Dilation2DBackpropInput:()=>Oa,Div:()=>Jn,ENV:()=>gg,EarlyStopping:()=>Fb,Elu:()=>hr,EluGrad:()=>Eg,Environment:()=>fg,Equal:()=>_g,Erf:()=>dr,Exp:()=>mr,Expm1:()=>fr,FFT:()=>Oc,Fill:()=>kg,FlipLeftRight:()=>So,Floor:()=>gr,FloorDiv:()=>Ec,FromPixels:()=>Da,FusedBatchNorm:()=>vi,FusedConv2D:()=>ju,FusedDepthwiseConv2D:()=>Vu,GatherNd:()=>Dg,GatherV2:()=>_c,GraphModel:()=>ow,Greater:()=>Fg,GreaterEqual:()=>kc,History:()=>db,IFFT:()=>Dc,Identity:()=>Ti,Imag:()=>Fc,InputSpec:()=>st,IsFinite:()=>yr,IsInf:()=>br,IsNan:()=>wr,KernelBackend:()=>go,LRN:()=>Uc,LRNBackprop:()=>Pg,LayerVariable:()=>xd,LayersModel:()=>tn,Less:()=>Mg,LessEqual:()=>Ug,LinSpace:()=>$g,Log:()=>xr,Log1p:()=>Lr,LogSoftmax:()=>Mc,LogicalAnd:()=>Wg,LogicalNot:()=>_a,LogicalOr:()=>zg,Max:()=>Ai,MaxPool:()=>Ni,MaxPool3D:()=>Wc,MaxPool3DBackprop:()=>Bg,MaxPoolBackprop:()=>Io,MaxPoolWithArgmax:()=>vo,Maximum:()=>$c,Mean:()=>EE,Min:()=>zc,Minimum:()=>Pc,Mod:()=>Bc,MomentumOptimizer:()=>Zo,Multiply:()=>Sr,Negate:()=>jc,NonMaxSuppressionV3:()=>Vc,NonMaxSuppressionV4:()=>To,NonMaxSuppressionV5:()=>Ao,NotEqual:()=>ka,OP_SCOPE_SUFFIX:()=>fy,OneHot:()=>qc,OnesLike:()=>Gc,Optimizer:()=>fs,PadV2:()=>No,Pool:()=>_E,Pow:()=>Hc,Prelu:()=>Yc,Prod:()=>jg,RMSPropOptimizer:()=>Qo,RNN:()=>sn,Range:()=>Vg,Rank:()=>ay,Real:()=>Kc,Reciprocal:()=>Ir,Reduction:()=>ft,Relu:()=>Xc,Relu6:()=>Qc,Reshape:()=>Ci,ResizeBilinear:()=>Zc,ResizeBilinearGrad:()=>qg,ResizeNearestNeighbor:()=>Jc,ResizeNearestNeighborGrad:()=>Gg,Reverse:()=>ep,RotateWithOffset:()=>_o,Round:()=>vr,Rsqrt:()=>Tr,SGDOptimizer:()=>Ui,ScatterNd:()=>Hg,SelectV2:()=>tp,Selu:()=>Ar,Sequential:()=>no,Sigmoid:()=>Rr,Sign:()=>Cr,Sin:()=>Zn,Sinh:()=>Nr,Slice:()=>Co,Softmax:()=>ip,Softplus:()=>Or,SpaceToBatchND:()=>Ro,SparseToDense:()=>Yg,SplitV:()=>np,Sqrt:()=>Er,Square:()=>Oo,SquaredDifference:()=>Qn,Step:()=>Dr,StridedSlice:()=>Kg,Sub:()=>_r,Sum:()=>sp,SymbolicTensor:()=>ws,Tan:()=>ei,Tanh:()=>kr,Tensor:()=>me,TensorBuffer:()=>cn,Tile:()=>rp,TopK:()=>Xg,Transpose:()=>Ri,Unique:()=>Eo,Unpack:()=>op,UnsortedSegmentSum:()=>ap,Variable:()=>oi,ZerosLike:()=>lp,_FusedMatMul:()=>Bu,abs:()=>et,acos:()=>eh,acosh:()=>th,add:()=>$,addN:()=>sh,addStrict:()=>YM,all:()=>Xa,any:()=>Uo,argMax:()=>$o,argMin:()=>nh,asin:()=>ih,asinh:()=>rh,atan:()=>oh,atan2:()=>ah,atanh:()=>lh,avgPool:()=>hs,avgPool3d:()=>Za,backend:()=>ky,backend_util:()=>U,basicLSTMCell:()=>SS,batchNorm:()=>Ys,batchNorm2d:()=>uh,batchNorm3d:()=>hh,batchNorm4d:()=>dh,batchToSpaceND:()=>$r,booleanMaskAsync:()=>AM,broadcastTo:()=>zo,browser:()=>Fr,buffer:()=>ge,callbacks:()=>YA,cast:()=>G,ceil:()=>mh,clipByValue:()=>wt,clone:()=>Ds,complex:()=>Gt,concat:()=>be,concat1d:()=>fh,concat2d:()=>gh,concat3d:()=>yh,concat4d:()=>bh,constraints:()=>rb,conv1d:()=>Qa,conv2d:()=>nt,conv2dTranspose:()=>tl,conv3d:()=>sl,conv3dTranspose:()=>vS,copyRegisteredKernels:()=>FE,cos:()=>Wr,cosh:()=>nl,cosineWindow:()=>_p,cumsum:()=>il,customGrad:()=>ms,data:()=>dw,deprecationWarn:()=>It,depthToSpace:()=>xh,depthwiseConv2d:()=>un,deregisterOp:()=>JA,device_util:()=>ja,diag:()=>TS,dilation2d:()=>Lh,disableDeprecationWarnings:()=>ik,dispose:()=>ce,disposeVariables:()=>rk,div:()=>Z,divNoNan:()=>Sh,divStrict:()=>KM,dot:()=>AS,dropout:()=>Vy,elu:()=>hn,enableDebugMode:()=>nk,enableProdMode:()=>sk,enclosingPowerOfTwo:()=>Gy,engine:()=>Ms,env:()=>W,equal:()=>os,equalStrict:()=>kM,erf:()=>Ih,exp:()=>ut,expandDims:()=>Mt,expm1:()=>vh,eye:()=>Po,fft:()=>qr,fill:()=>Wt,findBackend:()=>uk,findBackendFactory:()=>hk,floor:()=>li,floorDiv:()=>Ka,fused:()=>gn,gather:()=>ci,gatherND:()=>jy,gather_util:()=>oS,getBackend:()=>ck,getGradient:()=>Gu,getKernel:()=>pp,getKernelsForBackend:()=>up,grad:()=>HD,grads:()=>YD,greater:()=>Ut,greaterEqual:()=>ds,greaterEqualStrict:()=>DM,greaterStrict:()=>FM,ifft:()=>Mi,imag:()=>dn,image:()=>Zs,inTopKAsync:()=>uU,initializers:()=>pb,input:()=>Md,io:()=>Rt,irfft:()=>yl,isFinite:()=>CS,isInf:()=>RS,isNaN:()=>OS,keep:()=>pt,kernel_impls:()=>vt,layers:()=>Nb,leakyRelu:()=>rl,less:()=>zr,lessEqual:()=>$s,lessEqualStrict:()=>MM,lessStrict:()=>UM,linalg:()=>Hy,linspace:()=>Ah,loadGraphModel:()=>AN,loadLayersModel:()=>mA,localResponseNormalization:()=>Nh,log:()=>zt,log1p:()=>ol,logSigmoid:()=>ES,logSoftmax:()=>al,logSumExp:()=>Oh,logicalAnd:()=>Yt,logicalNot:()=>Pr,logicalOr:()=>ll,logicalXor:()=>_S,losses:()=>n$,matMul:()=>Te,math:()=>rS,max:()=>xt,maxPool:()=>mt,maxPool3d:()=>cl,maxPoolWithArgmax:()=>Eh,maximum:()=>Ht,maximumStrict:()=>XM,mean:()=>Ke,memory:()=>Ya,metrics:()=>Eb,min:()=>Di,minimum:()=>mn,minimumStrict:()=>JM,mod:()=>pl,modStrict:()=>ZM,model:()=>hA,models:()=>_b,moments:()=>Bo,movingAverage:()=>rU,mul:()=>R,mulStrict:()=>QM,multiRNNCell:()=>kS,multinomial:()=>_h,neg:()=>_e,nextFrame:()=>kp,norm:()=>Op,notEqual:()=>Ks,notEqualStrict:()=>$M,oneHot:()=>ai,ones:()=>Kt,onesLike:()=>Ot,op:()=>S,outerProduct:()=>DS,pad:()=>Pt,pad1d:()=>FS,pad2d:()=>MS,pad3d:()=>US,pad4d:()=>$S,pool:()=>WS,pow:()=>Qt,powStrict:()=>eU,prelu:()=>jr,print:()=>Zu,prod:()=>ul,profile:()=>ok,rand:()=>zS,randomGamma:()=>jS,randomNormal:()=>Np,randomUniform:()=>fn,range:()=>Fi,ready:()=>lk,real:()=>Xs,reciprocal:()=>Dh,registerBackend:()=>Tp,registerCallbackConstructor:()=>fA,registerGradient:()=>Zg,registerKernel:()=>Ma,registerOp:()=>XA,regularizers:()=>kb,relu:()=>De,relu6:()=>Fh,removeBackend:()=>pk,reshape:()=>O,reverse:()=>Et,reverse1d:()=>VS,reverse2d:()=>GS,reverse3d:()=>qS,reverse4d:()=>HS,rfft:()=>Hr,round:()=>Mh,rsqrt:()=>hl,scalar:()=>j,scatterND:()=>By,scatter_util:()=>lS,selu:()=>dl,separableConv2d:()=>Vr,sequential:()=>dA,serialization:()=>V,setBackend:()=>xS,setPlatform:()=>dk,setdiff1dAsync:()=>Uh,sigmoid:()=>rs,sign:()=>$h,signal:()=>s$,sin:()=>ml,sinh:()=>fl,slice:()=>he,slice1d:()=>gl,slice2d:()=>Cp,slice3d:()=>Gr,slice4d:()=>jo,slice_util:()=>Fs,softmax:()=>es,softplus:()=>pi,spaceToBatchND:()=>Br,sparseToDense:()=>Ep,spectral:()=>t$,split:()=>Bt,sqrt:()=>Xe,square:()=>xe,squaredDifference:()=>Yr,squaredDifferenceStrict:()=>tU,squeeze:()=>Js,stack:()=>Ve,step:()=>ui,stridedSlice:()=>Wh,sub:()=>X,subStrict:()=>sU,sum:()=>te,sumOutType:()=>yp,tan:()=>zh,tanh:()=>ki,tensor:()=>ze,tensor1d:()=>Oe,tensor2d:()=>as,tensor3d:()=>qa,tensor4d:()=>ts,tensor5d:()=>YS,tensor6d:()=>KS,tensor_util:()=>pn,test_util:()=>bS,tidy:()=>C,tile:()=>Us,time:()=>ak,topk:()=>Ph,train:()=>Jr,transpose:()=>se,truncatedNormal:()=>Kr,unique:()=>Rp,unregisterGradient:()=>DE,unregisterKernel:()=>kE,unsortedSegmentSum:()=>Bh,unstack:()=>Ge,upcastType:()=>Ft,util:()=>N,valueAndGrad:()=>KD,valueAndGrads:()=>XD,variable:()=>jh,variableGrads:()=>Rh,version:()=>zV,version_converter:()=>Km,version_core:()=>_y,version_layers:()=>to,where:()=>dt,whereAsync:()=>bl,zeros:()=>ye,zerosLike:()=>re});const zV={"tfjs-core":_y,"tfjs-backend-cpu":Ew,"tfjs-backend-webgl":Lx,"tfjs-data":pf,"tfjs-layers":to,"tfjs-converter":Km,tfjs:b1};function Ji(e,t,s=!1){if(e.beginPath(),t.slice(1).forEach(({x:n,y:i},r)=>{const o=t[r];e.moveTo(o.x,o.y),e.lineTo(n,i)}),s){const n=t[t.length-1],i=t[0];if(!n||!i)return;e.moveTo(n.x,n.y),e.lineTo(i.x,i.y)}e.stroke()}class js{constructor(e,t){if(!Vn(e)||!Vn(t))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:e,height:t})}`);this._width=e,this._height=t}get width(){return this._width}get height(){return this._height}reverse(){return new js(1/this.width,1/this.height)}}const Ix={};Ee(Ix,{computeReshapedDimensions:()=>Ax,getCenterPoint:()=>ma,isDimensions:()=>Uf,isEven:()=>Mf,isFloat:()=>Tx,isTensor:()=>ha,isTensor1D:()=>PV,isTensor2D:()=>vx,isTensor3D:()=>Zi,isTensor4D:()=>on,isValidNumber:()=>Vn,isValidProbablitiy:()=>Kl,range:()=>wi,round:()=>da});function ha(e,t){return e instanceof me&&e.shape.length===t}function PV(e){return ha(e,1)}function vx(e){return ha(e,2)}function Zi(e){return ha(e,3)}function on(e){return ha(e,4)}function Tx(e){return e%1!==0}function Mf(e){return e%2===0}function da(e,t=2){const s=Math.pow(10,t);return Math.floor(e*s)/s}function Uf(e){return e&&e.width&&e.height}function Ax({width:e,height:t},s){const n=s/Math.max(t,e);return new js(Math.round(e*n),Math.round(t*n))}function ma(e){return e.reduce((t,s)=>t.add(s),new Fe(0,0)).div(new Fe(e.length,e.length))}function wi(e,t,s){return Array(e).fill(0).map((n,i)=>t+i*s)}function Vn(e){return!!e&&e!==Infinity&&e!==-Infinity&&!isNaN(e)||e===0}function Kl(e){return Vn(e)&&0<=e&&e<=1}class Fe{constructor(e,t){this._x=e,this._y=t}get x(){return this._x}get y(){return this._y}add(e){return new Fe(this.x+e.x,this.y+e.y)}sub(e){return new Fe(this.x-e.x,this.y-e.y)}mul(e){return new Fe(this.x*e.x,this.y*e.y)}div(e){return new Fe(this.x/e.x,this.y/e.y)}abs(){return new Fe(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(Math.pow(this.x,2)+Math.pow(this.y,2))}floor(){return new Fe(Math.floor(this.x),Math.floor(this.y))}}class lt{constructor(e,t=!0){const s=e||{},n=[s.left,s.top,s.right,s.bottom].every(Vn),i=[s.x,s.y,s.width,s.height].every(Vn);if(!i&&!n)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(s)}`);const[r,o,a,l]=i?[s.x,s.y,s.width,s.height]:[s.left,s.top,s.right-s.left,s.bottom-s.top];lt.assertIsValidBox({x:r,y:o,width:a,height:l},"Box.constructor",t),this._x=r,this._y=o,this._width=a,this._height=l}static isRect(e){return!!e&&[e.x,e.y,e.width,e.height].every(Vn)}static assertIsValidBox(e,t,s=!1){if(!lt.isRect(e))throw new Error(`${t} - invalid box: ${JSON.stringify(e)}, expected object with properties x, y, width, height`);if(!s&&(e.width<0||e.height<0))throw new Error(`${t} - width (${e.width}) and height (${e.height}) must be positive numbers`)}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new Fe(this.left,this.top)}get topRight(){return new Fe(this.right,this.top)}get bottomLeft(){return new Fe(this.left,this.bottom)}get bottomRight(){return new Fe(this.right,this.bottom)}round(){const[e,t,s,n]=[this.x,this.y,this.width,this.height].map(i=>Math.round(i));return new lt({x:e,y:t,width:s,height:n})}floor(){const[e,t,s,n]=[this.x,this.y,this.width,this.height].map(i=>Math.floor(i));return new lt({x:e,y:t,width:s,height:n})}toSquare(){let{x:e,y:t,width:s,height:n}=this;const i=Math.abs(s-n);return st&&(o=-p+t+s,p=t),u>e&&(a=-u+e+n,u=e),l<1&&(a=2-l,l=1),c<1&&(a=2-c,c=1),{dy:r,edy:a,dx:i,edx:o,y:c,ey:u,x:l,ex:p,w:s,h:n}}calibrate(e){return new lt({left:this.left+e.left*this.width,top:this.top+e.top*this.height,right:this.right+e.right*this.width,bottom:this.bottom+e.bottom*this.height}).toSquare().round()}}class Su extends lt{constructor(e,t,s,n,i=!1){super({left:e,top:t,right:s,bottom:n},i)}}class Xl{constructor(e,t,s,n,i){this._imageDims=new js(i.width,i.height),this._score=e,this._classScore=t,this._className=s,this._box=new lt(n).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new lt(this._box).rescale(this.imageDims.reverse())}forSize(e,t){return new Xl(this.score,this.classScore,this.className,this.relativeBox,{width:e,height:t})}}class Lt extends Xl{constructor(e,t,s){super(e,e,"",t,s)}forSize(e,t){const{score:s,relativeBox:n,imageDims:i}=super.forSize(e,t);return new Lt(s,n,i)}}function Nx(e,t,s=!0){const n=Math.max(0,Math.min(e.right,t.right)-Math.max(e.left,t.left)),i=Math.max(0,Math.min(e.bottom,t.bottom)-Math.max(e.top,t.top)),r=n*i;return s?r/(e.area+t.area-r):r/Math.min(e.area,t.area)}function Cx(e){const t=e.map(a=>a.x),s=e.map(a=>a.y),n=t.reduce((a,l)=>llaa({score:o,boxIndex:a})).sort((o,a)=>o.score-a.score).map(o=>o.boxIndex);const r=[];for(;i.length>0;){const o=i.pop();r.push(o);const a=i,l=[];for(let c=0;cl[p]<=s)}return r}function Gn(e,t){return C(()=>{const[s,n,i]=t,r=Wt([...e.shape.slice(0,3),1],s),o=Wt([...e.shape.slice(0,3),1],n),a=Wt([...e.shape.slice(0,3),1],i),l=be([r,o,a],3);return X(e,l)})}function Ox(e,t=!1){return C(()=>{const[s,n]=e.shape.slice(1);if(s===n)return e;const i=Math.abs(s-n),r=Math.round(i*(t?.5:1)),o=s>n?2:1,a=h=>{const d=e.shape.slice();return d[o]=h,Wt(d,0)},l=a(r),c=i-l.shape[o],p=t&&c?a(c):null,u=[p,e,l].filter(h=>!!h).map(h=>G(h,"float32"));return be(u,o)})}function BV(e){const t=e.slice();for(let s=t.length-1;s>0;s--){const n=Math.floor(Math.random()*(s+1)),i=t[s];t[s]=t[n],t[n]=i}return t}function Iu(e){return 1/(1+Math.exp(-e))}function jV(e){return Math.log(e/(1-e))}class vu extends lt{constructor(e,t,s,n,i=!1){super({x:e,y:t,width:s,height:n},i)}}const VV=.5,GV=.43,qV=.45;class On{constructor(e,t,s=new Fe(0,0)){const{width:n,height:i}=t;this._imgDims=new js(n,i),this._shift=s,this._positions=e.map(r=>r.mul(new Fe(n,i)).add(s))}get shift(){return new Fe(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(e=>e.sub(this._shift).div(new Fe(this.imageWidth,this.imageHeight)))}forSize(e,t){return new this.constructor(this.relativePositions,{width:e,height:t})}shiftBy(e,t){return new this.constructor(this.relativePositions,this._imgDims,new Fe(e,t))}shiftByPoint(e){return this.shiftBy(e.x,e.y)}align(e,t={}){if(e){const i=e instanceof Lt?e.box.floor():new lt(e);return this.shiftBy(i.x,i.y).align(null,t)}const{useDlibAlignment:s,minBoxPadding:n}=Object.assign({},{useDlibAlignment:!1,minBoxPadding:.2},t);return s?this.alignDlib():this.alignMinBbox(n)}alignDlib(){const e=this.getRefPointsForAlignment(),[t,s,n]=e,i=p=>n.sub(p).magnitude(),r=(i(t)+i(s))/2,o=Math.floor(r/qV),a=ma(e),l=Math.floor(Math.max(0,a.x-VV*o)),c=Math.floor(Math.max(0,a.y-GV*o));return new vu(l,c,Math.min(o,this.imageWidth+l),Math.min(o,this.imageHeight+c))}alignMinBbox(e){const t=Cx(this.positions);return t.pad(t.width*e,t.height*e)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}}class HV extends On{getRefPointsForAlignment(){const e=this.positions;return[e[0],e[1],ma([e[3],e[4]])]}}class Tu extends On{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(ma)}}class $f{constructor(e,t){this._label=e,this._distance=t}get label(){return this._label}get distance(){return this._distance}toString(e=!0){return`${this.label}${e?` (${da(this.distance)})`:""}`}}class Wf extends lt{constructor(e,t){super(e);this._label=t}static assertIsValidLabeledBox(e,t){if(lt.assertIsValidBox(e,t),!Vn(e.label))throw new Error(`${t} - expected property label (${e.label}) to be a number`)}get label(){return this._label}}class fa{constructor(e,t){if(!(typeof e=="string"))throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(t)||t.some(s=>!(s instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=e,this._descriptors=t}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(e=>Array.from(e))}}static fromJSON(e){const t=e.descriptors.map(s=>new Float32Array(s));return new fa(e.label,t)}}class YV extends Wf{constructor(e,t,s,n){super(e,t);this._score=s,this._classScore=n}static assertIsValidPredictedBox(e,t){if(Wf.assertIsValidLabeledBox(e,t),!Kl(e.score)||!Kl(e.classScore))throw new Error(`${t} - expected properties score (${e.score}) and (${e.classScore}) to be a number between [0, 1]`)}get score(){return this._score}get classScore(){return this._classScore}}function xi(e){return e.detection instanceof Lt}function ga(e,t){const s={detection:t};return Object.assign({},e,s)}function Ex(){const e=window.fetch||function(){throw new Error("fetch - missing fetch implementation for browser environment")},t=function(){throw new Error("readFile - filesystem not available for browser environment")};return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),fetch:e,readFile:t}}function zf(e){let t="";if(!e)try{e=require("fs")}catch(n){t=n.toString()}const s=e?function(n){return new Promise((i,r)=>{e.readFile(n,function(o,a){return o?r(o):i(a)})})}:function(){throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)};return{readFile:s}}function _x(){const e=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,s=function(){if(e)return new e;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},n=function(){if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},i=global.fetch||function(){throw new Error("fetch - missing fetch implementation for nodejs environment")},r=zf();return{Canvas:e||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:s,createImageElement:n,fetch:i,...r}}function kx(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}const Dx=mc(RL());let Jt;function KV(){if(!Jt)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return Jt}function Fx(e){Jt=e}function Mx(){if(kx())return Fx(Ex());if(Dx.isNodejs())return Fx(_x())}function XV(e){if(Jt||Mx(),!Jt)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");const{Canvas:t=Jt.Canvas,Image:s=Jt.Image}=e;Jt.Canvas=t,Jt.Image=s,Jt.createCanvasElement=e.createCanvasElement||(()=>new t),Jt.createImageElement=e.createImageElement||(()=>new s),Jt.ImageData=e.ImageData||Jt.ImageData,Jt.Video=e.Video||Jt.Video,Jt.fetch=e.fetch||Jt.fetch,Jt.readFile=e.readFile||Jt.readFile}const Ze={getEnv:KV,setEnv:Fx,initialize:Mx,createBrowserEnv:Ex,createFileSystem:zf,createNodejsEnv:_x,monkeyPatch:XV,isBrowser:kx,isNodejs:Dx.isNodejs};Mx();function ya(e){return!Ze.isNodejs()&&typeof e=="string"?document.getElementById(e):e}function Os(e){const{Canvas:t,CanvasRenderingContext2D:s}=Ze.getEnv();if(e instanceof s)return e;const n=ya(e);if(!(n instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");const i=n.getContext("2d");if(!i)throw new Error("resolveContext2d - canvas 2d context is null");return i}var Li;(function(e){e.TOP_LEFT="TOP_LEFT",e.TOP_RIGHT="TOP_RIGHT",e.BOTTOM_LEFT="BOTTOM_LEFT",e.BOTTOM_RIGHT="BOTTOM_RIGHT"})(Li||(Li={}));class Pf{constructor(e={}){const{anchorPosition:t,backgroundColor:s,fontColor:n,fontSize:i,fontStyle:r,padding:o}=e;this.anchorPosition=t||Li.TOP_LEFT,this.backgroundColor=s||"rgba(0, 0, 0, 0.5)",this.fontColor=n||"rgba(255, 255, 255, 1)",this.fontSize=i||14,this.fontStyle=r||"Georgia",this.padding=o||4}}class Jl{constructor(e,t,s={}){this.text=typeof e=="string"?[e]:e instanceof Jl?e.text:e,this.anchor=t,this.options=new Pf(s)}measureWidth(e){const{padding:t}=this.options;return this.text.map(s=>e.measureText(s).width).reduce((s,n)=>s{const d=a+p.x,m=a+p.y+(h+1)*r;s.fillText(u,d,m)})}}class w1{constructor(e={}){const{boxColor:t,lineWidth:s,label:n,drawLabelOptions:i}=e;this.boxColor=t||"rgba(0, 0, 255, 1)",this.lineWidth=s||2,this.label=n;const r={anchorPosition:Li.BOTTOM_LEFT,backgroundColor:this.boxColor};this.drawLabelOptions=new Pf(Object.assign({},r,i))}}class Ux{constructor(e,t={}){this.box=new lt(e),this.options=new w1(t)}draw(e){const t=Os(e),{boxColor:s,lineWidth:n}=this.options,{x:i,y:r,width:o,height:a}=this.box;t.strokeStyle=s,t.lineWidth=n,t.strokeRect(i,r,o,a);const{label:l}=this.options;l&&new Jl([l],{x:i-n/2,y:r},this.options.drawLabelOptions).draw(e)}}function JV(e,t){const s=Array.isArray(t)?t:[t];s.forEach(n=>{const i=n instanceof Lt?n.score:xi(n)?n.detection.score:void 0,r=n instanceof Lt?n.box:xi(n)?n.detection.box:new lt(n),o=i?`${da(i)}`:void 0;new Ux(r,{label:o}).draw(e)})}function Au(e){const{Image:t,Video:s}=Ze.getEnv();return e instanceof t&&e.complete||e instanceof s&&e.readyState>=3}function $x(e){return new Promise((t,s)=>{if(e instanceof Ze.getEnv().Canvas||Au(e))return t(null);function n(r){if(!r.currentTarget)return;r.currentTarget.removeEventListener("load",n),r.currentTarget.removeEventListener("error",i),t(r)}function i(r){if(!r.currentTarget)return;r.currentTarget.removeEventListener("load",n),r.currentTarget.removeEventListener("error",i),s(r)}e.addEventListener("load",n),e.addEventListener("error",i)})}function Wx(e){return new Promise((t,s)=>{if(!(e instanceof Blob))return s("bufferToImage - expected buf to be of type: Blob");const n=new FileReader;n.onload=()=>{if(typeof n.result!="string")return s("bufferToImage - expected reader.result to be a string, in onload");const i=Ze.getEnv().createImageElement();i.onload=()=>t(i),i.onerror=s,i.src=n.result},n.onerror=s,n.readAsDataURL(e)})}function ba(e){const{Image:t,Video:s}=Ze.getEnv();return e instanceof t?new js(e.naturalWidth,e.naturalHeight):e instanceof s?new js(e.videoWidth,e.videoHeight):new js(e.width,e.height)}function Zl({width:e,height:t}){const{createCanvasElement:s}=Ze.getEnv(),n=s();return n.width=e,n.height=t,n}function Nu(e,t){const{ImageData:s}=Ze.getEnv();if(!(e instanceof s)&&!Au(e))throw new Error("createCanvasFromMedia - media has not finished loading yet");const{width:n,height:i}=t||ba(e),r=Zl({width:n,height:i});return e instanceof s?Os(r).putImageData(e,0,0):Os(r).drawImage(e,0,0,n,i),r}async function zx(e,t){const s=t||Ze.getEnv().createCanvasElement(),[n,i,r]=e.shape.slice(on(e)?1:0),o=C(()=>e.as3D(n,i,r).toInt());return await Fr.toPixels(o,s),o.dispose(),s}function Bf(e){const{Image:t,Canvas:s,Video:n}=Ze.getEnv();return e instanceof t||e instanceof s||e instanceof n}function Px(e,t,s=!1){const{Image:n,Canvas:i}=Ze.getEnv();if(!(e instanceof n||e instanceof i))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");const r=ba(e),o=t/Math.max(r.height,r.width),a=o*r.width,l=o*r.height,c=Zl({width:t,height:t}),p=e instanceof i?e:Nu(e),u=Math.abs(a-l)/2,h=s&&a{if(Zi(s)){this._imageTensors[n]=s,this._inputDimensions[n]=s.shape;return}if(on(s)){const r=s.shape[0];if(r!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${r} passed, but not supported in input array`);this._imageTensors[n]=s,this._inputDimensions[n]=s.shape.slice(1);return}const i=s instanceof Ze.getEnv().Canvas?s:Nu(s);this._canvases[n]=i,this._inputDimensions[n]=[i.height,i.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return wi(this.batchSize,0,1).map((e,t)=>this.getReshapedInputDimensions(t))}getInput(e){return this.canvases[e]||this.imageTensors[e]}getInputDimensions(e){return this._inputDimensions[e]}getInputHeight(e){return this._inputDimensions[e][0]}getInputWidth(e){return this._inputDimensions[e][1]}getReshapedInputDimensions(e){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");const t=this.getInputWidth(e),s=this.getInputHeight(e);return Ax({width:t,height:s},this.inputSize)}toBatchTensor(e,t=!0){return this._inputSize=e,C(()=>{const s=wi(this.batchSize,0,1).map(i=>{const r=this.getInput(i);if(r instanceof me){let o=on(r)?r:r.expandDims();return o=Ox(o,t),(o.shape[1]!==e||o.shape[2]!==e)&&(o=Zs.resizeBilinear(o,[e,e])),o.as3D(e,e,3)}if(r instanceof Ze.getEnv().Canvas)return Fr.fromPixels(Px(r,e,t));throw new Error(`toBatchTensor - at batchIdx ${i}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${r}`)}),n=Ve(s.map(i=>G(i,"float32"))).as4D(this.batchSize,e,e,3);return n})}}async function ct(e){if(e instanceof mo)return e;let t=Array.isArray(e)?e:[e];if(!t.length)throw new Error("toNetInput - empty array passed as input");const s=i=>Array.isArray(e)?` at input index ${i}:`:"",n=t.map(ya);return n.forEach((i,r)=>{if(!Bf(i)&&!Zi(i)&&!on(i))throw typeof t[r]=="string"?new Error(`toNetInput -${s(r)} string passed, but could not resolve HTMLElement for element id ${t[r]}`):new Error(`toNetInput -${s(r)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(on(i)){const o=i.shape[0];if(o!==1)throw new Error(`toNetInput -${s(r)} tf.Tensor4D with batchSize ${o} passed, but not supported in input array`)}}),await Promise.all(n.map(i=>Bf(i)&&$x(i))),new mo(n,Array.isArray(e))}async function Ql(e,t){const{Canvas:s}=Ze.getEnv();let n=e;if(!(e instanceof s)){const o=await ct(e);if(o.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");const a=o.getInput(0);n=a instanceof s?a:await zx(a)}const i=Os(n),r=t.map(o=>o instanceof Lt?o.forSize(n.width,n.height).box.floor():o).map(o=>o.clipAtImageBorders(n.width,n.height));return r.map(({x:o,y:a,width:l,height:c})=>{const p=Zl({width:l,height:c});return Os(p).putImageData(i.getImageData(o,a,l,c),0,0),p})}async function ec(e,t){if(!Zi(e)&&!on(e))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(on(e)&&e.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return C(()=>{const[s,n,i]=e.shape.slice(on(e)?1:0),r=t.map(a=>a instanceof Lt?a.forSize(n,s).box:a).map(a=>a.clipAtImageBorders(n,s)),o=r.map(({x:a,y:l,width:c,height:p})=>Gr(e.as3D(s,n,i),[l,a,0],[p,c,i]));return o})}async function wa(e,t){const s=Ze.getEnv().fetch,n=await s(e,t);if(!(n.status<400))throw new Error(`failed to fetch: (${n.status}) ${n.statusText}, from url: ${n.url}`);return n}async function ZV(e){const t=await wa(e),s=await t.blob();if(!s.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${s.type}, for url: ${t.url}`);return Wx(s)}async function Bx(e){return(await wa(e)).json()}async function QV(e){return new Float32Array(await(await wa(e)).arrayBuffer())}function jf(e,t){const s=`${t}-weights_manifest.json`;if(!e)return{modelBaseUri:"",manifestUri:s};if(e==="/")return{modelBaseUri:"/",manifestUri:`/${s}`};const n=e.startsWith("http://")?"http://":e.startsWith("https://")?"https://":"";e=e.replace(n,"");const i=e.split("/").filter(a=>a),r=e.endsWith(".json")?i[i.length-1]:s;let o=n+(e.endsWith(".json")?i.slice(0,i.length-1):i).join("/");return o=e.startsWith("/")?`/${o}`:o,{modelBaseUri:o,manifestUri:o==="/"?`/${r}`:`${o}/${r}`}}async function jx(e,t){const{manifestUri:s,modelBaseUri:n}=jf(e,t);let i=await Bx(s);return Rt.loadWeights(i,n)}function eG(e,t,s=!1){const{width:n,height:i}=s?ba(t):t;return e.width=n,e.height=i,{width:n,height:i}}class cs{constructor(e){this._name=e,this._params=void 0,this._paramMappings=[]}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(e){const{obj:t,objProp:s}=this.traversePropertyPath(e);return t[s]}reassignParamFromPath(e,t){const{obj:s,objProp:n}=this.traversePropertyPath(e);s[n].dispose(),s[n]=t}getParamList(){return this._paramMappings.map(({paramPath:e})=>({path:e,tensor:this.getParamFromPath(e)}))}getTrainableParams(){return this.getParamList().filter(e=>e.tensor instanceof oi)}getFrozenParams(){return this.getParamList().filter(e=>!(e.tensor instanceof oi))}variable(){this.getFrozenParams().forEach(({path:e,tensor:t})=>{this.reassignParamFromPath(e,t.variable())})}freeze(){this.getTrainableParams().forEach(({path:e,tensor:t})=>{const s=ze(t.dataSync());t.dispose(),this.reassignParamFromPath(e,s)})}dispose(e=!0){this.getParamList().forEach(t=>{if(e&&t.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${t.path}`);t.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:e})=>Array.from(e.dataSync())).reduce((e,t)=>e.concat(t)))}async load(e){if(e instanceof Float32Array){this.extractWeights(e);return}await this.loadFromUri(e)}async loadFromUri(e){if(e&&typeof e!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);const t=await jx(e,this.getDefaultModelName());this.loadFromWeightMap(t)}async loadFromDisk(e){if(e&&typeof e!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);const{readFile:t}=Ze.getEnv(),{manifestUri:s,modelBaseUri:n}=jf(e,this.getDefaultModelName()),i=l=>Promise.all(l.map(c=>t(c).then(p=>p.buffer))),r=Rt.weightsLoaderFactory(i),o=JSON.parse((await t(s)).toString()),a=await r(o,n);this.loadFromWeightMap(a)}loadFromWeightMap(e){const{paramMappings:t,params:s}=this.extractParamsFromWeigthMap(e);this._paramMappings=t,this._params=s}extractWeights(e){const{paramMappings:t,params:s}=this.extractParams(e);this._paramMappings=t,this._params=s}traversePropertyPath(e){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");const t=e.split("/").reduce((i,r)=>{if(!i.nextObj.hasOwnProperty(r))throw new Error(`traversePropertyPath - object does not have property ${r}, for path ${e}`);return{obj:i.nextObj,objProp:r,nextObj:i.nextObj[r]}},{nextObj:this.params}),{obj:s,objProp:n}=t;if(!s||!n||!(s[n]instanceof me))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${e}`);return{obj:s,objProp:n}}}function Es(e,t,s){return C(()=>{let n=Vr(e,t.depthwise_filter,t.pointwise_filter,s,"same");return n=$(n,t.bias),n})}function Vf(e,t,s=!1){return C(()=>{const n=De(s?$(nt(e,t.conv0.filters,[2,2],"same"),t.conv0.bias):Es(e,t.conv0,[2,2])),i=Es(n,t.conv1,[1,1]),r=De($(n,i)),o=Es(r,t.conv2,[1,1]);return De($(n,$(i,o)))})}function Cu(e,t,s=!1,n=!0){return C(()=>{const i=De(s?$(nt(e,t.conv0.filters,n?[2,2]:[1,1],"same"),t.conv0.bias):Es(e,t.conv0,n?[2,2]:[1,1])),r=Es(i,t.conv1,[1,1]),o=De($(i,r)),a=Es(o,t.conv2,[1,1]),l=De($(i,$(r,a))),c=Es(l,t.conv3,[1,1]);return De($(i,$(r,$(a,c))))})}function xa(e,t,s="same",n=!1){return C(()=>{const i=$(nt(e,t.filters,[1,1],s),t.bias);return n?De(i):i})}function Ss(e,t){Object.keys(e).forEach(s=>{t.some(n=>n.originalPath===s)||e[s].dispose()})}function tc(e,t){return function(s,n,i,r){const o=ts(e(s*n*i*i),[i,i,s,n]),a=Oe(e(n));return t.push({paramPath:`${r}/filters`},{paramPath:`${r}/bias`}),{filters:o,bias:a}}}function Gf(e,t){return function(s,n,i){const r=as(e(s*n),[s,n]),o=Oe(e(n));return t.push({paramPath:`${i}/weights`},{paramPath:`${i}/bias`}),{weights:r,bias:o}}}class Vx{constructor(e,t,s){this.depthwise_filter=e,this.pointwise_filter=t,this.bias=s}}function sc(e,t){return function(s,n,i){const r=ts(e(3*3*s),[3,3,s,1]),o=ts(e(s*n),[1,1,s,n]),a=Oe(e(n));return t.push({paramPath:`${i}/depthwise_filter`},{paramPath:`${i}/pointwise_filter`},{paramPath:`${i}/bias`}),new Vx(r,o,a)}}function nc(e){return function(t){const s=e(`${t}/depthwise_filter`,4),n=e(`${t}/pointwise_filter`,4),i=e(`${t}/bias`,1);return new Vx(s,n,i)}}function Vs(e,t){return function(s,n,i){const r=e[s];if(!ha(r,n))throw new Error(`expected weightMap[${s}] to be a Tensor${n}D, instead have ${r}`);return t.push({originalPath:s,paramPath:i||s}),r}}function Is(e){let t=e;function s(i){const r=t.slice(0,i);return t=t.slice(i),r}function n(){return t}return{extractWeights:s,getRemainingWeights:n}}function qf(e,t){const s=tc(e,t),n=sc(e,t);function i(o,a,l,c=!1){const p=c?s(o,a,3,`${l}/conv0`):n(o,a,`${l}/conv0`),u=n(a,a,`${l}/conv1`),h=n(a,a,`${l}/conv2`);return{conv0:p,conv1:u,conv2:h}}function r(o,a,l,c=!1){const{conv0:p,conv1:u,conv2:h}=i(o,a,l,c),d=n(a,a,`${l}/conv3`);return{conv0:p,conv1:u,conv2:h,conv3:d}}return{extractDenseBlock3Params:i,extractDenseBlock4Params:r}}function x1(e){const t=[],{extractWeights:s,getRemainingWeights:n}=Is(e),{extractDenseBlock4Params:i}=qf(s,t),r=i(3,32,"dense0",!0),o=i(32,64,"dense1"),a=i(64,128,"dense2"),l=i(128,256,"dense3");if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:t,params:{dense0:r,dense1:o,dense2:a,dense3:l}}}function Hf(e){return function(t){const s=e(`${t}/filters`,4),n=e(`${t}/bias`,1);return{filters:s,bias:n}}}function Yf(e,t){const s=Vs(e,t),n=Hf(s),i=nc(s);function r(a,l=!1){const c=l?n(`${a}/conv0`):i(`${a}/conv0`),p=i(`${a}/conv1`),u=i(`${a}/conv2`);return{conv0:c,conv1:p,conv2:u}}function o(a,l=!1){const c=l?n(`${a}/conv0`):i(`${a}/conv0`),p=i(`${a}/conv1`),u=i(`${a}/conv2`),h=i(`${a}/conv3`);return{conv0:c,conv1:p,conv2:u,conv3:h}}return{extractDenseBlock3Params:r,extractDenseBlock4Params:o}}function L1(e){const t=[],{extractDenseBlock4Params:s}=Yf(e,t),n={dense0:s("dense0",!0),dense1:s("dense1"),dense2:s("dense2"),dense3:s("dense3")};return Ss(e,t),{params:n,paramMappings:t}}class Kf extends cs{constructor(){super("FaceFeatureExtractor")}forwardInput(e){const{params:t}=this;if(!t)throw new Error("FaceFeatureExtractor - load model before inference");return C(()=>{const s=e.toBatchTensor(112,!0),n=[122.782,117.001,104.298],i=Gn(s,n).div(j(255));let r=Cu(i,t.dense0,!0);return r=Cu(r,t.dense1),r=Cu(r,t.dense2),r=Cu(r,t.dense3),r=hs(r,[7,7],[2,2],"valid"),r})}async forward(e){return this.forwardInput(await ct(e))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeigthMap(e){return L1(e)}extractParams(e){return x1(e)}}function Ru(e,t){return C(()=>$(Te(e,t.weights),t.bias))}function S1(e,t,s){const n=[],{extractWeights:i,getRemainingWeights:r}=Is(e),o=Gf(i,n),a=o(t,s,"fc");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:n,params:{fc:a}}}function I1(e){const t=[],s=Vs(e,t);function n(r){const o=s(`${r}/weights`,2),a=s(`${r}/bias`,1);return{weights:o,bias:a}}const i={fc:n("fc")};return Ss(e,t),{params:i,paramMappings:t}}function Xf(e){const t={},s={};return Object.keys(e).forEach(n=>{const i=n.startsWith("fc")?s:t;i[n]=e[n]}),{featureExtractorMap:t,classifierMap:s}}class Jf extends cs{constructor(e,t){super(e);this._faceFeatureExtractor=t}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(e){const{params:t}=this;if(!t)throw new Error(`${this._name} - load model before inference`);return C(()=>{const s=e instanceof mo?this.faceFeatureExtractor.forwardInput(e):e;return Ru(s.as2D(s.shape[0],-1),t.fc)})}dispose(e=!0){this.faceFeatureExtractor.dispose(e),super.dispose(e)}loadClassifierParams(e){const{params:t,paramMappings:s}=this.extractClassifierParams(e);this._params=t,this._paramMappings=s}extractClassifierParams(e){return S1(e,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeigthMap(e){const{featureExtractorMap:t,classifierMap:s}=Xf(e);return this.faceFeatureExtractor.loadFromWeightMap(t),I1(s)}extractParams(e){const t=this.getClassifierChannelsIn(),s=this.getClassifierChannelsOut(),n=s*t+s,i=e.slice(0,e.length-n),r=e.slice(e.length-n);return this.faceFeatureExtractor.extractWeights(i),this.extractClassifierParams(r)}}const Gx=["neutral","happy","sad","angry","fearful","disgusted","surprised"];class La{constructor(e){if(e.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${e.length}`);Gx.forEach((t,s)=>{this[t]=e[s]})}asSortedArray(){return Gx.map(e=>({expression:e,probability:this[e]})).sort((e,t)=>t.probability-e.probability)}}class qx extends Jf{constructor(e=new Kf){super("FaceExpressionNet",e)}forwardInput(e){return C(()=>es(this.runNet(e)))}async forward(e){return this.forwardInput(await ct(e))}async predictExpressions(e){const t=await ct(e),s=await this.forwardInput(t),n=await Promise.all(Ge(s).map(async r=>{const o=await r.data();return r.dispose(),o}));s.dispose();const i=n.map(r=>new La(r));return t.isBatchInput?i:i[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}}function Hx(e){return e.expressions instanceof La}function Zf(e,t){const s={expressions:t};return Object.assign({},e,s)}function tG(e,t,s=.1,n){const i=Array.isArray(t)?t:[t];i.forEach(r=>{const o=r instanceof La?r:Hx(r)?r.expressions:void 0;if(!o)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");const a=o.asSortedArray(),l=a.filter(u=>u.probability>s),c=xi(r)?r.detection.box.bottomLeft:n||new Fe(0,0),p=new Jl(l.map(u=>`${u.expression} (${da(u.probability)})`),c);p.draw(e)})}function Sa(e){return xi(e)&&e.landmarks instanceof On&&e.unshiftedLandmarks instanceof On&&e.alignedRect instanceof Lt}function ic(e,t){const{box:s}=e.detection,n=t.shiftBy(s.x,s.y),i=n.align(),{imageDims:r}=e.detection,o=new Lt(e.detection.score,i.rescale(r.reverse()),r),a={landmarks:n,unshiftedLandmarks:t,alignedRect:o};return Object.assign({},e,a)}class v1{constructor(e={}){const{drawLines:t=!0,drawPoints:s=!0,lineWidth:n,lineColor:i,pointSize:r,pointColor:o}=e;this.drawLines=t,this.drawPoints=s,this.lineWidth=n||1,this.pointSize=r||2,this.lineColor=i||"rgba(0, 255, 255, 1)",this.pointColor=o||"rgba(255, 0, 255, 1)"}}class T1{constructor(e,t={}){this.faceLandmarks=e,this.options=new v1(t)}draw(e){const t=Os(e),{drawLines:s,drawPoints:n,lineWidth:i,lineColor:r,pointSize:o,pointColor:a}=this.options;if(s&&this.faceLandmarks instanceof Tu&&(t.strokeStyle=r,t.lineWidth=i,Ji(t,this.faceLandmarks.getJawOutline()),Ji(t,this.faceLandmarks.getLeftEyeBrow()),Ji(t,this.faceLandmarks.getRightEyeBrow()),Ji(t,this.faceLandmarks.getNose()),Ji(t,this.faceLandmarks.getLeftEye(),!0),Ji(t,this.faceLandmarks.getRightEye(),!0),Ji(t,this.faceLandmarks.getMouth(),!0)),n){t.strokeStyle=a,t.fillStyle=a;const l=c=>{t.beginPath(),t.arc(c.x,c.y,o,0,2*Math.PI),t.fill()};this.faceLandmarks.positions.forEach(l)}}}function sG(e,t){const s=Array.isArray(t)?t:[t];s.forEach(n=>{const i=n instanceof On?n:Sa(n)?n.landmarks:void 0;if(!i)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new T1(i).draw(e)})}const Yx={};Ee(Yx,{AnchorPosition:()=>Li,DrawBox:()=>Ux,DrawBoxOptions:()=>w1,DrawFaceLandmarks:()=>T1,DrawFaceLandmarksOptions:()=>v1,DrawTextField:()=>Jl,DrawTextFieldOptions:()=>Pf,drawContour:()=>Ji,drawDetections:()=>JV,drawFaceExpressions:()=>tG,drawFaceLandmarks:()=>sG});function nG(e,t){const s=tc(e,t),n=sc(e,t);function i(o,a,l){const c=n(o,a,`${l}/separable_conv0`),p=n(a,a,`${l}/separable_conv1`),u=s(o,a,1,`${l}/expansion_conv`);return{separable_conv0:c,separable_conv1:p,expansion_conv:u}}function r(o,a){const l=n(o,o,`${a}/separable_conv0`),c=n(o,o,`${a}/separable_conv1`),p=n(o,o,`${a}/separable_conv2`);return{separable_conv0:l,separable_conv1:c,separable_conv2:p}}return{extractConvParams:s,extractSeparableConvParams:n,extractReductionBlockParams:i,extractMainBlockParams:r}}function A1(e,t){const s=[],{extractWeights:n,getRemainingWeights:i}=Is(e),{extractConvParams:r,extractSeparableConvParams:o,extractReductionBlockParams:a,extractMainBlockParams:l}=nG(n,s),c=r(3,32,3,"entry_flow/conv_in"),p=a(32,64,"entry_flow/reduction_block_0"),u=a(64,128,"entry_flow/reduction_block_1"),h={conv_in:c,reduction_block_0:p,reduction_block_1:u},d={};wi(t,0,1).forEach(y=>{d[`main_block_${y}`]=l(128,`middle_flow/main_block_${y}`)});const m=a(128,256,"exit_flow/reduction_block"),f=o(256,512,"exit_flow/separable_conv"),g={reduction_block:m,separable_conv:f};if(i().length!==0)throw new Error(`weights remaing after extract: ${i().length}`);return{paramMappings:s,params:{entry_flow:h,middle_flow:d,exit_flow:g}}}function iG(e,t){const s=Vs(e,t),n=Hf(s),i=nc(s);function r(a){const l=i(`${a}/separable_conv0`),c=i(`${a}/separable_conv1`),p=n(`${a}/expansion_conv`);return{separable_conv0:l,separable_conv1:c,expansion_conv:p}}function o(a){const l=i(`${a}/separable_conv0`),c=i(`${a}/separable_conv1`),p=i(`${a}/separable_conv2`);return{separable_conv0:l,separable_conv1:c,separable_conv2:p}}return{extractConvParams:n,extractSeparableConvParams:i,extractReductionBlockParams:r,extractMainBlockParams:o}}function N1(e,t){const s=[],{extractConvParams:n,extractSeparableConvParams:i,extractReductionBlockParams:r,extractMainBlockParams:o}=iG(e,s),a=n("entry_flow/conv_in"),l=r("entry_flow/reduction_block_0"),c=r("entry_flow/reduction_block_1"),p={conv_in:a,reduction_block_0:l,reduction_block_1:c},u={};wi(t,0,1).forEach(f=>{u[`main_block_${f}`]=o(`middle_flow/main_block_${f}`)});const h=r("exit_flow/reduction_block"),d=i("exit_flow/separable_conv"),m={reduction_block:h,separable_conv:d};return Ss(e,s),{params:{entry_flow:p,middle_flow:u,exit_flow:m},paramMappings:s}}function C1(e,t,s){return $(nt(e,t.filters,s,"same"),t.bias)}function Kx(e,t,s=!0){let n=s?De(e):e;return n=Es(n,t.separable_conv0,[1,1]),n=Es(De(n),t.separable_conv1,[1,1]),n=mt(n,[3,3],[2,2],"same"),n=$(n,C1(e,t.expansion_conv,[2,2])),n}function rG(e,t){let s=Es(De(e),t.separable_conv0,[1,1]);return s=Es(De(s),t.separable_conv1,[1,1]),s=Es(De(s),t.separable_conv2,[1,1]),s=$(s,e),s}class R1 extends cs{constructor(e){super("TinyXception");this._numMainBlocks=e}forwardInput(e){const{params:t}=this;if(!t)throw new Error("TinyXception - load model before inference");return C(()=>{const s=e.toBatchTensor(112,!0),n=[122.782,117.001,104.298],i=Gn(s,n).div(j(256));let r=De(C1(i,t.entry_flow.conv_in,[2,2]));return r=Kx(r,t.entry_flow.reduction_block_0,!1),r=Kx(r,t.entry_flow.reduction_block_1),wi(this._numMainBlocks,0,1).forEach(o=>{r=rG(r,t.middle_flow[`main_block_${o}`])}),r=Kx(r,t.exit_flow.reduction_block),r=De(Es(r,t.exit_flow.separable_conv,[1,1])),r})}async forward(e){return this.forwardInput(await ct(e))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeigthMap(e){return N1(e,this._numMainBlocks)}extractParams(e){return A1(e,this._numMainBlocks)}}function O1(e){const t=[],{extractWeights:s,getRemainingWeights:n}=Is(e),i=Gf(s,t),r=i(512,1,"fc/age"),o=i(512,2,"fc/gender");if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:t,params:{fc:{age:r,gender:o}}}}function E1(e){const t=[],s=Vs(e,t);function n(r){const o=s(`${r}/weights`,2),a=s(`${r}/bias`,1);return{weights:o,bias:a}}const i={fc:{age:n("fc/age"),gender:n("fc/gender")}};return Ss(e,t),{params:i,paramMappings:t}}var Qi;(function(e){e.FEMALE="female",e.MALE="male"})(Qi||(Qi={}));class Xx extends cs{constructor(e=new R1(2)){super("AgeGenderNet");this._faceFeatureExtractor=e}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(e){const{params:t}=this;if(!t)throw new Error(`${this._name} - load model before inference`);return C(()=>{const s=e instanceof mo?this.faceFeatureExtractor.forwardInput(e):e,n=hs(s,[7,7],[2,2],"valid").as2D(s.shape[0],-1),i=Ru(n,t.fc.age).as1D(),r=Ru(n,t.fc.gender);return{age:i,gender:r}})}forwardInput(e){return C(()=>{const{age:t,gender:s}=this.runNet(e);return{age:t,gender:es(s)}})}async forward(e){return this.forwardInput(await ct(e))}async predictAgeAndGender(e){const t=await ct(e),s=await this.forwardInput(t),n=Ge(s.age),i=Ge(s.gender),r=n.map((a,l)=>({ageTensor:a,genderTensor:i[l]})),o=await Promise.all(r.map(async({ageTensor:a,genderTensor:l})=>{const c=(await a.data())[0],p=(await l.data())[0],u=p>.5,h=u?Qi.MALE:Qi.FEMALE,d=u?p:1-p;return a.dispose(),l.dispose(),{age:c,gender:h,genderProbability:d}}));return s.age.dispose(),s.gender.dispose(),t.isBatchInput?o:o[0]}getDefaultModelName(){return"age_gender_model"}dispose(e=!0){this.faceFeatureExtractor.dispose(e),super.dispose(e)}loadClassifierParams(e){const{params:t,paramMappings:s}=this.extractClassifierParams(e);this._params=t,this._paramMappings=s}extractClassifierParams(e){return O1(e)}extractParamsFromWeigthMap(e){const{featureExtractorMap:t,classifierMap:s}=Xf(e);return this.faceFeatureExtractor.loadFromWeightMap(t),E1(s)}extractParams(e){const t=512*1+1+(512*2+2),s=e.slice(0,e.length-t),n=e.slice(e.length-t);return this.faceFeatureExtractor.extractWeights(s),this.extractClassifierParams(n)}}class Qf extends Jf{postProcess(e,t,s){const n=s.map(({width:r,height:o})=>{const a=t/Math.max(o,r);return{width:r*a,height:o*a}}),i=n.length;return C(()=>{const r=(p,u)=>Ve([Wt([68],p),Wt([68],u)],1).as2D(1,136).as1D(),o=(p,u)=>{const{width:h,height:d}=n[p];return u(h,d)?Math.abs(h-d)/2:0},a=p=>o(p,(u,h)=>uo(p,(u,h)=>hr(a(u),l(u))))).div(Ve(Array.from(Array(i),(p,u)=>r(n[u].width,n[u].height))));return c})}forwardInput(e){return C(()=>{const t=this.runNet(e);return this.postProcess(t,e.inputSize,e.inputDimensions.map(([s,n])=>({height:s,width:n})))})}async forward(e){return this.forwardInput(await ct(e))}async detectLandmarks(e){const t=await ct(e),s=C(()=>Ge(this.forwardInput(t))),n=await Promise.all(s.map(async(i,r)=>{const o=Array.from(await i.data()),a=o.filter((c,p)=>Mf(p)),l=o.filter((c,p)=>!Mf(p));return new Tu(Array(68).fill(0).map((c,p)=>new Fe(a[p],l[p])),{height:t.getInputHeight(r),width:t.getInputWidth(r)})}));return s.forEach(i=>i.dispose()),t.isBatchInput?n:n[0]}getClassifierChannelsOut(){return 136}}class Ou extends Qf{constructor(e=new Kf){super("FaceLandmark68Net",e)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}}function _1(e){const t=[],{extractDenseBlock3Params:s}=Yf(e,t),n={dense0:s("dense0",!0),dense1:s("dense1"),dense2:s("dense2")};return Ss(e,t),{params:n,paramMappings:t}}function k1(e){const t=[],{extractWeights:s,getRemainingWeights:n}=Is(e),{extractDenseBlock3Params:i}=qf(s,t),r=i(3,32,"dense0",!0),o=i(32,64,"dense1"),a=i(64,128,"dense2");if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:t,params:{dense0:r,dense1:o,dense2:a}}}class D1 extends cs{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(e){const{params:t}=this;if(!t)throw new Error("TinyFaceFeatureExtractor - load model before inference");return C(()=>{const s=e.toBatchTensor(112,!0),n=[122.782,117.001,104.298],i=Gn(s,n).div(j(255));let r=Vf(i,t.dense0,!0);return r=Vf(r,t.dense1),r=Vf(r,t.dense2),r=hs(r,[14,14],[2,2],"valid"),r})}async forward(e){return this.forwardInput(await ct(e))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeigthMap(e){return _1(e)}extractParams(e){return k1(e)}}class Jx extends Qf{constructor(e=new D1){super("FaceLandmark68TinyNet",e)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}}class oG extends Ou{}function F1(e,t){return $(R(e,t.weights),t.biases)}function Zx(e,t,s,n,i="same"){const{filters:r,bias:o}=t.conv;let a=nt(e,r,s,i);return a=$(a,o),a=F1(a,t.scale),n?De(a):a}function M1(e,t){return Zx(e,t,[1,1],!0)}function Qx(e,t){return Zx(e,t,[1,1],!1)}function eg(e,t){return Zx(e,t,[2,2],!0,"valid")}function aG(e,t){function s(a,l,c){const p=e(a),u=p.length/(l*c*c);if(Tx(u))throw new Error(`depth has to be an integer: ${u}, weights.length: ${p.length}, numFilters: ${l}, filterSize: ${c}`);return C(()=>se(ts(p,[l,u,c,c]),[2,3,1,0]))}function n(a,l,c,p){const u=s(a,l,c),h=Oe(e(l));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:u,bias:h}}function i(a,l){const c=Oe(e(a)),p=Oe(e(a));return t.push({paramPath:`${l}/weights`},{paramPath:`${l}/biases`}),{weights:c,biases:p}}function r(a,l,c,p){const u=n(a,l,c,`${p}/conv`),h=i(l,`${p}/scale`);return{conv:u,scale:h}}function o(a,l,c,p,u=!1){const h=r((u?.5:1)*a,l,c,`${p}/conv1`),d=r(a,l,c,`${p}/conv2`);return{conv1:h,conv2:d}}return{extractConvLayerParams:r,extractResidualLayerParams:o}}function U1(e){const{extractWeights:t,getRemainingWeights:s}=Is(e),n=[],{extractConvLayerParams:i,extractResidualLayerParams:r}=aG(t,n),o=i(4704,32,7,"conv32_down"),a=r(9216,32,3,"conv32_1"),l=r(9216,32,3,"conv32_2"),c=r(9216,32,3,"conv32_3"),p=r(36864,64,3,"conv64_down",!0),u=r(36864,64,3,"conv64_1"),h=r(36864,64,3,"conv64_2"),d=r(36864,64,3,"conv64_3"),m=r(147456,128,3,"conv128_down",!0),f=r(147456,128,3,"conv128_1"),g=r(147456,128,3,"conv128_2"),y=r(589824,256,3,"conv256_down",!0),w=r(589824,256,3,"conv256_1"),x=r(589824,256,3,"conv256_2"),T=r(589824,256,3,"conv256_down_out"),A=C(()=>se(as(t(256*128),[128,256]),[1,0]));if(n.push({paramPath:"fc"}),s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);const _={conv32_down:o,conv32_1:a,conv32_2:l,conv32_3:c,conv64_down:p,conv64_1:u,conv64_2:h,conv64_3:d,conv128_down:m,conv128_1:f,conv128_2:g,conv256_down:y,conv256_1:w,conv256_2:x,conv256_down_out:T,fc:A};return{params:_,paramMappings:n}}function lG(e,t){const s=Vs(e,t);function n(o){const a=s(`${o}/scale/weights`,1),l=s(`${o}/scale/biases`,1);return{weights:a,biases:l}}function i(o){const a=s(`${o}/conv/filters`,4),l=s(`${o}/conv/bias`,1),c=n(o);return{conv:{filters:a,bias:l},scale:c}}function r(o){return{conv1:i(`${o}/conv1`),conv2:i(`${o}/conv2`)}}return{extractConvLayerParams:i,extractResidualLayerParams:r}}function $1(e){const t=[],{extractConvLayerParams:s,extractResidualLayerParams:n}=lG(e,t),i=s("conv32_down"),r=n("conv32_1"),o=n("conv32_2"),a=n("conv32_3"),l=n("conv64_down"),c=n("conv64_1"),p=n("conv64_2"),u=n("conv64_3"),h=n("conv128_down"),d=n("conv128_1"),m=n("conv128_2"),f=n("conv256_down"),g=n("conv256_1"),y=n("conv256_2"),w=n("conv256_down_out"),x=e.fc;if(t.push({originalPath:"fc",paramPath:"fc"}),!vx(x))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${x}`);const T={conv32_down:i,conv32_1:r,conv32_2:o,conv32_3:a,conv64_down:l,conv64_1:c,conv64_2:p,conv64_3:u,conv128_down:h,conv128_1:d,conv128_2:m,conv256_down:f,conv256_1:g,conv256_2:y,conv256_down_out:w,fc:x};return Ss(e,t),{params:T,paramMappings:t}}function qn(e,t){let s=M1(e,t.conv1);return s=Qx(s,t.conv2),s=$(s,e),s=De(s),s}function Eu(e,t){let s=eg(e,t.conv1);s=Qx(s,t.conv2);let n=hs(e,2,2,"valid");const i=ye(n.shape),r=n.shape[3]!==s.shape[3],o=n.shape[1]!==s.shape[1]||n.shape[2]!==s.shape[2];if(o){const a=[...s.shape];a[1]=1;const l=ye(a);s=be([s,l],1);const c=[...s.shape];c[2]=1;const p=ye(c);s=be([s,p],2)}return n=r?be([n,i],3):n,s=$(n,s),s=De(s),s}class _u extends cs{constructor(){super("FaceRecognitionNet")}forwardInput(e){const{params:t}=this;if(!t)throw new Error("FaceRecognitionNet - load model before inference");return C(()=>{const s=G(e.toBatchTensor(150,!0),"float32"),n=[122.782,117.001,104.298],i=Gn(s,n).div(j(256));let r=eg(i,t.conv32_down);r=mt(r,3,2,"valid"),r=qn(r,t.conv32_1),r=qn(r,t.conv32_2),r=qn(r,t.conv32_3),r=Eu(r,t.conv64_down),r=qn(r,t.conv64_1),r=qn(r,t.conv64_2),r=qn(r,t.conv64_3),r=Eu(r,t.conv128_down),r=qn(r,t.conv128_1),r=qn(r,t.conv128_2),r=Eu(r,t.conv256_down),r=qn(r,t.conv256_1),r=qn(r,t.conv256_2),r=Eu(r,t.conv256_down_out);const o=r.mean([1,2]),a=Te(o,t.fc);return a})}async forward(e){return this.forwardInput(await ct(e))}async computeFaceDescriptor(e){const t=await ct(e),s=C(()=>Ge(this.forwardInput(t))),n=await Promise.all(s.map(i=>i.data()));return s.forEach(i=>i.dispose()),t.isBatchInput?n:n[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeigthMap(e){return $1(e)}extractParams(e){return U1(e)}}function cG(e){const t=new _u;return t.extractWeights(e),t}function tg(e,t){const s={descriptor:t};return Object.assign({},e,s)}function pG(e){return typeof e.age=="number"}function sg(e,t){const s={age:t};return Object.assign({},e,s)}function uG(e){return(e.gender===Qi.MALE||e.gender===Qi.FEMALE)&&Kl(e.genderProbability)}function ng(e,t,s){const n={gender:t,genderProbability:s};return Object.assign({},e,n)}function hG(e,t){function s(l,c){const p=ts(e(3*3*l),[3,3,l,1]),u=Oe(e(l)),h=Oe(e(l)),d=Oe(e(l)),m=Oe(e(l));return t.push({paramPath:`${c}/filters`},{paramPath:`${c}/batch_norm_scale`},{paramPath:`${c}/batch_norm_offset`},{paramPath:`${c}/batch_norm_mean`},{paramPath:`${c}/batch_norm_variance`}),{filters:p,batch_norm_scale:u,batch_norm_offset:h,batch_norm_mean:d,batch_norm_variance:m}}function n(l,c,p,u,h){const d=ts(e(l*c*p*p),[p,p,l,c]),m=Oe(e(c));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/${h?"batch_norm_offset":"bias"}`}),{filters:d,bias:m}}function i(l,c,p,u){const{filters:h,bias:d}=n(l,c,p,u,!0);return{filters:h,batch_norm_offset:d}}function r(l,c,p){const u=s(l,`${p}/depthwise_conv`),h=i(l,c,1,`${p}/pointwise_conv`);return{depthwise_conv:u,pointwise_conv:h}}function o(){const l=i(3,32,3,"mobilenetv1/conv_0"),c=r(32,64,"mobilenetv1/conv_1"),p=r(64,128,"mobilenetv1/conv_2"),u=r(128,128,"mobilenetv1/conv_3"),h=r(128,256,"mobilenetv1/conv_4"),d=r(256,256,"mobilenetv1/conv_5"),m=r(256,512,"mobilenetv1/conv_6"),f=r(512,512,"mobilenetv1/conv_7"),g=r(512,512,"mobilenetv1/conv_8"),y=r(512,512,"mobilenetv1/conv_9"),w=r(512,512,"mobilenetv1/conv_10"),x=r(512,512,"mobilenetv1/conv_11"),T=r(512,1024,"mobilenetv1/conv_12"),A=r(1024,1024,"mobilenetv1/conv_13");return{conv_0:l,conv_1:c,conv_2:p,conv_3:u,conv_4:h,conv_5:d,conv_6:m,conv_7:f,conv_8:g,conv_9:y,conv_10:w,conv_11:x,conv_12:T,conv_13:A}}function a(){const l=i(1024,256,1,"prediction_layer/conv_0"),c=i(256,512,3,"prediction_layer/conv_1"),p=i(512,128,1,"prediction_layer/conv_2"),u=i(128,256,3,"prediction_layer/conv_3"),h=i(256,128,1,"prediction_layer/conv_4"),d=i(128,256,3,"prediction_layer/conv_5"),m=i(256,64,1,"prediction_layer/conv_6"),f=i(64,128,3,"prediction_layer/conv_7"),g=n(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),y=n(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),w=n(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),x=n(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),T=n(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),A=n(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),_=n(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),E=n(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),F=n(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),D=n(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),M=n(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),P=n(128,18,1,"prediction_layer/box_predictor_5/class_predictor"),B={box_encoding_predictor:g,class_predictor:y},Y={box_encoding_predictor:w,class_predictor:x},q={box_encoding_predictor:T,class_predictor:A},K={box_encoding_predictor:_,class_predictor:E},H={box_encoding_predictor:F,class_predictor:D},Q={box_encoding_predictor:M,class_predictor:P};return{conv_0:l,conv_1:c,conv_2:p,conv_3:u,conv_4:h,conv_5:d,conv_6:m,conv_7:f,box_predictor_0:B,box_predictor_1:Y,box_predictor_2:q,box_predictor_3:K,box_predictor_4:H,box_predictor_5:Q}}return{extractMobilenetV1Params:o,extractPredictionLayerParams:a}}function W1(e){const t=[],{extractWeights:s,getRemainingWeights:n}=Is(e),{extractMobilenetV1Params:i,extractPredictionLayerParams:r}=hG(s,t),o=i(),a=r(),l=qa(s(5118*4),[1,5118,4]),c={extra_dim:l};if(t.push({paramPath:"output_layer/extra_dim"}),n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{params:{mobilenetv1:o,prediction_layer:a,output_layer:c},paramMappings:t}}function dG(e,t){const s=Vs(e,t);function n(c,p,u){const h=s(`${c}/Conv2d_${p}_pointwise/weights`,4,`${u}/filters`),d=s(`${c}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${u}/batch_norm_offset`);return{filters:h,batch_norm_offset:d}}function i(c){const p=`mobilenetv1/conv_${c}`,u=`MobilenetV1/Conv2d_${c}_depthwise`,h=`${p}/depthwise_conv`,d=`${p}/pointwise_conv`,m=s(`${u}/depthwise_weights`,4,`${h}/filters`),f=s(`${u}/BatchNorm/gamma`,1,`${h}/batch_norm_scale`),g=s(`${u}/BatchNorm/beta`,1,`${h}/batch_norm_offset`),y=s(`${u}/BatchNorm/moving_mean`,1,`${h}/batch_norm_mean`),w=s(`${u}/BatchNorm/moving_variance`,1,`${h}/batch_norm_variance`);return{depthwise_conv:{filters:m,batch_norm_scale:f,batch_norm_offset:g,batch_norm_mean:y,batch_norm_variance:w},pointwise_conv:n("MobilenetV1",c,d)}}function r(){return{conv_0:n("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:i(1),conv_2:i(2),conv_3:i(3),conv_4:i(4),conv_5:i(5),conv_6:i(6),conv_7:i(7),conv_8:i(8),conv_9:i(9),conv_10:i(10),conv_11:i(11),conv_12:i(12),conv_13:i(13)}}function o(c,p){const u=s(`${c}/weights`,4,`${p}/filters`),h=s(`${c}/biases`,1,`${p}/bias`);return{filters:u,bias:h}}function a(c){const p=o(`Prediction/BoxPredictor_${c}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${c}/box_encoding_predictor`),u=o(`Prediction/BoxPredictor_${c}/ClassPredictor`,`prediction_layer/box_predictor_${c}/class_predictor`);return{box_encoding_predictor:p,class_predictor:u}}function l(){return{conv_0:n("Prediction",0,"prediction_layer/conv_0"),conv_1:n("Prediction",1,"prediction_layer/conv_1"),conv_2:n("Prediction",2,"prediction_layer/conv_2"),conv_3:n("Prediction",3,"prediction_layer/conv_3"),conv_4:n("Prediction",4,"prediction_layer/conv_4"),conv_5:n("Prediction",5,"prediction_layer/conv_5"),conv_6:n("Prediction",6,"prediction_layer/conv_6"),conv_7:n("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:a(0),box_predictor_1:a(1),box_predictor_2:a(2),box_predictor_3:a(3),box_predictor_4:a(4),box_predictor_5:a(5)}}return{extractMobilenetV1Params:r,extractPredictionLayerParams:l}}function z1(e){const t=[],{extractMobilenetV1Params:s,extractPredictionLayerParams:n}=dG(e,t),i=e["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!Zi(i))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${i}`);const r={mobilenetv1:s(),prediction_layer:n(),output_layer:{extra_dim:i}};return Ss(e,t),{params:r,paramMappings:t}}function En(e,t,s){return C(()=>{let n=nt(e,t.filters,s,"same");return n=$(n,t.batch_norm_offset),wt(n,0,6)})}const mG=.0010000000474974513;function fG(e,t,s){return C(()=>{let n=un(e,t.filters,s,"same");return n=Ys(n,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,mG),wt(n,0,6)})}function gG(e){return[2,4,6,12].some(t=>t===e)?[2,2]:[1,1]}function P1(e,t){return C(()=>{let s,n=En(e,t.conv_0,[2,2]);const i=[t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13];if(i.forEach((r,o)=>{const a=o+1,l=gG(a);n=fG(n,r.depthwise_conv,l),n=En(n,r.pointwise_conv,[1,1]),a===11&&(s=n)}),s===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:n,conv11:s}})}function B1(e,t,s,n,i){const r=e.shape[0],o=Math.min(s,r),a=t.map((p,u)=>({score:p,boxIndex:u})).filter(p=>p.score>i).sort((p,u)=>u.score-p.score),l=p=>p<=n?1:0,c=[];return a.forEach(p=>{if(c.length>=o)return;const u=p.score;for(let h=c.length-1;h>=0;--h){const d=yG(e,p.boxIndex,c[h]);if(d===0)continue;if(p.score*=l(d),p.score<=i)break}u===p.score&&c.push(p.boxIndex)}),c}function yG(e,t,s){const n=e.arraySync(),i=Math.min(n[t][0],n[t][2]),r=Math.min(n[t][1],n[t][3]),o=Math.max(n[t][0],n[t][2]),a=Math.max(n[t][1],n[t][3]),l=Math.min(n[s][0],n[s][2]),c=Math.min(n[s][1],n[s][3]),p=Math.max(n[s][0],n[s][2]),u=Math.max(n[s][1],n[s][3]),h=(o-i)*(a-r),d=(p-l)*(u-c);if(h<=0||d<=0)return 0;const m=Math.max(i,l),f=Math.max(r,c),g=Math.min(o,p),y=Math.min(a,u),w=Math.max(g-m,0)*Math.max(y-f,0);return w/(h+d-w)}function bG(e){const t=Ge(se(e,[1,0])),s=[X(t[2],t[0]),X(t[3],t[1])],n=[$(t[0],Z(s[0],j(2))),$(t[1],Z(s[1],j(2)))];return{sizes:s,centers:n}}function wG(e,t){const{sizes:s,centers:n}=bG(e),i=Ge(se(t,[1,0])),r=Z(R(ut(Z(i[2],j(5))),s[0]),j(2)),o=$(R(Z(i[0],j(10)),s[0]),n[0]),a=Z(R(ut(Z(i[3],j(5))),s[1]),j(2)),l=$(R(Z(i[1],j(10)),s[1]),n[1]);return se(Ve([X(o,r),X(l,a),$(o,r),$(l,a)]),[1,0])}function j1(e,t,s){return C(()=>{const n=e.shape[0];let i=wG(O(Us(s.extra_dim,[n,1,1]),[-1,4]),O(e,[-1,4]));i=O(i,[n,i.shape[0]/n,4]);const r=rs(he(t,[0,0,1],[-1,-1,-1]));let o=he(r,[0,0,0],[-1,-1,1]);o=O(o,[n,o.shape[1]]);const a=Ge(i),l=Ge(o);return{boxes:a,scores:l}})}function Ia(e,t){return C(()=>{const s=e.shape[0],n=O(xa(e,t.box_encoding_predictor),[s,-1,1,4]),i=O(xa(e,t.class_predictor),[s,-1,3]);return{boxPredictionEncoding:n,classPrediction:i}})}function V1(e,t,s){return C(()=>{const n=En(e,s.conv_0,[1,1]),i=En(n,s.conv_1,[2,2]),r=En(i,s.conv_2,[1,1]),o=En(r,s.conv_3,[2,2]),a=En(o,s.conv_4,[1,1]),l=En(a,s.conv_5,[2,2]),c=En(l,s.conv_6,[1,1]),p=En(c,s.conv_7,[2,2]),u=Ia(t,s.box_predictor_0),h=Ia(e,s.box_predictor_1),d=Ia(i,s.box_predictor_2),m=Ia(o,s.box_predictor_3),f=Ia(l,s.box_predictor_4),g=Ia(p,s.box_predictor_5),y=be([u.boxPredictionEncoding,h.boxPredictionEncoding,d.boxPredictionEncoding,m.boxPredictionEncoding,f.boxPredictionEncoding,g.boxPredictionEncoding],1),w=be([u.classPrediction,h.classPrediction,d.classPrediction,m.classPrediction,f.classPrediction,g.classPrediction],1);return{boxPredictions:y,classPredictions:w}})}class Hn{constructor({minConfidence:e,maxResults:t}={}){if(this._name="SsdMobilenetv1Options",this._minConfidence=e||.5,this._maxResults=t||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}}class rc extends cs{constructor(){super("SsdMobilenetv1")}forwardInput(e){const{params:t}=this;if(!t)throw new Error("SsdMobilenetv1 - load model before inference");return C(()=>{const s=G(e.toBatchTensor(512,!1),"float32"),n=X(R(s,j(.007843137718737125)),j(1)),i=P1(n,t.mobilenetv1),{boxPredictions:r,classPredictions:o}=V1(i.out,i.conv11,t.prediction_layer);return j1(r,o,t.output_layer)})}async forward(e){return this.forwardInput(await ct(e))}async locateFaces(e,t={}){const{maxResults:s,minConfidence:n}=new Hn(t),i=await ct(e),{boxes:r,scores:o}=this.forwardInput(i),a=r[0],l=o[0];for(let w=1;w{const[x,T]=[Math.max(0,g[w][0]),Math.min(1,g[w][2])].map(E=>E*f),[A,_]=[Math.max(0,g[w][1]),Math.min(1,g[w][3])].map(E=>E*m);return new Lt(c[w],new vu(A,x,_-A,T-x),{height:i.getInputHeight(0),width:i.getInputWidth(0)})});return a.dispose(),l.dispose(),y}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeigthMap(e){return z1(e)}extractParams(e){return W1(e)}}function G1(e){const t=new rc;return t.extractWeights(e),t}function xG(e){return G1(e)}class LG extends rc{}const q1=.4,H1=[new Fe(.738768,.874946),new Fe(2.42204,2.65704),new Fe(4.30971,7.04493),new Fe(10.246,4.59428),new Fe(12.6868,11.8741)],Y1=[new Fe(1.603231,2.094468),new Fe(6.041143,7.080126),new Fe(2.882459,3.518061),new Fe(4.266906,5.178857),new Fe(9.041765,10.66308)],K1=[117.001,114.697,97.404],X1="tiny_yolov2_model",J1="tiny_yolov2_separable_conv_model";const ig=e=>typeof e=="number";function eL(e){if(!e)throw new Error(`invalid config: ${e}`);if(typeof e.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${e.withSeparableConvs}`);if(!ig(e.iouThreshold)||e.iouThreshold<0||e.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${e.iouThreshold}`);if(!Array.isArray(e.classes)||!e.classes.length||!e.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(e.classes)}`);if(!Array.isArray(e.anchors)||!e.anchors.length||!e.anchors.map(t=>t||{}).every(t=>ig(t.x)&&ig(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(e.anchors)}`);if(e.meanRgb&&(!Array.isArray(e.meanRgb)||e.meanRgb.length!==3||!e.meanRgb.every(ig)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(e.meanRgb)}`)}function oc(e){return C(()=>{const t=R(e,j(.10000000149011612));return $(De(X(e,t)),t)})}function er(e,t){return C(()=>{let s=Pt(e,[[0,0],[1,1],[1,1],[0,0]]);return s=nt(s,t.conv.filters,[1,1],"valid"),s=X(s,t.bn.sub),s=R(s,t.bn.truediv),s=$(s,t.conv.bias),oc(s)})}function tr(e,t){return C(()=>{let s=Pt(e,[[0,0],[1,1],[1,1],[0,0]]);return s=Vr(s,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),s=$(s,t.bias),oc(s)})}function SG(e,t){const s=tc(e,t);function n(o,a){const l=Oe(e(o)),c=Oe(e(o));return t.push({paramPath:`${a}/sub`},{paramPath:`${a}/truediv`}),{sub:l,truediv:c}}function i(o,a,l){const c=s(o,a,3,`${l}/conv`),p=n(a,`${l}/bn`);return{conv:c,bn:p}}const r=sc(e,t);return{extractConvParams:s,extractConvWithBatchNormParams:i,extractSeparableConvParams:r}}function Z1(e,t,s,n){const{extractWeights:i,getRemainingWeights:r}=Is(e),o=[],{extractConvParams:a,extractConvWithBatchNormParams:l,extractSeparableConvParams:c}=SG(i,o);let p;if(t.withSeparableConvs){const[u,h,d,m,f,g,y,w,x]=n,T=t.isFirstLayerConv2d?a(u,h,3,"conv0"):c(u,h,"conv0"),A=c(h,d,"conv1"),_=c(d,m,"conv2"),E=c(m,f,"conv3"),F=c(f,g,"conv4"),D=c(g,y,"conv5"),M=w?c(y,w,"conv6"):void 0,P=x?c(w,x,"conv7"):void 0,B=a(x||w||y,5*s,1,"conv8");p={conv0:T,conv1:A,conv2:_,conv3:E,conv4:F,conv5:D,conv6:M,conv7:P,conv8:B}}else{const[u,h,d,m,f,g,y,w,x]=n,T=l(u,h,"conv0"),A=l(h,d,"conv1"),_=l(d,m,"conv2"),E=l(m,f,"conv3"),F=l(f,g,"conv4"),D=l(g,y,"conv5"),M=l(y,w,"conv6"),P=l(w,x,"conv7"),B=a(x,5*s,1,"conv8");p={conv0:T,conv1:A,conv2:_,conv3:E,conv4:F,conv5:D,conv6:M,conv7:P,conv8:B}}if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{params:p,paramMappings:o}}function IG(e,t){const s=Vs(e,t);function n(a){const l=s(`${a}/sub`,1),c=s(`${a}/truediv`,1);return{sub:l,truediv:c}}function i(a){const l=s(`${a}/filters`,4),c=s(`${a}/bias`,1);return{filters:l,bias:c}}function r(a){const l=i(`${a}/conv`),c=n(`${a}/bn`);return{conv:l,bn:c}}const o=nc(s);return{extractConvParams:i,extractConvWithBatchNormParams:r,extractSeparableConvParams:o}}function Q1(e,t){const s=[],{extractConvParams:n,extractConvWithBatchNormParams:i,extractSeparableConvParams:r}=IG(e,s);let o;if(t.withSeparableConvs){const a=t.filterSizes&&t.filterSizes.length||9;o={conv0:t.isFirstLayerConv2d?n("conv0"):r("conv0"),conv1:r("conv1"),conv2:r("conv2"),conv3:r("conv3"),conv4:r("conv4"),conv5:r("conv5"),conv6:a>7?r("conv6"):void 0,conv7:a>8?r("conv7"):void 0,conv8:n("conv8")}}else o={conv0:i("conv0"),conv1:i("conv1"),conv2:i("conv2"),conv3:i("conv3"),conv4:i("conv4"),conv5:i("conv5"),conv6:i("conv6"),conv7:i("conv7"),conv8:n("conv8")};return Ss(e,s),{params:o,paramMappings:s}}var tL;(function(e){e[e.XS=224]="XS",e[e.SM=320]="SM",e[e.MD=416]="MD",e[e.LG=608]="LG"})(tL||(tL={}));class sr{constructor({inputSize:e,scoreThreshold:t}={}){if(this._name="TinyYolov2Options",this._inputSize=e||416,this._scoreThreshold=t||.5,typeof this._inputSize!="number"||this._inputSize%32!==0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}}class ac extends cs{constructor(e){super("TinyYolov2");eL(e),this._config=e}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(e,t){let s=er(e,t.conv0);return s=mt(s,[2,2],[2,2],"same"),s=er(s,t.conv1),s=mt(s,[2,2],[2,2],"same"),s=er(s,t.conv2),s=mt(s,[2,2],[2,2],"same"),s=er(s,t.conv3),s=mt(s,[2,2],[2,2],"same"),s=er(s,t.conv4),s=mt(s,[2,2],[2,2],"same"),s=er(s,t.conv5),s=mt(s,[2,2],[1,1],"same"),s=er(s,t.conv6),s=er(s,t.conv7),xa(s,t.conv8,"valid",!1)}runMobilenet(e,t){let s=this.config.isFirstLayerConv2d?oc(xa(e,t.conv0,"valid",!1)):tr(e,t.conv0);return s=mt(s,[2,2],[2,2],"same"),s=tr(s,t.conv1),s=mt(s,[2,2],[2,2],"same"),s=tr(s,t.conv2),s=mt(s,[2,2],[2,2],"same"),s=tr(s,t.conv3),s=mt(s,[2,2],[2,2],"same"),s=tr(s,t.conv4),s=mt(s,[2,2],[2,2],"same"),s=tr(s,t.conv5),s=mt(s,[2,2],[1,1],"same"),s=t.conv6?tr(s,t.conv6):s,s=t.conv7?tr(s,t.conv7):s,xa(s,t.conv8,"valid",!1)}forwardInput(e,t){const{params:s}=this;if(!s)throw new Error("TinyYolov2 - load model before inference");return C(()=>{let n=G(e.toBatchTensor(t,!1),"float32");return n=this.config.meanRgb?Gn(n,this.config.meanRgb):n,n=n.div(j(256)),this.config.withSeparableConvs?this.runMobilenet(n,s):this.runTinyYolov2(n,s)})}async forward(e,t){return await this.forwardInput(await ct(e),t)}async detect(e,t={}){const{inputSize:s,scoreThreshold:n}=new sr(t),i=await ct(e),r=await this.forwardInput(i,s),o=C(()=>Ge(r)[0].expandDims()),a={width:i.getInputWidth(0),height:i.getInputHeight(0)},l=await this.extractBoxes(o,i.getReshapedInputDimensions(0),n);r.dispose(),o.dispose();const c=l.map(f=>f.box),p=l.map(f=>f.score),u=l.map(f=>f.classScore),h=l.map(f=>this.config.classes[f.label]),d=Rx(c.map(f=>f.rescale(s)),p,this.config.iouThreshold,!0),m=d.map(f=>new Xl(p[f],u[f],h[f],c[f],a));return m}getDefaultModelName(){return""}extractParamsFromWeigthMap(e){return Q1(e,this.config)}extractParams(e){const t=this.config.filterSizes||ac.DEFAULT_FILTER_SIZES,s=t?t.length:void 0;if(s!==7&&s!==8&&s!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${s} filterSizes in config`);return Z1(e,this.config,this.boxEncodingSize,t)}async extractBoxes(e,t,s){const{width:n,height:i}=t,r=Math.max(n,i),o=r/n,a=r/i,l=e.shape[1],c=this.config.anchors.length,[p,u,h]=C(()=>{const g=e.reshape([l,l,c,this.boxEncodingSize]),y=g.slice([0,0,0,0],[l,l,c,4]),w=g.slice([0,0,0,4],[l,l,c,1]),x=this.withClassScores?es(g.slice([0,0,0,5],[l,l,c,this.config.classes.length]),3):j(0);return[y,w,x]}),d=[],m=await u.array(),f=await p.array();for(let g=0;gs){const T=(y+Iu(f[g][y][w][0]))/l*o,A=(g+Iu(f[g][y][w][1]))/l*a,_=Math.exp(f[g][y][w][2])*this.config.anchors[w].x/l*o,E=Math.exp(f[g][y][w][3])*this.config.anchors[w].y/l*a,F=T-_/2,D=A-E/2,M={row:g,col:y,anchor:w},{classScore:P,label:B}=this.withClassScores?await this.extractPredictedClass(h,M):{classScore:1,label:0};d.push({box:new Su(F,D,F+_,D+E),score:x,classScore:x*P,label:B,...M})}}return p.dispose(),u.dispose(),h.dispose(),d}async extractPredictedClass(e,t){const{row:s,col:n,anchor:i}=t,r=await e.array();return Array(this.config.classes.length).fill(0).map((o,a)=>r[s][n][i][a]).map((o,a)=>({classScore:o,label:a})).reduce((o,a)=>o.classScore>a.classScore?o:a)}}ac.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];class ku extends ac{constructor(e=!0){const t=Object.assign({},{withSeparableConvs:e,iouThreshold:q1,classes:["face"]},e?{anchors:Y1,meanRgb:K1}:{anchors:H1,withClassScores:!0});super(t)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(e,t){const s=await this.detect(e,t);return s.map(n=>new Lt(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?J1:X1}extractParamsFromWeigthMap(e){return super.extractParamsFromWeigthMap(e)}}function vG(e,t=!0){const s=new ku(t);return s.extractWeights(e),s}class sL extends sr{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}}class Yn{async then(e){return e(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}}async function va(e,t,s,n,i=({alignedRect:r})=>r){const r=e.map(l=>Sa(l)?i(l):l.detection),o=n||(t instanceof me?await ec(t,r):await Ql(t,r)),a=await s(o);return o.forEach(l=>l instanceof me&&l.dispose()),a}async function lc(e,t,s,n,i){return va([e],t,async r=>s(r[0]),n,i)}const eE=.4,tE=[new Fe(1.603231,2.094468),new Fe(6.041143,7.080126),new Fe(2.882459,3.518061),new Fe(4.266906,5.178857),new Fe(9.041765,10.66308)],sE=[117.001,114.697,97.404];class Du extends ac{constructor(){const e={withSeparableConvs:!0,iouThreshold:eE,classes:["face"],anchors:tE,meanRgb:sE,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(e)}get anchors(){return this.config.anchors}async locateFaces(e,t){const s=await this.detect(e,t);return s.map(n=>new Lt(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeigthMap(e){return super.extractParamsFromWeigthMap(e)}}const je={ssdMobilenetv1:new rc,tinyFaceDetector:new Du,tinyYolov2:new ku,faceLandmark68Net:new Ou,faceLandmark68TinyNet:new Jx,faceRecognitionNet:new _u,faceExpressionNet:new qx,ageGenderNet:new Xx},nE=(e,t)=>je.ssdMobilenetv1.locateFaces(e,t),TG=(e,t)=>je.tinyFaceDetector.locateFaces(e,t),AG=(e,t)=>je.tinyYolov2.locateFaces(e,t),iE=e=>je.faceLandmark68Net.detectLandmarks(e),NG=e=>je.faceLandmark68TinyNet.detectLandmarks(e),CG=e=>je.faceRecognitionNet.computeFaceDescriptor(e),RG=e=>je.faceExpressionNet.predictExpressions(e),OG=e=>je.ageGenderNet.predictAgeAndGender(e),rE=e=>je.ssdMobilenetv1.load(e),EG=e=>je.tinyFaceDetector.load(e),_G=e=>je.tinyYolov2.load(e),kG=e=>je.faceLandmark68Net.load(e),DG=e=>je.faceLandmark68TinyNet.load(e),FG=e=>je.faceRecognitionNet.load(e),MG=e=>je.faceExpressionNet.load(e),UG=e=>je.ageGenderNet.load(e),$G=rE,WG=nE,zG=iE;class oE extends Yn{constructor(e,t,s){super();this.parentTask=e,this.input=t,this.extractedFaces=s}}class Uu extends oE{async run(){const e=await this.parentTask,t=await va(e,this.input,async s=>await Promise.all(s.map(n=>je.faceExpressionNet.predictExpressions(n))),this.extractedFaces);return e.map((s,n)=>Zf(s,t[n]))}withAgeAndGender(){return new Fu(this,this.input)}}class $u extends oE{async run(){const e=await this.parentTask;if(!e)return;const t=await lc(e,this.input,s=>je.faceExpressionNet.predictExpressions(s),this.extractedFaces);return Zf(e,t)}withAgeAndGender(){return new Mu(this,this.input)}}class uc extends Uu{withAgeAndGender(){return new cc(this,this.input)}withFaceDescriptors(){return new Ta(this,this.input)}}class hc extends $u{withAgeAndGender(){return new pc(this,this.input)}withFaceDescriptor(){return new Aa(this,this.input)}}class aE extends Yn{constructor(e,t,s){super();this.parentTask=e,this.input=t,this.extractedFaces=s}}class Fu extends aE{async run(){const e=await this.parentTask,t=await va(e,this.input,async s=>await Promise.all(s.map(n=>je.ageGenderNet.predictAgeAndGender(n))),this.extractedFaces);return e.map((s,n)=>{const{age:i,gender:r,genderProbability:o}=t[n];return sg(ng(s,r,o),i)})}withFaceExpressions(){return new Uu(this,this.input)}}class Mu extends aE{async run(){const e=await this.parentTask;if(!e)return;const{age:t,gender:s,genderProbability:n}=await lc(e,this.input,i=>je.ageGenderNet.predictAgeAndGender(i),this.extractedFaces);return sg(ng(e,s,n),t)}withFaceExpressions(){return new $u(this,this.input)}}class cc extends Fu{withFaceExpressions(){return new uc(this,this.input)}withFaceDescriptors(){return new Ta(this,this.input)}}class pc extends Mu{withFaceExpressions(){return new hc(this,this.input)}withFaceDescriptor(){return new Aa(this,this.input)}}class nL extends Yn{constructor(e,t){super();this.parentTask=e,this.input=t}}class Ta extends nL{async run(){const e=await this.parentTask,t=await va(e,this.input,s=>Promise.all(s.map(n=>je.faceRecognitionNet.computeFaceDescriptor(n))),null,s=>s.landmarks.align(null,{useDlibAlignment:!0}));return t.map((s,n)=>tg(e[n],s))}withFaceExpressions(){return new uc(this,this.input)}withAgeAndGender(){return new cc(this,this.input)}}class Aa extends nL{async run(){const e=await this.parentTask;if(!e)return;const t=await lc(e,this.input,s=>je.faceRecognitionNet.computeFaceDescriptor(s),null,s=>s.landmarks.align(null,{useDlibAlignment:!0}));return tg(e,t)}withFaceExpressions(){return new hc(this,this.input)}withAgeAndGender(){return new pc(this,this.input)}}class iL extends Yn{constructor(e,t,s){super();this.parentTask=e,this.input=t,this.useTinyLandmarkNet=s}get landmarkNet(){return this.useTinyLandmarkNet?je.faceLandmark68TinyNet:je.faceLandmark68Net}}class rL extends iL{async run(){const e=await this.parentTask,t=e.map(i=>i.detection),s=this.input instanceof me?await ec(this.input,t):await Ql(this.input,t),n=await Promise.all(s.map(i=>this.landmarkNet.detectLandmarks(i)));return s.forEach(i=>i instanceof me&&i.dispose()),e.map((i,r)=>ic(i,n[r]))}withFaceExpressions(){return new uc(this,this.input)}withAgeAndGender(){return new cc(this,this.input)}withFaceDescriptors(){return new Ta(this,this.input)}}class oL extends iL{async run(){const e=await this.parentTask;if(!e)return;const{detection:t}=e,s=this.input instanceof me?await ec(this.input,[t]):await Ql(this.input,[t]),n=await this.landmarkNet.detectLandmarks(s[0]);return s.forEach(i=>i instanceof me&&i.dispose()),ic(e,n)}withFaceExpressions(){return new hc(this,this.input)}withAgeAndGender(){return new pc(this,this.input)}withFaceDescriptor(){return new Aa(this,this.input)}}class aL extends Yn{constructor(e,t=new Hn){super();this.input=e,this.options=t}}class rg extends aL{async run(){const{input:e,options:t}=this,s=t instanceof sL?n=>je.tinyFaceDetector.locateFaces(n,t):t instanceof Hn?n=>je.ssdMobilenetv1.locateFaces(n,t):t instanceof sr?n=>je.tinyYolov2.locateFaces(n,t):null;if(!s)throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | MtcnnOptions | TinyYolov2Options");return s(e)}runAndExtendWithFaceDetections(){return new Promise(async e=>{const t=await this.run();return e(t.map(s=>ga({},s)))})}withFaceLandmarks(e=!1){return new rL(this.runAndExtendWithFaceDetections(),this.input,e)}withFaceExpressions(){return new Uu(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Fu(this.runAndExtendWithFaceDetections(),this.input)}}class lL extends aL{async run(){const e=await new rg(this.input,this.options);let t=e[0];return e.forEach(s=>{s.score>t.score&&(t=s)}),t}runAndExtendWithFaceDetection(){return new Promise(async e=>{const t=await this.run();return e(t?ga({},t):void 0)})}withFaceLandmarks(e=!1){return new oL(this.runAndExtendWithFaceDetection(),this.input,e)}withFaceExpressions(){return new $u(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Mu(this.runAndExtendWithFaceDetection(),this.input)}}function PG(e,t=new Hn){return new lL(e,t)}function og(e,t=new Hn){return new rg(e,t)}async function lE(e,t){return console.warn("allFacesSsdMobilenetv1 is deprecated and will be removed soon, use the high level api instead"),await og(e,new Hn(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function BG(e,t={}){return console.warn("allFacesTinyYolov2 is deprecated and will be removed soon, use the high level api instead"),await og(e,new sr(t)).withFaceLandmarks().withFaceDescriptors()}const jG=lE;function cL(e,t){if(e.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");const s=Array.from(e),n=Array.from(t);return Math.sqrt(s.map((i,r)=>i-n[r]).reduce((i,r)=>i+Math.pow(r,2),0))}class cE{constructor(e,t=.6){this._distanceThreshold=t;const s=Array.isArray(e)?e:[e];if(!s.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let n=1;const i=()=>`person ${n++}`;this._labeledDescriptors=s.map(r=>{if(r instanceof fa)return r;if(r instanceof Float32Array)return new fa(i(),[r]);if(r.descriptor&&r.descriptor instanceof Float32Array)return new fa(i(),[r.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(e,t){return t.map(s=>cL(s,e)).reduce((s,n)=>s+n,0)/(t.length||1)}matchDescriptor(e){return this.labeledDescriptors.map(({descriptors:t,label:s})=>new $f(s,this.computeMeanDistance(e,t))).reduce((t,s)=>t.distancee.toJSON())}}static fromJSON(e){const t=e.labeledDescriptors.map(s=>fa.fromJSON(s));return new cE(t,e.distanceThreshold)}}function VG(e){const t=new Du;return t.extractWeights(e),t}function pE(e,t){const{width:s,height:n}=new js(t.width,t.height);if(s<=0||n<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:s,height:n})}`);if(Array.isArray(e))return e.map(i=>pE(i,{width:s,height:n}));if(Sa(e)){const i=e.detection.forSize(s,n),r=e.unshiftedLandmarks.forSize(i.box.width,i.box.height);return ic(ga(e,i),r)}return xi(e)?ga(e,e.detection.forSize(s,n)):e instanceof On||e instanceof Lt?e.forSize(s,n):e}var uE="0.6.2";const GG=typeof process!="undefined",qG=typeof navigator!="undefined"&&typeof navigator.userAgent!="undefined",HG={faceapi:uE,node:GG,browser:qG};export{Xx as AgeGenderNet,Su as BoundingBox,lt as Box,Yn as ComposableTask,Ta as ComputeAllFaceDescriptorsTask,nL as ComputeFaceDescriptorsTaskBase,Aa as ComputeSingleFaceDescriptorTask,rL as DetectAllFaceLandmarksTask,rg as DetectAllFacesTask,iL as DetectFaceLandmarksTaskBase,aL as DetectFacesTaskBase,oL as DetectSingleFaceLandmarksTask,lL as DetectSingleFaceTask,js as Dimensions,Gx as FACE_EXPRESSION_LABELS,Lt as FaceDetection,LG as FaceDetectionNet,qx as FaceExpressionNet,La as FaceExpressions,Ou as FaceLandmark68Net,Jx as FaceLandmark68TinyNet,oG as FaceLandmarkNet,On as FaceLandmarks,HV as FaceLandmarks5,Tu as FaceLandmarks68,$f as FaceMatch,cE as FaceMatcher,_u as FaceRecognitionNet,Qi as Gender,Wf as LabeledBox,fa as LabeledFaceDescriptors,mo as NetInput,cs as NeuralNetwork,Xl as ObjectDetection,Fe as Point,YV as PredictedBox,vu as Rect,rc as SsdMobilenetv1,Hn as SsdMobilenetv1Options,Du as TinyFaceDetector,sL as TinyFaceDetectorOptions,ku as TinyYolov2,sr as TinyYolov2Options,tL as TinyYolov2SizeType,jG as allFaces,lE as allFacesSsdMobilenetv1,BG as allFacesTinyYolov2,$x as awaitMediaLoaded,Wx as bufferToImage,CG as computeFaceDescriptor,Zl as createCanvas,Nu as createCanvasFromMedia,xG as createFaceDetectionNet,cG as createFaceRecognitionNet,G1 as createSsdMobilenetv1,VG as createTinyFaceDetector,vG as createTinyYolov2,og as detectAllFaces,iE as detectFaceLandmarks,NG as detectFaceLandmarksTiny,zG as detectLandmarks,PG as detectSingleFace,Yx as draw,Ze as env,cL as euclideanDistance,sg as extendWithAge,tg as extendWithFaceDescriptor,ga as extendWithFaceDetection,Zf as extendWithFaceExpressions,ic as extendWithFaceLandmarks,ng as extendWithGender,ec as extractFaceTensors,Ql as extractFaces,ZV as fetchImage,Bx as fetchJson,QV as fetchNetWeights,wa as fetchOrThrow,Os as getContext2dOrThrow,ba as getMediaDimensions,zx as imageTensorToCanvas,Px as imageToSquare,jV as inverseSigmoid,Nx as iou,Bf as isMediaElement,Au as isMediaLoaded,pG as isWithAge,xi as isWithFaceDetection,Hx as isWithFaceExpressions,Sa as isWithFaceLandmarks,uG as isWithGender,UG as loadAgeGenderModel,$G as loadFaceDetectionModel,MG as loadFaceExpressionModel,kG as loadFaceLandmarkModel,DG as loadFaceLandmarkTinyModel,FG as loadFaceRecognitionModel,rE as loadSsdMobilenetv1Model,EG as loadTinyFaceDetectorModel,_G as loadTinyYolov2Model,jx as loadWeightMap,WG as locateFaces,eG as matchDimensions,Cx as minBbox,je as nets,Rx as nonMaxSuppression,Gn as normalize,Ox as padToSquare,OG as predictAgeAndGender,RG as recognizeFaceExpressions,pE as resizeResults,ya as resolveInput,BV as shuffleArray,Iu as sigmoid,nE as ssdMobilenetv1,Sx as tf,TG as tinyFaceDetector,AG as tinyYolov2,ct as toNetInput,Ix as utils,eL as validateConfig,HG as version}; +/** + * @license + * Copyright 2017 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ +/** + * @license + * Copyright 2018 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ +/** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============================================================================= + */ +/** + * @license + * Copyright 2018 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ +/** + * @license + * Copyright 2019 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ +/** + * @license + * Copyright 2019 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * ============================================================================= + */ +/** + * @license + * Copyright 2019 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ +/** + * @license + * Copyright 2020 Google Inc. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ +/** + * @license + * Copyright 2020 Google LLC + * + * Use of this source code is governed by an MIT-style + * license that can be found in the LICENSE file or at + * https://opensource.org/licenses/MIT. + * ============================================================================= + */ +/** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ +/** + * @license + * Copyright 2020 Google LLC. All Rights Reserved. + * Licensed under the Apache License, Version 2.0 (the License); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============================================================================= + */ +/** @license See the LICENSE file. */ //# sourceMappingURL=face-api.esm.js.map diff --git a/dist/face-api.esm.js.map b/dist/face-api.esm.js.map index c754d50..64bbe08 100644 --- a/dist/face-api.esm.js.map +++ b/dist/face-api.esm.js.map @@ -1,7 +1,7 @@ { "version": 3, - "sources": ["build/src/env/../../../src/env/isNodejs.ts", "build/src/draw/../../../src/draw/drawContour.ts", "build/src/classes/../../../src/classes/Dimensions.ts", "build/src/utils/../../../src/utils/index.ts", "build/src/classes/../../../src/classes/Point.ts", "build/src/classes/../../../src/classes/Box.ts", "build/src/classes/../../../src/classes/BoundingBox.ts", "build/src/classes/../../../src/classes/ObjectDetection.ts", "build/src/classes/../../../src/classes/FaceDetection.ts", "build/src/ops/../../../src/ops/iou.ts", "build/src/ops/../../../src/ops/minBbox.ts", "build/src/ops/../../../src/ops/nonMaxSuppression.ts", "build/src/ops/../../../src/ops/normalize.ts", "build/src/ops/../../../src/ops/padToSquare.ts", "build/src/ops/../../../src/ops/shuffleArray.ts", "build/src/ops/../../../src/ops/index.ts", "build/src/classes/../../../src/classes/Rect.ts", "build/src/classes/../../../src/classes/FaceLandmarks.ts", "build/src/classes/../../../src/classes/FaceLandmarks5.ts", "build/src/classes/../../../src/classes/FaceLandmarks68.ts", "build/src/classes/../../../src/classes/FaceMatch.ts", "build/src/classes/../../../src/classes/LabeledBox.ts", "build/src/classes/../../../src/classes/LabeledFaceDescriptors.ts", "build/src/classes/../../../src/classes/PredictedBox.ts", "build/src/factories/../../../src/factories/WithFaceDetection.ts", "build/src/env/../../../src/env/createBrowserEnv.ts", "build/src/env/../../../src/env/createFileSystem.ts", "build/src/env/../../../src/env/createNodejsEnv.ts", "build/src/env/../../../src/env/isBrowser.ts", "build/src/env/../../../src/env/index.ts", "build/src/dom/../../../src/dom/resolveInput.ts", "build/src/dom/../../../src/dom/getContext2dOrThrow.ts", "build/src/draw/../../../src/draw/DrawTextField.ts", "build/src/draw/../../../src/draw/DrawBox.ts", "build/src/draw/../../../src/draw/drawDetections.ts", "build/src/dom/../../../src/dom/isMediaLoaded.ts", "build/src/dom/../../../src/dom/awaitMediaLoaded.ts", "build/src/dom/../../../src/dom/bufferToImage.ts", "build/src/dom/../../../src/dom/getMediaDimensions.ts", "build/src/dom/../../../src/dom/createCanvas.ts", "build/src/dom/../../../src/dom/imageTensorToCanvas.ts", "build/src/dom/../../../src/dom/isMediaElement.ts", "build/src/dom/../../../src/dom/imageToSquare.ts", "build/src/dom/../../../src/dom/NetInput.ts", "build/src/dom/../../../src/dom/toNetInput.ts", "build/src/dom/../../../src/dom/extractFaces.ts", "build/src/dom/../../../src/dom/extractFaceTensors.ts", "build/src/dom/../../../src/dom/fetchOrThrow.ts", "build/src/dom/../../../src/dom/fetchImage.ts", "build/src/dom/../../../src/dom/fetchJson.ts", "build/src/dom/../../../src/dom/fetchNetWeights.ts", "build/src/common/../../../src/common/getModelUris.ts", "build/src/dom/../../../src/dom/loadWeightMap.ts", "build/src/dom/../../../src/dom/matchDimensions.ts", "build/src/../../src/NeuralNetwork.ts", "build/src/common/../../../src/common/depthwiseSeparableConv.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/denseBlock.ts", "build/src/common/../../../src/common/convLayer.ts", "build/src/common/../../../src/common/disposeUnusedWeightTensors.ts", "build/src/common/../../../src/common/extractConvParamsFactory.ts", "build/src/common/../../../src/common/extractFCParamsFactory.ts", "build/src/common/../../../src/common/types.ts", "build/src/common/../../../src/common/extractSeparableConvParamsFactory.ts", "build/src/common/../../../src/common/extractWeightEntryFactory.ts", "build/src/common/../../../src/common/extractWeightsFactory.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/extractorsFactory.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/extractParams.ts", "build/src/common/../../../src/common/loadConvParamsFactory.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/loadParamsFactory.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/extractParamsFromWeigthMap.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/FaceFeatureExtractor.ts", "build/src/common/../../../src/common/fullyConnectedLayer.ts", "build/src/faceProcessor/../../../src/faceProcessor/extractParams.ts", "build/src/faceProcessor/../../../src/faceProcessor/extractParamsFromWeigthMap.ts", "build/src/faceProcessor/../../../src/faceProcessor/util.ts", "build/src/faceProcessor/../../../src/faceProcessor/FaceProcessor.ts", "build/src/faceExpressionNet/../../../src/faceExpressionNet/FaceExpressions.ts", "build/src/faceExpressionNet/../../../src/faceExpressionNet/FaceExpressionNet.ts", "build/src/factories/../../../src/factories/WithFaceExpressions.ts", "build/src/draw/../../../src/draw/drawFaceExpressions.ts", "build/src/factories/../../../src/factories/WithFaceLandmarks.ts", "build/src/draw/../../../src/draw/DrawFaceLandmarks.ts", "build/src/draw/../../../src/draw/index.ts", "build/src/xception/../../../src/xception/extractParams.ts", "build/src/xception/../../../src/xception/extractParamsFromWeigthMap.ts", "build/src/xception/../../../src/xception/TinyXception.ts", "build/src/ageGenderNet/../../../src/ageGenderNet/extractParams.ts", "build/src/ageGenderNet/../../../src/ageGenderNet/extractParamsFromWeigthMap.ts", "build/src/ageGenderNet/../../../src/ageGenderNet/types.ts", "build/src/ageGenderNet/../../../src/ageGenderNet/AgeGenderNet.ts", "build/src/faceLandmarkNet/../../../src/faceLandmarkNet/FaceLandmark68NetBase.ts", "build/src/faceLandmarkNet/../../../src/faceLandmarkNet/FaceLandmark68Net.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/extractParamsFromWeigthMapTiny.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/extractParamsTiny.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts", "build/src/faceLandmarkNet/../../../src/faceLandmarkNet/FaceLandmark68TinyNet.ts", "build/src/faceLandmarkNet/../../../src/faceLandmarkNet/index.ts", "build/src/faceRecognitionNet/../../../src/faceRecognitionNet/scaleLayer.ts", "build/src/faceRecognitionNet/../../../src/faceRecognitionNet/convLayer.ts", "build/src/faceRecognitionNet/../../../src/faceRecognitionNet/extractParams.ts", "build/src/faceRecognitionNet/../../../src/faceRecognitionNet/extractParamsFromWeigthMap.ts", "build/src/faceRecognitionNet/../../../src/faceRecognitionNet/residualLayer.ts", "build/src/faceRecognitionNet/../../../src/faceRecognitionNet/FaceRecognitionNet.ts", "build/src/faceRecognitionNet/../../../src/faceRecognitionNet/index.ts", "build/src/factories/../../../src/factories/WithFaceDescriptor.ts", "build/src/factories/../../../src/factories/WithAge.ts", "build/src/factories/../../../src/factories/WithGender.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/extractParams.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/extractParamsFromWeigthMap.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/pointwiseConvLayer.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/mobileNetV1.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/nonMaxSuppression.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/outputLayer.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/boxPredictionLayer.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/predictionLayer.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/SsdMobilenetv1Options.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/SsdMobilenetv1.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/index.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/const.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/config.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/leaky.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/convWithBatchNorm.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/depthwiseSeparableConv.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/extractParams.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/extractParamsFromWeigthMap.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/TinyYolov2Options.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/TinyYolov2Base.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/TinyYolov2.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/index.ts", "build/src/tinyFaceDetector/../../../src/tinyFaceDetector/TinyFaceDetectorOptions.ts", "build/src/globalApi/../../../src/globalApi/ComposableTask.ts", "build/src/globalApi/../../../src/globalApi/extractFacesAndComputeResults.ts", "build/src/tinyFaceDetector/../../../src/tinyFaceDetector/const.ts", "build/src/tinyFaceDetector/../../../src/tinyFaceDetector/TinyFaceDetector.ts", "build/src/globalApi/../../../src/globalApi/nets.ts", "build/src/globalApi/../../../src/globalApi/PredictFaceExpressionsTask.ts", "build/src/globalApi/../../../src/globalApi/PredictAgeAndGenderTask.ts", "build/src/globalApi/../../../src/globalApi/ComputeFaceDescriptorsTasks.ts", "build/src/globalApi/../../../src/globalApi/DetectFaceLandmarksTasks.ts", "build/src/globalApi/../../../src/globalApi/DetectFacesTasks.ts", "build/src/globalApi/../../../src/globalApi/detectFaces.ts", "build/src/globalApi/../../../src/globalApi/allFaces.ts", "build/src/../../src/euclideanDistance.ts", "build/src/globalApi/../../../src/globalApi/FaceMatcher.ts", "build/src/tinyFaceDetector/../../../src/tinyFaceDetector/index.ts", "build/src/../../src/resizeResults.ts", "build/src/../../src/Platform.ts", "build/src/../../src/index.ts"], - "sourcesContent": [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null], - "mappings": "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", + "sources": ["node_modules/seedrandom/lib/alea.js", "node_modules/seedrandom/lib/xor128.js", "node_modules/seedrandom/lib/xorwow.js", "node_modules/seedrandom/lib/xorshift7.js", "node_modules/seedrandom/lib/xor4096.js", "node_modules/seedrandom/lib/tychei.js", "disabled:crypto", "node_modules/seedrandom/seedrandom.js", "node_modules/seedrandom/index.js", "disabled:string_decoder", "disabled:fs", "build/src/env/../../../src/env/isNodejs.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/backend.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/environment.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/global_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/kernel_names.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/kernel_registry.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/profiler.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tape.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tensor_format.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tensor.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/types.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tensor_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/engine.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/device_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/flags.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tensor_util_env.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/operation.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/complex.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor_ops_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/types.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/io_utils.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/router_registry.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/model_management.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/buffer.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/cast.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/clone.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/print.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/base_side_effects.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/browser_files.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/progress.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/weights_loader.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/http.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/passthrough.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/io.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reshape.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/mat_mul.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/one_hot.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/transpose.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/confusion_matrix.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/math.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/browser.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/gather_nd_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/scatter_nd_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/serialization.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/test_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/version.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/globals.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/add.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/floorDiv.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/div.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/mul.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/abs.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/acos.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/acosh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/add_n.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/axis_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/all.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/any.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/arg_max.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/arg_min.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/asin.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/asinh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/atan.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/atan2.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/atanh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/avg_pool.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/avg_pool_3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sigmoid.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tanh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/basic_lstm_cell.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batch_to_space_nd.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/broadcast_to.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/ceil.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/clip_by_value.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv2d_backprop_input.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv2d_transpose.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv3d_backprop_input.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv3d_transpose.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/cos.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/cosh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/cumsum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/depth_to_space.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/depthwise_conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/diag.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/dilation2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/broadcast_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/equal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/where.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/zeros_like.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/div_no_nan.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/dot.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/elu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/erf.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/exp.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/expand_dims.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/expm1.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tile.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/eye.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fill.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/floor.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reduce_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/segment_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/gather.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/greater.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/greater_equal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/imag.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/is_finite.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/is_inf.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/is_nan.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/maximum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/scalar.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/leaky_relu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/less.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/less_equal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/linspace.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/local_response_normalization.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log1p.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/gradients.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/neg.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/softplus.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log_sigmoid.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sub.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log_softmax.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log_sum_exp.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/logical_and.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/logical_not.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/logical_or.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/logical_xor.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool_3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool_with_argmax.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/zeros.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/ones.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/mean.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/min.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/minimum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/mod.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/square.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/moments.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/multi_rnn_cell.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/multinomial.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/not_equal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/real.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/ones_like.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/outer_product.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/space_to_batch_nd.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pool.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pow.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/prelu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/prod.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rand.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rand_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/random_gamma.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/random_normal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/random_uniform.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/range.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reciprocal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/relu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/relu6.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse_1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse_2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse_3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse_4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/round.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rsqrt.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/selu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/separable_conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/setdiff1d_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sign.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sin.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sinh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/softmax.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/spectral/../../../src/ops/spectral/fft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/spectral/../../../src/ops/spectral/ifft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/spectral/../../../src/ops/spectral/irfft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/split_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/split.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/spectral/../../../src/ops/spectral/rfft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sqrt.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/squared_difference.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/squeeze.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/stack.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/step.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/strided_slice.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tan.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor5d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor6d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/topk.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/truncated_normal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/unique.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/unsorted_segment_sum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/unstack.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/variable.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/where_impl.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/where_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/boolean_mask.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/compare.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/binary_ops.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/norm.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/moving_average.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/scatter_nd.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sparse_to_dense_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sparse_to_dense.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/gather_nd.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/dropout_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/dropout.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/signal_ops_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/in_top_k.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv2d_backprop_filter.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fused_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/fused/../../../src/ops/fused/conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/depthwise_conv2d_native_backprop_filter.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/depthwise_conv2d_native_backprop_input.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/fused/../../../src/ops/fused/depthwise_conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/fused/../../../src/ops/fused/mat_mul.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fused_ops.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/signal/../../../src/ops/signal/hamming_window.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/signal/../../../src/ops/signal/hann_window.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/signal/../../../src/ops/signal/frame.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/signal/../../../src/ops/signal/stft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/image/../../../src/ops/image/crop_and_resize.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/image/../../../src/ops/image/flip_left_right.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/image/../../../src/ops/image/rotate_with_offset.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/nonmax_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/image/../../../src/ops/image/non_max_suppression.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/array_util.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/non_max_suppression_impl.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/image/../../../src/ops/image/non_max_suppression_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/image/../../../src/ops/image/non_max_suppression_with_score.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/image/../../../src/ops/image/non_max_suppression_with_score_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/image/../../../src/ops/image/non_max_suppression_padded.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/image/../../../src/ops/image/non_max_suppression_padded_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/image/../../../src/ops/image/resize_bilinear.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/image/../../../src/ops/image/resize_nearest_neighbor.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/linalg/../../../src/ops/linalg/band_part.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/linalg/../../../src/ops/linalg/gram_schmidt.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/linalg/../../../src/ops/linalg/qr.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/loss_ops_utils.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/losses/../../../src/ops/losses/compute_weighted_loss.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/losses/../../../src/ops/losses/absolute_difference.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/losses/../../../src/ops/losses/cosine_distance.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/losses/../../../src/ops/losses/hinge_loss.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/losses/../../../src/ops/losses/huber_loss.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/losses/../../../src/ops/losses/log_loss.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/losses/../../../src/ops/losses/mean_squared_error.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/losses/../../../src/ops/losses/sigmoid_cross_entropy.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/losses/../../../src/ops/losses/softmax_cross_entropy.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/ops.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/adadelta_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/adagrad_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/adam_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/adamax_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/sgd_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/momentum_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/rmsprop_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/optimizer_constructors.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/train.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/browser_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rotate_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/array_ops_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/selu_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/erf_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/log.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/complex_util.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/backend_util.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/split_shared.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/tile_impl.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/topk_impl.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/kernel_impls.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Abs_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Acos_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Acosh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Add_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/AddN_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ArgMax_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ArgMin_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Asin_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Asinh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Atan2_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Atan_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Atanh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/avg_pool_3d_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/AvgPool3D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/avg_pool_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/AvgPool_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/BatchMatMul_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/BatchToSpaceND_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/BroadcastTo_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Cast_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Ceil_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ClipByValue_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Concat_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Conv2D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Conv2DBackpropInput_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv3d_backprop_filter.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Conv3D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Cos_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Cosh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Cumsum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/DepthwiseConv2dNative_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Dilation2D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Div_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Elu_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Erf_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Exp_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Expm1_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Floor_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/FloorDiv_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/FusedBatchNorm_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/GatherV2_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/GreaterEqual_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Identity_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/IsFinite_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/IsInf_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/IsNan_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Log1p_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Log_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/LogSoftmax_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/local_response_normalization_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/LRN_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/min_max_grad_util.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Max_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Maximum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool_3d_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/MaxPool3D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/MaxPool_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Min_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Minimum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Mod_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Multiply_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Negate_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/OneHot_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/OnesLike_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/PadV2_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Pow_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Prelu_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Reciprocal_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Relu6_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Relu_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Reshape_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ResizeBilinear_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ResizeNearestNeighbor_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Reverse_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Round_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Rsqrt_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/SelectV2_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Selu_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sigmoid_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sign_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sin_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sinh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Slice_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Softmax_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Softplus_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/SpaceToBatchND_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/SplitV_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sqrt_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Square_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/SquaredDifference_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Step_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sub_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Tan_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Tanh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Tile_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Transpose_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Unpack_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/UnsortedSegmentSum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ZerosLike_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/register_all_gradients.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/index.ts", "node_modules/@tensorflow/tfjs-layers/dist/backend/../../src/backend/common.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/errors.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/generic_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/constraints.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports_constraints.ts", "node_modules/@tensorflow/tfjs-layers/dist/keras_format/../../src/keras_format/common.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/common.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/math_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/backend/../../src/backend/tfjs_backend.ts", "node_modules/@tensorflow/tfjs-layers/dist/keras_format/../../src/keras_format/initializer_config.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/initializers.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports_initializers.ts", "node_modules/@tensorflow/tfjs-layers/dist/backend/../../src/backend/state.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/types_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/variable_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/variables.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/topology.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/input_layer.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/logs.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/base_callbacks.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/serialization.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/losses.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/metrics.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/optimizers.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/user_defined_metadata.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/layer_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/serialization_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/version.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/executor.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/container.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/training_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/training_dataset.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/training_tensors.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/training.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/models.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/activations.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/regularizers.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/advanced_activations.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/conv_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/convolutional.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/convolutional_depthwise.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/recurrent.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/convolutional_recurrent.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/core.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/embeddings.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/merge.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/noise.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/normalization.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/padding.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/pooling.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/wrappers.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports_layers.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports_metrics.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports_models.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports_regularizers.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/callbacks.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/index.ts", "node_modules/@tensorflow/tfjs-converter/dist/data/../../src/data/compiled_api.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/custom_op/../../../src/operations/custom_op/register.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/utils.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/arithmetic.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/basic_math.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/control.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/convolution.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/creation.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/dynamic.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/evaluation.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/graph.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/image.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/logical.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/matrices.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/normalization.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/reduction.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/slice_join.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/spectral.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/transformation.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/../../src/operations/operation_mapper.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/custom_op/../../../src/operations/custom_op/node_value_impl.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/arithmetic_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/basic_math_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/tensor_utils.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/tensor_array.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/tensor_list.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/control_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/convolution_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/creation_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/dynamic_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/evaluation_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/graph_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/image_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/logical_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/matrices_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/normalization_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/reduction_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/slice_join_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/spectral_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/transformation_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/../../src/operations/operation_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/execution_context.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/model_analysis.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/graph_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/graph_model.ts", "node_modules/@tensorflow/tfjs-converter/dist/../src/version.ts", "node_modules/@tensorflow/tfjs-converter/dist/../src/index.ts", "node_modules/@tensorflow/tfjs-data/dist/util/../../src/util/deep_map.ts", "node_modules/@tensorflow/tfjs-data/dist/util/../../src/util/deep_clone.ts", "node_modules/@tensorflow/tfjs-data/dist/util/../../src/util/ring_buffer.ts", "node_modules/@tensorflow/tfjs-data/dist/util/../../src/util/growing_ring_buffer.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/lazy_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/../src/dataset.ts", "node_modules/@tensorflow/tfjs-data/dist/datasets/../../src/datasets/text_line_dataset.ts", "node_modules/@tensorflow/tfjs-data/dist/datasets/../../src/datasets/csv_dataset.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/microphone_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/webcam_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/../src/datasource.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/string_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/byte_chunk_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/file_chunk_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/url_chunk_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/util/../../src/util/source_util.ts", "node_modules/@tensorflow/tfjs-data/dist/sources/../../src/sources/file_data_source.ts", "node_modules/@tensorflow/tfjs-data/dist/sources/../../src/sources/url_data_source.ts", "node_modules/@tensorflow/tfjs-data/dist/../src/readers.ts", "node_modules/@tensorflow/tfjs-data/dist/../src/version.ts", "node_modules/@tensorflow/tfjs-data/dist/../src/index.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/cpu_util.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/backend_cpu.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Abs.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/../../src/utils/binary_impl.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Complex.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Identity.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Real.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Cast.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/../../src/utils/kernel_utils.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Add.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/../../src/utils/unary_impl.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/../../src/utils/unary_utils.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Ceil.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Exp.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Expm1.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Floor.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Log.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Max_impl.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Multiply.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Rsqrt.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Slice.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Sub.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Transpose_impl.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Unique_impl.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/shared.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/version.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/base.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Acos.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Acosh.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Asin.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Asinh.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Atan.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Atanh.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/../../src/utils/pool_utils.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/AvgPool.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/AvgPoolBackprop.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/BatchNorm.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Clip.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Imag.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Reshape.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Concat.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Cos.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Cosh.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Dilation2D.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Dilation2DBackpropFilter.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Dilation2DBackpropInput.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Div.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Elu.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Erf.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/../../src/utils/fft_utils.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/FFT.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/FlipLeftRight.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/IFFT.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/IsFinite.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/IsInf.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/IsNaN.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Log1p.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/LogicalNot.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Max.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/MaxPool.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/MaxPoolBackprop.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/MaxPoolWithArgmax_impl.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/MaxPoolWithArgmax.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/NonMaxSuppressionV4.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/NonMaxSuppressionV5.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/NotEqual.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/PadV2.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Reciprocal.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/RotateWithOffset.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Round.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Selu.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Sigmoid.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Sign.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Sin.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Sinh.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Softplus.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Transpose.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/SpaceToBatchND.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Sqrt.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Square.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/SquaredDifference.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Step.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Tan.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Tanh.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Unique.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/register_all_kernels.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/index.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/canvas_util.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/tex_util.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/webgl_util.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/flags_webgl.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/../../src/kernel_utils/shared.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/addn_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/addn_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/argminmax_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/packing_util.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/glsl_version.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/shader_compiler_util.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/shader_compiler.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/argminmax_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/avg_pool_backprop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/binaryop_complex_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/binaryop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/binaryop_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/clip_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/clip_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/complex_abs_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/concat_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/concat_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/conv_backprop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/conv_backprop_gpu_depthwise.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/conv_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/conv_gpu_depthwise.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/conv_packed_gpu_depthwise.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/crop_and_resize_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/cumsum_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/decode_matrix_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/decode_matrix_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/depth_to_space_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/diag_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/encode_float_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/encode_float_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/encode_matrix_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/encode_matrix_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/fft_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/fill_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/gather_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/gather_nd_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/gpgpu_util.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/gpgpu_context.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/gpgpu_math.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/im2col_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/lrn_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/lrn_grad_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/lrn_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/max_pool_backprop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/mulmat_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/multinomial_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/onehot_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/pack_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/pad_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/pad_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/pool_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/reduce_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/reshape_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/resize_bilinear_backprop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/resize_bilinear_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/resize_bilinear_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/resize_nearest_neighbor_backprop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/resize_nearest_neighbor_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/reverse_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/reverse_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/scatter_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/segment_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/select_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/slice_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/slice_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/strided_slice_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/texture_manager.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/tile_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/unaryop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/unaryop_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/unpack_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/backend_webgl.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/version.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/webgl.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/base.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/../../src/kernel_utils/kernel_funcs_utils.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Atan2.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Identity.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/AvgPool.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/AvgPoolBackprop.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/batchnorm_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/batchnorm_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/BatchNorm.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Cos.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Div.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/flip_left_right_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/FlipLeftRight.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels_utils/../../../src/kernels/FromPixels_utils/from_pixels_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels_utils/../../../src/kernels/FromPixels_utils/from_pixels_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/FromPixels.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/../../src/kernel_utils/reduce.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/../../src/kernel_utils/reshape.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Reshape.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Max_impl.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/transpose_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/transpose_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Transpose_impl.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Max.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/MaxPool.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/MaxPoolBackprop.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/MaxPoolWithArgmax_impl.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/MaxPoolWithArgmax.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/NonMaxSuppressionV3.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/NonMaxSuppressionV4.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/NonMaxSuppressionV5.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/rotate_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/RotateWithOffset.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Sin.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Square.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/SquaredDifference.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Tan.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Transpose.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Unique.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/register_all_kernels.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/index.ts", "node_modules/@tensorflow/tfjs/dist/../src/version.ts", "node_modules/@tensorflow/tfjs/dist/../src/index.ts", "build/src/draw/../../../src/draw/drawContour.ts", "build/src/classes/../../../src/classes/Dimensions.ts", "build/src/utils/../../../src/utils/index.ts", "build/src/classes/../../../src/classes/Point.ts", "build/src/classes/../../../src/classes/Box.ts", "build/src/classes/../../../src/classes/BoundingBox.ts", "build/src/classes/../../../src/classes/ObjectDetection.ts", "build/src/classes/../../../src/classes/FaceDetection.ts", "build/src/ops/../../../src/ops/iou.ts", "build/src/ops/../../../src/ops/minBbox.ts", "build/src/ops/../../../src/ops/nonMaxSuppression.ts", "build/src/ops/../../../src/ops/normalize.ts", "build/src/ops/../../../src/ops/padToSquare.ts", "build/src/ops/../../../src/ops/shuffleArray.ts", "build/src/ops/../../../src/ops/index.ts", "build/src/classes/../../../src/classes/Rect.ts", "build/src/classes/../../../src/classes/FaceLandmarks.ts", "build/src/classes/../../../src/classes/FaceLandmarks5.ts", "build/src/classes/../../../src/classes/FaceLandmarks68.ts", "build/src/classes/../../../src/classes/FaceMatch.ts", "build/src/classes/../../../src/classes/LabeledBox.ts", "build/src/classes/../../../src/classes/LabeledFaceDescriptors.ts", "build/src/classes/../../../src/classes/PredictedBox.ts", "build/src/factories/../../../src/factories/WithFaceDetection.ts", "build/src/env/../../../src/env/createBrowserEnv.ts", "build/src/env/../../../src/env/createFileSystem.ts", "build/src/env/../../../src/env/createNodejsEnv.ts", "build/src/env/../../../src/env/isBrowser.ts", "build/src/env/../../../src/env/index.ts", "build/src/dom/../../../src/dom/resolveInput.ts", "build/src/dom/../../../src/dom/getContext2dOrThrow.ts", "build/src/draw/../../../src/draw/DrawTextField.ts", "build/src/draw/../../../src/draw/DrawBox.ts", "build/src/draw/../../../src/draw/drawDetections.ts", "build/src/dom/../../../src/dom/isMediaLoaded.ts", "build/src/dom/../../../src/dom/awaitMediaLoaded.ts", "build/src/dom/../../../src/dom/bufferToImage.ts", "build/src/dom/../../../src/dom/getMediaDimensions.ts", "build/src/dom/../../../src/dom/createCanvas.ts", "build/src/dom/../../../src/dom/imageTensorToCanvas.ts", "build/src/dom/../../../src/dom/isMediaElement.ts", "build/src/dom/../../../src/dom/imageToSquare.ts", "build/src/dom/../../../src/dom/NetInput.ts", "build/src/dom/../../../src/dom/toNetInput.ts", "build/src/dom/../../../src/dom/extractFaces.ts", "build/src/dom/../../../src/dom/extractFaceTensors.ts", "build/src/dom/../../../src/dom/fetchOrThrow.ts", "build/src/dom/../../../src/dom/fetchImage.ts", "build/src/dom/../../../src/dom/fetchJson.ts", "build/src/dom/../../../src/dom/fetchNetWeights.ts", "build/src/common/../../../src/common/getModelUris.ts", "build/src/dom/../../../src/dom/loadWeightMap.ts", "build/src/dom/../../../src/dom/matchDimensions.ts", "build/src/../../src/NeuralNetwork.ts", "build/src/common/../../../src/common/depthwiseSeparableConv.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/denseBlock.ts", "build/src/common/../../../src/common/convLayer.ts", "build/src/common/../../../src/common/disposeUnusedWeightTensors.ts", "build/src/common/../../../src/common/extractConvParamsFactory.ts", "build/src/common/../../../src/common/extractFCParamsFactory.ts", "build/src/common/../../../src/common/types.ts", "build/src/common/../../../src/common/extractSeparableConvParamsFactory.ts", "build/src/common/../../../src/common/extractWeightEntryFactory.ts", "build/src/common/../../../src/common/extractWeightsFactory.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/extractorsFactory.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/extractParams.ts", "build/src/common/../../../src/common/loadConvParamsFactory.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/loadParamsFactory.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/extractParamsFromWeigthMap.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/FaceFeatureExtractor.ts", "build/src/common/../../../src/common/fullyConnectedLayer.ts", "build/src/faceProcessor/../../../src/faceProcessor/extractParams.ts", "build/src/faceProcessor/../../../src/faceProcessor/extractParamsFromWeigthMap.ts", "build/src/faceProcessor/../../../src/faceProcessor/util.ts", "build/src/faceProcessor/../../../src/faceProcessor/FaceProcessor.ts", "build/src/faceExpressionNet/../../../src/faceExpressionNet/FaceExpressions.ts", "build/src/faceExpressionNet/../../../src/faceExpressionNet/FaceExpressionNet.ts", "build/src/factories/../../../src/factories/WithFaceExpressions.ts", "build/src/draw/../../../src/draw/drawFaceExpressions.ts", "build/src/factories/../../../src/factories/WithFaceLandmarks.ts", "build/src/draw/../../../src/draw/DrawFaceLandmarks.ts", "build/src/draw/../../../src/draw/index.ts", "build/src/xception/../../../src/xception/extractParams.ts", "build/src/xception/../../../src/xception/extractParamsFromWeigthMap.ts", "build/src/xception/../../../src/xception/TinyXception.ts", "build/src/ageGenderNet/../../../src/ageGenderNet/extractParams.ts", "build/src/ageGenderNet/../../../src/ageGenderNet/extractParamsFromWeigthMap.ts", "build/src/ageGenderNet/../../../src/ageGenderNet/types.ts", "build/src/ageGenderNet/../../../src/ageGenderNet/AgeGenderNet.ts", "build/src/faceLandmarkNet/../../../src/faceLandmarkNet/FaceLandmark68NetBase.ts", "build/src/faceLandmarkNet/../../../src/faceLandmarkNet/FaceLandmark68Net.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/extractParamsFromWeigthMapTiny.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/extractParamsTiny.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts", "build/src/faceLandmarkNet/../../../src/faceLandmarkNet/FaceLandmark68TinyNet.ts", "build/src/faceLandmarkNet/../../../src/faceLandmarkNet/index.ts", "build/src/faceRecognitionNet/../../../src/faceRecognitionNet/scaleLayer.ts", "build/src/faceRecognitionNet/../../../src/faceRecognitionNet/convLayer.ts", "build/src/faceRecognitionNet/../../../src/faceRecognitionNet/extractParams.ts", "build/src/faceRecognitionNet/../../../src/faceRecognitionNet/extractParamsFromWeigthMap.ts", "build/src/faceRecognitionNet/../../../src/faceRecognitionNet/residualLayer.ts", "build/src/faceRecognitionNet/../../../src/faceRecognitionNet/FaceRecognitionNet.ts", "build/src/faceRecognitionNet/../../../src/faceRecognitionNet/index.ts", "build/src/factories/../../../src/factories/WithFaceDescriptor.ts", "build/src/factories/../../../src/factories/WithAge.ts", "build/src/factories/../../../src/factories/WithGender.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/extractParams.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/extractParamsFromWeigthMap.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/pointwiseConvLayer.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/mobileNetV1.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/nonMaxSuppression.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/outputLayer.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/boxPredictionLayer.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/predictionLayer.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/SsdMobilenetv1Options.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/SsdMobilenetv1.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/index.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/const.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/config.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/leaky.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/convWithBatchNorm.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/depthwiseSeparableConv.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/extractParams.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/extractParamsFromWeigthMap.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/TinyYolov2Options.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/TinyYolov2Base.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/TinyYolov2.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/index.ts", "build/src/tinyFaceDetector/../../../src/tinyFaceDetector/TinyFaceDetectorOptions.ts", "build/src/globalApi/../../../src/globalApi/ComposableTask.ts", "build/src/globalApi/../../../src/globalApi/extractFacesAndComputeResults.ts", "build/src/tinyFaceDetector/../../../src/tinyFaceDetector/const.ts", "build/src/tinyFaceDetector/../../../src/tinyFaceDetector/TinyFaceDetector.ts", "build/src/globalApi/../../../src/globalApi/nets.ts", "build/src/globalApi/../../../src/globalApi/PredictFaceExpressionsTask.ts", "build/src/globalApi/../../../src/globalApi/PredictAgeAndGenderTask.ts", "build/src/globalApi/../../../src/globalApi/ComputeFaceDescriptorsTasks.ts", "build/src/globalApi/../../../src/globalApi/DetectFaceLandmarksTasks.ts", "build/src/globalApi/../../../src/globalApi/DetectFacesTasks.ts", "build/src/globalApi/../../../src/globalApi/detectFaces.ts", "build/src/globalApi/../../../src/globalApi/allFaces.ts", "build/src/../../src/euclideanDistance.ts", "build/src/globalApi/../../../src/globalApi/FaceMatcher.ts", "build/src/tinyFaceDetector/../../../src/tinyFaceDetector/index.ts", "build/src/../../src/resizeResults.ts", "build/src/../../src/index.ts"], + "sourcesContent": ["// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null], + "mappings": "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", "names": [] } diff --git a/dist/face-api.js b/dist/face-api.js index e7dcbbf..0ae5566 100644 --- a/dist/face-api.js +++ b/dist/face-api.js @@ -1,39 +1,39 @@ -var faceapi=(()=>{var Ku=Object.defineProperty,ZE=Object.prototype.hasOwnProperty,qs=(e,t)=>()=>(t||(t={exports:{}},e(t.exports,t)),t.exports),yL=e=>Ku(e,"__esModule",{value:!0}),Ee=(e,t)=>{yL(e);for(var s in t)Ku(e,s,{get:t[s],enumerable:!0})},QE=(e,t)=>{if(yL(e),typeof t=="object"||typeof t=="function")for(let s in t)!ZE.call(e,s)&&s!=="default"&&Ku(e,s,{get:()=>t[s],enumerable:!0});return e},vc=e=>e&&e.__esModule?e:QE(Ku({},"default",{value:e,enumerable:!0}),e);var wL=qs((bL,Ug)=>{(function(e,t,s){function n(a){var l=this,c=o();l.next=function(){var p=2091639*l.s0+l.c*23283064365386963e-26;return l.s0=l.s1,l.s1=l.s2,l.s2=p-(l.c=p|0)},l.c=1,l.s0=c(" "),l.s1=c(" "),l.s2=c(" "),l.s0-=c(a),l.s0<0&&(l.s0+=1),l.s1-=c(a),l.s1<0&&(l.s1+=1),l.s2-=c(a),l.s2<0&&(l.s2+=1),c=null}function i(a,l){return l.c=a.c,l.s0=a.s0,l.s1=a.s1,l.s2=a.s2,l}function r(a,l){var c=new n(a),p=l&&l.state,u=c.next;return u.int32=function(){return c.next()*4294967296|0},u.double=function(){return u()+(u()*2097152|0)*11102230246251565e-32},u.quick=u,p&&(typeof p=="object"&&i(p,c),u.state=function(){return i(c,{})}),u}function o(){var a=4022871197,l=function(c){c=c.toString();for(var p=0;p>>0,u-=a,u*=a,a=u>>>0,u-=a,a+=u*4294967296}return(a>>>0)*23283064365386963e-26};return l}t&&t.exports?t.exports=r:s&&s.amd?s(function(){return r}):this.alea=r})(bL,typeof Ug=="object"&&Ug,typeof define=="function"&&define)});var LL=qs((xL,$g)=>{(function(e,t,s){function n(o){var a=this,l="";a.x=0,a.y=0,a.z=0,a.w=0,a.next=function(){var p=a.x^a.x<<11;return a.x=a.y,a.y=a.z,a.z=a.w,a.w^=a.w>>>19^p^p>>>8},o===(o|0)?a.x=o:l+=o;for(var c=0;c>>0)/4294967296};return p.double=function(){do var u=l.next()>>>11,h=(l.next()>>>0)/4294967296,d=(u+h)/(1<<21);while(d===0);return d},p.int32=l.next,p.quick=p,c&&(typeof c=="object"&&i(c,l),p.state=function(){return i(l,{})}),p}t&&t.exports?t.exports=r:s&&s.amd?s(function(){return r}):this.xor128=r})(xL,typeof $g=="object"&&$g,typeof define=="function"&&define)});var IL=qs((SL,Wg)=>{(function(e,t,s){function n(o){var a=this,l="";a.next=function(){var p=a.x^a.x>>>2;return a.x=a.y,a.y=a.z,a.z=a.w,a.w=a.v,(a.d=a.d+362437|0)+(a.v=a.v^a.v<<4^(p^p<<1))|0},a.x=0,a.y=0,a.z=0,a.w=0,a.v=0,o===(o|0)?a.x=o:l+=o;for(var c=0;c>>4),a.next()}function i(o,a){return a.x=o.x,a.y=o.y,a.z=o.z,a.w=o.w,a.v=o.v,a.d=o.d,a}function r(o,a){var l=new n(o),c=a&&a.state,p=function(){return(l.next()>>>0)/4294967296};return p.double=function(){do var u=l.next()>>>11,h=(l.next()>>>0)/4294967296,d=(u+h)/(1<<21);while(d===0);return d},p.int32=l.next,p.quick=p,c&&(typeof c=="object"&&i(c,l),p.state=function(){return i(l,{})}),p}t&&t.exports?t.exports=r:s&&s.amd?s(function(){return r}):this.xorwow=r})(SL,typeof Wg=="object"&&Wg,typeof define=="function"&&define)});var TL=qs((vL,zg)=>{(function(e,t,s){function n(o){var a=this;a.next=function(){var c=a.x,p=a.i,u,h,d;return u=c[p],u^=u>>>7,h=u^u<<24,u=c[p+1&7],h^=u^u>>>10,u=c[p+3&7],h^=u^u>>>3,u=c[p+4&7],h^=u^u<<7,u=c[p+7&7],u=u^u<<13,h^=u^u<<9,c[p]=h,a.i=p+1&7,h};function l(c,p){var u,h,d=[];if(p===(p|0))h=d[0]=p;else for(p=""+p,u=0;u0;--u)c.next()}l(a,o)}function i(o,a){return a.x=o.x.slice(),a.i=o.i,a}function r(o,a){o==null&&(o=+new Date);var l=new n(o),c=a&&a.state,p=function(){return(l.next()>>>0)/4294967296};return p.double=function(){do var u=l.next()>>>11,h=(l.next()>>>0)/4294967296,d=(u+h)/(1<<21);while(d===0);return d},p.int32=l.next,p.quick=p,c&&(c.x&&i(c,l),p.state=function(){return i(l,{})}),p}t&&t.exports?t.exports=r:s&&s.amd?s(function(){return r}):this.xorshift7=r})(vL,typeof zg=="object"&&zg,typeof define=="function"&&define)});var NL=qs((AL,Pg)=>{(function(e,t,s){function n(o){var a=this;a.next=function(){var c=a.w,p=a.X,u=a.i,h,d;return a.w=c=c+1640531527|0,d=p[u+34&127],h=p[u=u+1&127],d^=d<<13,h^=h<<17,d^=d>>>15,h^=h>>>12,d=p[u]=d^h,a.i=u,d+(c^c>>>16)|0};function l(c,p){var u,h,d,m,f,g=[],y=128;for(p===(p|0)?(h=p,p=null):(p=p+"\0",h=0,y=Math.max(y,p.length)),d=0,m=-32;m>>15,h^=h<<4,h^=h>>>13,m>=0&&(f=f+1640531527|0,u=g[m&127]^=h+f,d=u==0?d+1:0);for(d>=128&&(g[(p&&p.length||0)&127]=-1),d=127,m=4*128;m>0;--m)h=g[d+34&127],u=g[d=d+1&127],h^=h<<13,u^=u<<17,h^=h>>>15,u^=u>>>12,g[d]=h^u;c.w=f,c.X=g,c.i=d}l(a,o)}function i(o,a){return a.i=o.i,a.w=o.w,a.X=o.X.slice(),a}function r(o,a){o==null&&(o=+new Date);var l=new n(o),c=a&&a.state,p=function(){return(l.next()>>>0)/4294967296};return p.double=function(){do var u=l.next()>>>11,h=(l.next()>>>0)/4294967296,d=(u+h)/(1<<21);while(d===0);return d},p.int32=l.next,p.quick=p,c&&(c.X&&i(c,l),p.state=function(){return i(l,{})}),p}t&&t.exports?t.exports=r:s&&s.amd?s(function(){return r}):this.xor4096=r})(AL,typeof Pg=="object"&&Pg,typeof define=="function"&&define)});var RL=qs((CL,Bg)=>{(function(e,t,s){function n(o){var a=this,l="";a.next=function(){var p=a.b,u=a.c,h=a.d,d=a.a;return p=p<<25^p>>>7^u,u=u-h|0,h=h<<24^h>>>8^d,d=d-p|0,a.b=p=p<<20^p>>>12^u,a.c=u=u-h|0,a.d=h<<16^u>>>16^d,a.a=d-p|0},a.a=0,a.b=0,a.c=2654435769|0,a.d=1367130551,o===Math.floor(o)?(a.a=o/4294967296|0,a.b=o|0):l+=o;for(var c=0;c>>0)/4294967296};return p.double=function(){do var u=l.next()>>>11,h=(l.next()>>>0)/4294967296,d=(u+h)/(1<<21);while(d===0);return d},p.int32=l.next,p.quick=p,c&&(typeof c=="object"&&i(c,l),p.state=function(){return i(l,{})}),p}t&&t.exports?t.exports=r:s&&s.amd?s(function(){return r}):this.tychei=r})(CL,typeof Bg=="object"&&Bg,typeof define=="function"&&define)});var OL=qs(()=>{});var EL=qs((eq,Xu)=>{(function(e,t){var s=this,n=256,i=6,r=52,o="random",a=t.pow(n,i),l=t.pow(2,r),c=l*2,p=n-1,u;function h(x,T,A){var _=[];T=T==!0?{entropy:!0}:T||{};var E=g(f(T.entropy?[x,w(e)]:x??y(),3),_),F=new d(_),D=function(){for(var M=F.g(i),P=a,B=0;M=c;)M/=2,P/=2,B>>>=1;return(M+B)/P};return D.int32=function(){return F.g(4)|0},D.quick=function(){return F.g(4)/4294967296},D.double=D,g(w(F.S),e),(T.pass||A||function(M,P,B,Y){return Y&&(Y.S&&m(Y,F),M.state=function(){return m(F,{})}),B?(t[o]=M,P):M})(D,E,"global"in T?T.global:this==t,T.state)}t["seed"+o]=h;function d(x){var T,A=x.length,_=this,E=0,F=_.i=_.j=0,D=_.S=[];for(A||(x=[A++]);E{var e_=wL(),t_=LL(),s_=IL(),n_=TL(),i_=NL(),r_=RL(),vo=EL();vo.alea=e_;vo.xor128=t_;vo.xorwow=s_;vo.xorshift7=n_;vo.xor4096=i_;vo.tychei=r_;_L.exports=vo});var kL=qs(()=>{});var DL=qs(()=>{});var ML=qs((o_,FL)=>{Ee(o_,{isNodejs:()=>a_});function a_(){return typeof global=="object"&&!0&&typeof FL!="undefined"&&typeof process!="undefined"&&!!process.version}});var xS=qs(l_=>{Ee(l_,{AgeGenderNet:()=>vh,BoundingBox:()=>Ga,Box:()=>it,ComposableTask:()=>hn,ComputeAllFaceDescriptorsTask:()=>ir,ComputeFaceDescriptorsTaskBase:()=>hh,ComputeSingleFaceDescriptorTask:()=>rr,DetectAllFaceLandmarksTask:()=>ph,DetectAllFacesTask:()=>Nc,DetectFaceLandmarksTaskBase:()=>ch,DetectFacesTaskBase:()=>ah,DetectSingleFaceLandmarksTask:()=>uh,DetectSingleFaceTask:()=>lh,Dimensions:()=>Ts,FACE_EXPRESSION_LABELS:()=>fh,FaceDetection:()=>ht,FaceDetectionNet:()=>jL,FaceExpressionNet:()=>gh,FaceExpressions:()=>lr,FaceLandmark68Net:()=>za,FaceLandmark68TinyNet:()=>mh,FaceLandmarkNet:()=>mS,FaceLandmarks:()=>Hs,FaceLandmarks5:()=>wS,FaceLandmarks68:()=>Va,FaceMatch:()=>Dc,FaceMatcher:()=>Kg,FaceRecognitionNet:()=>Wa,Gender:()=>Jn,LabeledBox:()=>kc,LabeledFaceDescriptors:()=>hr,NetInput:()=>vi,NeuralNetwork:()=>Zt,ObjectDetection:()=>Oo,Point:()=>_e,PredictedBox:()=>bS,Rect:()=>ja,SsdMobilenetv1:()=>To,SsdMobilenetv1Options:()=>pn,TinyFaceDetector:()=>Ua,TinyFaceDetectorOptions:()=>sh,TinyYolov2:()=>Ma,TinyYolov2Options:()=>Xn,TinyYolov2SizeType:()=>th,allFaces:()=>pS,allFacesSsdMobilenetv1:()=>Yg,allFacesTinyYolov2:()=>cS,awaitMediaLoaded:()=>Ih,bufferToImage:()=>Sh,computeFaceDescriptor:()=>KL,createCanvas:()=>Ro,createCanvasFromMedia:()=>Ba,createFaceDetectionNet:()=>BL,createFaceRecognitionNet:()=>dS,createSsdMobilenetv1:()=>jg,createTinyFaceDetector:()=>PL,createTinyYolov2:()=>zL,detectAllFaces:()=>Ac,detectFaceLandmarks:()=>qg,detectFaceLandmarksTiny:()=>YL,detectLandmarks:()=>aS,detectSingleFace:()=>lS,draw:()=>Zu,env:()=>Ve,euclideanDistance:()=>yh,extendWithAge:()=>Ec,extendWithFaceDescriptor:()=>Oc,extendWithFaceDetection:()=>ar,extendWithFaceExpressions:()=>Rc,extendWithFaceLandmarks:()=>Ao,extendWithGender:()=>Cc,extractFaceTensors:()=>Co,extractFaces:()=>No,fetchImage:()=>yS,fetchJson:()=>Lh,fetchNetWeights:()=>gS,fetchOrThrow:()=>ur,getContext2dOrThrow:()=>us,getMediaDimensions:()=>pr,imageTensorToCanvas:()=>xh,imageToSquare:()=>wh,inverseSigmoid:()=>GL,iou:()=>oh,isMediaElement:()=>_c,isMediaLoaded:()=>Pa,isWithAge:()=>hS,isWithFaceDetection:()=>Mn,isWithFaceExpressions:()=>dh,isWithFaceLandmarks:()=>or,isWithGender:()=>uS,loadAgeGenderModel:()=>iS,loadFaceDetectionModel:()=>rS,loadFaceExpressionModel:()=>nS,loadFaceLandmarkModel:()=>eS,loadFaceLandmarkTinyModel:()=>tS,loadFaceRecognitionModel:()=>sS,loadSsdMobilenetv1Model:()=>Hg,loadTinyFaceDetectorModel:()=>ZL,loadTinyYolov2Model:()=>QL,loadWeightMap:()=>bh,locateFaces:()=>oS,matchDimensions:()=>fS,minBbox:()=>rh,nets:()=>Be,nonMaxSuppression:()=>ih,normalize:()=>un,padToSquare:()=>nh,predictAgeAndGender:()=>JL,recognizeFaceExpressions:()=>XL,resizeResults:()=>Vg,resolveInput:()=>cr,shuffleArray:()=>VL,sigmoid:()=>$a,ssdMobilenetv1:()=>Gg,tf:()=>Ju,tinyFaceDetector:()=>qL,tinyYolov2:()=>HL,toNetInput:()=>nt,utils:()=>Qu,validateConfig:()=>eh,version:()=>$L});const c_=typeof process!="undefined",p_=typeof navigator!="undefined"&&typeof navigator.userAgent!="undefined",$L={faceapi:UL,node:c_,browser:p_};!W().platform&&W().get("IS_BROWSER")&&W().setPlatform("browser",new WL)});const u_=1e-7,h_=1e-4;class Fc{constructor(e,t){this.backend=e,this.dataMover=t,this.data=new WeakMap,this.dataIdsCount=0}get(e){return this.data.has(e)||this.dataMover.moveData(this.backend,e),this.data.get(e)}set(e,t){this.dataIdsCount++,this.data.set(e,t)}has(e){return this.data.has(e)}delete(e){return this.dataIdsCount--,this.data.delete(e)}numDataIds(){return this.dataIdsCount}}class Eo{time(e){return z("time")}read(e){return z("read")}readSync(e){return z("readSync")}numDataIds(){return z("numDataIds")}disposeData(e){return z("disposeData")}write(e,t,s){return z("write")}move(e,t,s,n){return z("move")}memory(){return z("memory")}floatPrecision(){return z("floatPrecision")}epsilon(){return this.floatPrecision()===32?u_:h_}batchMatMul(e,t,s,n){return z("batchMatMul")}fusedBatchMatMul({a:e,b:t,transposeA:s,transposeB:n,bias:i,activation:r,preluActivationWeights:o}){return z("fusedBatchMatMul")}slice(e,t,s){return z("slice")}stridedSlice(e,t,s,n){return z("stridedSlice")}unstack(e,t){return z("unstack")}reverse(e,t){return z("reverse")}concat(e,t){return z("concat")}neg(e){return z("neg")}add(e,t){return z("add")}addN(e){return z("addN")}subtract(e,t){return z("subtract")}multiply(e,t){return z("multiply")}realDivide(e,t){return z("realDivide")}floorDiv(e,t){return z("floorDiv")}sum(e,t){return z("sum")}prod(e,t){return z("prod")}unsortedSegmentSum(e,t,s){return z("unsortedSegmentSum")}argMin(e,t){return z("argMin")}argMax(e,t){return z("argMax")}equal(e,t){return z("equal")}notEqual(e,t){return z("notEqual")}less(e,t){return z("less")}lessEqual(e,t){return z("lessEqual")}greater(e,t){return z("greater")}greaterEqual(e,t){return z("greaterEqual")}logicalNot(e){return z("logicalNot")}logicalAnd(e,t){return z("logicalAnd")}logicalOr(e,t){return z("logicalOr")}where(e){return z("where")}select(e,t,s){return z("select")}topk(e,t,s){return z("topk")}min(e,t){return z("min")}minimum(e,t){return z("minimum")}mod(e,t){return z("mod")}max(e,t){return z("max")}maximum(e,t){return z("maximum")}all(e,t){return z("all")}any(e,t){return z("any")}squaredDifference(e,t){return z("squaredDifference")}ceil(e){return z("ceil")}floor(e){return z("floor")}round(e){return z("round")}sign(e){return z("sign")}isNaN(e){return z("isNaN")}isInf(e){return z("isInf")}isFinite(e){return z("isFinite")}pow(e,t){return z("pow")}exp(e){return z("exp")}expm1(e){return z("expm1")}softmax(e,t){return z("softmax")}log(e){return z("log")}log1p(e){return z("log1p")}sqrt(e){return z("sqrt")}rsqrt(e){return z("rsqrt")}square(e){return z("square")}reciprocal(e){return z("reciprocal")}relu(e){return z("relu")}relu6(e){return z("relu6")}prelu(e,t){return z("prelu")}elu(e){return z("elu")}eluDer(e,t){return z("eluDer")}selu(e){return z("selu")}int(e){return z("int")}clip(e,t,s){return z("clip")}abs(e){return z("abs")}complexAbs(e){return z("complexAbs")}sigmoid(e){return z("sigmoid")}softplus(e){return z("softplus")}sin(e){return z("sin")}cos(e){return z("cos")}tan(e){return z("tan")}asin(e){return z("asin")}acos(e){return z("acos")}atan(e){return z("atan")}atan2(e,t){return z("atan2")}sinh(e){return z("sinh")}cosh(e){return z("cosh")}tanh(e){return z("tanh")}asinh(e){return z("asinh")}acosh(e){return z("acosh")}atanh(e){return z("atanh")}erf(e){return z("erf")}step(e,t){return z("step")}fusedConv2d({input:e,filter:t,convInfo:s,bias:n,activation:i,preluActivationWeights:r}){return z("fusedConv2d")}conv2d(e,t,s){return z("conv2d")}conv2dDerInput(e,t,s){return z("conv2dDerInput")}conv2dDerFilter(e,t,s){return z("conv2dDerFilter")}fusedDepthwiseConv2D({input:e,filter:t,convInfo:s,bias:n,activation:i,preluActivationWeights:r}){return z("fusedDepthwiseConv2D")}depthwiseConv2D(e,t,s){return z("depthwiseConv2D")}depthwiseConv2DDerInput(e,t,s){return z("depthwiseConv2DDerInput")}depthwiseConv2DDerFilter(e,t,s){return z("depthwiseConv2DDerFilter")}conv3d(e,t,s){return z("conv3d")}conv3dDerInput(e,t,s){return z("conv3dDerInput")}conv3dDerFilter(e,t,s){return z("conv3dDerFilter")}maxPool(e,t){return z("maxPool")}maxPoolBackprop(e,t,s,n){return z("maxPoolBackprop")}avgPool(e,t){return z("avgPool")}avgPoolBackprop(e,t,s){return z("avgPoolBackprop")}avgPool3d(e,t){return z("avgPool3d")}avgPool3dBackprop(e,t,s){return z("avgPool3dBackprop")}maxPool3d(e,t){return z("maxPool3d")}maxPool3dBackprop(e,t,s,n){return z("maxPool3dBackprop")}reshape(e,t){return z("reshape")}cast(e,t){return z("cast")}tile(e,t){return z("tile")}pad(e,t,s){return z("pad")}transpose(e,t){return z("transpose")}gather(e,t,s){return z("gather")}gatherND(e,t){return z("gatherND")}scatterND(e,t,s){return z("scatterND")}batchToSpaceND(e,t,s){return z("batchToSpaceND")}spaceToBatchND(e,t,s){return z("spaceToBatchND")}resizeBilinear(e,t,s,n){return z("resizeBilinear")}resizeBilinearBackprop(e,t,s){return z("resizeBilinearBackprop")}resizeNearestNeighbor(e,t,s,n){return z("resizeNearestNeighbor")}resizeNearestNeighborBackprop(e,t,s){return z("resizeNearestNeighborBackprop")}batchNorm(e,t,s,n,i,r){return z("batchNorm")}localResponseNormalization4D(e,t,s,n,i){return z("localResponseNormalization4D")}LRNGrad(e,t,s,n,i,r,o){return z("LRNGrad")}multinomial(e,t,s,n){return z("multinomial")}oneHot(e,t,s,n){return z("oneHot")}cumsum(e,t,s,n){return z("cumsum")}nonMaxSuppression(e,t,s,n,i){return z("nonMaxSuppression")}fft(e){return z("fft")}ifft(e){return z("ifft")}complex(e,t){return z("complex")}real(e){return z("real")}imag(e){return z("imag")}cropAndResize(e,t,s,n,i,r){return z("cropAndResize")}depthToSpace(e,t,s){return z("depthToSpace")}split(e,t,s){return z("split")}sparseToDense(e,t,s,n){return z("sparseToDense")}diag(e){return z("diag")}fill(e,t,s){return z("fill")}onesLike(e){return z("onesLike")}zerosLike(e){return z("zerosLike")}linspace(e,t,s){return z("linspace")}dispose(){return z("dispose")}}function z(e){throw new Error(`'${e}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}const LS="tfjsflags";class Xg{constructor(e){this.global=e,this.flags={},this.flagRegistry={},this.urlFlags={},this.populateURLFlags()}setPlatform(e,t){this.platform!=null&&console.warn(`Platform ${this.platformName} has already been set. Overwriting the platform with ${t}.`),this.platformName=e,this.platform=t}registerFlag(e,t,s){if(this.flagRegistry[e]={evaluationFn:t,setHook:s},this.urlFlags[e]!=null){const n=this.urlFlags[e];console.warn(`Setting feature override from URL ${e}: ${n}.`),this.set(e,n)}}async getAsync(e){return e in this.flags?this.flags[e]:(this.flags[e]=await this.evaluateFlag(e),this.flags[e])}get(e){if(e in this.flags)return this.flags[e];const t=this.evaluateFlag(e);if(t instanceof Promise)throw new Error(`Flag ${e} cannot be synchronously evaluated. Please use getAsync() instead.`);return this.flags[e]=t,this.flags[e]}getNumber(e){return this.get(e)}getBool(e){return this.get(e)}getFlags(){return this.flags}get features(){return this.flags}set(e,t){if(this.flagRegistry[e]==null)throw new Error(`Cannot set flag ${e} as it has not been registered.`);this.flags[e]=t,this.flagRegistry[e].setHook!=null&&this.flagRegistry[e].setHook(t)}evaluateFlag(e){if(this.flagRegistry[e]==null)throw new Error(`Cannot evaluate flag '${e}': no evaluation function found.`);return this.flagRegistry[e].evaluationFn()}setFlags(e){this.flags=Object.assign({},e)}reset(){this.flags={},this.urlFlags={},this.populateURLFlags()}populateURLFlags(){if(typeof this.global=="undefined"||typeof this.global.location=="undefined"||typeof this.global.location.search=="undefined")return;const e=d_(this.global.location.search);if(LS in e){const t=e[LS].split(",");t.forEach(s=>{const[n,i]=s.split(":");this.urlFlags[n]=m_(n,i)})}}}function d_(e){const t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(s,...n)=>(f_(t,n[0],n[1]),n.join("="))),t}function f_(e,t,s){e[decodeURIComponent(t)]=decodeURIComponent(s||"")}function m_(e,t){if(t=t.toLowerCase(),t==="true"||t==="false")return t==="true";if(`${+t}`===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${e}.`)}function W(){return Jg}let Jg=null;function SS(e){Jg=e}let Zg;function Qg(){if(Zg==null){let e;if(typeof window!="undefined")e=window;else if(typeof global!="undefined")e=global;else if(typeof process!="undefined")e=process;else if(typeof self!="undefined")e=self;else throw new Error("Could not find a global object");Zg=e}return Zg}function g_(){const e=Qg();return e._tfGlobals==null&&(e._tfGlobals=new Map),e._tfGlobals}function ey(e,t){const s=g_();if(s.has(e))return s.get(e);{const n=t();return s.set(e,n),s.get(e)}}const _o="Abs",dr="Acos",mr="Acosh",Zn="Add",Mc="AddN",ty="All",sy="Any",Uc="ArgMax",$c="ArgMin",fr="Asin",gr="Asinh",yr="Atan",br="Atanh",ko="Atan2",Ti="AvgPool",Do="AvgPoolBackprop",Wc="AvgPool3D",ny="AvgPool3DBackprop",zc="BatchMatMul",Pc="BatchToSpaceND",Bc="BroadcastTo",Ai="Cast",wr="Ceil",xr="ClipByValue",jc="Complex",Fo="Concat",Vc="Conv2D",iy="Conv2DBackpropFilter",Gc="Conv2DBackpropInput",qc="Conv3D",ry="Conv3DBackpropFilterV2",oy="Conv3DBackpropInputV2",Qn="Cos",Lr="Cosh",Hc="Cumsum",ay="CropAndResize",ly="DepthToSpace",Yc="DepthwiseConv2dNative",cy="DepthwiseConv2dNativeBackpropFilter",py="DepthwiseConv2dNativeBackpropInput",uy="Diag",Mo="Dilation2D",qa="Dilation2DBackpropInput",Ha="Dilation2DBackpropFilter",ei="Div",Sr="Elu",hy="EluGrad",Ir="Erf",dy="Equal",vr="Exp",Tr="Expm1",Kc="FFT",my="Fill",Uo="FlipLeftRight",Ar="Floor",Xc="FloorDiv",Ni="FusedBatchNorm",Jc="GatherV2",fy="GatherNd",gy="Greater",Zc="GreaterEqual",Ci="Identity",Qc="IFFT",ep="Imag",Nr="IsFinite",Cr="IsInf",Rr="IsNan",yy="Less",by="LessEqual",wy="LinSpace",Or="Log",Er="Log1p",xy="LogicalAnd",Ya="LogicalNot",Ly="LogicalOr",tp="LogSoftmax",sp="LRN",Sy="LRNBackprop",Ri="Max",np="Maximum",Oi="MaxPool",$o="MaxPoolBackprop",ip="MaxPool3D",Iy="MaxPool3DBackprop",Wo="MaxPoolWithArgmax",y_="Mean",rp="Min",op="Minimum",ap="Mod",_r="Multiply",lp="Negate",Ka="NotEqual",cp="NonMaxSuppressionV3",zo="NonMaxSuppressionV4",Po="NonMaxSuppressionV5",pp="OnesLike",up="OneHot",Bo="PadV2",b_="Pool",hp="Pow",dp="Prelu",vy="Prod",Ty="Range",mp="Real",kr="Reciprocal",fp="Relu",Ei="Reshape",gp="ResizeNearestNeighbor",Ay="ResizeNearestNeighborGrad",yp="ResizeBilinear",Ny="ResizeBilinearGrad",bp="Relu6",wp="Reverse",Dr="Round",Fr="Rsqrt",Cy="ScatterNd",xp="SelectV2",Mr="Selu",jo="Slice",ti="Sin",Ur="Sinh",$r="Sign",Wr="Sigmoid",zr="Softplus",Pr="Sqrt",Lp="Sum",Vo="SpaceToBatchND",Sp="SplitV",Ip="Softmax",si="SquaredDifference",Go="Square",Br="Sub",Ry="SparseToDense",Oy="StridedSlice",ni="Tan",jr="Tanh",vp="Tile",Ey="TopK",_i="Transpose",qo="Unique",Tp="Unpack",Ap="UnsortedSegmentSum",Np="ZerosLike",Vr="Step",Xa="FromPixels",Ho="RotateWithOffset",Th="_FusedMatMul",Ah="FusedConv2D",Nh="FusedDepthwiseConv2D";const Ja=ey("kernelRegistry",()=>new Map),Cp=ey("gradRegistry",()=>new Map);function Rp(e,t){const s=_y(e,t);return Ja.get(s)}function Ch(e){return Cp.get(e)}function Op(e){const t=Ja.entries(),s=[];for(;;){const{done:n,value:i}=t.next();if(n)break;const[r,o]=i,[a]=r.split("_");a===e&&s.push(o)}return s}function Za(e){const{kernelName:t,backendName:s}=e,n=_y(t,s);Ja.has(n)&&console.warn(`The kernel '${t}' for backend '${s}' is already registered`),Ja.set(n,e)}function ky(e){const{kernelName:t}=e;Cp.has(t)&&(W().getBool("DEBUG")&&console.warn(`Overriding the gradient for '${t}'`)),Cp.set(t,e)}function w_(e,t){const s=_y(e,t);if(!Ja.has(s))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);Ja.delete(s)}function x_(e){if(!Cp.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);Cp.delete(e)}function L_(e,t){const s=Op(e);s.forEach(n=>{const i=Object.assign({},n,{backendName:t});Za(i)})}function _y(e,t){return`${t}_${e}`}const N={};Ee(N,{arraysEqual:()=>Nt,assert:()=>I,assertNonNegativeIntegerDimensions:()=>_p,assertNonNull:()=>Ys,assertShapesMatch:()=>Se,bytesFromStringArray:()=>zy,bytesPerElement:()=>Wy,checkConversionForErrors:()=>vS,clamp:()=>Qa,computeStrides:()=>oi,createScalarValue:()=>E_,createShuffledIndices:()=>R_,decodeString:()=>Eh,distSquared:()=>T_,encodeString:()=>Rh,fetch:()=>D_,flatten:()=>ii,getArrayFromDType:()=>My,getTypedArrayFromDType:()=>el,hasEncodingLoss:()=>$y,indexToLoc:()=>M_,inferDtype:()=>tl,inferFromImplicitShape:()=>Dy,isBoolean:()=>TS,isFunction:()=>ri,isInt:()=>De,isNumber:()=>AS,isScalarShape:()=>A_,isString:()=>Un,isTypedArray:()=>Dt,isValidDtype:()=>Uy,locToIndex:()=>F_,makeOnesTypedArray:()=>Ep,makeZerosNestedTypedArray:()=>k_,makeZerosTypedArray:()=>ai,nearestDivisor:()=>sl,nearestLargerEven:()=>S_,now:()=>Oh,parseAxisParam:()=>Ne,randUniform:()=>v_,repeatedTry:()=>O_,rightPad:()=>Yo,shuffle:()=>IS,sizeFromShape:()=>We,sizeToSquarishShape:()=>C_,squeezeShape:()=>Fy,sum:()=>I_,tanh:()=>N_,toNestedArray:()=>Ko,toTypedArray:()=>nl});function IS(e){let t=e.length,s=0,n=0;for(;t>0;)n=Math.random()*t|0,t--,s=e[t],e[t]=e[n],e[n]=s}function Qa(e,t,s){return Math.max(e,Math.min(t,s))}function S_(e){return e%2===0?e:e+1}function I_(e){let t=0;for(let s=0;ss+` Shapes ${e} and ${t} must match`)}function Ys(e){I(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function ii(e,t=[],s=!1){if(t==null&&(t=[]),Array.isArray(e)||Dt(e)&&!s)for(let n=0;n0,s){return new Promise((n,i)=>{let r=0;const o=()=>{if(e()){n();return}r++;const a=t(r);if(s!=null&&r>=s){i();return}setTimeout(o,a)};o()})}function Dy(e,t){let s=1,n=-1;for(let r=0;r=0)s*=e[r];else if(e[r]===-1){if(n!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${n} and dim ${r}`);n=r}else if(e[r]<0)throw Error(`Shapes can not be < 0. Found ${e[r]} at dim ${r}`);if(n===-1){if(t>0&&t!==s)throw Error(`Size(${t}) must match the product of shape ${e}`);return e}if(s===0)throw Error(`Cannot infer the missing size in [${e}] when there are 0 elements`);if(t%s!==0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${s}`);const i=e.slice();return i[n]=t/s,i}function Ne(e,t){const s=t.length;return e=e==null?t.map((n,i)=>i):[].concat(e),I(e.every(n=>n>=-s&&n`All values in axis param must be in range [-${s}, ${s}) but got axis ${e}`),I(e.every(n=>De(n)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(n=>n<0?s+n:n)}function Fy(e,t){const s=[],n=[],i=t!=null&&Array.isArray(t)&&t.length===0,r=t==null||i?null:Ne(t,e).sort();let o=0;for(let a=0;aa)&&e[a]===1&&(s.push(e[a]),n.push(a)),r[o]<=a&&o++}e[a]!==1&&(s.push(e[a]),n.push(a))}return{newShape:s,keptDims:n}}function el(e,t){let s=null;if(e==null||e==="float32")s=new Float32Array(t);else if(e==="int32")s=new Int32Array(t);else if(e==="bool")s=new Uint8Array(t);else throw new Error(`Unknown data type ${e}`);return s}function My(e,t){let s=null;if(e==null||e==="float32")s=new Float32Array(t);else if(e==="int32")s=new Int32Array(t);else if(e==="bool")s=new Uint8Array(t);else if(e==="string")s=new Array(t);else throw new Error(`Unknown data type ${e}`);return s}function vS(e,t){for(let s=0;st+=s.length),t}function Un(e){return typeof e=="string"||e instanceof String}function TS(e){return typeof e=="boolean"}function AS(e){return typeof e=="number"}function tl(e){return Array.isArray(e)?tl(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array?"int32":AS(e)?"float32":Un(e)?"string":TS(e)?"bool":"float32"}function ri(e){return!!(e&&e.constructor&&e.call&&e.apply)}function sl(e,t){for(let s=t;s=0;--n)s[n]=s[n+1]*e[n+1];return s}function E_(e,t){return t==="string"?Rh(e):nl([e],t)}function nl(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=ii(e)),W().getBool("DEBUG")&&vS(e,t),__(e,t))return e;if(t==null||t==="float32"||t==="complex64")return new Float32Array(e);if(t==="int32")return new Int32Array(e);if(t==="bool"){const s=new Uint8Array(e.length);for(let n=0;na*l);for(let a=0;an*i);if(s===0)return[];if(s!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}.`);return NS(0,e,t)}function __(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function Ep(e,t){const s=ai(e,t);for(let n=0;nn*i,1);if(t==null||t==="float32")return Ko(e,new Float32Array(s));if(t==="int32")return Ko(e,new Int32Array(s));if(t==="bool")return Ko(e,new Uint8Array(s));throw new Error(`Unknown data type ${t}`)}function Oh(){return W().platform.now()}function _p(e){e.forEach(t=>{I(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function D_(e,t){return W().platform.fetch(e,t)}function Rh(e,t="utf-8"){return t=t||"utf-8",W().platform.encode(e,t)}function Eh(e,t="utf-8"){return t=t||"utf-8",W().platform.decode(e,t)}function F_(e,t,s){if(t===0)return 0;if(t===1)return e[0];let n=e[e.length-1];for(let i=0;i{n=s()},r=this.backendTimer.time(i);for(let a=0;a{U_(c,l.dtype,e)})}const o={kernelName:e,outputs:n,inputs:t,timeMs:r.then(a=>a.kernelMs),extraInfo:r.then(a=>a.getExtraProfileInfo!=null?a.getExtraProfileInfo():"")};return o}logKernelProfile(e){const{kernelName:t,outputs:s,timeMs:n,inputs:i,extraInfo:r}=e;s.forEach(o=>{Promise.all([o.data(),n,r]).then(a=>{this.logger.logKernelProfile(t,o,a[0],a[1],i,a[2])})})}}function U_(e,t,s){if(t!=="float32")return!1;for(let n=0;n0?m:""} `}}console.log(`%c${a} %c${o} %c${l}D ${p} %c${c} %c${u} %c${r}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}}function RS(e,t,s){const n={},i={};for(let l=0;ln[f.id]=!0),d=!0,i[c.id]=!0;break}if(d)break}}const r={};r[s.id]=!0;const o={};for(let l=e.length-1;l>=0;l--){const c=e[l],p=c.inputs;for(let u=0;u=0;i--){const r=t[i],o=[];if(r.outputs.forEach(l=>{const c=e[l.id];c!=null?o.push(c):o.push(null)}),r.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${r.kernelName}.`);const a=r.gradient(o);for(const l in r.inputs){if(!(l in a))throw new Error(`Cannot backprop through input ${l}. Available gradients found: ${Object.keys(a)}.`);const c=s(()=>a[l]());if(c.dtype!=="float32")throw new Error(`Error in gradient for op ${r.kernelName}. The gradient of input ${l} must have 'float32' dtype, but has '${c.dtype}'`);const p=r.inputs[l];if(!Nt(c.shape,p.shape))throw new Error(`Error in gradient for op ${r.kernelName}. The gradient of input '${l}' has shape '${c.shape}', which does not match the shape of the input '${p.shape}'`);if(e[p.id]==null)e[p.id]=c;else{const u=e[p.id];e[p.id]=n(u,c),u.dispose()}}}}const ES=20,kp=3,Py=7;function _S(e,t,s,n){const i=oi(t),r=W_(e,t,s,i),o=t.length,a=_h(e,t,s,i,r),l=["Tensor"];return n&&(l.push(` dtype: ${s}`),l.push(` rank: ${o}`),l.push(` shape: [${t}]`),l.push(" values:")),l.push(a.map(c=>" "+c).join(` +var faceapi=(()=>{var Ku=Object.defineProperty,JE=Object.prototype.hasOwnProperty,qs=(e,t)=>()=>(t||(t={exports:{}},e(t.exports,t)),t.exports),yL=e=>Ku(e,"__esModule",{value:!0}),Ee=(e,t)=>{yL(e);for(var s in t)Ku(e,s,{get:t[s],enumerable:!0})},ZE=(e,t)=>{if(yL(e),typeof t=="object"||typeof t=="function")for(let s in t)!JE.call(e,s)&&s!=="default"&&Ku(e,s,{get:()=>t[s],enumerable:!0});return e},vc=e=>e&&e.__esModule?e:ZE(Ku({},"default",{value:e,enumerable:!0}),e);var wL=qs((bL,Ug)=>{(function(e,t,s){function n(a){var l=this,c=o();l.next=function(){var p=2091639*l.s0+l.c*23283064365386963e-26;return l.s0=l.s1,l.s1=l.s2,l.s2=p-(l.c=p|0)},l.c=1,l.s0=c(" "),l.s1=c(" "),l.s2=c(" "),l.s0-=c(a),l.s0<0&&(l.s0+=1),l.s1-=c(a),l.s1<0&&(l.s1+=1),l.s2-=c(a),l.s2<0&&(l.s2+=1),c=null}function i(a,l){return l.c=a.c,l.s0=a.s0,l.s1=a.s1,l.s2=a.s2,l}function r(a,l){var c=new n(a),p=l&&l.state,u=c.next;return u.int32=function(){return c.next()*4294967296|0},u.double=function(){return u()+(u()*2097152|0)*11102230246251565e-32},u.quick=u,p&&(typeof p=="object"&&i(p,c),u.state=function(){return i(c,{})}),u}function o(){var a=4022871197,l=function(c){c=c.toString();for(var p=0;p>>0,u-=a,u*=a,a=u>>>0,u-=a,a+=u*4294967296}return(a>>>0)*23283064365386963e-26};return l}t&&t.exports?t.exports=r:s&&s.amd?s(function(){return r}):this.alea=r})(bL,typeof Ug=="object"&&Ug,typeof define=="function"&&define)});var LL=qs((xL,$g)=>{(function(e,t,s){function n(o){var a=this,l="";a.x=0,a.y=0,a.z=0,a.w=0,a.next=function(){var p=a.x^a.x<<11;return a.x=a.y,a.y=a.z,a.z=a.w,a.w^=a.w>>>19^p^p>>>8},o===(o|0)?a.x=o:l+=o;for(var c=0;c>>0)/4294967296};return p.double=function(){do var u=l.next()>>>11,h=(l.next()>>>0)/4294967296,d=(u+h)/(1<<21);while(d===0);return d},p.int32=l.next,p.quick=p,c&&(typeof c=="object"&&i(c,l),p.state=function(){return i(l,{})}),p}t&&t.exports?t.exports=r:s&&s.amd?s(function(){return r}):this.xor128=r})(xL,typeof $g=="object"&&$g,typeof define=="function"&&define)});var IL=qs((SL,Wg)=>{(function(e,t,s){function n(o){var a=this,l="";a.next=function(){var p=a.x^a.x>>>2;return a.x=a.y,a.y=a.z,a.z=a.w,a.w=a.v,(a.d=a.d+362437|0)+(a.v=a.v^a.v<<4^(p^p<<1))|0},a.x=0,a.y=0,a.z=0,a.w=0,a.v=0,o===(o|0)?a.x=o:l+=o;for(var c=0;c>>4),a.next()}function i(o,a){return a.x=o.x,a.y=o.y,a.z=o.z,a.w=o.w,a.v=o.v,a.d=o.d,a}function r(o,a){var l=new n(o),c=a&&a.state,p=function(){return(l.next()>>>0)/4294967296};return p.double=function(){do var u=l.next()>>>11,h=(l.next()>>>0)/4294967296,d=(u+h)/(1<<21);while(d===0);return d},p.int32=l.next,p.quick=p,c&&(typeof c=="object"&&i(c,l),p.state=function(){return i(l,{})}),p}t&&t.exports?t.exports=r:s&&s.amd?s(function(){return r}):this.xorwow=r})(SL,typeof Wg=="object"&&Wg,typeof define=="function"&&define)});var TL=qs((vL,zg)=>{(function(e,t,s){function n(o){var a=this;a.next=function(){var c=a.x,p=a.i,u,h,d;return u=c[p],u^=u>>>7,h=u^u<<24,u=c[p+1&7],h^=u^u>>>10,u=c[p+3&7],h^=u^u>>>3,u=c[p+4&7],h^=u^u<<7,u=c[p+7&7],u=u^u<<13,h^=u^u<<9,c[p]=h,a.i=p+1&7,h};function l(c,p){var u,h,d=[];if(p===(p|0))h=d[0]=p;else for(p=""+p,u=0;u0;--u)c.next()}l(a,o)}function i(o,a){return a.x=o.x.slice(),a.i=o.i,a}function r(o,a){o==null&&(o=+new Date);var l=new n(o),c=a&&a.state,p=function(){return(l.next()>>>0)/4294967296};return p.double=function(){do var u=l.next()>>>11,h=(l.next()>>>0)/4294967296,d=(u+h)/(1<<21);while(d===0);return d},p.int32=l.next,p.quick=p,c&&(c.x&&i(c,l),p.state=function(){return i(l,{})}),p}t&&t.exports?t.exports=r:s&&s.amd?s(function(){return r}):this.xorshift7=r})(vL,typeof zg=="object"&&zg,typeof define=="function"&&define)});var NL=qs((AL,Pg)=>{(function(e,t,s){function n(o){var a=this;a.next=function(){var c=a.w,p=a.X,u=a.i,h,d;return a.w=c=c+1640531527|0,d=p[u+34&127],h=p[u=u+1&127],d^=d<<13,h^=h<<17,d^=d>>>15,h^=h>>>12,d=p[u]=d^h,a.i=u,d+(c^c>>>16)|0};function l(c,p){var u,h,d,m,f,g=[],y=128;for(p===(p|0)?(h=p,p=null):(p=p+"\0",h=0,y=Math.max(y,p.length)),d=0,m=-32;m>>15,h^=h<<4,h^=h>>>13,m>=0&&(f=f+1640531527|0,u=g[m&127]^=h+f,d=u==0?d+1:0);for(d>=128&&(g[(p&&p.length||0)&127]=-1),d=127,m=4*128;m>0;--m)h=g[d+34&127],u=g[d=d+1&127],h^=h<<13,u^=u<<17,h^=h>>>15,u^=u>>>12,g[d]=h^u;c.w=f,c.X=g,c.i=d}l(a,o)}function i(o,a){return a.i=o.i,a.w=o.w,a.X=o.X.slice(),a}function r(o,a){o==null&&(o=+new Date);var l=new n(o),c=a&&a.state,p=function(){return(l.next()>>>0)/4294967296};return p.double=function(){do var u=l.next()>>>11,h=(l.next()>>>0)/4294967296,d=(u+h)/(1<<21);while(d===0);return d},p.int32=l.next,p.quick=p,c&&(c.X&&i(c,l),p.state=function(){return i(l,{})}),p}t&&t.exports?t.exports=r:s&&s.amd?s(function(){return r}):this.xor4096=r})(AL,typeof Pg=="object"&&Pg,typeof define=="function"&&define)});var RL=qs((CL,Bg)=>{(function(e,t,s){function n(o){var a=this,l="";a.next=function(){var p=a.b,u=a.c,h=a.d,d=a.a;return p=p<<25^p>>>7^u,u=u-h|0,h=h<<24^h>>>8^d,d=d-p|0,a.b=p=p<<20^p>>>12^u,a.c=u=u-h|0,a.d=h<<16^u>>>16^d,a.a=d-p|0},a.a=0,a.b=0,a.c=2654435769|0,a.d=1367130551,o===Math.floor(o)?(a.a=o/4294967296|0,a.b=o|0):l+=o;for(var c=0;c>>0)/4294967296};return p.double=function(){do var u=l.next()>>>11,h=(l.next()>>>0)/4294967296,d=(u+h)/(1<<21);while(d===0);return d},p.int32=l.next,p.quick=p,c&&(typeof c=="object"&&i(c,l),p.state=function(){return i(l,{})}),p}t&&t.exports?t.exports=r:s&&s.amd?s(function(){return r}):this.tychei=r})(CL,typeof Bg=="object"&&Bg,typeof define=="function"&&define)});var OL=qs(()=>{});var EL=qs((QG,Xu)=>{(function(e,t){var s=this,n=256,i=6,r=52,o="random",a=t.pow(n,i),l=t.pow(2,r),c=l*2,p=n-1,u;function h(x,T,A){var _=[];T=T==!0?{entropy:!0}:T||{};var E=g(f(T.entropy?[x,w(e)]:x??y(),3),_),F=new d(_),D=function(){for(var M=F.g(i),P=a,B=0;M=c;)M/=2,P/=2,B>>>=1;return(M+B)/P};return D.int32=function(){return F.g(4)|0},D.quick=function(){return F.g(4)/4294967296},D.double=D,g(w(F.S),e),(T.pass||A||function(M,P,B,Y){return Y&&(Y.S&&m(Y,F),M.state=function(){return m(F,{})}),B?(t[o]=M,P):M})(D,E,"global"in T?T.global:this==t,T.state)}t["seed"+o]=h;function d(x){var T,A=x.length,_=this,E=0,F=_.i=_.j=0,D=_.S=[];for(A||(x=[A++]);E{var QE=wL(),e_=LL(),t_=IL(),s_=TL(),n_=NL(),i_=RL(),vo=EL();vo.alea=QE;vo.xor128=e_;vo.xorwow=t_;vo.xorshift7=s_;vo.xor4096=n_;vo.tychei=i_;_L.exports=vo});var kL=qs(()=>{});var DL=qs(()=>{});var ML=qs((r_,FL)=>{Ee(r_,{isNodejs:()=>o_});function o_(){return typeof global=="object"&&!0&&typeof FL!="undefined"&&typeof process!="undefined"&&!!process.version}});var wS=qs(a_=>{Ee(a_,{AgeGenderNet:()=>vh,BoundingBox:()=>Ga,Box:()=>it,ComposableTask:()=>hn,ComputeAllFaceDescriptorsTask:()=>ir,ComputeFaceDescriptorsTaskBase:()=>hh,ComputeSingleFaceDescriptorTask:()=>rr,DetectAllFaceLandmarksTask:()=>ph,DetectAllFacesTask:()=>Nc,DetectFaceLandmarksTaskBase:()=>ch,DetectFacesTaskBase:()=>ah,DetectSingleFaceLandmarksTask:()=>uh,DetectSingleFaceTask:()=>lh,Dimensions:()=>Ts,FACE_EXPRESSION_LABELS:()=>fh,FaceDetection:()=>ht,FaceDetectionNet:()=>BL,FaceExpressionNet:()=>gh,FaceExpressions:()=>lr,FaceLandmark68Net:()=>za,FaceLandmark68TinyNet:()=>mh,FaceLandmarkNet:()=>dS,FaceLandmarks:()=>Hs,FaceLandmarks5:()=>bS,FaceLandmarks68:()=>Va,FaceMatch:()=>Dc,FaceMatcher:()=>Kg,FaceRecognitionNet:()=>Wa,Gender:()=>Jn,LabeledBox:()=>kc,LabeledFaceDescriptors:()=>hr,NetInput:()=>vi,NeuralNetwork:()=>Zt,ObjectDetection:()=>Oo,Point:()=>_e,PredictedBox:()=>yS,Rect:()=>ja,SsdMobilenetv1:()=>To,SsdMobilenetv1Options:()=>pn,TinyFaceDetector:()=>Ua,TinyFaceDetectorOptions:()=>sh,TinyYolov2:()=>Ma,TinyYolov2Options:()=>Xn,TinyYolov2SizeType:()=>th,allFaces:()=>cS,allFacesSsdMobilenetv1:()=>Yg,allFacesTinyYolov2:()=>lS,awaitMediaLoaded:()=>Ih,bufferToImage:()=>Sh,computeFaceDescriptor:()=>YL,createCanvas:()=>Ro,createCanvasFromMedia:()=>Ba,createFaceDetectionNet:()=>PL,createFaceRecognitionNet:()=>hS,createSsdMobilenetv1:()=>jg,createTinyFaceDetector:()=>zL,createTinyYolov2:()=>WL,detectAllFaces:()=>Ac,detectFaceLandmarks:()=>qg,detectFaceLandmarksTiny:()=>HL,detectLandmarks:()=>oS,detectSingleFace:()=>aS,draw:()=>Zu,env:()=>Ve,euclideanDistance:()=>yh,extendWithAge:()=>Ec,extendWithFaceDescriptor:()=>Oc,extendWithFaceDetection:()=>ar,extendWithFaceExpressions:()=>Rc,extendWithFaceLandmarks:()=>Ao,extendWithGender:()=>Cc,extractFaceTensors:()=>Co,extractFaces:()=>No,fetchImage:()=>gS,fetchJson:()=>Lh,fetchNetWeights:()=>fS,fetchOrThrow:()=>ur,getContext2dOrThrow:()=>us,getMediaDimensions:()=>pr,imageTensorToCanvas:()=>xh,imageToSquare:()=>wh,inverseSigmoid:()=>VL,iou:()=>oh,isMediaElement:()=>_c,isMediaLoaded:()=>Pa,isWithAge:()=>uS,isWithFaceDetection:()=>Mn,isWithFaceExpressions:()=>dh,isWithFaceLandmarks:()=>or,isWithGender:()=>pS,loadAgeGenderModel:()=>nS,loadFaceDetectionModel:()=>iS,loadFaceExpressionModel:()=>sS,loadFaceLandmarkModel:()=>QL,loadFaceLandmarkTinyModel:()=>eS,loadFaceRecognitionModel:()=>tS,loadSsdMobilenetv1Model:()=>Hg,loadTinyFaceDetectorModel:()=>JL,loadTinyYolov2Model:()=>ZL,loadWeightMap:()=>bh,locateFaces:()=>rS,matchDimensions:()=>mS,minBbox:()=>rh,nets:()=>Be,nonMaxSuppression:()=>ih,normalize:()=>un,padToSquare:()=>nh,predictAgeAndGender:()=>XL,recognizeFaceExpressions:()=>KL,resizeResults:()=>Vg,resolveInput:()=>cr,shuffleArray:()=>jL,sigmoid:()=>$a,ssdMobilenetv1:()=>Gg,tf:()=>Ju,tinyFaceDetector:()=>GL,tinyYolov2:()=>qL,toNetInput:()=>nt,utils:()=>Qu,validateConfig:()=>eh,version:()=>$L});const l_=typeof process!="undefined",c_=typeof navigator!="undefined"&&typeof navigator.userAgent!="undefined",$L={faceapi:UL,node:l_,browser:c_}});const p_=1e-7,u_=1e-4;class Fc{constructor(e,t){this.backend=e,this.dataMover=t,this.data=new WeakMap,this.dataIdsCount=0}get(e){return this.data.has(e)||this.dataMover.moveData(this.backend,e),this.data.get(e)}set(e,t){this.dataIdsCount++,this.data.set(e,t)}has(e){return this.data.has(e)}delete(e){return this.dataIdsCount--,this.data.delete(e)}numDataIds(){return this.dataIdsCount}}class Eo{time(e){return z("time")}read(e){return z("read")}readSync(e){return z("readSync")}numDataIds(){return z("numDataIds")}disposeData(e){return z("disposeData")}write(e,t,s){return z("write")}move(e,t,s,n){return z("move")}memory(){return z("memory")}floatPrecision(){return z("floatPrecision")}epsilon(){return this.floatPrecision()===32?p_:u_}batchMatMul(e,t,s,n){return z("batchMatMul")}fusedBatchMatMul({a:e,b:t,transposeA:s,transposeB:n,bias:i,activation:r,preluActivationWeights:o}){return z("fusedBatchMatMul")}slice(e,t,s){return z("slice")}stridedSlice(e,t,s,n){return z("stridedSlice")}unstack(e,t){return z("unstack")}reverse(e,t){return z("reverse")}concat(e,t){return z("concat")}neg(e){return z("neg")}add(e,t){return z("add")}addN(e){return z("addN")}subtract(e,t){return z("subtract")}multiply(e,t){return z("multiply")}realDivide(e,t){return z("realDivide")}floorDiv(e,t){return z("floorDiv")}sum(e,t){return z("sum")}prod(e,t){return z("prod")}unsortedSegmentSum(e,t,s){return z("unsortedSegmentSum")}argMin(e,t){return z("argMin")}argMax(e,t){return z("argMax")}equal(e,t){return z("equal")}notEqual(e,t){return z("notEqual")}less(e,t){return z("less")}lessEqual(e,t){return z("lessEqual")}greater(e,t){return z("greater")}greaterEqual(e,t){return z("greaterEqual")}logicalNot(e){return z("logicalNot")}logicalAnd(e,t){return z("logicalAnd")}logicalOr(e,t){return z("logicalOr")}where(e){return z("where")}select(e,t,s){return z("select")}topk(e,t,s){return z("topk")}min(e,t){return z("min")}minimum(e,t){return z("minimum")}mod(e,t){return z("mod")}max(e,t){return z("max")}maximum(e,t){return z("maximum")}all(e,t){return z("all")}any(e,t){return z("any")}squaredDifference(e,t){return z("squaredDifference")}ceil(e){return z("ceil")}floor(e){return z("floor")}round(e){return z("round")}sign(e){return z("sign")}isNaN(e){return z("isNaN")}isInf(e){return z("isInf")}isFinite(e){return z("isFinite")}pow(e,t){return z("pow")}exp(e){return z("exp")}expm1(e){return z("expm1")}softmax(e,t){return z("softmax")}log(e){return z("log")}log1p(e){return z("log1p")}sqrt(e){return z("sqrt")}rsqrt(e){return z("rsqrt")}square(e){return z("square")}reciprocal(e){return z("reciprocal")}relu(e){return z("relu")}relu6(e){return z("relu6")}prelu(e,t){return z("prelu")}elu(e){return z("elu")}eluDer(e,t){return z("eluDer")}selu(e){return z("selu")}int(e){return z("int")}clip(e,t,s){return z("clip")}abs(e){return z("abs")}complexAbs(e){return z("complexAbs")}sigmoid(e){return z("sigmoid")}softplus(e){return z("softplus")}sin(e){return z("sin")}cos(e){return z("cos")}tan(e){return z("tan")}asin(e){return z("asin")}acos(e){return z("acos")}atan(e){return z("atan")}atan2(e,t){return z("atan2")}sinh(e){return z("sinh")}cosh(e){return z("cosh")}tanh(e){return z("tanh")}asinh(e){return z("asinh")}acosh(e){return z("acosh")}atanh(e){return z("atanh")}erf(e){return z("erf")}step(e,t){return z("step")}fusedConv2d({input:e,filter:t,convInfo:s,bias:n,activation:i,preluActivationWeights:r}){return z("fusedConv2d")}conv2d(e,t,s){return z("conv2d")}conv2dDerInput(e,t,s){return z("conv2dDerInput")}conv2dDerFilter(e,t,s){return z("conv2dDerFilter")}fusedDepthwiseConv2D({input:e,filter:t,convInfo:s,bias:n,activation:i,preluActivationWeights:r}){return z("fusedDepthwiseConv2D")}depthwiseConv2D(e,t,s){return z("depthwiseConv2D")}depthwiseConv2DDerInput(e,t,s){return z("depthwiseConv2DDerInput")}depthwiseConv2DDerFilter(e,t,s){return z("depthwiseConv2DDerFilter")}conv3d(e,t,s){return z("conv3d")}conv3dDerInput(e,t,s){return z("conv3dDerInput")}conv3dDerFilter(e,t,s){return z("conv3dDerFilter")}maxPool(e,t){return z("maxPool")}maxPoolBackprop(e,t,s,n){return z("maxPoolBackprop")}avgPool(e,t){return z("avgPool")}avgPoolBackprop(e,t,s){return z("avgPoolBackprop")}avgPool3d(e,t){return z("avgPool3d")}avgPool3dBackprop(e,t,s){return z("avgPool3dBackprop")}maxPool3d(e,t){return z("maxPool3d")}maxPool3dBackprop(e,t,s,n){return z("maxPool3dBackprop")}reshape(e,t){return z("reshape")}cast(e,t){return z("cast")}tile(e,t){return z("tile")}pad(e,t,s){return z("pad")}transpose(e,t){return z("transpose")}gather(e,t,s){return z("gather")}gatherND(e,t){return z("gatherND")}scatterND(e,t,s){return z("scatterND")}batchToSpaceND(e,t,s){return z("batchToSpaceND")}spaceToBatchND(e,t,s){return z("spaceToBatchND")}resizeBilinear(e,t,s,n){return z("resizeBilinear")}resizeBilinearBackprop(e,t,s){return z("resizeBilinearBackprop")}resizeNearestNeighbor(e,t,s,n){return z("resizeNearestNeighbor")}resizeNearestNeighborBackprop(e,t,s){return z("resizeNearestNeighborBackprop")}batchNorm(e,t,s,n,i,r){return z("batchNorm")}localResponseNormalization4D(e,t,s,n,i){return z("localResponseNormalization4D")}LRNGrad(e,t,s,n,i,r,o){return z("LRNGrad")}multinomial(e,t,s,n){return z("multinomial")}oneHot(e,t,s,n){return z("oneHot")}cumsum(e,t,s,n){return z("cumsum")}nonMaxSuppression(e,t,s,n,i){return z("nonMaxSuppression")}fft(e){return z("fft")}ifft(e){return z("ifft")}complex(e,t){return z("complex")}real(e){return z("real")}imag(e){return z("imag")}cropAndResize(e,t,s,n,i,r){return z("cropAndResize")}depthToSpace(e,t,s){return z("depthToSpace")}split(e,t,s){return z("split")}sparseToDense(e,t,s,n){return z("sparseToDense")}diag(e){return z("diag")}fill(e,t,s){return z("fill")}onesLike(e){return z("onesLike")}zerosLike(e){return z("zerosLike")}linspace(e,t,s){return z("linspace")}dispose(){return z("dispose")}}function z(e){throw new Error(`'${e}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}const xS="tfjsflags";class Xg{constructor(e){this.global=e,this.flags={},this.flagRegistry={},this.urlFlags={},this.populateURLFlags()}setPlatform(e,t){this.platform!=null&&console.warn(`Platform ${this.platformName} has already been set. Overwriting the platform with ${t}.`),this.platformName=e,this.platform=t}registerFlag(e,t,s){if(this.flagRegistry[e]={evaluationFn:t,setHook:s},this.urlFlags[e]!=null){const n=this.urlFlags[e];console.warn(`Setting feature override from URL ${e}: ${n}.`),this.set(e,n)}}async getAsync(e){return e in this.flags?this.flags[e]:(this.flags[e]=await this.evaluateFlag(e),this.flags[e])}get(e){if(e in this.flags)return this.flags[e];const t=this.evaluateFlag(e);if(t instanceof Promise)throw new Error(`Flag ${e} cannot be synchronously evaluated. Please use getAsync() instead.`);return this.flags[e]=t,this.flags[e]}getNumber(e){return this.get(e)}getBool(e){return this.get(e)}getFlags(){return this.flags}get features(){return this.flags}set(e,t){if(this.flagRegistry[e]==null)throw new Error(`Cannot set flag ${e} as it has not been registered.`);this.flags[e]=t,this.flagRegistry[e].setHook!=null&&this.flagRegistry[e].setHook(t)}evaluateFlag(e){if(this.flagRegistry[e]==null)throw new Error(`Cannot evaluate flag '${e}': no evaluation function found.`);return this.flagRegistry[e].evaluationFn()}setFlags(e){this.flags=Object.assign({},e)}reset(){this.flags={},this.urlFlags={},this.populateURLFlags()}populateURLFlags(){if(typeof this.global=="undefined"||typeof this.global.location=="undefined"||typeof this.global.location.search=="undefined")return;const e=h_(this.global.location.search);if(xS in e){const t=e[xS].split(",");t.forEach(s=>{const[n,i]=s.split(":");this.urlFlags[n]=d_(n,i)})}}}function h_(e){const t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(s,...n)=>(m_(t,n[0],n[1]),n.join("="))),t}function m_(e,t,s){e[decodeURIComponent(t)]=decodeURIComponent(s||"")}function d_(e,t){if(t=t.toLowerCase(),t==="true"||t==="false")return t==="true";if(`${+t}`===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${e}.`)}function W(){return Jg}let Jg=null;function LS(e){Jg=e}let Zg;function Qg(){if(Zg==null){let e;if(typeof window!="undefined")e=window;else if(typeof global!="undefined")e=global;else if(typeof process!="undefined")e=process;else if(typeof self!="undefined")e=self;else throw new Error("Could not find a global object");Zg=e}return Zg}function f_(){const e=Qg();return e._tfGlobals==null&&(e._tfGlobals=new Map),e._tfGlobals}function ey(e,t){const s=f_();if(s.has(e))return s.get(e);{const n=t();return s.set(e,n),s.get(e)}}const _o="Abs",dr="Acos",mr="Acosh",Zn="Add",Mc="AddN",ty="All",sy="Any",Uc="ArgMax",$c="ArgMin",fr="Asin",gr="Asinh",yr="Atan",br="Atanh",ko="Atan2",Ti="AvgPool",Do="AvgPoolBackprop",Wc="AvgPool3D",ny="AvgPool3DBackprop",zc="BatchMatMul",Pc="BatchToSpaceND",Bc="BroadcastTo",Ai="Cast",wr="Ceil",xr="ClipByValue",jc="Complex",Fo="Concat",Vc="Conv2D",iy="Conv2DBackpropFilter",Gc="Conv2DBackpropInput",qc="Conv3D",ry="Conv3DBackpropFilterV2",oy="Conv3DBackpropInputV2",Qn="Cos",Lr="Cosh",Hc="Cumsum",ay="CropAndResize",ly="DepthToSpace",Yc="DepthwiseConv2dNative",cy="DepthwiseConv2dNativeBackpropFilter",py="DepthwiseConv2dNativeBackpropInput",uy="Diag",Mo="Dilation2D",qa="Dilation2DBackpropInput",Ha="Dilation2DBackpropFilter",ei="Div",Sr="Elu",hy="EluGrad",Ir="Erf",dy="Equal",vr="Exp",Tr="Expm1",Kc="FFT",my="Fill",Uo="FlipLeftRight",Ar="Floor",Xc="FloorDiv",Ni="FusedBatchNorm",Jc="GatherV2",fy="GatherNd",gy="Greater",Zc="GreaterEqual",Ci="Identity",Qc="IFFT",ep="Imag",Nr="IsFinite",Cr="IsInf",Rr="IsNan",yy="Less",by="LessEqual",wy="LinSpace",Or="Log",Er="Log1p",xy="LogicalAnd",Ya="LogicalNot",Ly="LogicalOr",tp="LogSoftmax",sp="LRN",Sy="LRNBackprop",Ri="Max",np="Maximum",Oi="MaxPool",$o="MaxPoolBackprop",ip="MaxPool3D",Iy="MaxPool3DBackprop",Wo="MaxPoolWithArgmax",g_="Mean",rp="Min",op="Minimum",ap="Mod",_r="Multiply",lp="Negate",Ka="NotEqual",cp="NonMaxSuppressionV3",zo="NonMaxSuppressionV4",Po="NonMaxSuppressionV5",pp="OnesLike",up="OneHot",Bo="PadV2",y_="Pool",hp="Pow",dp="Prelu",vy="Prod",Ty="Range",mp="Real",kr="Reciprocal",fp="Relu",Ei="Reshape",gp="ResizeNearestNeighbor",Ay="ResizeNearestNeighborGrad",yp="ResizeBilinear",Ny="ResizeBilinearGrad",bp="Relu6",wp="Reverse",Dr="Round",Fr="Rsqrt",Cy="ScatterNd",xp="SelectV2",Mr="Selu",jo="Slice",ti="Sin",Ur="Sinh",$r="Sign",Wr="Sigmoid",zr="Softplus",Pr="Sqrt",Lp="Sum",Vo="SpaceToBatchND",Sp="SplitV",Ip="Softmax",si="SquaredDifference",Go="Square",Br="Sub",Ry="SparseToDense",Oy="StridedSlice",ni="Tan",jr="Tanh",vp="Tile",Ey="TopK",_i="Transpose",qo="Unique",Tp="Unpack",Ap="UnsortedSegmentSum",Np="ZerosLike",Vr="Step",Xa="FromPixels",Ho="RotateWithOffset",Th="_FusedMatMul",Ah="FusedConv2D",Nh="FusedDepthwiseConv2D";const Ja=ey("kernelRegistry",()=>new Map),Cp=ey("gradRegistry",()=>new Map);function Rp(e,t){const s=_y(e,t);return Ja.get(s)}function Ch(e){return Cp.get(e)}function Op(e){const t=Ja.entries(),s=[];for(;;){const{done:n,value:i}=t.next();if(n)break;const[r,o]=i,[a]=r.split("_");a===e&&s.push(o)}return s}function Za(e){const{kernelName:t,backendName:s}=e,n=_y(t,s);Ja.has(n)&&console.warn(`The kernel '${t}' for backend '${s}' is already registered`),Ja.set(n,e)}function ky(e){const{kernelName:t}=e;Cp.has(t)&&(W().getBool("DEBUG")&&console.warn(`Overriding the gradient for '${t}'`)),Cp.set(t,e)}function b_(e,t){const s=_y(e,t);if(!Ja.has(s))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);Ja.delete(s)}function w_(e){if(!Cp.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);Cp.delete(e)}function x_(e,t){const s=Op(e);s.forEach(n=>{const i=Object.assign({},n,{backendName:t});Za(i)})}function _y(e,t){return`${t}_${e}`}const N={};Ee(N,{arraysEqual:()=>Nt,assert:()=>I,assertNonNegativeIntegerDimensions:()=>_p,assertNonNull:()=>Ys,assertShapesMatch:()=>Se,bytesFromStringArray:()=>zy,bytesPerElement:()=>Wy,checkConversionForErrors:()=>IS,clamp:()=>Qa,computeStrides:()=>oi,createScalarValue:()=>O_,createShuffledIndices:()=>C_,decodeString:()=>Eh,distSquared:()=>v_,encodeString:()=>Rh,fetch:()=>k_,flatten:()=>ii,getArrayFromDType:()=>My,getTypedArrayFromDType:()=>el,hasEncodingLoss:()=>$y,indexToLoc:()=>F_,inferDtype:()=>tl,inferFromImplicitShape:()=>Dy,isBoolean:()=>vS,isFunction:()=>ri,isInt:()=>De,isNumber:()=>TS,isScalarShape:()=>T_,isString:()=>Un,isTypedArray:()=>Dt,isValidDtype:()=>Uy,locToIndex:()=>D_,makeOnesTypedArray:()=>Ep,makeZerosNestedTypedArray:()=>__,makeZerosTypedArray:()=>ai,nearestDivisor:()=>sl,nearestLargerEven:()=>L_,now:()=>Oh,parseAxisParam:()=>Ne,randUniform:()=>I_,repeatedTry:()=>R_,rightPad:()=>Yo,shuffle:()=>SS,sizeFromShape:()=>We,sizeToSquarishShape:()=>N_,squeezeShape:()=>Fy,sum:()=>S_,tanh:()=>A_,toNestedArray:()=>Ko,toTypedArray:()=>nl});function SS(e){let t=e.length,s=0,n=0;for(;t>0;)n=Math.random()*t|0,t--,s=e[t],e[t]=e[n],e[n]=s}function Qa(e,t,s){return Math.max(e,Math.min(t,s))}function L_(e){return e%2===0?e:e+1}function S_(e){let t=0;for(let s=0;ss+` Shapes ${e} and ${t} must match`)}function Ys(e){I(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function ii(e,t=[],s=!1){if(t==null&&(t=[]),Array.isArray(e)||Dt(e)&&!s)for(let n=0;n0,s){return new Promise((n,i)=>{let r=0;const o=()=>{if(e()){n();return}r++;const a=t(r);if(s!=null&&r>=s){i();return}setTimeout(o,a)};o()})}function Dy(e,t){let s=1,n=-1;for(let r=0;r=0)s*=e[r];else if(e[r]===-1){if(n!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${n} and dim ${r}`);n=r}else if(e[r]<0)throw Error(`Shapes can not be < 0. Found ${e[r]} at dim ${r}`);if(n===-1){if(t>0&&t!==s)throw Error(`Size(${t}) must match the product of shape ${e}`);return e}if(s===0)throw Error(`Cannot infer the missing size in [${e}] when there are 0 elements`);if(t%s!==0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${s}`);const i=e.slice();return i[n]=t/s,i}function Ne(e,t){const s=t.length;return e=e==null?t.map((n,i)=>i):[].concat(e),I(e.every(n=>n>=-s&&n`All values in axis param must be in range [-${s}, ${s}) but got axis ${e}`),I(e.every(n=>De(n)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(n=>n<0?s+n:n)}function Fy(e,t){const s=[],n=[],i=t!=null&&Array.isArray(t)&&t.length===0,r=t==null||i?null:Ne(t,e).sort();let o=0;for(let a=0;aa)&&e[a]===1&&(s.push(e[a]),n.push(a)),r[o]<=a&&o++}e[a]!==1&&(s.push(e[a]),n.push(a))}return{newShape:s,keptDims:n}}function el(e,t){let s=null;if(e==null||e==="float32")s=new Float32Array(t);else if(e==="int32")s=new Int32Array(t);else if(e==="bool")s=new Uint8Array(t);else throw new Error(`Unknown data type ${e}`);return s}function My(e,t){let s=null;if(e==null||e==="float32")s=new Float32Array(t);else if(e==="int32")s=new Int32Array(t);else if(e==="bool")s=new Uint8Array(t);else if(e==="string")s=new Array(t);else throw new Error(`Unknown data type ${e}`);return s}function IS(e,t){for(let s=0;st+=s.length),t}function Un(e){return typeof e=="string"||e instanceof String}function vS(e){return typeof e=="boolean"}function TS(e){return typeof e=="number"}function tl(e){return Array.isArray(e)?tl(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array?"int32":TS(e)?"float32":Un(e)?"string":vS(e)?"bool":"float32"}function ri(e){return!!(e&&e.constructor&&e.call&&e.apply)}function sl(e,t){for(let s=t;s=0;--n)s[n]=s[n+1]*e[n+1];return s}function O_(e,t){return t==="string"?Rh(e):nl([e],t)}function nl(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=ii(e)),W().getBool("DEBUG")&&IS(e,t),E_(e,t))return e;if(t==null||t==="float32"||t==="complex64")return new Float32Array(e);if(t==="int32")return new Int32Array(e);if(t==="bool"){const s=new Uint8Array(e.length);for(let n=0;na*l);for(let a=0;an*i);if(s===0)return[];if(s!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}.`);return AS(0,e,t)}function E_(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function Ep(e,t){const s=ai(e,t);for(let n=0;nn*i,1);if(t==null||t==="float32")return Ko(e,new Float32Array(s));if(t==="int32")return Ko(e,new Int32Array(s));if(t==="bool")return Ko(e,new Uint8Array(s));throw new Error(`Unknown data type ${t}`)}function Oh(){return W().platform.now()}function _p(e){e.forEach(t=>{I(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function k_(e,t){return W().platform.fetch(e,t)}function Rh(e,t="utf-8"){return t=t||"utf-8",W().platform.encode(e,t)}function Eh(e,t="utf-8"){return t=t||"utf-8",W().platform.decode(e,t)}function D_(e,t,s){if(t===0)return 0;if(t===1)return e[0];let n=e[e.length-1];for(let i=0;i{n=s()},r=this.backendTimer.time(i);for(let a=0;a{M_(c,l.dtype,e)})}const o={kernelName:e,outputs:n,inputs:t,timeMs:r.then(a=>a.kernelMs),extraInfo:r.then(a=>a.getExtraProfileInfo!=null?a.getExtraProfileInfo():"")};return o}logKernelProfile(e){const{kernelName:t,outputs:s,timeMs:n,inputs:i,extraInfo:r}=e;s.forEach(o=>{Promise.all([o.data(),n,r]).then(a=>{this.logger.logKernelProfile(t,o,a[0],a[1],i,a[2])})})}}function M_(e,t,s){if(t!=="float32")return!1;for(let n=0;n0?m:""} `}}console.log(`%c${a} %c${o} %c${l}D ${p} %c${c} %c${u} %c${r}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}}function CS(e,t,s){const n={},i={};for(let l=0;ln[f.id]=!0),d=!0,i[c.id]=!0;break}if(d)break}}const r={};r[s.id]=!0;const o={};for(let l=e.length-1;l>=0;l--){const c=e[l],p=c.inputs;for(let u=0;u=0;i--){const r=t[i],o=[];if(r.outputs.forEach(l=>{const c=e[l.id];c!=null?o.push(c):o.push(null)}),r.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${r.kernelName}.`);const a=r.gradient(o);for(const l in r.inputs){if(!(l in a))throw new Error(`Cannot backprop through input ${l}. Available gradients found: ${Object.keys(a)}.`);const c=s(()=>a[l]());if(c.dtype!=="float32")throw new Error(`Error in gradient for op ${r.kernelName}. The gradient of input ${l} must have 'float32' dtype, but has '${c.dtype}'`);const p=r.inputs[l];if(!Nt(c.shape,p.shape))throw new Error(`Error in gradient for op ${r.kernelName}. The gradient of input '${l}' has shape '${c.shape}', which does not match the shape of the input '${p.shape}'`);if(e[p.id]==null)e[p.id]=c;else{const u=e[p.id];e[p.id]=n(u,c),u.dispose()}}}}const OS=20,kp=3,Py=7;function ES(e,t,s,n){const i=oi(t),r=$_(e,t,s,i),o=t.length,a=_h(e,t,s,i,r),l=["Tensor"];return n&&(l.push(` dtype: ${s}`),l.push(` rank: ${o}`),l.push(` shape: [${t}]`),l.push(" values:")),l.push(a.map(c=>" "+c).join(` `)),l.join(` -`)}function W_(e,t,s,n){const i=We(t),r=n[n.length-1],o=new Array(r).fill(0),a=t.length,l=s==="complex64"?Fp(e):e;if(a>1)for(let c=0;cES){const g=kp*o;let y=Array.from(e.slice(0,g)),w=Array.from(e.slice((a-kp)*o,a*o));return s==="complex64"&&(y=Fp(y),w=Fp(w)),["["+y.map((x,T)=>Dp(x,i[T],s)).join(", ")+", ..., "+w.map((x,T)=>Dp(x,i[a-kp+T],s)).join(", ")+"]"]}const f=s==="complex64"?Fp(e):Array.from(e);return["["+f.map((g,y)=>Dp(g,i[y],s)).join(", ")+"]"]}const c=t.slice(1),p=n.slice(1),u=n[0]*o,h=[];if(a>ES){for(let f=0;f1)for(let c=0;cOS){const g=kp*o;let y=Array.from(e.slice(0,g)),w=Array.from(e.slice((a-kp)*o,a*o));return s==="complex64"&&(y=Fp(y),w=Fp(w)),["["+y.map((x,T)=>Dp(x,i[T],s)).join(", ")+", ..., "+w.map((x,T)=>Dp(x,i[a-kp+T],s)).join(", ")+"]"]}const f=s==="complex64"?Fp(e):Array.from(e);return["["+f.map((g,y)=>Dp(g,i[y],s)).join(", ")+"]"]}const c=t.slice(1),p=n.slice(1),u=n[0]*o,h=[];if(a>OS){for(let f=0;f`Length of values '${n}' does not match the size inferred by the shape '${this.size}'.`)}if(t==="complex64")throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=s||My(t,this.size),this.strides=oi(e)}set(e,...t){t.length===0&&(t=[0]),I(t.length===this.rank,()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`);const s=this.locToIndex(t);this.values[s]=e}get(...e){e.length===0&&(e=[0]);let t=0;for(const n of e){if(n<0||n>=this.shape[t]){const i=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(i)}t++}let s=e[e.length-1];for(let n=0;nEh(s))}catch(s){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataSync(){this.throwIfDisposed();const e=li().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>Eh(t))}catch(t){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return e}async bytes(){this.throwIfDisposed();const e=await li().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){if(this.isDisposed)return;li().disposeTensor(this),this.isDisposedInternal=!0}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return il.print(this,e)}clone(){return this.throwIfDisposed(),il.clone(this)}toString(e=!1){const t=this.dataSync();return _S(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),il.cast(this,e)}variable(e=!0,t,s){return this.throwIfDisposed(),li().makeVariable(this,e,t,s)}}Object.defineProperty(me,Symbol.hasInstance,{value:e=>!!e&&e.data!=null&&e.dataSync!=null&&e.throwIfDisposed!=null});class ci extends me{constructor(e,t,s,n){super(e.shape,e.dtype,e.dataId,n);this.trainable=t,this.name=s}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!Nt(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);li().disposeTensor(this),this.dataId=e.dataId,li().incRef(this,null)}dispose(){li().disposeVariable(this),this.isDisposedInternal=!0}}Object.defineProperty(ci,Symbol.hasInstance,{value:e=>e instanceof me&&e.assign!=null&&e.assign instanceof Function});var By;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(By||(By={}));var jy;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})(jy||(jy={}));var Vy;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})(Vy||(Vy={}));var Gy;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})(Gy||(Gy={}));var qy;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})(qy||(qy={}));const P_={float32:Gy,int32:jy,bool:Vy,complex64:qy};function Ft(e,t){if(e==="string"||t==="string"){if(e==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return P_[e][t]}function Mp(e){return Ft(e,"int32")}const mn={};Ee(mn,{assertTypesMatch:()=>Hy,getTensorsInContainer:()=>Up,isTensorInList:()=>B_,makeTypesMatch:()=>Ce});function Ce(e,t){if(e.dtype===t.dtype)return[e,t];const s=Ft(e.dtype,t.dtype);return[e.cast(s),t.cast(s)]}function Hy(e,t){I(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function B_(e,t){return t.some(s=>s.id===e.id)}function Up(e){const t=[],s=new Set;return US(e,t,s),t}function US(e,t,s){if(e==null)return;if(e instanceof me){t.push(e);return}if(!j_(e))return;const n=e;for(const i in n){const r=n[i];s.has(r)||(s.add(r),US(r,t,s))}}function j_(e){return Array.isArray(e)||typeof e=="object"}class $S{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null}}dispose(){for(const e in this.registeredVariables)this.registeredVariables[e].dispose()}}class $p{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new $S}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;const e=this.getSortedBackends();for(let t=0;t{t.setupFunc!=null&&t.setupFunc(this.backendInstance)})}disposeRegisteredKernels(e){const t=Op(e);t.forEach(s=>{s.disposeFunc!=null&&s.disposeFunc(this.registry[e])})}initializeBackend(e){const t=this.registryFactory[e];if(t==null)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{const s=t.factory();if(s&&!(s instanceof Eo)&&typeof s.then=="function"){const n=++this.pendingBackendInitId,i=s.then(r=>n(nthis.registryFactory[t].priority-this.registryFactory[e].priority)}initializeBackendsAndReturnBest(){const e=this.getSortedBackends();for(let t=0;tthis.startScope(s),()=>this.endScope(n),()=>(n=t(),n instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),n))}scopedRun(e,t,s){e();try{const n=s();return t(),n}catch(n){throw t(),n}}nextTensorId(){return $p.nextTensorId++}nextVariableId(){return $p.nextVariableId++}clone(e){const t=this.makeTensorFromDataId(e.dataId,e.shape,e.dtype),s={x:e},n=r=>({x:()=>{const o="float32",a={x:r},l={dtype:o};return v.runKernelFunc(c=>c.cast(r,o),a,null,Ai,l)}}),i=[];return this.addTapeNode(this.state.activeScope.name,s,[t],n,i,{}),t}runKernel(e,t,s,n,i){const r=null,o=null;return this.runKernelFunc(r,t,o,e,s,n,i)}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,s){const n=this.backend.numDataIds();let i=0;s.forEach(a=>{i+=a.dtype==="complex64"?3:1});const r=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],o=n-t-i-r;if(o>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${o} data ids) after running '${e}'`)}runKernelFunc(e,t,s,n,i,r,o){let a,l=[];const c=this.isTapeOn();n==null&&(n=this.state.activeScope!=null?this.state.activeScope.name:"");const p=this.state.numBytes,u=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let h;const d=Rp(n,this.backendName);let m;if(d!=null)h=()=>{const g=this.backend.numDataIds();m=d.kernelFunc({inputs:t,attrs:i,backend:this.backend});const y=Array.isArray(m)?m:[m];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(n,g,y);const w=y.map(({dataId:x,shape:T,dtype:A})=>this.makeTensorFromDataId(x,T,A));if(c){let x=this.getTensorsForGradient(n,t,w);if(x==null){o==null&&(o=[]);const T=w.filter((A,_)=>o[_]);x=(r||[]).slice().concat(T)}l=this.saveTensorsForBackwardMode(x)}return w};else{const g=y=>{if(!c)return;l=y.map(w=>this.keep(this.clone(w)))};h=()=>{const y=this.backend.numDataIds();m=this.tidy(()=>e(this.backend,g));const w=Array.isArray(m)?m:[m];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(n,y,w),w}}let f;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?a=h():(f=this.profiler.profileKernel(n,t,()=>h()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(f),a=f.outputs)}),c&&this.addTapeNode(n,t,a,s,l,i),this.state.profiling&&this.state.activeProfile.kernels.push({name:n,bytesAdded:this.state.numBytes-p,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-u,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(t).map(g=>t[g]!=null?t[g].shape:null),outputShapes:a.map(g=>g.shape),kernelTimeMs:f.timeMs,extraInfo:f.extraInfo}),Array.isArray(m)?a:a[0]}saveTensorsForBackwardMode(e){const t=e.map(s=>this.keep(this.clone(s)));return t}getTensorsForGradient(e,t,s){const n=Ch(e);if(n!=null){const i=n.inputsToSave||[],r=n.outputsToSave||[];let o;n.saveAllInputs?(I(Array.isArray(t),()=>"saveAllInputs is true, expected inputs to be an array."),o=Object.keys(t).map(l=>t[l])):o=i.map(l=>t[l]);const a=s.filter((l,c)=>r[c]);return o.concat(a)}return null}makeTensor(e,t,s,n){if(e==null)throw new Error("Values passed to engine.makeTensor() are null");s=s||"float32",n=n||this.backend;let i=e;s==="string"&&Un(e[0])&&(i=e.map(a=>Rh(a)));const r=n.write(i,t,s),o=new me(t,s,r,this.nextTensorId());if(this.incRef(o,n),s==="string"){const a=this.state.tensorInfo.get(r),l=zy(i);this.state.numBytes+=l-a.bytes,a.bytes=l}return o}makeTensorFromDataId(e,t,s,n){s=s||"float32";const i=new me(t,s,e,this.nextTensorId());return this.incRef(i,n),i}makeVariable(e,t=!0,s,n){s=s||this.nextVariableId().toString(),n!=null&&n!==e.dtype&&(e=e.cast(n));const i=new ci(e,t,s,this.nextTensorId());if(this.state.registeredVariables[i.name]!=null)throw new Error(`Variable with name ${i.name} was already registered`);return this.state.registeredVariables[i.name]=i,this.incRef(i,this.backend),i}incRef(e,t){const s=this.state.tensorInfo.has(e.dataId)?this.state.tensorInfo.get(e.dataId).refCount:0;if(this.state.numTensors++,e.dtype==="string"&&this.state.numStringTensors++,s===0){this.state.numDataBuffers++;let n=0;e.dtype!=="complex64"&&e.dtype!=="string"&&(n=e.size*Wy(e.dtype)),this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:n,refCount:0}),this.state.numBytes+=n}this.state.tensorInfo.get(e.dataId).refCount++,e instanceof ci||this.track(e)}disposeTensor(e){if(!this.state.tensorInfo.has(e.dataId))return;this.state.numTensors--,e.dtype==="string"&&this.state.numStringTensors--;const t=this.state.tensorInfo.get(e.dataId),s=t.refCount;s<=1?(e.dtype!=="complex64"&&(this.state.numBytes-=t.bytes),this.state.numDataBuffers--,t.backend.disposeData(e.dataId),this.state.tensorInfo.delete(e.dataId)):this.state.tensorInfo.get(e.dataId).refCount--}disposeVariables(){for(const e in this.state.registeredVariables){const t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),this.state.registeredVariables[e.name]!=null&&delete this.state.registeredVariables[e.name]}memory(){const e=this.backend.memory();return e.numTensors=this.state.numTensors,e.numDataBuffers=this.state.numDataBuffers,e.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(e.unreliable=!0,e.reasons==null&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;const t=this.state.numBytes,s=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(n=>n.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-s;for(const n of this.state.activeProfile.kernels)n.kernelTimeMs=await n.kernelTimeMs,n.extraInfo=await n.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(e,t,s,n,i,r){const o={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:s,saved:i},a=Ch(e);a!=null&&(n=a.gradFunc),n!=null&&(o.gradient=l=>(l=l.map((c,p)=>{if(c==null){const u=s[p],h=ai(u.size,u.dtype);return this.makeTensor(h,u.shape,u.dtype)}return c}),n(l.length>1?l:l[0],i,r))),this.state.activeTape.push(o)}keep(e){return e.kept=!0,e}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){const t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){const t=Up(e),s=new Set(t.map(i=>i.id));for(let i=0;i{!i.kept&&i.scopeId===n.id&&this.track(i)})}gradients(e,t,s,n=!1){if(I(t.length>0,()=>"gradients() received an empty list of xs."),s!=null&&s.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${s.dtype}'`);const i=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",e));I(i instanceof me,()=>"The result y returned by f() must be a tensor.");const r=RS(this.state.activeTape,t,i);if(!n&&r.length===0&&t.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",()=>{const o={};o[i.id]=s??V_(i.shape),OS(o,r,l=>this.tidy(l),G_);const a=t.map(l=>o[l.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(l=>{for(const c of l.saved)c.dispose()}),this.state.activeTape=null),{value:i,grads:a}})}customGrad(e){return I(ri(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{I(t.every(i=>i instanceof me),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let s;const n={};return t.forEach((i,r)=>{n[r]=i}),this.runKernelFunc((i,r)=>(s=e(...t,r),I(s.value instanceof me,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),I(ri(s.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),s.value),n,(i,r)=>{const o=s.gradFunc(i,r),a=Array.isArray(o)?o:[o];I(a.length===t.length,()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...)."),I(a.every(c=>c instanceof me),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");const l={};return a.forEach((c,p)=>{l[p]=()=>c}),l})}}readSync(e){const t=this.state.tensorInfo.get(e);return t.backend.readSync(e)}read(e){const t=this.state.tensorInfo.get(e);return t.backend.read(e)}async time(e){const t=Oh(),s=await this.backend.time(e);return s.wallMs=Oh()-t,s}track(e){return this.state.activeScope!=null&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new $S;for(const e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}}$p.nextTensorId=0;$p.nextVariableId=0;function V_(e){const t=Ep(We(e),"float32");return v.makeTensor(t,e,"float32")}function Yy(){const e=Qg();if(e._tfengine==null){const t=new Xg(e);e._tfengine=new $p(t)}return SS(e._tfengine.ENV),DS(()=>e._tfengine),e._tfengine}const v=Yy();function G_(e,t){const s={a:e,b:t};return v.runKernelFunc((n,i)=>{const r=n.add(e,t);return i([e,t]),r},s,null,Zn)}const rl={};Ee(rl,{isBrowser:()=>Ky,isMobile:()=>H_});function q_(){return typeof navigator!="undefined"&&navigator!=null}function H_(){if(q_()){const e=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4))}return!1}function Ky(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}const ki=W();ki.registerFlag("DEBUG",()=>!1,e=>{e&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")});ki.registerFlag("IS_BROWSER",()=>Ky());ki.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");ki.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));ki.registerFlag("PROD",()=>!1);ki.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>ki.getBool("DEBUG"));ki.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);ki.registerFlag("IS_TEST",()=>!1);function Qt(e,t){let s=e;if(Dt(e))return t==="string"?[]:[e.length];if(!Array.isArray(e))return[];const n=[];for(;Array.isArray(s)||Dt(s)&&t!=="string";)n.push(s.length),s=s[0];return Array.isArray(e)&&W().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&WS(e,n,[]),n}function WS(e,t,s){if(s=s||[],!Array.isArray(e)&&!Dt(e)){I(t.length===0,()=>`Element arr[${s.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}I(t.length>0,()=>`Element arr[${s.join("][")}] should be a primitive, but is an array of ${e.length} elements`),I(e.length===t[0],()=>`Element arr[${s.join("][")}] should have ${t[0]} elements, but has ${e.length} elements`);const n=t.slice(1);for(let i=0;i=0&&(i=n),zS(n,i,t,s),e==null||!Dt(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string"){const l=e==null?"null":e.constructor.name;throw new Error(`Argument '${t}' passed to '${s}' must be a Tensor or TensorLike, but got '${l}'`)}const r=Qt(e,i);!Dt(e)&&!Array.isArray(e)&&(e=[e]);const o=!0,a=i!=="string"?nl(e,i):ii(e,[],o);return v.makeTensor(a,r,i)}function Di(e,t,s,n="numeric"){if(!Array.isArray(e))throw new Error(`Argument ${t} passed to ${s} must be a \`Tensor[]\` or \`TensorLike[]\``);const i=e;return i.map((r,o)=>b(r,`${t}[${o}]`,s),n)}const Xy="__op";function S(e){const t=Object.keys(e);if(t.length!==1)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${t.length} keys.`);let s=t[0];const n=e[s];s.endsWith("_")&&(s=s.substring(0,s.length-1)),s=s+Xy;const i=(...r)=>{v.startScope(s);try{const o=n(...r);return o instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),v.endScope(o),o}catch(o){throw v.endScope(null),o}};return Object.defineProperty(i,"name",{value:s,configurable:!0}),i}function Y_(e,t){const s=b(e,"real","complex"),n=b(t,"imag","complex");Se(s.shape,n.shape,`real and imag shapes, ${s.shape} and ${n.shape}, must match in call to tf.complex().`);const i=o=>o.complex(s,n),r={real:s,imag:n};return v.runKernelFunc(i,r,null,jc)}const Gt=S({complex_:Y_});function hs(e,t,s,n){if(n==null&&(n=tl(e)),n==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(!Dt(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string")throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(t!=null){_p(t);const i=We(t),r=We(s);I(i===r,()=>`Based on the provided shape, [${t}], the tensor should have ${i} values but has ${r}`);for(let o=0;o`Error creating a new Tensor. Inferred shape (${s}) does not match the provided shape (${t}). `)}}return!Dt(e)&&!Array.isArray(e)&&(e=[e]),t=t||s,e=n!=="string"?nl(e,n):ii(e,[],!0),v.makeTensor(e,t,n)}function ze(e,t,s){const n=Qt(e,s);return hs(e,t,n,s)}const Wp={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};const kh=4;async function X_(e,t){const s=[],n=[],i=Array.isArray(e)?e.map(o=>o.name):Object.keys(e);for(let o=0;o{const h=await l.bytes(),d=h.reduce((g,y)=>g+y.length,0)+kh*h.length,m=new Uint8Array(d);let f=0;for(let g=0;g{if(t+=r.byteLength,s.push(r.byteLength===r.buffer.byteLength?r:new r.constructor(r)),!(r instanceof Float32Array||r instanceof Int32Array||r instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${r.constructor.name}`)});const n=new Uint8Array(t);let i=0;return s.forEach(r=>{n.set(new Uint8Array(r.buffer),i),i+=r.byteLength}),n.buffer}const Z_=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function PS(e){return Z_?Buffer.byteLength(e):new Blob([e]).size}function zp(e){if(e.length===1)return e[0];let t=0;e.forEach(i=>{t+=i.byteLength});const s=new Uint8Array(t);let n=0;return e.forEach(i=>{s.set(new Uint8Array(i),n),n+=i.byteLength}),s.buffer}function Zy(e){const t="/";for(e=e.trim();e.endsWith(t);)e=e.slice(0,e.length-1);const s=e.split(t);return s[s.length-1]}function Pp(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:e.modelTopology==null?0:PS(JSON.stringify(e.modelTopology)),weightSpecsBytes:e.weightSpecs==null?0:PS(JSON.stringify(e.weightSpecs)),weightDataBytes:e.weightData==null?0:e.weightData.byteLength}}function Q_(){const e=s=>{let n=s<<13,i=0;for(;(n&8388608)===0;)i-=8388608,n<<=1;return n&=~8388608,i+=947912704,n|i},t=new Uint32Array(2048);t[0]=0;for(let s=1;s<1024;s++)t[s]=e(s);for(let s=1024;s<2048;s++)t[s]=939524096+(s-1024<<13);return t}function ek(){const e=new Uint32Array(64);e[0]=0,e[31]=1199570944,e[32]=2147483648,e[63]=3347054592;for(let t=1;t<31;t++)e[t]=t<<23;for(let t=33;t<63;t++)e[t]=2147483648+(t-32<<23);return e}function tk(){const e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function J_(){const e=Q_(),t=ek(),s=tk();return n=>{const i=new ArrayBuffer(4*n.length),r=new Uint32Array(i);for(let o=0;o>10]+(a&1023)]+t[a>>10];r[o]=l}return new Float32Array(i)}}class Ct{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return Ct.instance==null&&(Ct.instance=new Ct),Ct.instance}static registerSaveRouter(e){Ct.getInstance().saveRouters.push(e)}static registerLoadRouter(e){Ct.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return Ct.getHandlers(e,"save")}static getLoadHandlers(e,t){return Ct.getHandlers(e,"load",t)}static getHandlers(e,t,s){const n=[],i=t==="load"?Ct.getInstance().loadRouters:Ct.getInstance().saveRouters;return i.forEach(r=>{const o=r(e,s);o!==null&&n.push(o)}),n}}const sk=e=>Ct.registerSaveRouter(e),nk=e=>Ct.registerLoadRouter(e),ik=e=>Ct.getSaveHandlers(e),rk=(e,t)=>Ct.getLoadHandlers(e,t);const ol="://";class $n{constructor(){this.managers={}}static getInstance(){return $n.instance==null&&($n.instance=new $n),$n.instance}static registerManager(e,t){I(e!=null,()=>"scheme must not be undefined or null."),e.endsWith(ol)&&(e=e.slice(0,e.indexOf(ol))),I(e.length>0,()=>"scheme must not be an empty string.");const s=$n.getInstance();I(s.managers[e]==null,()=>`A model store manager is already registered for scheme '${e}'.`),s.managers[e]=t}static getManager(e){const t=this.getInstance().managers[e];if(t==null)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(this.getInstance().managers)}}function Dh(e){if(e.indexOf(ol)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${$n.getSchemes().join(",")}`);return{scheme:e.split(ol)[0],path:e.split(ol)[1]}}async function BS(e,t,s=!1){I(e!==t,()=>`Old path and new path are the same: '${e}'`);const n=Ct.getLoadHandlers(e);I(n.length>0,()=>`Copying failed because no load handler is found for source URL ${e}.`),I(n.length<2,()=>`Copying failed because more than one (${n.length}) load handlers for source URL ${e}.`);const i=n[0],r=Ct.getSaveHandlers(t);I(r.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),I(r.length<2,()=>`Copying failed because more than one (${n.length}) save handlers for destination URL ${t}.`);const o=r[0],a=Dh(e).scheme,l=Dh(e).path,c=a===Dh(e).scheme,p=await i.load();s&&c&&await $n.getManager(a).removeModel(l);const u=await o.save(p);return s&&!c&&await $n.getManager(a).removeModel(l),u.modelArtifactsInfo}async function jS(){const e=$n.getSchemes(),t={};for(const s of e){const n=await $n.getManager(s).listModels();for(const i in n){const r=s+ol+i;t[r]=n[i]}}return t}async function VS(e){const t=Dh(e),s=$n.getManager(t.scheme);return s.removeModel(t.path)}async function GS(e,t){const s=!1;return BS(e,t,s)}async function qS(e,t){const s=!0;return BS(e,t,s)}function ge(e,t="float32",s){return t=t||"float32",_p(e),new dn(e,t,s)}function ok(e,t){const s=b(e,"x","cast");if(!Uy(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t==="string"&&s.dtype!=="string"||t!=="string"&&s.dtype==="string")throw new Error("Only strings can be casted to strings");const n={x:s},i={dtype:t};return v.runKernelFunc(r=>r.cast(s,t),n,null,Ai,i)}const G=S({cast_:ok});function ak(e){const t=b(e,"x","clone",null),s=()=>v.makeTensorFromDataId(t.dataId,t.shape,t.dtype),n={x:t};return v.runKernelFunc(s,n,null,Ci)}const Fs=S({clone_:ak});function Fh(e,t=!1){console.log(e.toString(t))}Yy();const lk={buffer:ge,cast:G,clone:Fs,print:Fh};FS(lk);const ck="model",pk=".json",uk=".weights.bin";function HS(e){return new Promise(t=>setTimeout(t)).then(e)}class al{constructor(e){if(!W().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(al.URL_SCHEME)&&(e=e.slice(al.URL_SCHEME.length)),(e==null||e.length===0)&&(e=ck),this.modelTopologyFileName=e+pk,this.weightDataFileName=e+uk}async save(e){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");const t=window.URL.createObjectURL(new Blob([e.weightData],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{const s=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],n={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:s},i=window.URL.createObjectURL(new Blob([JSON.stringify(n)],{type:"application/json"})),r=this.jsonAnchor==null?document.createElement("a"):this.jsonAnchor;if(r.download=this.modelTopologyFileName,r.href=i,await HS(()=>r.dispatchEvent(new MouseEvent("click"))),e.weightData!=null){const o=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;o.download=this.weightDataFileName,o.href=t,await HS(()=>o.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:Pp(e)}}}}al.URL_SCHEME="downloads://";class hk{constructor(e){if(e==null||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.files=e}async load(){const e=this.files[0],t=this.files.slice(1);return new Promise((s,n)=>{const i=new FileReader;i.onload=r=>{const o=JSON.parse(r.target.result),a=o.modelTopology;if(a==null){n(new Error(`modelTopology field is missing from file ${e.name}`));return}t.length===0&&s({modelTopology:a});const l=o.weightsManifest;if(l==null){n(new Error(`weightManifest field is missing from file ${e.name}`));return}let c;try{c=this.checkManifestAndWeightFiles(l,t)}catch(d){n(d);return}const p=[],u=[],h=[];l.forEach(d=>{d.paths.forEach(m=>{u.push(m),h.push(null)}),p.push(...d.weights)}),l.forEach(d=>{d.paths.forEach(m=>{const f=new FileReader;f.onload=g=>{const y=g.target.result,w=u.indexOf(m);h[w]=y,h.indexOf(null)===-1&&s({modelTopology:a,weightSpecs:p,weightData:zp(h),format:o.format,generatedBy:o.generatedBy,convertedBy:o.convertedBy,userDefinedMetadata:o.userDefinedMetadata})},f.onerror=g=>n(`Failed to weights data from file of path '${m}'.`),f.readAsArrayBuffer(c[m])})})},i.onerror=r=>n(`Failed to read model topology and weights manifest JSON from file '${e.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),i.readAsText(e)})}checkManifestAndWeightFiles(e,t){const s=[],n=t.map(r=>Zy(r.name)),i={};for(const r of e)r.paths.forEach(o=>{const a=Zy(o);if(s.indexOf(a)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${a}'`);if(s.push(a),n.indexOf(a)===-1)throw new Error(`Weight file with basename '${a}' is not provided.`);i[o]=t[n.indexOf(a)]});if(s.length!==t.length)throw new Error(`Mismatch in the number of files in weights manifest (${s.length}) and the number of weight files provided (${t.length}).`);return i}}const mk=e=>W().getBool("IS_BROWSER")&&(!Array.isArray(e)&&e.startsWith(al.URL_SCHEME))?dk(e.slice(al.URL_SCHEME.length)):null;Ct.registerSaveRouter(mk);function dk(e="model"){return new al(e)}function fk(e){return new hk(e)}function Qy(e,t,s,n){o(e),s=s??0,n=n??1,a(s,n);let i=0;const r=l=>(l.then(c=>{const p=s+ ++i/e.length*(n-s);return t(p),c}),l);function o(l){I(l!=null&&Array.isArray(l)&&l.length>0,()=>"promises must be a none empty array")}function a(l,c){I(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${l}`),I(c>=0&&c<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${c}`),I(c>=l,()=>`startFraction must be no more than endFraction, but got startFraction ${l} and endFraction ${c}`)}return Promise.all(e.map(r))}async function eb(e,t){t==null&&(t={});const s=t.fetchFunc==null?W().platform.fetch:t.fetchFunc,n=e.map(u=>s(u,t.requestInit,{isBinary:!0})),i=0,r=.5,o=t.onProgress==null?await Promise.all(n):await Qy(n,t.onProgress,i,r),a=o.map(u=>u.arrayBuffer()),l=.5,c=1,p=t.onProgress==null?await Promise.all(a):await Qy(a,t.onProgress,l,c);return p}async function gk(e,t="",s,n){const i=o=>eb(o,{requestInit:n}),r=YS(i);return r(e,t,s)}function YS(e){return async(t,s="",n)=>{const i=t.map(()=>!1),r={},o=n!=null?n.map(()=>!1):[],a=[];if(t.forEach((d,m)=>{let f=0;d.weights.forEach(g=>{const y="quantization"in g?g.quantization.dtype:g.dtype,w=Wp[y]*We(g.shape),x=()=>{i[m]=!0,r[m]==null&&(r[m]=[]),r[m].push({manifestEntry:g,groupOffset:f,sizeBytes:w})};n!=null?n.forEach((T,A)=>{T===g.name&&(x(),o[A]=!0)}):x(),a.push(g.name),f+=w})}),!o.every(d=>d)){const d=n.filter((m,f)=>!o[f]);throw new Error(`Could not find weights in manifest with names: ${d.join(", ")}. -Manifest JSON has weights with names: ${a.join(", ")}.`)}const l=i.reduce((d,m,f)=>(m&&d.push(f),d),[]),c=[];l.forEach(d=>{t[d].paths.forEach(m=>{const f=s+(s.endsWith("/")?"":"/")+m;c.push(f)})});const p=await e(c),u={};let h=0;return l.forEach(d=>{const m=t[d].paths.length;let f=0;for(let T=0;T{const A=g.slice(T.groupOffset,T.groupOffset+T.sizeBytes),_=Jy(A,[T.manifestEntry]);for(const E in _)u[E]=_[E]}),h+=m}),u}}const yk="application/octet-stream",bk="application/json";class tb{constructor(e,t){if(this.DEFAULT_METHOD="POST",t==null&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,this.weightUrlConverter=t.weightUrlConverter,t.fetchFunc!=null?(I(typeof t.fetchFunc=="function",()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=t.fetchFunc):this.fetch=W().platform.fetch,I(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&I(e.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`),this.path=e,t.requestInit!=null&&t.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{}}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");const t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;const s=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],n={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,userDefinedMetadata:e.userDefinedMetadata,weightsManifest:s};t.body.append("model.json",new Blob([JSON.stringify(n)],{type:bk}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:yk}),"model.weights.bin");const i=await this.fetch(this.path,t);if(i.ok)return{modelArtifactsInfo:Pp(e),responses:[i]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${i.status}.`)}async load(){const e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Request to ${this.path} failed with status code ${e.status}. Please verify this URL points to the model JSON of the model to load.`);let t;try{t=await e.json()}catch(h){let d=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?d+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":d+=" Please make sure the server is serving valid JSON for this request.",new Error(d)}const s=t.modelTopology,n=t.weightsManifest,i=t.generatedBy,r=t.convertedBy,o=t.format,a=t.userDefinedMetadata;if(s==null&&n==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);let l,c;if(n!=null){const h=await this.loadWeights(n);[l,c]=h}const p={modelTopology:s,weightSpecs:l,weightData:c,userDefinedMetadata:a,generatedBy:i,convertedBy:r,format:o},u=t.modelInitializer;return u&&(p.modelInitializer=u),p}async loadWeights(e){const t=Array.isArray(this.path)?this.path[1]:this.path,[s,n]=wk(t),i=this.weightPathPrefix||s,r=[];for(const c of e)r.push(...c.weights);const o=[],a=[];for(const c of e)for(const p of c.paths)this.weightUrlConverter!=null?a.push(this.weightUrlConverter(p)):o.push(i+p+n);this.weightUrlConverter&&o.push(...await Promise.all(a));const l=await eb(o,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[r,zp(l)]}}tb.URL_SCHEME_REGEX=/^https?:\/\//;function wk(e){const t=e.lastIndexOf("/"),s=e.lastIndexOf("?"),n=e.substring(0,t),i=s>t?e.substring(s):"";return[n+"/",i]}function sb(e){return e.match(tb.URL_SCHEME_REGEX)!=null}const KS=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let s=!0;if(Array.isArray(e)?s=e.every(n=>sb(n)):s=sb(e),s)return nb(e,t)}return null};Ct.registerSaveRouter(KS);Ct.registerLoadRouter(KS);function nb(e,t){return new tb(e,t)}function xk(e,t){return nb(e,t)}class ib{constructor(e){this.modelArtifacts=e}async load(){return this.modelArtifacts}}class Lk{constructor(e){this.saveHandler=e}async save(e){return this.saveHandler(e)}}function Sk(e,t,s,n){if(arguments.length===1){const i=e.modelTopology!=null||e.weightSpecs!=null;return i?new ib(e):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new ib({modelTopology:e}))}else return console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new ib({modelTopology:e,weightSpecs:t,weightData:s,trainingConfig:n})}function Ik(e){return new Lk(e)}const Rt={};Ee(Rt,{browserFiles:()=>fk,browserHTTPRequest:()=>xk,concatenateArrayBuffers:()=>zp,copyModel:()=>GS,decodeWeights:()=>Jy,encodeWeights:()=>X_,fromMemory:()=>Sk,getLoadHandlers:()=>rk,getModelArtifactsInfoForJSON:()=>Pp,getSaveHandlers:()=>ik,http:()=>nb,isHTTPScheme:()=>sb,listModels:()=>jS,loadWeights:()=>gk,moveModel:()=>qS,registerLoadRouter:()=>nk,registerSaveRouter:()=>sk,removeModel:()=>VS,weightsLoaderFactory:()=>YS,withSaveHandler:()=>Ik});function vk(e,t){const s=b(e,"x","reshape",null),n={x:s},i={shape:t},r=(o,a)=>(t=Dy(t,s.size),I(s.size===We(t),()=>"new shape and old shape must have the same number of elements."),a([s]),o.reshape(s,t));return v.runKernelFunc(r,n,null,Ei,i)}const O=S({reshape_:vk});function Tk(e,t,s=!1,n=!1){let i=b(e,"a","matMul"),r=b(t,"b","matMul");[i,r]=Ce(i,r),I(i.rank>=2&&r.rank>=2&&i.rank===r.rank,()=>`Error in matMul: inputs must have the same rank of at least 2, got ranks ${i.rank} and ${r.rank}.`);const o=s?i.shape[i.rank-2]:i.shape[i.rank-1],a=n?r.shape[r.rank-1]:r.shape[r.rank-2],l=s?i.shape[i.rank-1]:i.shape[i.rank-2],c=n?r.shape[r.rank-2]:r.shape[r.rank-1],p=i.shape.slice(0,-2),u=r.shape.slice(0,-2),h=We(p),d=We(u);I(Nt(p,u),()=>`Error in matMul: outer dimensions (${p}) and (${u}) of Tensors with shapes ${i.shape} and ${r.shape} must match.`),I(o===a,()=>`Error in matMul: inner shapes (${o}) and (${a}) of Tensors with shapes ${i.shape} and ${r.shape} and transposeA=${s} and transposeB=${n} must match.`);const m=i.shape.slice(0,-2).concat([l,c]),f=s?O(i,[h,o,l]):O(i,[h,l,o]),g=n?O(r,[d,c,a]):O(r,[d,a,c]),y=(A,_)=>(_([f,g]),A.batchMatMul(f,g,s,n)),w={a:f,b:g},x={transposeA:s,transposeB:n},T=v.runKernelFunc(y,w,null,zc,x);return O(T,m)}const Te=S({matMul_:Tk});function Ak(e,t,s=1,n=0){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);const i=b(e,"indices","oneHot","int32"),r=[...i.shape,t],o=(c,p)=>(p([i]),O(c.oneHot(O(i,[i.size]),t,s,n),r)),a={indices:i},l={depth:t,onValue:s,offValue:n};return v.runKernelFunc(o,a,null,up,l)}const pi=S({oneHot_:Ak});function Nk(e,t){const s=b(e,"x","transpose");if(t==null&&(t=s.shape.map((r,o)=>o).reverse()),I(s.rank===t.length,()=>`Error in transpose: rank of input ${s.rank} must match length of perm ${t}.`),t.forEach(r=>{I(r>=0&&r`All entries in 'perm' must be between 0 and ${s.rank-1} but got ${t}`)}),s.rank<=1)return s.clone();const n={x:s},i={perm:t};return v.runKernelFunc(r=>r.transpose(s,t),n,null,_i,i)}const se=S({transpose_:Nk});function Ck(e,t,s){const n=b(e,"labels","confusionMatrix"),i=b(t,"predictions","confusionMatrix");I(s==null||s>0&&Number.isInteger(s),()=>`If provided, numClasses must be a positive integer, but got ${s}`),I(n.rank===1,()=>`Expected the rank of labels to be 1, but got ${n.rank}`),I(i.rank===1,()=>`Expected the rank of predictions to be 1, but got ${i.rank}`),I(n.shape[0]===i.shape[0],()=>`Mismatch in the number of examples: ${n.shape[0]} vs. ${i.shape[0]}. Labels and predictions should have the same number of elements.`),I(s>0&&Number.isInteger(s),()=>`numClasses is required to be a positive integer, but got ${s}`);const r=pi(G(n,"int32"),s),o=pi(G(i,"int32"),s),a=se(r);return G(Te(a,o),"int32")}const Rk=S({confusionMatrix_:Ck});const XS={};Ee(XS,{confusionMatrix:()=>Rk});function ll(e,t,s){if(Ys(e),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");const n=Qt(e,s);if(n.length!==3&&n.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return hs(e,t,n,s)}const Gr={};Ee(Gr,{fromPixels:()=>_k,toPixels:()=>Ek});let cl;function Ok(e,t=3){if(t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(e==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let s=!1,n=!1,i=!1,r=!1,o=!1;if(e.data instanceof Uint8Array)s=!0;else if(typeof ImageData!="undefined"&&e instanceof ImageData)n=!0;else if(typeof HTMLVideoElement!="undefined"&&e instanceof HTMLVideoElement)i=!0;else if(typeof HTMLImageElement!="undefined"&&e instanceof HTMLImageElement)r=!0;else if(e.getContext!=null)o=!0;else throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${e.constructor.name}`);if(i){const d=2;if(i&&e.readyState element.")}const a=Rp(Xa,v.backendName);if(a!=null){const d={pixels:e},m={numChannels:t};return v.runKernel(Xa,d,m)}const[l,c]=i?[e.videoWidth,e.videoHeight]:[e.width,e.height];let p;o?p=e.getContext("2d").getImageData(0,0,l,c).data:n||s?p=e.data:(r||i)&&(cl==null&&(cl=document.createElement("canvas").getContext("2d")),cl.canvas.width=l,cl.canvas.height=c,cl.drawImage(e,0,0,l,c),p=cl.getImageData(0,0,l,c).data);let u;if(t===4)u=new Int32Array(p);else{const d=l*c;u=new Int32Array(d*t);for(let m=0;m4||r===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${r}`);if(s.dtype!=="float32"&&s.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${s.dtype}. Please use float32 or int32 tensors.`);const o=await s.data(),a=s.dtype==="float32"?255:1,l=new Uint8ClampedArray(i*n*4);for(let c=0;c1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${d}.`)}else if(s.dtype==="int32"&&(d<0||d>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${d}.`);r===1?(p[0]=d*a,p[1]=d*a,p[2]=d*a):p[h]=d*a}const u=c*4;l[u+0]=Math.round(p[0]),l[u+1]=Math.round(p[1]),l[u+2]=Math.round(p[2]),l[u+3]=Math.round(p[3])}if(t!=null){t.width=i,t.height=n;const c=t.getContext("2d"),p=new ImageData(l,i,n);c.putImageData(p,0,0)}return s!==e&&s.dispose(),l}const _k=S({fromPixels_:Ok});const JS={};Ee(JS,{prepareAndValidate:()=>ZS});function ZS(e,t){if(e.rank<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${e.rank}.`);if(t.rank<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${t.rank}.`);if(t.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[t.rank-1]>e.rank)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[t.rank-1]} vs. ${e.rank}`);if(e.size===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${e.shape}.`);const s=t.shape,n=s[s.length-1];let i=1;for(let c=0;cc/a),1].slice(0,n);return[o,i,a,l]}const QS={};Ee(QS,{calculateShapes:()=>eI,validateInput:()=>Mh,validateUpdateShape:()=>rb});function rb(e,t,s){const n=t.rank>1?t.shape[t.rank-1]:1,i=t.rank>1?t.rank-1:1,r=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${s.shape}, indices.shape: ${t.shape}, shape: ${e}, sliceDim: ${n}, and batchDim: ${i}.`;if(s.rank1?t.shape[n-1]:1,r=s.length;let o=1;for(let u=i;uob,computeFlatOffset:()=>Dk,computeOutShape:()=>ab,getNormalizedAxes:()=>lb,isSliceContinous:()=>kk,maskToAxes:()=>Bp,parseSliceParams:()=>jp,startForAxis:()=>aI,startIndicesWithElidedDims:()=>iI,stopForAxis:()=>lI,stopIndicesWithElidedDims:()=>rI,stridesForAxis:()=>oI,stridesWithElidedDims:()=>tI});function ob(e,t,s){const n=e.shape.length;I(n===t.length,()=>`Error in slice${n}D: Length of begin ${t} must match the rank of the array (${n}).`),I(n===s.length,()=>`Error in slice${n}D: Length of size ${s} must match the rank of the array (${n}).`);for(let i=0;i`Error in slice${n}D: begin[${i}] + size[${i}] (${t[i]+s[i]}) would overflow input.shape[${i}] (${e.shape[i]})`)}function Bp(e){const t=[];let s=0;for(;e>0;)e&1&&t.push(s),e/=2,s++;return t}function ab(e,t,s){const n=[];for(let i=0;i0){const d=t[0],m=s+1;p=iI(o,d,m,n,e),u=rI(a,d,m,i,e),h=tI(r,d,m,e)}else for(let d=0;d-1)r[a]=0;else{const l=sI(t,s,a);let c=n[l];e&1<-1)r[a]=Number.MAX_SAFE_INTEGER;else{const l=sI(t,s,a);let c=n[l];e&1<0?o=Number.MIN_SAFE_INTEGER:o=Number.MAX_SAFE_INTEGER);const l=n[i];return o<0&&(o+=l),o=Qa(0,o,l-1),o}function lI(e,t,s,n,i,r){let o=t[i];const a=s[i]||1;(e&1<0?o=Number.MAX_SAFE_INTEGER:o=Number.MIN_SAFE_INTEGER);const l=n[i];return o<0&&(o+=l),a>0?o=Qa(0,o,l):o=Qa(-1,o,l-1),o}function kk(e,t,s){let n=s.length;for(let i=0;i1){n=i;break}for(let i=n+1;i0||s[i]!==e[i])return!1;return!0}function Dk(e,t){let s=e.length>0?e[e.length-1]:1;for(let n=0;n{I(o!==-1,()=>"slice() does not support negative begin indexing.")});let r;return s==null?r=new Array(i).fill(-1):typeof s=="number"?r=[s,...new Array(i-1).fill(-1)]:s.lengtho>=0?o:(I(o===-1,()=>`Negative size values should be exactly -1 but got ${o} for the slice() size at index ${a}.`),e.shape[a]-n[a])),[n,r]}const V={};Ee(V,{Serializable:()=>cb,SerializationMap:()=>Xo,registerClass:()=>As});class cb{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}}class Xo{constructor(){this.classNameMap={}}static getMap(){return Xo.instance==null&&(Xo.instance=new Xo),Xo.instance}static register(e){Xo.getMap().classNameMap[e.className]=[e,e.fromConfig]}}function As(e){I(e.className!=null,()=>"Class being registered does not have the static className property defined."),I(typeof e.className=="string",()=>"className is required to be a string, but got type "+typeof e.className),I(e.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),Xo.register(e)}const cI={};Ee(cI,{TEST_EPSILON_FLOAT16:()=>pI,expectArrayBuffersEqual:()=>Pk,expectArraysClose:()=>Mk,expectArraysEqual:()=>$k,expectNumbersClose:()=>Wk,expectPromiseToFail:()=>Uk,expectValuesInRange:()=>zk,testEpsilon:()=>pb});const Fk=.001,pI=.1;function Mk(e,t,s){return s==null&&(s=pb()),ub(e,t,(n,i)=>hb(n,i,s))}function pb(){return v.backend.floatPrecision()===32?Fk:pI}function ub(e,t,s){let n=!0;if((Dt(e)||Dt(t))&&(n=!1),Dt(e)&&Dt(t)&&(n=!0),n){const o=e.constructor.name,a=t.constructor.name;if(o!==a)throw new Error(`Arrays are of different type. Actual: ${o}. Expected: ${a}`)}if(Array.isArray(e)&&Array.isArray(t)){const o=Qt(e),a=Qt(t);if(!Nt(o,a))throw new Error(`Arrays have different shapes. Actual: [${o}]. Expected: [${a}]`)}const i=Dt(e)?e:ii(e),r=Dt(t)?t:ii(t);if(i.length!==r.length)throw new Error(`Arrays have different lengths actual: ${i.length} vs expected: ${r.length}. +`;return h[h.length-1]=" "+h[h.length-1]+"]"+(r?"":m),h}function Fp(e){const t=[];for(let s=0;s`Length of values '${n}' does not match the size inferred by the shape '${this.size}'.`)}if(t==="complex64")throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=s||My(t,this.size),this.strides=oi(e)}set(e,...t){t.length===0&&(t=[0]),I(t.length===this.rank,()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`);const s=this.locToIndex(t);this.values[s]=e}get(...e){e.length===0&&(e=[0]);let t=0;for(const n of e){if(n<0||n>=this.shape[t]){const i=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(i)}t++}let s=e[e.length-1];for(let n=0;nEh(s))}catch(s){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataSync(){this.throwIfDisposed();const e=li().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>Eh(t))}catch(t){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return e}async bytes(){this.throwIfDisposed();const e=await li().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){if(this.isDisposed)return;li().disposeTensor(this),this.isDisposedInternal=!0}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return il.print(this,e)}clone(){return this.throwIfDisposed(),il.clone(this)}toString(e=!1){const t=this.dataSync();return ES(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),il.cast(this,e)}variable(e=!0,t,s){return this.throwIfDisposed(),li().makeVariable(this,e,t,s)}}Object.defineProperty(me,Symbol.hasInstance,{value:e=>!!e&&e.data!=null&&e.dataSync!=null&&e.throwIfDisposed!=null});class ci extends me{constructor(e,t,s,n){super(e.shape,e.dtype,e.dataId,n);this.trainable=t,this.name=s}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!Nt(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);li().disposeTensor(this),this.dataId=e.dataId,li().incRef(this,null)}dispose(){li().disposeVariable(this),this.isDisposedInternal=!0}}Object.defineProperty(ci,Symbol.hasInstance,{value:e=>e instanceof me&&e.assign!=null&&e.assign instanceof Function});var By;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(By||(By={}));var jy;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})(jy||(jy={}));var Vy;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})(Vy||(Vy={}));var Gy;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})(Gy||(Gy={}));var qy;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})(qy||(qy={}));const z_={float32:Gy,int32:jy,bool:Vy,complex64:qy};function Ft(e,t){if(e==="string"||t==="string"){if(e==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return z_[e][t]}function Mp(e){return Ft(e,"int32")}const mn={};Ee(mn,{assertTypesMatch:()=>Hy,getTensorsInContainer:()=>Up,isTensorInList:()=>P_,makeTypesMatch:()=>Ce});function Ce(e,t){if(e.dtype===t.dtype)return[e,t];const s=Ft(e.dtype,t.dtype);return[e.cast(s),t.cast(s)]}function Hy(e,t){I(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function P_(e,t){return t.some(s=>s.id===e.id)}function Up(e){const t=[],s=new Set;return MS(e,t,s),t}function MS(e,t,s){if(e==null)return;if(e instanceof me){t.push(e);return}if(!B_(e))return;const n=e;for(const i in n){const r=n[i];s.has(r)||(s.add(r),MS(r,t,s))}}function B_(e){return Array.isArray(e)||typeof e=="object"}class US{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null}}dispose(){for(const e in this.registeredVariables)this.registeredVariables[e].dispose()}}class $p{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new US}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;const e=this.getSortedBackends();for(let t=0;t{t.setupFunc!=null&&t.setupFunc(this.backendInstance)})}disposeRegisteredKernels(e){const t=Op(e);t.forEach(s=>{s.disposeFunc!=null&&s.disposeFunc(this.registry[e])})}initializeBackend(e){const t=this.registryFactory[e];if(t==null)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{const s=t.factory();if(s&&!(s instanceof Eo)&&typeof s.then=="function"){const n=++this.pendingBackendInitId,i=s.then(r=>n(nthis.registryFactory[t].priority-this.registryFactory[e].priority)}initializeBackendsAndReturnBest(){const e=this.getSortedBackends();for(let t=0;tthis.startScope(s),()=>this.endScope(n),()=>(n=t(),n instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),n))}scopedRun(e,t,s){e();try{const n=s();return t(),n}catch(n){throw t(),n}}nextTensorId(){return $p.nextTensorId++}nextVariableId(){return $p.nextVariableId++}clone(e){const t=this.makeTensorFromDataId(e.dataId,e.shape,e.dtype),s={x:e},n=r=>({x:()=>{const o="float32",a={x:r},l={dtype:o};return v.runKernelFunc(c=>c.cast(r,o),a,null,Ai,l)}}),i=[];return this.addTapeNode(this.state.activeScope.name,s,[t],n,i,{}),t}runKernel(e,t,s,n,i){const r=null,o=null;return this.runKernelFunc(r,t,o,e,s,n,i)}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,s){const n=this.backend.numDataIds();let i=0;s.forEach(a=>{i+=a.dtype==="complex64"?3:1});const r=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],o=n-t-i-r;if(o>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${o} data ids) after running '${e}'`)}runKernelFunc(e,t,s,n,i,r,o){let a,l=[];const c=this.isTapeOn();n==null&&(n=this.state.activeScope!=null?this.state.activeScope.name:"");const p=this.state.numBytes,u=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let h;const d=Rp(n,this.backendName);let m;if(d!=null)h=()=>{const g=this.backend.numDataIds();m=d.kernelFunc({inputs:t,attrs:i,backend:this.backend});const y=Array.isArray(m)?m:[m];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(n,g,y);const w=y.map(({dataId:x,shape:T,dtype:A})=>this.makeTensorFromDataId(x,T,A));if(c){let x=this.getTensorsForGradient(n,t,w);if(x==null){o==null&&(o=[]);const T=w.filter((A,_)=>o[_]);x=(r||[]).slice().concat(T)}l=this.saveTensorsForBackwardMode(x)}return w};else{const g=y=>{if(!c)return;l=y.map(w=>this.keep(this.clone(w)))};h=()=>{const y=this.backend.numDataIds();m=this.tidy(()=>e(this.backend,g));const w=Array.isArray(m)?m:[m];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(n,y,w),w}}let f;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?a=h():(f=this.profiler.profileKernel(n,t,()=>h()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(f),a=f.outputs)}),c&&this.addTapeNode(n,t,a,s,l,i),this.state.profiling&&this.state.activeProfile.kernels.push({name:n,bytesAdded:this.state.numBytes-p,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-u,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(t).map(g=>t[g]!=null?t[g].shape:null),outputShapes:a.map(g=>g.shape),kernelTimeMs:f.timeMs,extraInfo:f.extraInfo}),Array.isArray(m)?a:a[0]}saveTensorsForBackwardMode(e){const t=e.map(s=>this.keep(this.clone(s)));return t}getTensorsForGradient(e,t,s){const n=Ch(e);if(n!=null){const i=n.inputsToSave||[],r=n.outputsToSave||[];let o;n.saveAllInputs?(I(Array.isArray(t),()=>"saveAllInputs is true, expected inputs to be an array."),o=Object.keys(t).map(l=>t[l])):o=i.map(l=>t[l]);const a=s.filter((l,c)=>r[c]);return o.concat(a)}return null}makeTensor(e,t,s,n){if(e==null)throw new Error("Values passed to engine.makeTensor() are null");s=s||"float32",n=n||this.backend;let i=e;s==="string"&&Un(e[0])&&(i=e.map(a=>Rh(a)));const r=n.write(i,t,s),o=new me(t,s,r,this.nextTensorId());if(this.incRef(o,n),s==="string"){const a=this.state.tensorInfo.get(r),l=zy(i);this.state.numBytes+=l-a.bytes,a.bytes=l}return o}makeTensorFromDataId(e,t,s,n){s=s||"float32";const i=new me(t,s,e,this.nextTensorId());return this.incRef(i,n),i}makeVariable(e,t=!0,s,n){s=s||this.nextVariableId().toString(),n!=null&&n!==e.dtype&&(e=e.cast(n));const i=new ci(e,t,s,this.nextTensorId());if(this.state.registeredVariables[i.name]!=null)throw new Error(`Variable with name ${i.name} was already registered`);return this.state.registeredVariables[i.name]=i,this.incRef(i,this.backend),i}incRef(e,t){const s=this.state.tensorInfo.has(e.dataId)?this.state.tensorInfo.get(e.dataId).refCount:0;if(this.state.numTensors++,e.dtype==="string"&&this.state.numStringTensors++,s===0){this.state.numDataBuffers++;let n=0;e.dtype!=="complex64"&&e.dtype!=="string"&&(n=e.size*Wy(e.dtype)),this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:n,refCount:0}),this.state.numBytes+=n}this.state.tensorInfo.get(e.dataId).refCount++,e instanceof ci||this.track(e)}disposeTensor(e){if(!this.state.tensorInfo.has(e.dataId))return;this.state.numTensors--,e.dtype==="string"&&this.state.numStringTensors--;const t=this.state.tensorInfo.get(e.dataId),s=t.refCount;s<=1?(e.dtype!=="complex64"&&(this.state.numBytes-=t.bytes),this.state.numDataBuffers--,t.backend.disposeData(e.dataId),this.state.tensorInfo.delete(e.dataId)):this.state.tensorInfo.get(e.dataId).refCount--}disposeVariables(){for(const e in this.state.registeredVariables){const t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),this.state.registeredVariables[e.name]!=null&&delete this.state.registeredVariables[e.name]}memory(){const e=this.backend.memory();return e.numTensors=this.state.numTensors,e.numDataBuffers=this.state.numDataBuffers,e.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(e.unreliable=!0,e.reasons==null&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;const t=this.state.numBytes,s=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(n=>n.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-s;for(const n of this.state.activeProfile.kernels)n.kernelTimeMs=await n.kernelTimeMs,n.extraInfo=await n.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(e,t,s,n,i,r){const o={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:s,saved:i},a=Ch(e);a!=null&&(n=a.gradFunc),n!=null&&(o.gradient=l=>(l=l.map((c,p)=>{if(c==null){const u=s[p],h=ai(u.size,u.dtype);return this.makeTensor(h,u.shape,u.dtype)}return c}),n(l.length>1?l:l[0],i,r))),this.state.activeTape.push(o)}keep(e){return e.kept=!0,e}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){const t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){const t=Up(e),s=new Set(t.map(i=>i.id));for(let i=0;i{!i.kept&&i.scopeId===n.id&&this.track(i)})}gradients(e,t,s,n=!1){if(I(t.length>0,()=>"gradients() received an empty list of xs."),s!=null&&s.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${s.dtype}'`);const i=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",e));I(i instanceof me,()=>"The result y returned by f() must be a tensor.");const r=CS(this.state.activeTape,t,i);if(!n&&r.length===0&&t.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",()=>{const o={};o[i.id]=s??j_(i.shape),RS(o,r,l=>this.tidy(l),V_);const a=t.map(l=>o[l.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(l=>{for(const c of l.saved)c.dispose()}),this.state.activeTape=null),{value:i,grads:a}})}customGrad(e){return I(ri(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{I(t.every(i=>i instanceof me),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let s;const n={};return t.forEach((i,r)=>{n[r]=i}),this.runKernelFunc((i,r)=>(s=e(...t,r),I(s.value instanceof me,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),I(ri(s.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),s.value),n,(i,r)=>{const o=s.gradFunc(i,r),a=Array.isArray(o)?o:[o];I(a.length===t.length,()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...)."),I(a.every(c=>c instanceof me),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");const l={};return a.forEach((c,p)=>{l[p]=()=>c}),l})}}readSync(e){const t=this.state.tensorInfo.get(e);return t.backend.readSync(e)}read(e){const t=this.state.tensorInfo.get(e);return t.backend.read(e)}async time(e){const t=Oh(),s=await this.backend.time(e);return s.wallMs=Oh()-t,s}track(e){return this.state.activeScope!=null&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new US;for(const e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}}$p.nextTensorId=0;$p.nextVariableId=0;function j_(e){const t=Ep(We(e),"float32");return v.makeTensor(t,e,"float32")}function Yy(){const e=Qg();if(e._tfengine==null){const t=new Xg(e);e._tfengine=new $p(t)}return LS(e._tfengine.ENV),kS(()=>e._tfengine),e._tfengine}const v=Yy();function V_(e,t){const s={a:e,b:t};return v.runKernelFunc((n,i)=>{const r=n.add(e,t);return i([e,t]),r},s,null,Zn)}const rl={};Ee(rl,{isBrowser:()=>Ky,isMobile:()=>q_});function G_(){return typeof navigator!="undefined"&&navigator!=null}function q_(){if(G_()){const e=navigator.userAgent||navigator.vendor||window.opera;return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(e)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(e.substr(0,4))}return!1}function Ky(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}const ki=W();ki.registerFlag("DEBUG",()=>!1,e=>{e&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")});ki.registerFlag("IS_BROWSER",()=>Ky());ki.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");ki.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));ki.registerFlag("PROD",()=>!1);ki.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>ki.getBool("DEBUG"));ki.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);ki.registerFlag("IS_TEST",()=>!1);function Qt(e,t){let s=e;if(Dt(e))return t==="string"?[]:[e.length];if(!Array.isArray(e))return[];const n=[];for(;Array.isArray(s)||Dt(s)&&t!=="string";)n.push(s.length),s=s[0];return Array.isArray(e)&&W().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&$S(e,n,[]),n}function $S(e,t,s){if(s=s||[],!Array.isArray(e)&&!Dt(e)){I(t.length===0,()=>`Element arr[${s.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}I(t.length>0,()=>`Element arr[${s.join("][")}] should be a primitive, but is an array of ${e.length} elements`),I(e.length===t[0],()=>`Element arr[${s.join("][")}] should have ${t[0]} elements, but has ${e.length} elements`);const n=t.slice(1);for(let i=0;i=0&&(i=n),WS(n,i,t,s),e==null||!Dt(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string"){const l=e==null?"null":e.constructor.name;throw new Error(`Argument '${t}' passed to '${s}' must be a Tensor or TensorLike, but got '${l}'`)}const r=Qt(e,i);!Dt(e)&&!Array.isArray(e)&&(e=[e]);const o=!0,a=i!=="string"?nl(e,i):ii(e,[],o);return v.makeTensor(a,r,i)}function Di(e,t,s,n="numeric"){if(!Array.isArray(e))throw new Error(`Argument ${t} passed to ${s} must be a \`Tensor[]\` or \`TensorLike[]\``);const i=e;return i.map((r,o)=>b(r,`${t}[${o}]`,s),n)}const Xy="__op";function S(e){const t=Object.keys(e);if(t.length!==1)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${t.length} keys.`);let s=t[0];const n=e[s];s.endsWith("_")&&(s=s.substring(0,s.length-1)),s=s+Xy;const i=(...r)=>{v.startScope(s);try{const o=n(...r);return o instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),v.endScope(o),o}catch(o){throw v.endScope(null),o}};return Object.defineProperty(i,"name",{value:s,configurable:!0}),i}function H_(e,t){const s=b(e,"real","complex"),n=b(t,"imag","complex");Se(s.shape,n.shape,`real and imag shapes, ${s.shape} and ${n.shape}, must match in call to tf.complex().`);const i=o=>o.complex(s,n),r={real:s,imag:n};return v.runKernelFunc(i,r,null,jc)}const Gt=S({complex_:H_});function hs(e,t,s,n){if(n==null&&(n=tl(e)),n==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(!Dt(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string")throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(t!=null){_p(t);const i=We(t),r=We(s);I(i===r,()=>`Based on the provided shape, [${t}], the tensor should have ${i} values but has ${r}`);for(let o=0;o`Error creating a new Tensor. Inferred shape (${s}) does not match the provided shape (${t}). `)}}return!Dt(e)&&!Array.isArray(e)&&(e=[e]),t=t||s,e=n!=="string"?nl(e,n):ii(e,[],!0),v.makeTensor(e,t,n)}function ze(e,t,s){const n=Qt(e,s);return hs(e,t,n,s)}const Wp={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};const kh=4;async function K_(e,t){const s=[],n=[],i=Array.isArray(e)?e.map(o=>o.name):Object.keys(e);for(let o=0;o{const h=await l.bytes(),d=h.reduce((g,y)=>g+y.length,0)+kh*h.length,m=new Uint8Array(d);let f=0;for(let g=0;g{if(t+=r.byteLength,s.push(r.byteLength===r.buffer.byteLength?r:new r.constructor(r)),!(r instanceof Float32Array||r instanceof Int32Array||r instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${r.constructor.name}`)});const n=new Uint8Array(t);let i=0;return s.forEach(r=>{n.set(new Uint8Array(r.buffer),i),i+=r.byteLength}),n.buffer}const J_=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function zS(e){return J_?Buffer.byteLength(e):new Blob([e]).size}function zp(e){if(e.length===1)return e[0];let t=0;e.forEach(i=>{t+=i.byteLength});const s=new Uint8Array(t);let n=0;return e.forEach(i=>{s.set(new Uint8Array(i),n),n+=i.byteLength}),s.buffer}function Zy(e){const t="/";for(e=e.trim();e.endsWith(t);)e=e.slice(0,e.length-1);const s=e.split(t);return s[s.length-1]}function Pp(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:e.modelTopology==null?0:zS(JSON.stringify(e.modelTopology)),weightSpecsBytes:e.weightSpecs==null?0:zS(JSON.stringify(e.weightSpecs)),weightDataBytes:e.weightData==null?0:e.weightData.byteLength}}function Z_(){const e=s=>{let n=s<<13,i=0;for(;(n&8388608)===0;)i-=8388608,n<<=1;return n&=~8388608,i+=947912704,n|i},t=new Uint32Array(2048);t[0]=0;for(let s=1;s<1024;s++)t[s]=e(s);for(let s=1024;s<2048;s++)t[s]=939524096+(s-1024<<13);return t}function Q_(){const e=new Uint32Array(64);e[0]=0,e[31]=1199570944,e[32]=2147483648,e[63]=3347054592;for(let t=1;t<31;t++)e[t]=t<<23;for(let t=33;t<63;t++)e[t]=2147483648+(t-32<<23);return e}function ek(){const e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function X_(){const e=Z_(),t=Q_(),s=ek();return n=>{const i=new ArrayBuffer(4*n.length),r=new Uint32Array(i);for(let o=0;o>10]+(a&1023)]+t[a>>10];r[o]=l}return new Float32Array(i)}}class Ct{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return Ct.instance==null&&(Ct.instance=new Ct),Ct.instance}static registerSaveRouter(e){Ct.getInstance().saveRouters.push(e)}static registerLoadRouter(e){Ct.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return Ct.getHandlers(e,"save")}static getLoadHandlers(e,t){return Ct.getHandlers(e,"load",t)}static getHandlers(e,t,s){const n=[],i=t==="load"?Ct.getInstance().loadRouters:Ct.getInstance().saveRouters;return i.forEach(r=>{const o=r(e,s);o!==null&&n.push(o)}),n}}const tk=e=>Ct.registerSaveRouter(e),sk=e=>Ct.registerLoadRouter(e),nk=e=>Ct.getSaveHandlers(e),ik=(e,t)=>Ct.getLoadHandlers(e,t);const ol="://";class $n{constructor(){this.managers={}}static getInstance(){return $n.instance==null&&($n.instance=new $n),$n.instance}static registerManager(e,t){I(e!=null,()=>"scheme must not be undefined or null."),e.endsWith(ol)&&(e=e.slice(0,e.indexOf(ol))),I(e.length>0,()=>"scheme must not be an empty string.");const s=$n.getInstance();I(s.managers[e]==null,()=>`A model store manager is already registered for scheme '${e}'.`),s.managers[e]=t}static getManager(e){const t=this.getInstance().managers[e];if(t==null)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(this.getInstance().managers)}}function Dh(e){if(e.indexOf(ol)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${$n.getSchemes().join(",")}`);return{scheme:e.split(ol)[0],path:e.split(ol)[1]}}async function PS(e,t,s=!1){I(e!==t,()=>`Old path and new path are the same: '${e}'`);const n=Ct.getLoadHandlers(e);I(n.length>0,()=>`Copying failed because no load handler is found for source URL ${e}.`),I(n.length<2,()=>`Copying failed because more than one (${n.length}) load handlers for source URL ${e}.`);const i=n[0],r=Ct.getSaveHandlers(t);I(r.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),I(r.length<2,()=>`Copying failed because more than one (${n.length}) save handlers for destination URL ${t}.`);const o=r[0],a=Dh(e).scheme,l=Dh(e).path,c=a===Dh(e).scheme,p=await i.load();s&&c&&await $n.getManager(a).removeModel(l);const u=await o.save(p);return s&&!c&&await $n.getManager(a).removeModel(l),u.modelArtifactsInfo}async function BS(){const e=$n.getSchemes(),t={};for(const s of e){const n=await $n.getManager(s).listModels();for(const i in n){const r=s+ol+i;t[r]=n[i]}}return t}async function jS(e){const t=Dh(e),s=$n.getManager(t.scheme);return s.removeModel(t.path)}async function VS(e,t){const s=!1;return PS(e,t,s)}async function GS(e,t){const s=!0;return PS(e,t,s)}function ge(e,t="float32",s){return t=t||"float32",_p(e),new dn(e,t,s)}function rk(e,t){const s=b(e,"x","cast");if(!Uy(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t==="string"&&s.dtype!=="string"||t!=="string"&&s.dtype==="string")throw new Error("Only strings can be casted to strings");const n={x:s},i={dtype:t};return v.runKernelFunc(r=>r.cast(s,t),n,null,Ai,i)}const G=S({cast_:rk});function ok(e){const t=b(e,"x","clone",null),s=()=>v.makeTensorFromDataId(t.dataId,t.shape,t.dtype),n={x:t};return v.runKernelFunc(s,n,null,Ci)}const Fs=S({clone_:ok});function Fh(e,t=!1){console.log(e.toString(t))}Yy();const ak={buffer:ge,cast:G,clone:Fs,print:Fh};DS(ak);const lk="model",ck=".json",pk=".weights.bin";function qS(e){return new Promise(t=>setTimeout(t)).then(e)}class al{constructor(e){if(!W().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(al.URL_SCHEME)&&(e=e.slice(al.URL_SCHEME.length)),(e==null||e.length===0)&&(e=lk),this.modelTopologyFileName=e+ck,this.weightDataFileName=e+pk}async save(e){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");const t=window.URL.createObjectURL(new Blob([e.weightData],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{const s=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],n={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:s},i=window.URL.createObjectURL(new Blob([JSON.stringify(n)],{type:"application/json"})),r=this.jsonAnchor==null?document.createElement("a"):this.jsonAnchor;if(r.download=this.modelTopologyFileName,r.href=i,await qS(()=>r.dispatchEvent(new MouseEvent("click"))),e.weightData!=null){const o=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;o.download=this.weightDataFileName,o.href=t,await qS(()=>o.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:Pp(e)}}}}al.URL_SCHEME="downloads://";class uk{constructor(e){if(e==null||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.files=e}async load(){const e=this.files[0],t=this.files.slice(1);return new Promise((s,n)=>{const i=new FileReader;i.onload=r=>{const o=JSON.parse(r.target.result),a=o.modelTopology;if(a==null){n(new Error(`modelTopology field is missing from file ${e.name}`));return}t.length===0&&s({modelTopology:a});const l=o.weightsManifest;if(l==null){n(new Error(`weightManifest field is missing from file ${e.name}`));return}let c;try{c=this.checkManifestAndWeightFiles(l,t)}catch(d){n(d);return}const p=[],u=[],h=[];l.forEach(d=>{d.paths.forEach(m=>{u.push(m),h.push(null)}),p.push(...d.weights)}),l.forEach(d=>{d.paths.forEach(m=>{const f=new FileReader;f.onload=g=>{const y=g.target.result,w=u.indexOf(m);h[w]=y,h.indexOf(null)===-1&&s({modelTopology:a,weightSpecs:p,weightData:zp(h),format:o.format,generatedBy:o.generatedBy,convertedBy:o.convertedBy,userDefinedMetadata:o.userDefinedMetadata})},f.onerror=g=>n(`Failed to weights data from file of path '${m}'.`),f.readAsArrayBuffer(c[m])})})},i.onerror=r=>n(`Failed to read model topology and weights manifest JSON from file '${e.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),i.readAsText(e)})}checkManifestAndWeightFiles(e,t){const s=[],n=t.map(r=>Zy(r.name)),i={};for(const r of e)r.paths.forEach(o=>{const a=Zy(o);if(s.indexOf(a)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${a}'`);if(s.push(a),n.indexOf(a)===-1)throw new Error(`Weight file with basename '${a}' is not provided.`);i[o]=t[n.indexOf(a)]});if(s.length!==t.length)throw new Error(`Mismatch in the number of files in weights manifest (${s.length}) and the number of weight files provided (${t.length}).`);return i}}const dk=e=>W().getBool("IS_BROWSER")&&(!Array.isArray(e)&&e.startsWith(al.URL_SCHEME))?hk(e.slice(al.URL_SCHEME.length)):null;Ct.registerSaveRouter(dk);function hk(e="model"){return new al(e)}function mk(e){return new uk(e)}function Qy(e,t,s,n){o(e),s=s??0,n=n??1,a(s,n);let i=0;const r=l=>(l.then(c=>{const p=s+ ++i/e.length*(n-s);return t(p),c}),l);function o(l){I(l!=null&&Array.isArray(l)&&l.length>0,()=>"promises must be a none empty array")}function a(l,c){I(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${l}`),I(c>=0&&c<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${c}`),I(c>=l,()=>`startFraction must be no more than endFraction, but got startFraction ${l} and endFraction ${c}`)}return Promise.all(e.map(r))}async function eb(e,t){t==null&&(t={});const s=t.fetchFunc==null?W().platform.fetch:t.fetchFunc,n=e.map(u=>s(u,t.requestInit,{isBinary:!0})),i=0,r=.5,o=t.onProgress==null?await Promise.all(n):await Qy(n,t.onProgress,i,r),a=o.map(u=>u.arrayBuffer()),l=.5,c=1,p=t.onProgress==null?await Promise.all(a):await Qy(a,t.onProgress,l,c);return p}async function fk(e,t="",s,n){const i=o=>eb(o,{requestInit:n}),r=HS(i);return r(e,t,s)}function HS(e){return async(t,s="",n)=>{const i=t.map(()=>!1),r={},o=n!=null?n.map(()=>!1):[],a=[];if(t.forEach((d,m)=>{let f=0;d.weights.forEach(g=>{const y="quantization"in g?g.quantization.dtype:g.dtype,w=Wp[y]*We(g.shape),x=()=>{i[m]=!0,r[m]==null&&(r[m]=[]),r[m].push({manifestEntry:g,groupOffset:f,sizeBytes:w})};n!=null?n.forEach((T,A)=>{T===g.name&&(x(),o[A]=!0)}):x(),a.push(g.name),f+=w})}),!o.every(d=>d)){const d=n.filter((m,f)=>!o[f]);throw new Error(`Could not find weights in manifest with names: ${d.join(", ")}. +Manifest JSON has weights with names: ${a.join(", ")}.`)}const l=i.reduce((d,m,f)=>(m&&d.push(f),d),[]),c=[];l.forEach(d=>{t[d].paths.forEach(m=>{const f=s+(s.endsWith("/")?"":"/")+m;c.push(f)})});const p=await e(c),u={};let h=0;return l.forEach(d=>{const m=t[d].paths.length;let f=0;for(let T=0;T{const A=g.slice(T.groupOffset,T.groupOffset+T.sizeBytes),_=Jy(A,[T.manifestEntry]);for(const E in _)u[E]=_[E]}),h+=m}),u}}const gk="application/octet-stream",yk="application/json";class tb{constructor(e,t){if(this.DEFAULT_METHOD="POST",t==null&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,this.weightUrlConverter=t.weightUrlConverter,t.fetchFunc!=null?(I(typeof t.fetchFunc=="function",()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=t.fetchFunc):this.fetch=W().platform.fetch,I(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&I(e.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`),this.path=e,t.requestInit!=null&&t.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{}}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");const t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;const s=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],n={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,userDefinedMetadata:e.userDefinedMetadata,weightsManifest:s};t.body.append("model.json",new Blob([JSON.stringify(n)],{type:yk}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:gk}),"model.weights.bin");const i=await this.fetch(this.path,t);if(i.ok)return{modelArtifactsInfo:Pp(e),responses:[i]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${i.status}.`)}async load(){const e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Request to ${this.path} failed with status code ${e.status}. Please verify this URL points to the model JSON of the model to load.`);let t;try{t=await e.json()}catch(h){let d=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?d+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":d+=" Please make sure the server is serving valid JSON for this request.",new Error(d)}const s=t.modelTopology,n=t.weightsManifest,i=t.generatedBy,r=t.convertedBy,o=t.format,a=t.userDefinedMetadata;if(s==null&&n==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);let l,c;if(n!=null){const h=await this.loadWeights(n);[l,c]=h}const p={modelTopology:s,weightSpecs:l,weightData:c,userDefinedMetadata:a,generatedBy:i,convertedBy:r,format:o},u=t.modelInitializer;return u&&(p.modelInitializer=u),p}async loadWeights(e){const t=Array.isArray(this.path)?this.path[1]:this.path,[s,n]=bk(t),i=this.weightPathPrefix||s,r=[];for(const c of e)r.push(...c.weights);const o=[],a=[];for(const c of e)for(const p of c.paths)this.weightUrlConverter!=null?a.push(this.weightUrlConverter(p)):o.push(i+p+n);this.weightUrlConverter&&o.push(...await Promise.all(a));const l=await eb(o,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[r,zp(l)]}}tb.URL_SCHEME_REGEX=/^https?:\/\//;function bk(e){const t=e.lastIndexOf("/"),s=e.lastIndexOf("?"),n=e.substring(0,t),i=s>t?e.substring(s):"";return[n+"/",i]}function sb(e){return e.match(tb.URL_SCHEME_REGEX)!=null}const YS=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let s=!0;if(Array.isArray(e)?s=e.every(n=>sb(n)):s=sb(e),s)return nb(e,t)}return null};Ct.registerSaveRouter(YS);Ct.registerLoadRouter(YS);function nb(e,t){return new tb(e,t)}function wk(e,t){return nb(e,t)}class ib{constructor(e){this.modelArtifacts=e}async load(){return this.modelArtifacts}}class xk{constructor(e){this.saveHandler=e}async save(e){return this.saveHandler(e)}}function Lk(e,t,s,n){if(arguments.length===1){const i=e.modelTopology!=null||e.weightSpecs!=null;return i?new ib(e):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new ib({modelTopology:e}))}else return console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new ib({modelTopology:e,weightSpecs:t,weightData:s,trainingConfig:n})}function Sk(e){return new xk(e)}const Rt={};Ee(Rt,{browserFiles:()=>mk,browserHTTPRequest:()=>wk,concatenateArrayBuffers:()=>zp,copyModel:()=>VS,decodeWeights:()=>Jy,encodeWeights:()=>K_,fromMemory:()=>Lk,getLoadHandlers:()=>ik,getModelArtifactsInfoForJSON:()=>Pp,getSaveHandlers:()=>nk,http:()=>nb,isHTTPScheme:()=>sb,listModels:()=>BS,loadWeights:()=>fk,moveModel:()=>GS,registerLoadRouter:()=>sk,registerSaveRouter:()=>tk,removeModel:()=>jS,weightsLoaderFactory:()=>HS,withSaveHandler:()=>Sk});function Ik(e,t){const s=b(e,"x","reshape",null),n={x:s},i={shape:t},r=(o,a)=>(t=Dy(t,s.size),I(s.size===We(t),()=>"new shape and old shape must have the same number of elements."),a([s]),o.reshape(s,t));return v.runKernelFunc(r,n,null,Ei,i)}const O=S({reshape_:Ik});function vk(e,t,s=!1,n=!1){let i=b(e,"a","matMul"),r=b(t,"b","matMul");[i,r]=Ce(i,r),I(i.rank>=2&&r.rank>=2&&i.rank===r.rank,()=>`Error in matMul: inputs must have the same rank of at least 2, got ranks ${i.rank} and ${r.rank}.`);const o=s?i.shape[i.rank-2]:i.shape[i.rank-1],a=n?r.shape[r.rank-1]:r.shape[r.rank-2],l=s?i.shape[i.rank-1]:i.shape[i.rank-2],c=n?r.shape[r.rank-2]:r.shape[r.rank-1],p=i.shape.slice(0,-2),u=r.shape.slice(0,-2),h=We(p),d=We(u);I(Nt(p,u),()=>`Error in matMul: outer dimensions (${p}) and (${u}) of Tensors with shapes ${i.shape} and ${r.shape} must match.`),I(o===a,()=>`Error in matMul: inner shapes (${o}) and (${a}) of Tensors with shapes ${i.shape} and ${r.shape} and transposeA=${s} and transposeB=${n} must match.`);const m=i.shape.slice(0,-2).concat([l,c]),f=s?O(i,[h,o,l]):O(i,[h,l,o]),g=n?O(r,[d,c,a]):O(r,[d,a,c]),y=(A,_)=>(_([f,g]),A.batchMatMul(f,g,s,n)),w={a:f,b:g},x={transposeA:s,transposeB:n},T=v.runKernelFunc(y,w,null,zc,x);return O(T,m)}const Te=S({matMul_:vk});function Tk(e,t,s=1,n=0){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);const i=b(e,"indices","oneHot","int32"),r=[...i.shape,t],o=(c,p)=>(p([i]),O(c.oneHot(O(i,[i.size]),t,s,n),r)),a={indices:i},l={depth:t,onValue:s,offValue:n};return v.runKernelFunc(o,a,null,up,l)}const pi=S({oneHot_:Tk});function Ak(e,t){const s=b(e,"x","transpose");if(t==null&&(t=s.shape.map((r,o)=>o).reverse()),I(s.rank===t.length,()=>`Error in transpose: rank of input ${s.rank} must match length of perm ${t}.`),t.forEach(r=>{I(r>=0&&r`All entries in 'perm' must be between 0 and ${s.rank-1} but got ${t}`)}),s.rank<=1)return s.clone();const n={x:s},i={perm:t};return v.runKernelFunc(r=>r.transpose(s,t),n,null,_i,i)}const se=S({transpose_:Ak});function Nk(e,t,s){const n=b(e,"labels","confusionMatrix"),i=b(t,"predictions","confusionMatrix");I(s==null||s>0&&Number.isInteger(s),()=>`If provided, numClasses must be a positive integer, but got ${s}`),I(n.rank===1,()=>`Expected the rank of labels to be 1, but got ${n.rank}`),I(i.rank===1,()=>`Expected the rank of predictions to be 1, but got ${i.rank}`),I(n.shape[0]===i.shape[0],()=>`Mismatch in the number of examples: ${n.shape[0]} vs. ${i.shape[0]}. Labels and predictions should have the same number of elements.`),I(s>0&&Number.isInteger(s),()=>`numClasses is required to be a positive integer, but got ${s}`);const r=pi(G(n,"int32"),s),o=pi(G(i,"int32"),s),a=se(r);return G(Te(a,o),"int32")}const Ck=S({confusionMatrix_:Nk});const KS={};Ee(KS,{confusionMatrix:()=>Ck});function ll(e,t,s){if(Ys(e),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");const n=Qt(e,s);if(n.length!==3&&n.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return hs(e,t,n,s)}const Gr={};Ee(Gr,{fromPixels:()=>Ek,toPixels:()=>Ok});let cl;function Rk(e,t=3){if(t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(e==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let s=!1,n=!1,i=!1,r=!1,o=!1;if(e.data instanceof Uint8Array)s=!0;else if(typeof ImageData!="undefined"&&e instanceof ImageData)n=!0;else if(typeof HTMLVideoElement!="undefined"&&e instanceof HTMLVideoElement)i=!0;else if(typeof HTMLImageElement!="undefined"&&e instanceof HTMLImageElement)r=!0;else if(e.getContext!=null)o=!0;else throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${e.constructor.name}`);if(i){const d=2;if(i&&e.readyState element.")}const a=Rp(Xa,v.backendName);if(a!=null){const d={pixels:e},m={numChannels:t};return v.runKernel(Xa,d,m)}const[l,c]=i?[e.videoWidth,e.videoHeight]:[e.width,e.height];let p;o?p=e.getContext("2d").getImageData(0,0,l,c).data:n||s?p=e.data:(r||i)&&(cl==null&&(cl=document.createElement("canvas").getContext("2d")),cl.canvas.width=l,cl.canvas.height=c,cl.drawImage(e,0,0,l,c),p=cl.getImageData(0,0,l,c).data);let u;if(t===4)u=new Int32Array(p);else{const d=l*c;u=new Int32Array(d*t);for(let m=0;m4||r===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${r}`);if(s.dtype!=="float32"&&s.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${s.dtype}. Please use float32 or int32 tensors.`);const o=await s.data(),a=s.dtype==="float32"?255:1,l=new Uint8ClampedArray(i*n*4);for(let c=0;c1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${d}.`)}else if(s.dtype==="int32"&&(d<0||d>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${d}.`);r===1?(p[0]=d*a,p[1]=d*a,p[2]=d*a):p[h]=d*a}const u=c*4;l[u+0]=Math.round(p[0]),l[u+1]=Math.round(p[1]),l[u+2]=Math.round(p[2]),l[u+3]=Math.round(p[3])}if(t!=null){t.width=i,t.height=n;const c=t.getContext("2d"),p=new ImageData(l,i,n);c.putImageData(p,0,0)}return s!==e&&s.dispose(),l}const Ek=S({fromPixels_:Rk});const XS={};Ee(XS,{prepareAndValidate:()=>JS});function JS(e,t){if(e.rank<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${e.rank}.`);if(t.rank<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${t.rank}.`);if(t.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[t.rank-1]>e.rank)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[t.rank-1]} vs. ${e.rank}`);if(e.size===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${e.shape}.`);const s=t.shape,n=s[s.length-1];let i=1;for(let c=0;cc/a),1].slice(0,n);return[o,i,a,l]}const ZS={};Ee(ZS,{calculateShapes:()=>QS,validateInput:()=>Mh,validateUpdateShape:()=>rb});function rb(e,t,s){const n=t.rank>1?t.shape[t.rank-1]:1,i=t.rank>1?t.rank-1:1,r=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${s.shape}, indices.shape: ${t.shape}, shape: ${e}, sliceDim: ${n}, and batchDim: ${i}.`;if(s.rank1?t.shape[n-1]:1,r=s.length;let o=1;for(let u=i;uob,computeFlatOffset:()=>kk,computeOutShape:()=>ab,getNormalizedAxes:()=>lb,isSliceContinous:()=>_k,maskToAxes:()=>Bp,parseSliceParams:()=>jp,startForAxis:()=>oI,startIndicesWithElidedDims:()=>nI,stopForAxis:()=>aI,stopIndicesWithElidedDims:()=>iI,stridesForAxis:()=>rI,stridesWithElidedDims:()=>eI});function ob(e,t,s){const n=e.shape.length;I(n===t.length,()=>`Error in slice${n}D: Length of begin ${t} must match the rank of the array (${n}).`),I(n===s.length,()=>`Error in slice${n}D: Length of size ${s} must match the rank of the array (${n}).`);for(let i=0;i`Error in slice${n}D: begin[${i}] + size[${i}] (${t[i]+s[i]}) would overflow input.shape[${i}] (${e.shape[i]})`)}function Bp(e){const t=[];let s=0;for(;e>0;)e&1&&t.push(s),e/=2,s++;return t}function ab(e,t,s){const n=[];for(let i=0;i0){const d=t[0],m=s+1;p=nI(o,d,m,n,e),u=iI(a,d,m,i,e),h=eI(r,d,m,e)}else for(let d=0;d-1)r[a]=0;else{const l=tI(t,s,a);let c=n[l];e&1<-1)r[a]=Number.MAX_SAFE_INTEGER;else{const l=tI(t,s,a);let c=n[l];e&1<0?o=Number.MIN_SAFE_INTEGER:o=Number.MAX_SAFE_INTEGER);const l=n[i];return o<0&&(o+=l),o=Qa(0,o,l-1),o}function aI(e,t,s,n,i,r){let o=t[i];const a=s[i]||1;(e&1<0?o=Number.MAX_SAFE_INTEGER:o=Number.MIN_SAFE_INTEGER);const l=n[i];return o<0&&(o+=l),a>0?o=Qa(0,o,l):o=Qa(-1,o,l-1),o}function _k(e,t,s){let n=s.length;for(let i=0;i1){n=i;break}for(let i=n+1;i0||s[i]!==e[i])return!1;return!0}function kk(e,t){let s=e.length>0?e[e.length-1]:1;for(let n=0;n{I(o!==-1,()=>"slice() does not support negative begin indexing.")});let r;return s==null?r=new Array(i).fill(-1):typeof s=="number"?r=[s,...new Array(i-1).fill(-1)]:s.lengtho>=0?o:(I(o===-1,()=>`Negative size values should be exactly -1 but got ${o} for the slice() size at index ${a}.`),e.shape[a]-n[a])),[n,r]}const V={};Ee(V,{Serializable:()=>cb,SerializationMap:()=>Xo,registerClass:()=>As});class cb{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}}class Xo{constructor(){this.classNameMap={}}static getMap(){return Xo.instance==null&&(Xo.instance=new Xo),Xo.instance}static register(e){Xo.getMap().classNameMap[e.className]=[e,e.fromConfig]}}function As(e){I(e.className!=null,()=>"Class being registered does not have the static className property defined."),I(typeof e.className=="string",()=>"className is required to be a string, but got type "+typeof e.className),I(e.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),Xo.register(e)}const lI={};Ee(lI,{TEST_EPSILON_FLOAT16:()=>cI,expectArrayBuffersEqual:()=>zk,expectArraysClose:()=>Fk,expectArraysEqual:()=>Uk,expectNumbersClose:()=>$k,expectPromiseToFail:()=>Mk,expectValuesInRange:()=>Wk,testEpsilon:()=>pb});const Dk=.001,cI=.1;function Fk(e,t,s){return s==null&&(s=pb()),ub(e,t,(n,i)=>hb(n,i,s))}function pb(){return v.backend.floatPrecision()===32?Dk:cI}function ub(e,t,s){let n=!0;if((Dt(e)||Dt(t))&&(n=!1),Dt(e)&&Dt(t)&&(n=!0),n){const o=e.constructor.name,a=t.constructor.name;if(o!==a)throw new Error(`Arrays are of different type. Actual: ${o}. Expected: ${a}`)}if(Array.isArray(e)&&Array.isArray(t)){const o=Qt(e),a=Qt(t);if(!Nt(o,a))throw new Error(`Arrays have different shapes. Actual: [${o}]. Expected: [${a}]`)}const i=Dt(e)?e:ii(e),r=Dt(t)?t:ii(t);if(i.length!==r.length)throw new Error(`Arrays have different lengths actual: ${i.length} vs expected: ${r.length}. Actual: ${i}. Expected: ${r}.`);for(let o=0;ot.fail(),()=>t())}function $k(e,t){const s=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return Un(e)||Un(e[0])||Un(t)||Un(t[0])?ub(e,s,(n,i)=>n==i):ub(e,t,(n,i)=>hb(n,i,0))}function Wk(e,t,s){if(s==null&&(s=pb()),!hb(e,t,s))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`)}function hb(e,t,s){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>s)}function zk(e,t,s){for(let n=0;ns)throw new Error(`Value out of range:${e[n]} low: ${t}, high: ${s}`)}function Pk(e,t){expect(new Float32Array(e)).toEqual(new Float32Array(t))}const db="2.6.0";function Bk(){W().set("PROD",!0)}function jk(){W().set("DEBUG",!0)}function Vk(){W().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function It(e){W().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}MS(It);function Gk(){v.disposeVariables()}function Us(){return v}function pl(){return v.memory()}function qk(e){return v.profile(e)}function C(e,t){return v.tidy(e,t)}function ce(e){const t=Up(e);t.forEach(s=>s.dispose())}function pt(e){return v.keep(e)}function Hk(e){return v.time(e)}function uI(e){return v.setBackend(e)}function Yk(){return v.ready()}function Kk(){return v.backendName}function Xk(e){v.removeBackend(e)}function Jk(e){return v.findBackend(e)}function Zk(e){return v.findBackendFactory(e)}function Vp(e,t,s=1){return v.registerBackend(e,t,s)}function mb(){return v.backend}function Qk(e,t){W().setPlatform(e,t)}function eD(e,t){let s=b(e,"a","add"),n=b(t,"b","add");[s,n]=Ce(s,n);const i=(o,a)=>{const l=o.add(s,n);return a([s,n]),l},r={a:s,b:n};return v.runKernelFunc(i,r,null,Zn)}const $=S({add_:eD});function tD(e,t){let s=b(e,"a","floorDiv"),n=b(t,"b","floorDiv");[s,n]=Ce(s,n);const i=(o,a)=>{const l=o.floorDiv(s,n);return a([s,n]),l},r={a:s,b:n};return v.runKernelFunc(i,r,null,Xc)}const ul=S({floorDiv_:tD});function sD(e,t){let s=b(e,"a","div"),n=b(t,"b","div");if([s,n]=Ce(s,n),s.dtype==="int32"&&n.dtype==="int32")return ul(s,n);const i=(a,l)=>{const c=a.realDivide(s,n);return l([s,n]),c},r={a:s,b:n},o={};return v.runKernelFunc(i,r,null,ei,o)}const Z=S({div_:sD});function nD(e,t){let s=b(e,"a","mul"),n=b(t,"b","mul");[s,n]=Ce(s,n);const i=(o,a)=>{const l=o.multiply(s,n);return a([s,n]),l},r={a:s,b:n};return v.runKernelFunc(i,r,null,_r)}const R=S({mul_:nD});function iD(e){const t=b(e,"x","abs"),s={x:t};return v.runKernelFunc((n,i)=>(i([t]),t.dtype==="complex64"?n.complexAbs(t):n.abs(t)),s,null,_o)}const et=S({abs_:iD});function rD(e){const t=b(e,"x","acos"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.acos(t);return i([t]),r},s,null,dr)}const Uh=S({acos_:rD});function oD(e){const t=b(e,"x","acosh"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.acosh(t);return i([t]),r},s,null,mr)}const $h=S({acosh_:oD});function aD(e){I(Array.isArray(e),()=>"The argument passed to tf.addN() must be a list of tensors"),I(e.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`);const t=e.map((r,o)=>b(r,`tensors${o}`,"addN")),s=t[0];t.forEach(r=>{if(r.dtype!==s.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")}),t.forEach(r=>{if(!Nt(r.shape,s.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});const n=(r,o)=>{const a=r.addN(t);return o(t),a},i=t;return v.runKernelFunc(n,i,null,Mc)}const Wh=S({addN_:aD});function fb(e,t){for(let s=0;se[r]);return[s,i]}function wt(e,t){const s=t.map(n=>1);return hI(e,s,t)}function lD(e,t,s){I(fb(t,s),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${s} input.`)}function dt(e,t){if(fb(e,t))return null;const s=[];for(let n=0;ns.push(n)),s}function Jo(e){return e.map((t,s)=>[s,t]).sort((t,s)=>t[1]-s[1]).map(t=>t[0])}function qt(e,t){const s=[];for(let n=t-e;n{const l=Ne(t,n.shape);let c=l;const p=dt(c,n.rank);p!=null&&(n=se(n,p),c=qt(c.length,n.rank));const u=a.all(n,c);if(s){const h=wt(u.shape,l);return O(u,h)}return u},r={x:n},o={axis:t,keepDims:s};return v.runKernelFunc(i,r,null,ty,o)}const hl=S({all_:cD});function pD(e,t=null,s=!1){let n=b(e,"x","any","bool");const i=a=>{const l=Ne(t,n.shape);let c=l;const p=dt(c,n.rank);p!=null&&(n=se(n,p),c=qt(c.length,n.rank));const u=a.any(n,c);if(s){const h=wt(u.shape,l);return O(u,h)}return u},r={x:n},o={axis:t,keepDims:s};return v.runKernelFunc(i,r,null,sy,o)}const Zo=S({any_:pD});function uD(e,t=0){let s=b(e,"x","argMax");const n=(o,a)=>{a([s]);let l=Ne(t,s.shape);const c=dt(l,s.rank);return c!=null&&(s=se(s,c),l=qt(l.length,s.rank)),o.argMax(s,l[0])},i={x:s},r={axis:t};return v.runKernelFunc(n,i,null,Uc,r)}const Qo=S({argMax_:uD});function hD(e,t=0){let s=b(e,"x","argMin");const n=(o,a)=>{a([s]),t==null&&(t=0);let l=Ne(t,s.shape);const c=dt(l,s.rank);return c!=null&&(s=se(s,c),l=qt(l.length,s.rank)),o.argMin(s,l[0])},i={x:s},r={axis:t};return v.runKernelFunc(n,i,null,$c,r)}const zh=S({argMin_:hD});function dD(e){const t=b(e,"x","asin"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.asin(t);return i([t]),r},s,null,fr)}const Ph=S({asin_:dD});function mD(e){const t=b(e,"x","asinh"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.asinh(t);return i([t]),r},s,null,gr)}const Bh=S({asinh_:mD});function fD(e){const t=b(e,"x","atan"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.atan(t);return i([t]),r},s,null,yr)}const jh=S({atan_:fD});function gD(e,t){let s=b(e,"a","atan2"),n=b(t,"b","atan2");[s,n]=Ce(s,n);const i=(o,a)=>{const l=o.atan2(s,n);return a([s,n]),l},r={a:s,b:n};return v.runKernelFunc(i,r,null,ko)}const Vh=S({atan2_:gD});function yD(e){const t=b(e,"x","atanh"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.atanh(t);return i([t]),r},s,null,br)}const Gh=S({atanh_:yD});function bD(e,t,s,n,i="NHWC",r){const o=e[3],a=[...t,o],l=qr(i);return rs(e,a,s,r,n,null,null,l)}function Wn(e,t,s,n,i,r,o="channelsLast"){const[a,l]=qh(t);let c;if(o==="channelsLast")c=[a,l,e[3],e[3]];else if(o==="channelsFirst")c=[a,l,e[1],e[1]];else throw new Error(`Unknown dataFormat ${o}`);return rs(e,c,s,n,i,r,!1,o)}function Fi(e,t,s,n,i,r,o="NDHWC"){const[a,l,c]=yb(t);let p,u;if(o==="NDHWC")u="channelsLast",p=[a,l,c,e[4],e[4]];else if(o==="NCDHW")u="channelsFirst",p=[a,l,c,e[1],e[1]];else throw new Error(`Unknown dataFormat ${o}`);return Hr(e,p,s,n,i,!1,u,r)}function rs(e,t,s,n,i,r,o=!1,a="channelsLast"){let[l,c,p,u]=[-1,-1,-1,-1];if(a==="channelsLast")[l,c,p,u]=e;else if(a==="channelsFirst")[l,u,c,p]=e;else throw new Error(`Unknown dataFormat ${a}`);const[h,d,,m]=t,[f,g]=qh(s),[y,w]=qh(n),x=dl(h,y),T=dl(d,w),{padInfo:A,outHeight:_,outWidth:E}=wD(i,c,p,f,g,x,T,r,a),F=o?m*u:m;let D;return a==="channelsFirst"?D=[l,F,_,E]:a==="channelsLast"&&(D=[l,_,E,F]),{batchSize:l,dataFormat:a,inHeight:c,inWidth:p,inChannels:u,outHeight:_,outWidth:E,outChannels:F,padInfo:A,strideHeight:f,strideWidth:g,filterHeight:h,filterWidth:d,effectiveFilterHeight:x,effectiveFilterWidth:T,dilationHeight:y,dilationWidth:w,inShape:e,outShape:D,filterShape:t}}function Hr(e,t,s,n,i,r=!1,o="channelsLast",a){let[l,c,p,u,h]=[-1,-1,-1,-1,-1];if(o==="channelsLast")[l,c,p,u,h]=e;else if(o==="channelsFirst")[l,h,c,p,u]=e;else throw new Error(`Unknown dataFormat ${o}`);const[d,m,f,,g]=t,[y,w,x]=yb(s),[T,A,_]=yb(n),E=dl(d,T),F=dl(m,A),D=dl(f,_),{padInfo:M,outDepth:P,outHeight:B,outWidth:Y}=xD(i,c,p,u,y,w,x,E,F,D,a),q=r?g*h:g;let K;return o==="channelsFirst"?K=[l,q,P,B,Y]:o==="channelsLast"&&(K=[l,P,B,Y,q]),{batchSize:l,dataFormat:o,inDepth:c,inHeight:p,inWidth:u,inChannels:h,outDepth:P,outHeight:B,outWidth:Y,outChannels:q,padInfo:M,strideDepth:y,strideHeight:w,strideWidth:x,filterDepth:d,filterHeight:m,filterWidth:f,effectiveFilterDepth:E,effectiveFilterHeight:F,effectiveFilterWidth:D,dilationDepth:T,dilationHeight:A,dilationWidth:_,inShape:e,outShape:K,filterShape:t}}function LD(e,t,s,n,i){n==null&&(n=bb(e,t,s));const r=e[0],o=e[1],a=ea((r-t+2*n)/s+1,i);I(De(a),()=>`The output # of rows (${a}) must be an integer. Change the stride and/or zero pad parameters`);const l=ea((o-t+2*n)/s+1,i);return I(De(l),()=>`The output # of columns (${l}) must be an integer. Change the stride and/or zero pad parameters`),[a,l]}function SD(e,t,s,n,i,r){i==null&&(i=bb(e,t,n));const o=e[0],a=e[1],l=e[2],c=ea((o-t+2*i)/n+1,r);I(De(c),()=>`The output # of depths (${c}) must be an integer. Change the stride and/or zero pad parameters`);const p=ea((a-t+2*i)/n+1,r);I(De(p),()=>`The output # of rows (${p}) must be an integer. Change the stride and/or zero pad parameters`);const u=ea((l-t+2*i)/n+1,r);return I(De(u),()=>`The output # of columns (${u}) must be an integer. Change the stride and/or zero pad parameters`),[c,p,u,s]}function bb(e,t,s,n=1){const i=dl(t,n);return Math.floor((e[0]*(s-1)-s+i)/2)}function qh(e){return typeof e=="number"?[e,e,e]:e.length===2?[e[0],e[1],1]:e}function yb(e){return typeof e=="number"?[e,e,e]:e}function dl(e,t){return t<=1?e:e+(e-1)*(t-1)}function wD(e,t,s,n,i,r,o,a,l){let c,p,u;if(typeof e=="number"){const h=e===0?"VALID":"NUMBER";c={top:e,bottom:e,left:e,right:e,type:h};const d=LD([t,s],r,n,e,a);p=d[0],u=d[1]}else if(e==="same"){p=Math.ceil(t/n),u=Math.ceil(s/i);const h=Math.max(0,(p-1)*n+r-t),d=Math.max(0,(u-1)*i+o-s),m=Math.floor(h/2),f=h-m,g=Math.floor(d/2),y=d-g;c={top:m,bottom:f,left:g,right:y,type:"SAME"}}else if(e==="valid")c={top:0,bottom:0,left:0,right:0,type:"VALID"},p=Math.ceil((t-r+1)/n),u=Math.ceil((s-o+1)/i);else if(typeof e=="object"){const h=l==="channelsLast"?e[1][0]:e[2][0],d=l==="channelsLast"?e[1][1]:e[2][1],m=l==="channelsLast"?e[2][0]:e[3][0],f=l==="channelsLast"?e[2][1]:e[3][1],g=h===0&&d===0&&m===0&&f===0?"VALID":"EXPLICIT";c={top:h,bottom:d,left:m,right:f,type:g},p=ea((t-r+h+d)/n+1,a),u=ea((s-o+m+f)/i+1,a)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:c,outHeight:p,outWidth:u}}function xD(e,t,s,n,i,r,o,a,l,c,p){let u,h,d,m;if(typeof e=="number"){const f=e===0?"VALID":"NUMBER";u={top:e,bottom:e,left:e,right:e,front:e,back:e,type:f};const g=SD([t,s,n,1],a,1,i,e,p);h=g[0],d=g[1],m=g[2]}else if(e==="same"){h=Math.ceil(t/i),d=Math.ceil(s/r),m=Math.ceil(n/o);const f=(h-1)*i+a-t,g=(d-1)*r+l-s,y=(m-1)*o+c-n,w=Math.floor(f/2),x=f-w,T=Math.floor(g/2),A=g-T,_=Math.floor(y/2),E=y-_;u={top:T,bottom:A,left:_,right:E,front:w,back:x,type:"SAME"}}else if(e==="valid")u={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},h=Math.ceil((t-a+1)/i),d=Math.ceil((s-l+1)/r),m=Math.ceil((n-c+1)/o);else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:u,outDepth:h,outHeight:d,outWidth:m}}function ea(e,t){if(!t)return e;switch(t){case"round":return Math.round(e);case"ceil":return Math.ceil(e);case"floor":return Math.floor(e);default:throw new Error(`Unknown roundingMode ${t}`)}}function Ks(e){const[t,s,n]=qh(e);return t===1&&s===1&&n===1}function tt(e,t){return Ks(e)||Ks(t)}function qr(e){if(e==="NHWC")return"channelsLast";if(e==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function ID(e,t,s,n,i){const r=b(e,"x","avgPool","float32"),o=1;I(tt(s,o),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`);let a=r,l=!1;r.rank===3&&(l=!0,a=O(r,[1,r.shape[0],r.shape[1],r.shape[2]])),I(a.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${a.rank}.`),i!=null&&I(De(n),()=>`Error in avgPool: pad must be an integer when using, dimRoundingMode ${i} but got pad ${n}.`);const c=(d,m)=>{const f=Wn(a.shape,t,s,1,n,i);return m([a]),f.filterWidth===1&&f.filterHeight===1&&Nt(f.inShape,f.outShape)?a.clone():d.avgPool(a,f)},p={x:a},u={filterSize:t,strides:s,pad:n,dimRoundingMode:i};let h=v.runKernelFunc(c,p,null,Ti,u);return h=G(h,r.dtype),l?O(h,[h.shape[1],h.shape[2],h.shape[3]]):h}const ds=S({avgPool_:ID});function vD(e,t,s,n,i,r="NDHWC",o){o==null?o=[1,1,1]:It("dilations is deprecated, this field will be gone in v3.0.0.");const a=b(e,"x","avgPool3d","float32");let l=a,c=!1;a.rank===4&&(c=!0,l=O(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),I(l.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${l.rank}.`),I(r==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${r}`),I(tt(s,o),()=>`Error in avgPool3d: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`),i!=null&&I(De(n),()=>`Error in avgPool3d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${n}.`);const p=(m,f)=>{o==null&&(o=[1,1,1]);const g=Fi(l.shape,t,s,o,n,i,r);return f([l]),m.avgPool3d(l,g)},u={x:l},h={filterSize:t,strides:s,pad:n,dimRoundingMode:i,dataFormat:r,dilations:o};let d=v.runKernelFunc(p,u,null,Wc,h);return d=G(d,l.dtype),c?O(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}const ml=S({avgPool3d_:vD});function wb(e,t){const s=e[0].length;e.forEach((i,r)=>{I(i.length===s,()=>`Error in concat${s}D: rank of tensors[${r}] must be the same as the rank of the rest (${s})`)}),I(t>=0&&t`Error in concat${s}D: axis must be between 0 and ${s-1}.`);const n=e[0];e.forEach((i,r)=>{for(let o=0;o`Error in concat${s}D: Shape of tensors[${r}] (${i}) does not match the shape of the rest (${n}) along the non-concatenated axis ${r}.`)})}function xb(e,t){const s=e[0].slice();for(let n=1;n=1,()=>"Pass at least one tensor to concat");let s=Di(e,"tensors","concat");s[0].dtype==="complex64"&&s.forEach(o=>{if(o.dtype!=="complex64")throw new Error(`Cannot concatenate complex64 tensors with a tensor - with dtype ${o.dtype}. `)});const n=(o,a)=>{const l=Ne(t,s[0].shape)[0],c=xb(s.map(h=>h.shape),l);if(We(c)===0)return ze([],c);if(s=s.filter(h=>h.size>0),s.length===1)return s[0];const p=s.map(h=>h.shape);wb(p,l);const u=o.concat(s,l);return a(s),u},i=s,r={axis:t};return v.runKernelFunc(n,i,null,Fo,r)}const be=S({concat_:TD});function AD(e){const t=b(e,"x","sigmoid"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.sigmoid(t);return i([r]),r},s,null,Wr)}const os=S({sigmoid_:AD});function ND(e,t,s){const n=b(e,"x","slice");if(n.rank===0)throw new Error("Slicing scalar is not possible");const i=(a,l)=>{const[c,p]=jp(n,t,s);return ob(n,c,p),l([n]),a.slice(n,c,p)},r={x:n},o={begin:t,size:s};return v.runKernelFunc(i,r,null,jo,o)}const he=S({slice_:ND});function CD(e){const t=b(e,"x","tanh"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.tanh(t);return i([r]),r},s,null,jr)}const Mi=S({tanh_:CD});function RD(e,t,s,n,i,r){const o=b(e,"forgetBias","basicLSTMCell"),a=b(t,"lstmKernel","basicLSTMCell"),l=b(s,"lstmBias","basicLSTMCell"),c=b(n,"data","basicLSTMCell"),p=b(i,"c","basicLSTMCell"),u=b(r,"h","basicLSTMCell"),h=be([c,u],1),d=Te(h,a),m=$(d,l),f=m.shape[0],g=m.shape[1]/4,y=[f,g],w=he(m,[0,0],y),x=he(m,[0,g],y),T=he(m,[0,g*2],y),A=he(m,[0,g*3],y),_=$(R(os(w),Mi(x)),R(p,os($(o,T)))),E=R(Mi(_),os(A));return[_,E]}const dI=S({basicLSTMCell_:RD});function OD(e,t,s){const n=b(e,"x","batchToSpaceND"),i=t.reduce((l,c)=>l*c);I(n.rank>=1+t.length,()=>`input rank is ${n.rank} but should be > than blockShape.length ${t.length}`),I(s.length===t.length,()=>`crops.length is ${s.length} but should be equal to blockShape.length ${t.length}`),I(n.shape[0]%i===0,()=>`input tensor batch is ${n.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${i}`);const r=l=>l.batchToSpaceND(n,t,s),o={x:n},a={blockShape:t,crops:s};return v.runKernelFunc(r,o,null,Pc,a)}const Yr=S({batchToSpaceND_:OD});function mI(e){let t;return e.rank===0||e.rank===1?t=O(e,[1,1,1,e.size]):e.rank===2?t=O(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?t=O(e,[1,e.shape[0],e.shape[1],e.shape[2]]):t=e,t}function ED(e,t,s,n,i,r){r==null&&(r=.001);const o=b(e,"x","batchNorm"),a=b(t,"mean","batchNorm"),l=b(s,"variance","batchNorm");let c;i!=null&&(c=b(i,"scale","batchNorm"));let p;n!=null&&(p=b(n,"offset","batchNorm")),I(a.rank===l.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),I(p==null||a.rank===p.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),I(c==null||a.rank===c.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");const u=mI(o),h=(g,y)=>(y([u,a,l,c]),g.batchNorm(u,Hh(a),Hh(l),Hh(p),Hh(c),r)),d={x:u,scale:c,offset:p,mean:a,variance:l},m={varianceEpsilon:r},f=v.runKernelFunc(h,d,null,Ni,m);return O(f,o.shape)}function Hh(e){return e==null?null:e.rank===0?O(e,[e.size]):e.rank===1?e:e.rank===2?O(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?O(e,[1,e.shape[0],e.shape[1],e.shape[2]]):e}const Xs=S({batchNorm_:ED});function _D(e,t,s,n,i,r){const o=b(e,"x","batchNorm"),a=b(t,"mean","batchNorm"),l=b(s,"variance","batchNorm");let c;i!=null&&(c=b(i,"scale","batchNorm"));let p;return n!=null&&(p=b(n,"offset","batchNorm")),I(o.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${o.rank}.`),I(a.rank===2||a.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${a.rank}.`),I(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${l.rank}.`),c!=null&&I(c.rank===2||c.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${c.rank}.`),p!=null&&I(p.rank===2||p.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${p.rank}.`),Xs(o,a,l,p,c,r)}const Yh=S({batchNorm2d_:_D});function kD(e,t,s,n,i,r){const o=b(e,"x","batchNorm"),a=b(t,"mean","batchNorm"),l=b(s,"variance","batchNorm");let c;i!=null&&(c=b(i,"scale","batchNorm"));let p;return n!=null&&(p=b(n,"offset","batchNorm")),I(o.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${o.rank}.`),I(a.rank===3||a.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${a.rank}.`),I(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${l.rank}.`),c!=null&&I(c.rank===3||c.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${c.rank}.`),p!=null&&I(p.rank===3||p.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${p.rank}.`),Xs(o,a,l,p,c,r)}const Kh=S({batchNorm3d_:kD});function DD(e,t,s,n,i,r){const o=b(e,"x","batchNorm"),a=b(t,"mean","batchNorm"),l=b(s,"variance","batchNorm");let c;i!=null&&(c=b(i,"scale","batchNorm"));let p;return n!=null&&(p=b(n,"offset","batchNorm")),I(o.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${o.rank}.`),I(a.rank===4||a.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${a.rank}.`),I(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${l.rank}.`),c!=null&&I(c.rank===4||c.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${c.rank}.`),p!=null&&I(p.rank===4||p.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${p.rank}.`),Xs(o,a,l,p,c,r)}const Xh=S({batchNorm4d_:DD});function FD(e,t){let s=b(e,"broadcastTo","x");const n=s.shape;if(t.some(p=>!(p>0)||p%1!==0))throw new Error(`broadcastTo(): Invalid broadcast shape [${t}].`);if(t.lengths.rank){const p=s.shape.slice();for(;p.length=0;p--)if(i[p]===t[p])r[p]=1;else if(s.shape[p]!==1)throw new Error(`broadcastTo(): [${n}] cannot be broadcast to [${t}].`);const o=r.map((p,u)=>p>1?u:-1).filter(p=>p>=0);if(o.length===0)return Fs(s);const a=p=>p.tile(s,r),l={x:s},c={shape:t,inputShape:i};return v.runKernelFunc(a,l,null,Bc,c)}const ta=S({broadcastTo_:FD});function MD(e){const t=b(e,"x","ceil"),s={x:t};return v.runKernelFunc(n=>n.ceil(t),s,null,wr)}const Jh=S({ceil_:MD});function UD(e,t,s){const n=b(e,"x","clipByValue");I(t<=s,()=>`Error in clip: min (${t}) must be less than or equal to max (${s}).`);const i={x:n},r={clipValueMin:t,clipValueMax:s};return v.runKernelFunc((o,a)=>{const l=o.clip(n,t,s);return a([n]),l},i,null,xr,r)}const xt=S({clipByValue_:UD});function $D(e){return be(e,0)}const Zh=S({concat1d_:$D});function WD(e,t){return be(e,t)}const Qh=S({concat2d_:WD});function zD(e,t){return be(e,t)}const ed=S({concat3d_:zD});function PD(e,t){return be(e,t)}const td=S({concat4d_:PD});function BD(e,t,s,n,i="NHWC",r=[1,1],o){const a=b(e,"x","conv2d"),l=b(t,"filter","conv2d");let c=a,p=!1;a.rank===3&&(p=!0,c=O(a,[1,a.shape[0],a.shape[1],a.shape[2]])),I(c.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${c.rank}.`),I(l.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${l.rank}.`),o!=null&&I(De(n),()=>`Error in conv2d: pad must be an integer when using, dimRoundingMode ${o} but got pad ${n}.`);const u=i==="NHWC"?c.shape[3]:c.shape[1];I(u===l.shape[2],()=>`Error in conv2d: depth of input (${u}) must match input depth for filter ${l.shape[2]}.`),I(tt(s,r),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);const h=(g,y)=>{const w=qr(i),x=rs(c.shape,l.shape,s,r,n,o,!1,w),T=g.conv2d(c,l,x);return y([c,l]),T},d={x:c,filter:l},m={strides:s,pad:n,dataFormat:i,dilations:r,dimRoundingMode:o},f=v.runKernelFunc(h,d,null,Vc,m);return p?O(f,[f.shape[1],f.shape[2],f.shape[3]]):f}const rt=S({conv2d_:BD});function jD(e,t,s,n,i="NWC",r=1,o){const a=b(e,"x","conv1d"),l=b(t,"filter","conv1d");let c=a,p=!1;a.rank===2&&(p=!0,c=O(a,[1,a.shape[0],a.shape[1]])),I(c.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${c.rank}.`),I(l.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${l.rank}.`),o!=null&&I(De(n),()=>`Error in conv1d: pad must be an integer when using, dimRoundingMode ${o} but got pad ${n}.`),I(c.shape[2]===l.shape[1],()=>`Error in conv1d: depth of input (${c.shape[2]}) must match input depth for filter ${l.shape[1]}.`),I(tt(s,r),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${s} and dilation '${r}'`),I(i==="NWC",()=>`Error in conv1d: got dataFormat of ${i} but only NWC is currently supported.`);const u=O(l,[1,l.shape[0],l.shape[1],l.shape[2]]),h=O(c,[c.shape[0],1,c.shape[1],c.shape[2]]),d=[1,s],m=[1,r],f="NHWC",g=rt(h,u,d,n,f,m,o);return p?O(g,[g.shape[2],g.shape[3]]):O(g,[g.shape[0],g.shape[2],g.shape[3]])}const fl=S({conv1d_:jD});function VD(e,t,s,n,i,r="NHWC",o){I(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let a=e,l=t,c=!1;t.rank===3&&(c=!0,l=O(t,[1,t.shape[0],t.shape[1],t.shape[2]]),a=[1,e[0],e[1],e[2]]),I(a.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${a.length}.`),I(l.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`),I(s.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${s.rank}`);const p=r==="NHWC"?a[3]:a[1],u=r==="NHWC"?l.shape[3]:l.shape[1];I(p===s.shape[2],()=>`Error in conv2dDerInput: depth of input (${p}) must match input depth for filter ${s.shape[2]}.`),I(u===s.shape[3],()=>`Error in conv2dDerInput: depth of output (${u}) must match output depth for filter ${s.shape[3]}.`),o!=null&&I(De(i),()=>`Error in conv2dDerInput: pad must be an integer when using, dimRoundingMode ${o} but got pad ${i}.`);const h=(g,y)=>{const w=1,x=qr(r),T=rs(a,s.shape,n,w,i,o,!1,x),A=g.conv2dDerInput(l,s,T);return y([l,s]),A},d={dy:l,filter:s},m={strides:n,pad:i,dataFormat:r,dimRoundingMode:o,inputShape:a},f=v.runKernelFunc(h,d,null,Gc,m);return c?O(f,[f.shape[1],f.shape[2],f.shape[3]]):f}const gl=S({conv2DBackpropInput_:VD});function GD(e,t,s,n,i,r){const o=b(e,"x","conv2dTranspose"),a=b(t,"filter","conv2dTranspose");return gl(s,o,a,n,i,"NHWC",r)}const yl=S({conv2dTranspose_:GD});function qD(e,t,s,n,i="NDHWC",r=[1,1,1]){const o=b(e,"x","conv3d"),a=b(t,"filter","conv3d");let l=o,c=!1;o.rank===4&&(c=!0,l=O(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]])),I(l.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`),I(a.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${a.rank}.`),I(l.shape[4]===a.shape[3],()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${a.shape[3]}.`),I(tt(s,r),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`),I(i==="NDHWC",()=>`Error in conv3d: got dataFormat of ${i} but only NDHWC is currently supported.`);const p=(m,f)=>{const g=Hr(l.shape,a.shape,s,r,n),y=m.conv3d(l,a,g);return f([l,a]),y},u={x:l,filter:a},h={strides:s,pad:n,dataFormat:i,dilations:r},d=v.runKernelFunc(p,u,null,qc,h);return c?O(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}const bl=S({conv3d_:qD});function HD(e,t,s,n,i){I(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let r=e,o=t,a=!1;t.rank===4&&(a=!0,o=O(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),r=[1,e[0],e[1],e[2],e[3]]);const l=r[4],c=o.shape[4];I(r.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${r.length}.`),I(o.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${o.rank}`),I(s.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${s.rank}`),I(l===s.shape[3],()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${s.shape[3]}.`),I(c===s.shape[4],()=>`Error in conv3dDerInput: depth of output (${c}) must match output depth for filter ${s.shape[4]}.`);const p=m=>{const f=1,g=Hr(r,s.shape,n,f,i);return m.conv3dDerInput(o,s,g)},u={dy:o},h={pad:i},d=v.runKernelFunc(p,u,null,oy,h);return a?O(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}const sd=S({conv3DBackpropInput_:HD});function YD(e,t,s,n,i){const r=b(e,"x","conv3dTranspose"),o=b(t,"filter","conv3dTranspose");return sd(s,r,o,n,i)}const fI=S({conv3dTranspose_:YD});function KD(e){const t=b(e,"x","cos"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.cos(t);return i([t]),r},s,null,Qn)}const Kr=S({cos_:KD});function XD(e){const t=b(e,"x","cosh"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.cosh(t);return i([t]),r},s,null,Lr)}const wl=S({cosh_:XD});function JD(e,t=0,s=!1,n=!1){const i=b(e,"x","cumsum"),r=(l,c)=>{const p=dt([t],i.rank);let u=i;p!=null&&(u=se(i,p));const h=qt(1,i.rank)[0];let d=l.cumsum(u,h,s,n);if(c([i]),p!=null){const m=Jo(p);d=se(d,m)}return d},o={x:i},a={axis:t,exclusive:s,reverse:n};return v.runKernelFunc(r,o,null,Hc,a)}const xl=S({cumsum_:JD});function ZD(e,t,s="NHWC"){const n=b(e,"x","depthToSpace"),i=s==="NHWC"?n.shape[1]:n.shape[2],r=s==="NHWC"?n.shape[2]:n.shape[3],o=s==="NHWC"?n.shape[3]:n.shape[1];I(i*t>=0,()=>`Negative dimension size caused by overflow when multiplying +Expected: ${r}.`)}}function Mk(e,t){e().then(()=>t.fail(),()=>t())}function Uk(e,t){const s=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return Un(e)||Un(e[0])||Un(t)||Un(t[0])?ub(e,s,(n,i)=>n==i):ub(e,t,(n,i)=>hb(n,i,0))}function $k(e,t,s){if(s==null&&(s=pb()),!hb(e,t,s))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`)}function hb(e,t,s){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>s)}function Wk(e,t,s){for(let n=0;ns)throw new Error(`Value out of range:${e[n]} low: ${t}, high: ${s}`)}function zk(e,t){expect(new Float32Array(e)).toEqual(new Float32Array(t))}const db="2.6.0";function Pk(){W().set("PROD",!0)}function Bk(){W().set("DEBUG",!0)}function jk(){W().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function It(e){W().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}FS(It);function Vk(){v.disposeVariables()}function Us(){return v}function pl(){return v.memory()}function Gk(e){return v.profile(e)}function C(e,t){return v.tidy(e,t)}function ce(e){const t=Up(e);t.forEach(s=>s.dispose())}function pt(e){return v.keep(e)}function qk(e){return v.time(e)}function pI(e){return v.setBackend(e)}function Hk(){return v.ready()}function Yk(){return v.backendName}function Kk(e){v.removeBackend(e)}function Xk(e){return v.findBackend(e)}function Jk(e){return v.findBackendFactory(e)}function Vp(e,t,s=1){return v.registerBackend(e,t,s)}function mb(){return v.backend}function Zk(e,t){W().setPlatform(e,t)}function Qk(e,t){let s=b(e,"a","add"),n=b(t,"b","add");[s,n]=Ce(s,n);const i=(o,a)=>{const l=o.add(s,n);return a([s,n]),l},r={a:s,b:n};return v.runKernelFunc(i,r,null,Zn)}const $=S({add_:Qk});function eD(e,t){let s=b(e,"a","floorDiv"),n=b(t,"b","floorDiv");[s,n]=Ce(s,n);const i=(o,a)=>{const l=o.floorDiv(s,n);return a([s,n]),l},r={a:s,b:n};return v.runKernelFunc(i,r,null,Xc)}const ul=S({floorDiv_:eD});function tD(e,t){let s=b(e,"a","div"),n=b(t,"b","div");if([s,n]=Ce(s,n),s.dtype==="int32"&&n.dtype==="int32")return ul(s,n);const i=(a,l)=>{const c=a.realDivide(s,n);return l([s,n]),c},r={a:s,b:n},o={};return v.runKernelFunc(i,r,null,ei,o)}const Z=S({div_:tD});function sD(e,t){let s=b(e,"a","mul"),n=b(t,"b","mul");[s,n]=Ce(s,n);const i=(o,a)=>{const l=o.multiply(s,n);return a([s,n]),l},r={a:s,b:n};return v.runKernelFunc(i,r,null,_r)}const R=S({mul_:sD});function nD(e){const t=b(e,"x","abs"),s={x:t};return v.runKernelFunc((n,i)=>(i([t]),t.dtype==="complex64"?n.complexAbs(t):n.abs(t)),s,null,_o)}const et=S({abs_:nD});function iD(e){const t=b(e,"x","acos"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.acos(t);return i([t]),r},s,null,dr)}const Uh=S({acos_:iD});function rD(e){const t=b(e,"x","acosh"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.acosh(t);return i([t]),r},s,null,mr)}const $h=S({acosh_:rD});function oD(e){I(Array.isArray(e),()=>"The argument passed to tf.addN() must be a list of tensors"),I(e.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`);const t=e.map((r,o)=>b(r,`tensors${o}`,"addN")),s=t[0];t.forEach(r=>{if(r.dtype!==s.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")}),t.forEach(r=>{if(!Nt(r.shape,s.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});const n=(r,o)=>{const a=r.addN(t);return o(t),a},i=t;return v.runKernelFunc(n,i,null,Mc)}const Wh=S({addN_:oD});function fb(e,t){for(let s=0;se[r]);return[s,i]}function wt(e,t){const s=t.map(n=>1);return uI(e,s,t)}function aD(e,t,s){I(fb(t,s),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${s} input.`)}function dt(e,t){if(fb(e,t))return null;const s=[];for(let n=0;ns.push(n)),s}function Jo(e){return e.map((t,s)=>[s,t]).sort((t,s)=>t[1]-s[1]).map(t=>t[0])}function qt(e,t){const s=[];for(let n=t-e;n{const l=Ne(t,n.shape);let c=l;const p=dt(c,n.rank);p!=null&&(n=se(n,p),c=qt(c.length,n.rank));const u=a.all(n,c);if(s){const h=wt(u.shape,l);return O(u,h)}return u},r={x:n},o={axis:t,keepDims:s};return v.runKernelFunc(i,r,null,ty,o)}const hl=S({all_:lD});function cD(e,t=null,s=!1){let n=b(e,"x","any","bool");const i=a=>{const l=Ne(t,n.shape);let c=l;const p=dt(c,n.rank);p!=null&&(n=se(n,p),c=qt(c.length,n.rank));const u=a.any(n,c);if(s){const h=wt(u.shape,l);return O(u,h)}return u},r={x:n},o={axis:t,keepDims:s};return v.runKernelFunc(i,r,null,sy,o)}const Zo=S({any_:cD});function pD(e,t=0){let s=b(e,"x","argMax");const n=(o,a)=>{a([s]);let l=Ne(t,s.shape);const c=dt(l,s.rank);return c!=null&&(s=se(s,c),l=qt(l.length,s.rank)),o.argMax(s,l[0])},i={x:s},r={axis:t};return v.runKernelFunc(n,i,null,Uc,r)}const Qo=S({argMax_:pD});function uD(e,t=0){let s=b(e,"x","argMin");const n=(o,a)=>{a([s]),t==null&&(t=0);let l=Ne(t,s.shape);const c=dt(l,s.rank);return c!=null&&(s=se(s,c),l=qt(l.length,s.rank)),o.argMin(s,l[0])},i={x:s},r={axis:t};return v.runKernelFunc(n,i,null,$c,r)}const zh=S({argMin_:uD});function hD(e){const t=b(e,"x","asin"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.asin(t);return i([t]),r},s,null,fr)}const Ph=S({asin_:hD});function dD(e){const t=b(e,"x","asinh"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.asinh(t);return i([t]),r},s,null,gr)}const Bh=S({asinh_:dD});function mD(e){const t=b(e,"x","atan"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.atan(t);return i([t]),r},s,null,yr)}const jh=S({atan_:mD});function fD(e,t){let s=b(e,"a","atan2"),n=b(t,"b","atan2");[s,n]=Ce(s,n);const i=(o,a)=>{const l=o.atan2(s,n);return a([s,n]),l},r={a:s,b:n};return v.runKernelFunc(i,r,null,ko)}const Vh=S({atan2_:fD});function gD(e){const t=b(e,"x","atanh"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.atanh(t);return i([t]),r},s,null,br)}const Gh=S({atanh_:gD});function yD(e,t,s,n,i="NHWC",r){const o=e[3],a=[...t,o],l=qr(i);return rs(e,a,s,r,n,null,null,l)}function Wn(e,t,s,n,i,r,o="channelsLast"){const[a,l]=qh(t);let c;if(o==="channelsLast")c=[a,l,e[3],e[3]];else if(o==="channelsFirst")c=[a,l,e[1],e[1]];else throw new Error(`Unknown dataFormat ${o}`);return rs(e,c,s,n,i,r,!1,o)}function Fi(e,t,s,n,i,r,o="NDHWC"){const[a,l,c]=yb(t);let p,u;if(o==="NDHWC")u="channelsLast",p=[a,l,c,e[4],e[4]];else if(o==="NCDHW")u="channelsFirst",p=[a,l,c,e[1],e[1]];else throw new Error(`Unknown dataFormat ${o}`);return Hr(e,p,s,n,i,!1,u,r)}function rs(e,t,s,n,i,r,o=!1,a="channelsLast"){let[l,c,p,u]=[-1,-1,-1,-1];if(a==="channelsLast")[l,c,p,u]=e;else if(a==="channelsFirst")[l,u,c,p]=e;else throw new Error(`Unknown dataFormat ${a}`);const[h,d,,m]=t,[f,g]=qh(s),[y,w]=qh(n),x=dl(h,y),T=dl(d,w),{padInfo:A,outHeight:_,outWidth:E}=bD(i,c,p,f,g,x,T,r,a),F=o?m*u:m;let D;return a==="channelsFirst"?D=[l,F,_,E]:a==="channelsLast"&&(D=[l,_,E,F]),{batchSize:l,dataFormat:a,inHeight:c,inWidth:p,inChannels:u,outHeight:_,outWidth:E,outChannels:F,padInfo:A,strideHeight:f,strideWidth:g,filterHeight:h,filterWidth:d,effectiveFilterHeight:x,effectiveFilterWidth:T,dilationHeight:y,dilationWidth:w,inShape:e,outShape:D,filterShape:t}}function Hr(e,t,s,n,i,r=!1,o="channelsLast",a){let[l,c,p,u,h]=[-1,-1,-1,-1,-1];if(o==="channelsLast")[l,c,p,u,h]=e;else if(o==="channelsFirst")[l,h,c,p,u]=e;else throw new Error(`Unknown dataFormat ${o}`);const[d,m,f,,g]=t,[y,w,x]=yb(s),[T,A,_]=yb(n),E=dl(d,T),F=dl(m,A),D=dl(f,_),{padInfo:M,outDepth:P,outHeight:B,outWidth:Y}=wD(i,c,p,u,y,w,x,E,F,D,a),q=r?g*h:g;let K;return o==="channelsFirst"?K=[l,q,P,B,Y]:o==="channelsLast"&&(K=[l,P,B,Y,q]),{batchSize:l,dataFormat:o,inDepth:c,inHeight:p,inWidth:u,inChannels:h,outDepth:P,outHeight:B,outWidth:Y,outChannels:q,padInfo:M,strideDepth:y,strideHeight:w,strideWidth:x,filterDepth:d,filterHeight:m,filterWidth:f,effectiveFilterDepth:E,effectiveFilterHeight:F,effectiveFilterWidth:D,dilationDepth:T,dilationHeight:A,dilationWidth:_,inShape:e,outShape:K,filterShape:t}}function xD(e,t,s,n,i){n==null&&(n=bb(e,t,s));const r=e[0],o=e[1],a=ea((r-t+2*n)/s+1,i);I(De(a),()=>`The output # of rows (${a}) must be an integer. Change the stride and/or zero pad parameters`);const l=ea((o-t+2*n)/s+1,i);return I(De(l),()=>`The output # of columns (${l}) must be an integer. Change the stride and/or zero pad parameters`),[a,l]}function LD(e,t,s,n,i,r){i==null&&(i=bb(e,t,n));const o=e[0],a=e[1],l=e[2],c=ea((o-t+2*i)/n+1,r);I(De(c),()=>`The output # of depths (${c}) must be an integer. Change the stride and/or zero pad parameters`);const p=ea((a-t+2*i)/n+1,r);I(De(p),()=>`The output # of rows (${p}) must be an integer. Change the stride and/or zero pad parameters`);const u=ea((l-t+2*i)/n+1,r);return I(De(u),()=>`The output # of columns (${u}) must be an integer. Change the stride and/or zero pad parameters`),[c,p,u,s]}function bb(e,t,s,n=1){const i=dl(t,n);return Math.floor((e[0]*(s-1)-s+i)/2)}function qh(e){return typeof e=="number"?[e,e,e]:e.length===2?[e[0],e[1],1]:e}function yb(e){return typeof e=="number"?[e,e,e]:e}function dl(e,t){return t<=1?e:e+(e-1)*(t-1)}function bD(e,t,s,n,i,r,o,a,l){let c,p,u;if(typeof e=="number"){const h=e===0?"VALID":"NUMBER";c={top:e,bottom:e,left:e,right:e,type:h};const d=xD([t,s],r,n,e,a);p=d[0],u=d[1]}else if(e==="same"){p=Math.ceil(t/n),u=Math.ceil(s/i);const h=Math.max(0,(p-1)*n+r-t),d=Math.max(0,(u-1)*i+o-s),m=Math.floor(h/2),f=h-m,g=Math.floor(d/2),y=d-g;c={top:m,bottom:f,left:g,right:y,type:"SAME"}}else if(e==="valid")c={top:0,bottom:0,left:0,right:0,type:"VALID"},p=Math.ceil((t-r+1)/n),u=Math.ceil((s-o+1)/i);else if(typeof e=="object"){const h=l==="channelsLast"?e[1][0]:e[2][0],d=l==="channelsLast"?e[1][1]:e[2][1],m=l==="channelsLast"?e[2][0]:e[3][0],f=l==="channelsLast"?e[2][1]:e[3][1],g=h===0&&d===0&&m===0&&f===0?"VALID":"EXPLICIT";c={top:h,bottom:d,left:m,right:f,type:g},p=ea((t-r+h+d)/n+1,a),u=ea((s-o+m+f)/i+1,a)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:c,outHeight:p,outWidth:u}}function wD(e,t,s,n,i,r,o,a,l,c,p){let u,h,d,m;if(typeof e=="number"){const f=e===0?"VALID":"NUMBER";u={top:e,bottom:e,left:e,right:e,front:e,back:e,type:f};const g=LD([t,s,n,1],a,1,i,e,p);h=g[0],d=g[1],m=g[2]}else if(e==="same"){h=Math.ceil(t/i),d=Math.ceil(s/r),m=Math.ceil(n/o);const f=(h-1)*i+a-t,g=(d-1)*r+l-s,y=(m-1)*o+c-n,w=Math.floor(f/2),x=f-w,T=Math.floor(g/2),A=g-T,_=Math.floor(y/2),E=y-_;u={top:T,bottom:A,left:_,right:E,front:w,back:x,type:"SAME"}}else if(e==="valid")u={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},h=Math.ceil((t-a+1)/i),d=Math.ceil((s-l+1)/r),m=Math.ceil((n-c+1)/o);else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:u,outDepth:h,outHeight:d,outWidth:m}}function ea(e,t){if(!t)return e;switch(t){case"round":return Math.round(e);case"ceil":return Math.ceil(e);case"floor":return Math.floor(e);default:throw new Error(`Unknown roundingMode ${t}`)}}function Ks(e){const[t,s,n]=qh(e);return t===1&&s===1&&n===1}function tt(e,t){return Ks(e)||Ks(t)}function qr(e){if(e==="NHWC")return"channelsLast";if(e==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function SD(e,t,s,n,i){const r=b(e,"x","avgPool","float32"),o=1;I(tt(s,o),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`);let a=r,l=!1;r.rank===3&&(l=!0,a=O(r,[1,r.shape[0],r.shape[1],r.shape[2]])),I(a.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${a.rank}.`),i!=null&&I(De(n),()=>`Error in avgPool: pad must be an integer when using, dimRoundingMode ${i} but got pad ${n}.`);const c=(d,m)=>{const f=Wn(a.shape,t,s,1,n,i);return m([a]),f.filterWidth===1&&f.filterHeight===1&&Nt(f.inShape,f.outShape)?a.clone():d.avgPool(a,f)},p={x:a},u={filterSize:t,strides:s,pad:n,dimRoundingMode:i};let h=v.runKernelFunc(c,p,null,Ti,u);return h=G(h,r.dtype),l?O(h,[h.shape[1],h.shape[2],h.shape[3]]):h}const ds=S({avgPool_:SD});function ID(e,t,s,n,i,r="NDHWC",o){o==null?o=[1,1,1]:It("dilations is deprecated, this field will be gone in v3.0.0.");const a=b(e,"x","avgPool3d","float32");let l=a,c=!1;a.rank===4&&(c=!0,l=O(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),I(l.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${l.rank}.`),I(r==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${r}`),I(tt(s,o),()=>`Error in avgPool3d: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`),i!=null&&I(De(n),()=>`Error in avgPool3d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${n}.`);const p=(m,f)=>{o==null&&(o=[1,1,1]);const g=Fi(l.shape,t,s,o,n,i,r);return f([l]),m.avgPool3d(l,g)},u={x:l},h={filterSize:t,strides:s,pad:n,dimRoundingMode:i,dataFormat:r,dilations:o};let d=v.runKernelFunc(p,u,null,Wc,h);return d=G(d,l.dtype),c?O(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}const ml=S({avgPool3d_:ID});function wb(e,t){const s=e[0].length;e.forEach((i,r)=>{I(i.length===s,()=>`Error in concat${s}D: rank of tensors[${r}] must be the same as the rank of the rest (${s})`)}),I(t>=0&&t`Error in concat${s}D: axis must be between 0 and ${s-1}.`);const n=e[0];e.forEach((i,r)=>{for(let o=0;o`Error in concat${s}D: Shape of tensors[${r}] (${i}) does not match the shape of the rest (${n}) along the non-concatenated axis ${r}.`)})}function xb(e,t){const s=e[0].slice();for(let n=1;n=1,()=>"Pass at least one tensor to concat");let s=Di(e,"tensors","concat");s[0].dtype==="complex64"&&s.forEach(o=>{if(o.dtype!=="complex64")throw new Error(`Cannot concatenate complex64 tensors with a tensor + with dtype ${o.dtype}. `)});const n=(o,a)=>{const l=Ne(t,s[0].shape)[0],c=xb(s.map(h=>h.shape),l);if(We(c)===0)return ze([],c);if(s=s.filter(h=>h.size>0),s.length===1)return s[0];const p=s.map(h=>h.shape);wb(p,l);const u=o.concat(s,l);return a(s),u},i=s,r={axis:t};return v.runKernelFunc(n,i,null,Fo,r)}const be=S({concat_:vD});function TD(e){const t=b(e,"x","sigmoid"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.sigmoid(t);return i([r]),r},s,null,Wr)}const os=S({sigmoid_:TD});function AD(e,t,s){const n=b(e,"x","slice");if(n.rank===0)throw new Error("Slicing scalar is not possible");const i=(a,l)=>{const[c,p]=jp(n,t,s);return ob(n,c,p),l([n]),a.slice(n,c,p)},r={x:n},o={begin:t,size:s};return v.runKernelFunc(i,r,null,jo,o)}const he=S({slice_:AD});function ND(e){const t=b(e,"x","tanh"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.tanh(t);return i([r]),r},s,null,jr)}const Mi=S({tanh_:ND});function CD(e,t,s,n,i,r){const o=b(e,"forgetBias","basicLSTMCell"),a=b(t,"lstmKernel","basicLSTMCell"),l=b(s,"lstmBias","basicLSTMCell"),c=b(n,"data","basicLSTMCell"),p=b(i,"c","basicLSTMCell"),u=b(r,"h","basicLSTMCell"),h=be([c,u],1),d=Te(h,a),m=$(d,l),f=m.shape[0],g=m.shape[1]/4,y=[f,g],w=he(m,[0,0],y),x=he(m,[0,g],y),T=he(m,[0,g*2],y),A=he(m,[0,g*3],y),_=$(R(os(w),Mi(x)),R(p,os($(o,T)))),E=R(Mi(_),os(A));return[_,E]}const hI=S({basicLSTMCell_:CD});function RD(e,t,s){const n=b(e,"x","batchToSpaceND"),i=t.reduce((l,c)=>l*c);I(n.rank>=1+t.length,()=>`input rank is ${n.rank} but should be > than blockShape.length ${t.length}`),I(s.length===t.length,()=>`crops.length is ${s.length} but should be equal to blockShape.length ${t.length}`),I(n.shape[0]%i===0,()=>`input tensor batch is ${n.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${i}`);const r=l=>l.batchToSpaceND(n,t,s),o={x:n},a={blockShape:t,crops:s};return v.runKernelFunc(r,o,null,Pc,a)}const Yr=S({batchToSpaceND_:RD});function dI(e){let t;return e.rank===0||e.rank===1?t=O(e,[1,1,1,e.size]):e.rank===2?t=O(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?t=O(e,[1,e.shape[0],e.shape[1],e.shape[2]]):t=e,t}function OD(e,t,s,n,i,r){r==null&&(r=.001);const o=b(e,"x","batchNorm"),a=b(t,"mean","batchNorm"),l=b(s,"variance","batchNorm");let c;i!=null&&(c=b(i,"scale","batchNorm"));let p;n!=null&&(p=b(n,"offset","batchNorm")),I(a.rank===l.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),I(p==null||a.rank===p.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),I(c==null||a.rank===c.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");const u=dI(o),h=(g,y)=>(y([u,a,l,c]),g.batchNorm(u,Hh(a),Hh(l),Hh(p),Hh(c),r)),d={x:u,scale:c,offset:p,mean:a,variance:l},m={varianceEpsilon:r},f=v.runKernelFunc(h,d,null,Ni,m);return O(f,o.shape)}function Hh(e){return e==null?null:e.rank===0?O(e,[e.size]):e.rank===1?e:e.rank===2?O(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?O(e,[1,e.shape[0],e.shape[1],e.shape[2]]):e}const Xs=S({batchNorm_:OD});function ED(e,t,s,n,i,r){const o=b(e,"x","batchNorm"),a=b(t,"mean","batchNorm"),l=b(s,"variance","batchNorm");let c;i!=null&&(c=b(i,"scale","batchNorm"));let p;return n!=null&&(p=b(n,"offset","batchNorm")),I(o.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${o.rank}.`),I(a.rank===2||a.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${a.rank}.`),I(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${l.rank}.`),c!=null&&I(c.rank===2||c.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${c.rank}.`),p!=null&&I(p.rank===2||p.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${p.rank}.`),Xs(o,a,l,p,c,r)}const Yh=S({batchNorm2d_:ED});function _D(e,t,s,n,i,r){const o=b(e,"x","batchNorm"),a=b(t,"mean","batchNorm"),l=b(s,"variance","batchNorm");let c;i!=null&&(c=b(i,"scale","batchNorm"));let p;return n!=null&&(p=b(n,"offset","batchNorm")),I(o.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${o.rank}.`),I(a.rank===3||a.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${a.rank}.`),I(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${l.rank}.`),c!=null&&I(c.rank===3||c.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${c.rank}.`),p!=null&&I(p.rank===3||p.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${p.rank}.`),Xs(o,a,l,p,c,r)}const Kh=S({batchNorm3d_:_D});function kD(e,t,s,n,i,r){const o=b(e,"x","batchNorm"),a=b(t,"mean","batchNorm"),l=b(s,"variance","batchNorm");let c;i!=null&&(c=b(i,"scale","batchNorm"));let p;return n!=null&&(p=b(n,"offset","batchNorm")),I(o.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${o.rank}.`),I(a.rank===4||a.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${a.rank}.`),I(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${l.rank}.`),c!=null&&I(c.rank===4||c.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${c.rank}.`),p!=null&&I(p.rank===4||p.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${p.rank}.`),Xs(o,a,l,p,c,r)}const Xh=S({batchNorm4d_:kD});function DD(e,t){let s=b(e,"broadcastTo","x");const n=s.shape;if(t.some(p=>!(p>0)||p%1!==0))throw new Error(`broadcastTo(): Invalid broadcast shape [${t}].`);if(t.lengths.rank){const p=s.shape.slice();for(;p.length=0;p--)if(i[p]===t[p])r[p]=1;else if(s.shape[p]!==1)throw new Error(`broadcastTo(): [${n}] cannot be broadcast to [${t}].`);const o=r.map((p,u)=>p>1?u:-1).filter(p=>p>=0);if(o.length===0)return Fs(s);const a=p=>p.tile(s,r),l={x:s},c={shape:t,inputShape:i};return v.runKernelFunc(a,l,null,Bc,c)}const ta=S({broadcastTo_:DD});function FD(e){const t=b(e,"x","ceil"),s={x:t};return v.runKernelFunc(n=>n.ceil(t),s,null,wr)}const Jh=S({ceil_:FD});function MD(e,t,s){const n=b(e,"x","clipByValue");I(t<=s,()=>`Error in clip: min (${t}) must be less than or equal to max (${s}).`);const i={x:n},r={clipValueMin:t,clipValueMax:s};return v.runKernelFunc((o,a)=>{const l=o.clip(n,t,s);return a([n]),l},i,null,xr,r)}const xt=S({clipByValue_:MD});function UD(e){return be(e,0)}const Zh=S({concat1d_:UD});function $D(e,t){return be(e,t)}const Qh=S({concat2d_:$D});function WD(e,t){return be(e,t)}const ed=S({concat3d_:WD});function zD(e,t){return be(e,t)}const td=S({concat4d_:zD});function PD(e,t,s,n,i="NHWC",r=[1,1],o){const a=b(e,"x","conv2d"),l=b(t,"filter","conv2d");let c=a,p=!1;a.rank===3&&(p=!0,c=O(a,[1,a.shape[0],a.shape[1],a.shape[2]])),I(c.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${c.rank}.`),I(l.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${l.rank}.`),o!=null&&I(De(n),()=>`Error in conv2d: pad must be an integer when using, dimRoundingMode ${o} but got pad ${n}.`);const u=i==="NHWC"?c.shape[3]:c.shape[1];I(u===l.shape[2],()=>`Error in conv2d: depth of input (${u}) must match input depth for filter ${l.shape[2]}.`),I(tt(s,r),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);const h=(g,y)=>{const w=qr(i),x=rs(c.shape,l.shape,s,r,n,o,!1,w),T=g.conv2d(c,l,x);return y([c,l]),T},d={x:c,filter:l},m={strides:s,pad:n,dataFormat:i,dilations:r,dimRoundingMode:o},f=v.runKernelFunc(h,d,null,Vc,m);return p?O(f,[f.shape[1],f.shape[2],f.shape[3]]):f}const rt=S({conv2d_:PD});function BD(e,t,s,n,i="NWC",r=1,o){const a=b(e,"x","conv1d"),l=b(t,"filter","conv1d");let c=a,p=!1;a.rank===2&&(p=!0,c=O(a,[1,a.shape[0],a.shape[1]])),I(c.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${c.rank}.`),I(l.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${l.rank}.`),o!=null&&I(De(n),()=>`Error in conv1d: pad must be an integer when using, dimRoundingMode ${o} but got pad ${n}.`),I(c.shape[2]===l.shape[1],()=>`Error in conv1d: depth of input (${c.shape[2]}) must match input depth for filter ${l.shape[1]}.`),I(tt(s,r),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${s} and dilation '${r}'`),I(i==="NWC",()=>`Error in conv1d: got dataFormat of ${i} but only NWC is currently supported.`);const u=O(l,[1,l.shape[0],l.shape[1],l.shape[2]]),h=O(c,[c.shape[0],1,c.shape[1],c.shape[2]]),d=[1,s],m=[1,r],f="NHWC",g=rt(h,u,d,n,f,m,o);return p?O(g,[g.shape[2],g.shape[3]]):O(g,[g.shape[0],g.shape[2],g.shape[3]])}const fl=S({conv1d_:BD});function jD(e,t,s,n,i,r="NHWC",o){I(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let a=e,l=t,c=!1;t.rank===3&&(c=!0,l=O(t,[1,t.shape[0],t.shape[1],t.shape[2]]),a=[1,e[0],e[1],e[2]]),I(a.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${a.length}.`),I(l.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`),I(s.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${s.rank}`);const p=r==="NHWC"?a[3]:a[1],u=r==="NHWC"?l.shape[3]:l.shape[1];I(p===s.shape[2],()=>`Error in conv2dDerInput: depth of input (${p}) must match input depth for filter ${s.shape[2]}.`),I(u===s.shape[3],()=>`Error in conv2dDerInput: depth of output (${u}) must match output depth for filter ${s.shape[3]}.`),o!=null&&I(De(i),()=>`Error in conv2dDerInput: pad must be an integer when using, dimRoundingMode ${o} but got pad ${i}.`);const h=(g,y)=>{const w=1,x=qr(r),T=rs(a,s.shape,n,w,i,o,!1,x),A=g.conv2dDerInput(l,s,T);return y([l,s]),A},d={dy:l,filter:s},m={strides:n,pad:i,dataFormat:r,dimRoundingMode:o,inputShape:a},f=v.runKernelFunc(h,d,null,Gc,m);return c?O(f,[f.shape[1],f.shape[2],f.shape[3]]):f}const gl=S({conv2DBackpropInput_:jD});function VD(e,t,s,n,i,r){const o=b(e,"x","conv2dTranspose"),a=b(t,"filter","conv2dTranspose");return gl(s,o,a,n,i,"NHWC",r)}const yl=S({conv2dTranspose_:VD});function GD(e,t,s,n,i="NDHWC",r=[1,1,1]){const o=b(e,"x","conv3d"),a=b(t,"filter","conv3d");let l=o,c=!1;o.rank===4&&(c=!0,l=O(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]])),I(l.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`),I(a.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${a.rank}.`),I(l.shape[4]===a.shape[3],()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${a.shape[3]}.`),I(tt(s,r),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`),I(i==="NDHWC",()=>`Error in conv3d: got dataFormat of ${i} but only NDHWC is currently supported.`);const p=(m,f)=>{const g=Hr(l.shape,a.shape,s,r,n),y=m.conv3d(l,a,g);return f([l,a]),y},u={x:l,filter:a},h={strides:s,pad:n,dataFormat:i,dilations:r},d=v.runKernelFunc(p,u,null,qc,h);return c?O(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}const bl=S({conv3d_:GD});function qD(e,t,s,n,i){I(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let r=e,o=t,a=!1;t.rank===4&&(a=!0,o=O(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),r=[1,e[0],e[1],e[2],e[3]]);const l=r[4],c=o.shape[4];I(r.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${r.length}.`),I(o.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${o.rank}`),I(s.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${s.rank}`),I(l===s.shape[3],()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${s.shape[3]}.`),I(c===s.shape[4],()=>`Error in conv3dDerInput: depth of output (${c}) must match output depth for filter ${s.shape[4]}.`);const p=m=>{const f=1,g=Hr(r,s.shape,n,f,i);return m.conv3dDerInput(o,s,g)},u={dy:o},h={pad:i},d=v.runKernelFunc(p,u,null,oy,h);return a?O(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}const sd=S({conv3DBackpropInput_:qD});function HD(e,t,s,n,i){const r=b(e,"x","conv3dTranspose"),o=b(t,"filter","conv3dTranspose");return sd(s,r,o,n,i)}const mI=S({conv3dTranspose_:HD});function YD(e){const t=b(e,"x","cos"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.cos(t);return i([t]),r},s,null,Qn)}const Kr=S({cos_:YD});function KD(e){const t=b(e,"x","cosh"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.cosh(t);return i([t]),r},s,null,Lr)}const wl=S({cosh_:KD});function XD(e,t=0,s=!1,n=!1){const i=b(e,"x","cumsum"),r=(l,c)=>{const p=dt([t],i.rank);let u=i;p!=null&&(u=se(i,p));const h=qt(1,i.rank)[0];let d=l.cumsum(u,h,s,n);if(c([i]),p!=null){const m=Jo(p);d=se(d,m)}return d},o={x:i},a={axis:t,exclusive:s,reverse:n};return v.runKernelFunc(r,o,null,Hc,a)}const xl=S({cumsum_:XD});function JD(e,t,s="NHWC"){const n=b(e,"x","depthToSpace"),i=s==="NHWC"?n.shape[1]:n.shape[2],r=s==="NHWC"?n.shape[2]:n.shape[3],o=s==="NHWC"?n.shape[3]:n.shape[1];I(i*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${i} and ${t} for depthToSpace with input shape ${n.shape}`),I(r*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${r} and ${t} for depthToSpace with input shape - ${n.shape}`),I(o%(t*t)===0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${o} for depthToSpace with input shape ${n.shape}`);const a=p=>p.depthToSpace(n,t,s),l={x:n},c={blockSize:t,dataFormat:s};return v.runKernelFunc(a,l,null,ly,c)}const nd=S({depthToSpace_:ZD});function QD(e,t,s,n,i="NHWC",r=[1,1],o){const a=b(e,"x","depthwiseConv2d"),l=b(t,"filter","depthwiseConv2d");let c=a,p=!1;a.rank===3&&(p=!0,c=O(a,[1,a.shape[0],a.shape[1],a.shape[2]])),I(c.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${c.rank}.`),I(l.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${l.rank}.`),I(c.shape[3]===l.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${c.shape[3]}) must match the inChannels dimension in filter ${l.shape[2]}.`),o!=null&&I(De(n),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${o} but got pad ${n}.`);const u=(f,g)=>{r==null&&(r=[1,1]),I(tt(s,r),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);const y=rs(c.shape,l.shape,s,r,n,o,!0),w=f.depthwiseConv2D(c,l,y);return g([c,l]),w},h={x:c,filter:l},d={strides:s,pad:n,dataFormat:i,dilations:r,dimRoundingMode:o},m=v.runKernelFunc(u,h,null,Yc,d);return p?O(m,[m.shape[1],m.shape[2],m.shape[3]]):m}const fn=S({depthwiseConv2d_:QD});function eF(e){const t=b(e,"x","diag"),s=i=>{const r=O(t,[t.size]),o=i.diag(r),a=[...e.shape,...e.shape];return O(o,a)},n={x:t};return v.runKernelFunc(s,n,null,uy)}const gI=S({diag_:eF});function tF(e,t,s,n,i=[1,1],r="NHWC"){const o=b(e,"x","dilation2d"),a=b(t,"filter","dilation2d");I(o.rank===3||o.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${o.rank}.`),I(a.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${a.rank}.`),I(r==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${r}`);let l=o,c=!1;o.rank===3&&(l=O(o,[1,o.shape[0],o.shape[1],o.shape[2]]),c=!0);const p={x:l,filter:a},u={strides:s,pad:n,dilations:i},h=v.runKernel(Mo,p,u);return c?O(h,[h.shape[1],h.shape[2],h.shape[3]]):h}const id=S({dilation2d_:tF});function sF(e,t){const s=e.length,n=[];for(let i=0;i1&&o===1&&n.unshift(r)}return n}function Ke(e,t){const s=[];for(let n=0;n1)&&s.unshift(r)}return s}function Ie(e,t){const s=[],n=Math.max(e.length,t.length);for(let i=0;io.equal(s,n),r={a:s,b:n};return v.runKernelFunc(i,r,null,dy)}const as=S({equal_:nF});function iF(e,t,s){const n=b(t,"a","where"),i=b(s,"b","where"),r=b(e,"condition","where","bool"),o=Ie(n.shape,i.shape),a=ta(n,o),l=ta(i,o);r.rank===1&&I(r.shape[0]===n.shape[0],()=>"The first dimension of `a` must match the size of `condition`."),r.rank!==1&&Se(r.shape,l.shape,"Error in where: ");const c=(u,h)=>{const d=u.select(r,a,l);return h([r]),d},p={condition:r,t:a,e:l};return v.runKernelFunc(c,p,null,xp)}const mt=S({where_:iF});function rF(e){const t=b(e,"x","zerosLike"),s={x:t};return v.runKernelFunc(n=>n.zerosLike(t),s,null,Np)}const re=S({zerosLike_:rF});function oF(e,t){let s=b(e,"a","div"),n=b(t,"b","div");[s,n]=Ce(s,n);const i=Z(s,n),r=re(i),o=as(n,r);return mt(o,r,i)}const rd=S({divNoNan_:oF});function aF(e,t){const s=b(e,"t1","dot"),n=b(t,"t2","dot");I((s.rank===1||s.rank===2)&&(n.rank===1||n.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${s.rank} and ${n.rank}.`);const i=s.rank===1?s.size:s.shape[1],r=n.rank===1?n.size:n.shape[0];if(I(i===r,()=>`Error in dot: inner dimensions of inputs must match, but got ${i} and ${r}.`),s.rank===1&&n.rank===1){const o=O(s,[1,-1]),a=O(n,[-1,1]),l=Te(o,a);return O(l,[])}else if(s.rank===1&&n.rank===2){const o=O(s,[1,-1]),a=O(n,[n.shape[0],n.shape[1]]),l=Te(o,a);return O(l,[l.size])}else if(s.rank===2&&n.rank===1){const o=O(n,[-1,1]),a=Te(s,o);return O(a,[a.size])}else{const o=O(n,[n.shape[0],n.shape[1]]),a=Te(s,o);return a}}const yI=S({dot_:aF});function lF(e){const t=b(e,"x","elu"),s=(i,r)=>{const o=i.elu(t);return r([o]),o},n={x:t};return v.runKernelFunc(s,n,null,Sr)}const gn=S({elu_:lF});function cF(e){let t=b(e,"x","erf");I(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=G(t,"float32"));const s={x:t};return v.runKernelFunc((n,i)=>{const r=n.erf(t);return i([t]),r},s,null,Ir)}const od=S({erf_:cF});function pF(e){const t=b(e,"x","exp"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.exp(t);return i([r]),r},s,null,vr)}const ut=S({exp_:pF});function uF(e,t=0){const s=null,n=b(e,"x","expandDims",s);I(t<=n.rank,()=>"Axis must be <= rank of the tensor");const i=n.shape.slice();return t<0&&(I(-(n.rank+1)<=t,()=>`Axis must be in the interval [${-(n.rank+1)}, ${n.rank}]`),t=n.rank+t+1),i.splice(t,0,1),O(n,i)}const Mt=S({expandDims_:uF});function hF(e){const t=b(e,"x","expm1"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.expm1(t);return i([t]),r},s,null,Tr)}const ad=S({expm1_:hF});function dF(e,t){const s=null,n=b(e,"x","tile",s);I(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of reps ${t}.`);const i=(l,c)=>{const p=l.tile(n,t);return c([n]),p},r=[n],o={x:n},a={reps:t};return v.runKernelFunc(i,o,null,vp,a,r)}const $s=S({tile_:dF});function mF(e,t,s,n="float32"){t==null&&(t=e);const i=ge([e,t],n),r=e<=t?e:t;for(let a=0;ai.fill(e,t,s),{},null,my,n)}function fF(e){const t=b(e,"x","floor"),s={x:t};return v.runKernelFunc(n=>n.floor(t),s,null,Ar)}const ui=S({floor_:fF});const ld=30;function gF(e){return e<=ld?e:sl(e,Math.floor(Math.sqrt(e)))}const bI={};Ee(bI,{collectGatherOpShapeInfo:()=>Lb,computeOutShape:()=>bF,segOpComputeOptimalWindowSize:()=>yF});function yF(e,t){let s=!1,n;for(e<=ld?(n=e,s=!0):n=sl(e,Math.floor(Math.sqrt(e)));!s;)n>t||n===e?s=!0:n=sl(e,n+1);return n}function bF(e,t,s){const n=[],i=e.length;for(let r=0;r{const p=Ne(s,n.shape)[0],u=Lb(n,i,p),h=l.gather(n,O(i,[i.size]),p);return c([n,i]),O(h,u.outputShape)};return v.runKernelFunc(a,r,null,Jc,o)}const hi=S({gather_:wF});function xF(e,t){let s=b(e,"a","greater"),n=b(t,"b","greater");[s,n]=Ce(s,n),Ie(s.shape,n.shape);const i=o=>o.greater(s,n),r={a:s,b:n};return v.runKernelFunc(i,r,null,gy)}const Ut=S({greater_:xF});function LF(e,t){let s=b(e,"a","greaterEqual"),n=b(t,"b","greaterEqual");[s,n]=Ce(s,n),Ie(s.shape,n.shape);const i=(o,a)=>{const l=o.greaterEqual(s,n);return a([s,n]),l},r={a:s,b:n};return v.runKernelFunc(i,r,null,Zc)}const ms=S({greaterEqual_:LF});function SF(e){const t=b(e,"input","imag"),s=i=>i.imag(t),n={input:t};return v.runKernelFunc(s,n,null,ep)}const yn=S({imag_:SF});function IF(e){const t=b(e,"x","isFinite"),s={x:t};return v.runKernelFunc(n=>n.isFinite(t),s,null,Nr)}const wI=S({isFinite_:IF});function vF(e){const t=b(e,"x","isInf"),s={x:t};return v.runKernelFunc(n=>n.isInf(t),s,null,Cr)}const xI=S({isInf_:vF});function TF(e){const t=b(e,"x","isNaN"),s={x:t};return v.runKernelFunc(n=>n.isNaN(t),s,null,Rr)}const LI=S({isNaN_:TF});function AF(e,t){let s=b(e,"a","maximum"),n=b(t,"b","maximum");[s,n]=Ce(s,n),s.dtype==="bool"&&(s=G(s,"int32"),n=G(n,"int32")),Ie(s.shape,n.shape);const i=(o,a)=>{const l=o.maximum(s,n);return a([s,n]),l},r={a:s,b:n};return v.runKernelFunc(i,r,null,np)}const Ht=S({maximum_:AF});function j(e,t){if((Dt(e)&&t!=="string"||Array.isArray(e))&&t!=="complex64")throw new Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if(t==="string"&&Dt(e)&&!(e instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");const s=[],n=[];return hs(e,s,n,t)}function NF(e,t=.2){const s=b(e,"x","leakyRelu");return Ht(R(j(t),s),s)}const Ll=S({leakyRelu_:NF});function CF(e,t){let s=b(e,"a","less"),n=b(t,"b","less");[s,n]=Ce(s,n),Ie(s.shape,n.shape);const i=o=>o.less(s,n),r={a:s,b:n};return v.runKernelFunc(i,r,null,yy)}const Xr=S({less_:CF});function RF(e,t){let s=b(e,"a","lessEqual"),n=b(t,"b","lessEqual");[s,n]=Ce(s,n),Ie(s.shape,n.shape);const i=(o,a)=>{const l=o.lessEqual(s,n);return a([s,n]),l},r={a:s,b:n};return v.runKernelFunc(i,r,null,by)}const Ws=S({lessEqual_:RF});function cd(e,t,s){if(s<=0)throw new Error("The number of values should be positive.");const n={start:e,stop:t,num:s};return v.runKernelFunc(i=>i.linspace(e,t,s),{},null,wy,n)}function OF(e,t=5,s=1,n=1,i=.5){const r=b(e,"x","localResponseNormalization");I(r.rank===4||r.rank===3,()=>`Error in localResponseNormalization: x must be rank 3 or 4 but got - rank ${r.rank}.`),I(De(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let o=r,a=!1;r.rank===3&&(a=!0,o=O(r,[1,r.shape[0],r.shape[1],r.shape[2]]));const l=(h,d)=>{const m=h.localResponseNormalization4D(o,t,s,n,i);return d([o,m]),m},c={x:o},p={depthRadius:t,bias:s,alpha:n,beta:i},u=v.runKernelFunc(l,c,null,sp,p);return a?O(u,[u.shape[1],u.shape[2],u.shape[3]]):u}const pd=S({localResponseNormalization_:OF});function EF(e){const t=b(e,"x","log"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.log(t);return i([t]),r},s,null,Or)}const zt=S({log_:EF});function _F(e){const t=b(e,"x","log1p"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.log1p(t);return i([t]),r},s,null,Er)}const Sl=S({log1p_:_F});function kF(e){return I(ri(e),()=>"The f passed in grad(f) must be a function"),(t,s)=>{const n=b(t,"x","tf.grad",null),i=s!=null?b(s,"dy","tf.grad"):null;return v.tidy(()=>{const{value:r,grads:o}=v.gradients(()=>e(n),[n],i);return i!=null&&Se(r.shape,i.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),ud(o),o[0]})}}function DF(e){return I(ri(e),()=>"The f passed in grads(f) must be a function"),(t,s)=>{I(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");const n=Di(t,"args","tf.grads",null),i=s!=null?b(s,"dy","tf.grads"):null;return v.tidy(()=>{const{value:r,grads:o}=v.gradients(()=>e(...n),n,i);return i!=null&&Se(r.shape,i.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),ud(o),o})}}function FF(e){return I(ri(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,s)=>{I(t instanceof me,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),I(s==null||s instanceof me,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");const{grads:n,value:i}=v.gradients(()=>e(t),[t],s);return ud(n),{grad:n[0],value:i}}}function MF(e){return I(ri(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,s)=>{I(Array.isArray(t)&&t.every(i=>i instanceof me),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),I(s==null||s instanceof me,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");const n=v.gradients(()=>e(...t),t,s);return s!=null&&Se(n.value.shape,s.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),ud(n.grads),n}}function hd(e,t){I(ri(e),()=>"The f passed in variableGrads(f) must be a function"),I(t==null||Array.isArray(t)&&t.every(c=>c instanceof ci),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");const s=t!=null;if(!s){t=[];for(const c in v.registeredVariables)t.push(v.registeredVariables[c])}const n=s?t.filter(c=>!c.trainable):null,i=t.length;t=t.filter(c=>c.trainable),I(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${i} variables is trainable.`);const r=!0,{value:o,grads:a}=v.gradients(e,t,null,r);I(a.some(c=>c!=null),()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize()."),I(o.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${o.rank} tensor`);const l={};return t.forEach((c,p)=>{a[p]!=null&&(l[c.name]=a[p])}),n!=null&&n.forEach(c=>l[c.name]=null),{value:o,grads:l}}function fs(e){return v.customGrad(e)}function ud(e){const t=e.filter(s=>s==null).length;if(t>0)throw new Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that - the f you passed encloses all operations that lead from x to y.`)}function UF(e){const t=b(e,"x","neg"),s={x:t};return v.runKernelFunc(n=>n.neg(t),s,null,lp)}const ke=S({neg_:UF});function $F(e){const t=b(e,"x","softplus"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.softplus(t);return i([t]),r},s,null,zr)}const di=S({softplus_:$F});function WF(e){const t=b(e,"x","logSigmoid"),s=fs(n=>{const i=ke(di(ke(n))),r=o=>{const a=R(o,os(ke(n)));return a};return{value:i,gradFunc:r}});return s(t)}const SI=S({logSigmoid_:WF});function zF(e,t=null,s=!1){const n=b(e,"x","max"),i=(a,l)=>{const c=Ne(t,n.shape);let p=c;const u=dt(p,n.rank);let h=n;u!=null&&(h=se(n,u),p=qt(p.length,h.rank));const d=a.max(h,p);u!=null&&h.dispose();let m=d;if(s){const f=wt(m.shape,Ne(t,n.shape));m=O(m,f),d.dispose()}return l([n,m]),m},r={x:n},o={reductionIndices:t,keepDims:s};return v.runKernelFunc(i,r,null,Ri,o)}const Lt=S({max_:zF});function PF(e,t){let s=b(e,"a","sub"),n=b(t,"b","sub");[s,n]=Ce(s,n);const i=(o,a)=>{const l=o.subtract(s,n);return a([s,n]),l},r={a:s,b:n};return v.runKernelFunc(i,r,null,Br)}const X=S({sub_:PF});function BF(e,t=null,s=!1){let n=b(e,"x","sum");n.dtype==="bool"&&(n=G(n,"int32"));const i=(a,l)=>{l([n]);const c=Ne(t,n.shape),p=dt(c,n.rank);let u=c,h=n;p!=null&&(h=se(n,p),u=qt(u.length,n.rank));let d=a.sum(h,u);if(s){const m=wt(d.shape,c);d=O(d,m)}return d},r={x:n},o={axis:t,keepDims:s};return v.runKernelFunc(i,r,null,Lp,o)}const te=S({sum_:BF});function jF(e,t=-1){const s=b(e,"logits","logSoftmax");if(t===-1&&(t=s.rank-1),t!==s.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${s.rank} and axis was ${t}`);const n=(o,a)=>{const l=!0,c=Lt(e,t,!0),p=X(e,c),u=X(G(p,"float32"),zt(te(ut(p),t,l)));return a([u]),u},i={logits:s},r={axis:t};return v.runKernelFunc(n,i,null,tp,r)}const Il=S({logSoftmax_:jF});function VF(e,t=null,s=!1){const n=b(e,"x","logSumExp"),i=Ne(t,n.shape),r=Lt(n,i,!0),o=X(n,r),a=ut(o),l=te(a,i),c=zt(l),p=$(O(r,c.shape),c);if(s){const u=wt(p.shape,i);return O(p,u)}return p}const dd=S({logSumExp_:VF});function GF(e,t){const s=b(e,"a","logicalAnd","bool"),n=b(t,"b","logicalAnd","bool");Ie(s.shape,n.shape);const i={a:s,b:n};return v.runKernelFunc(r=>r.logicalAnd(s,n),i,null,xy)}const Yt=S({logicalAnd_:GF});function qF(e){const t=b(e,"x","logicalNot","bool"),s={x:t};return v.runKernelFunc(n=>n.logicalNot(t),s,null,Ya)}const Jr=S({logicalNot_:qF});function HF(e,t){const s=b(e,"a","logicalOr","bool"),n=b(t,"b","logicalOr","bool");Ie(s.shape,n.shape);const i={a:s,b:n};return v.runKernelFunc(r=>r.logicalOr(s,n),i,null,Ly)}const vl=S({logicalOr_:HF});function YF(e,t){const s=b(e,"a","logicalXor","bool"),n=b(t,"b","logicalXor","bool");return Ie(s.shape,n.shape),Yt(vl(e,t),Jr(Yt(e,t)))}const II=S({logicalXor_:YF});function KF(e,t,s,n,i){const r=b(e,"x","maxPool"),o=1;let a=r,l=!1;r.rank===3&&(l=!0,a=O(r,[1,r.shape[0],r.shape[1],r.shape[2]])),I(a.rank===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.rank}.`),I(tt(s,o),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`),i!=null&&I(De(n),()=>`Error in maxPool: pad must be an integer when using, dimRoundingMode ${i} but got pad ${n}.`);const c=(d,m)=>{const f=Wn(a.shape,t,s,1,n,i);let g;return f.filterWidth===1&&f.filterHeight===1&&Nt(f.inShape,f.outShape)?g=a.clone():g=d.maxPool(a,f),m([a,g]),g},p={x:a},u={filterSize:t,strides:s,pad:n,dimRoundingMode:i},h=v.runKernelFunc(c,p,null,Oi,u);return l?O(h,[h.shape[1],h.shape[2],h.shape[3]]):h}const ft=S({maxPool_:KF});function XF(e,t=[1,1,1],s,n,i,r="NDHWC",o){o==null?o=[1,1,1]:It("dilations is deprecated, this field will be gone in v3.0.0.");const a=b(e,"x","maxPool3d");let l=a,c=!1;a.rank===4&&(c=!0,l=O(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),I(l.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${l.rank}.`),I(r==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${r}`),I(tt(s,o),()=>`Error in maxPool3d: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`),i!=null&&I(De(n),()=>`Error in maxPool3d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${n}.`);const p=(m,f)=>{o==null&&(o=[1,1,1]);const g=Fi(l.shape,t,s,o,n,i,r),y=m.maxPool3d(l,g);return f([l,y]),y},u={x:l},h={filterSize:t,strides:s,pad:n,dimRoundingMode:i,dataFormat:r,dilations:o},d=v.runKernelFunc(p,u,null,ip,h);return c?O(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}const Tl=S({maxPool3d_:XF});function JF(e,t,s,n,i=!1){const r=b(e,"x","maxPoolWithArgmax"),o={x:r},a={filterSize:t,strides:s,pad:n,includeBatchInIndex:i},l=v.runKernel(Wo,o,a);return{result:l[0],indexes:l[1]}}const md=S({maxPoolWithArgmax_:JF});function ye(e,t="float32"){if(t==="complex64"){const n=ye(e,"float32"),i=ye(e,"float32");return Gt(n,i)}const s=ai(We(e),t);return v.makeTensor(s,e,t)}function Kt(e,t="float32"){if(t==="complex64"){const n=Kt(e,"float32"),i=ye(e,"float32");return Gt(n,i)}const s=Ep(We(e),t);return v.makeTensor(s,e,t)}function ZF(e,t=null,s=!1){const n=b(e,"x","mean"),i=Ne(t,n.shape),r=gb(n.shape,i),o=r[1],a=We(o),l=fs(c=>{const p=j(a),u=p.dtype===c.dtype?c:G(c,p.dtype),h=Z(u,p),d=te(h,t,s),m=f=>{const g=c.shape.slice();i.forEach(x=>{g[x]=1});const y=O(f,g),w=Z(R(y,Kt(c.shape,"float32")),a);return w};return{value:d,gradFunc:m}});return l(n)}const Xe=S({mean_:ZF});function QF(e,t=null,s=!1){const n=b(e,"x","min"),i=(a,l)=>{const c=Ne(t,n.shape);let p=c;const u=dt(p,n.rank);let h=n;u!=null&&(h=se(n,u),p=qt(p.length,n.rank));const d=a.min(h,p);u!=null&&h.dispose();let m=d;if(s){const f=wt(m.shape,c);m=O(d,f),d.dispose()}return l([n,m]),m},r={x:n},o={axis:t,keepDims:s};return v.runKernelFunc(i,r,null,rp,o)}const Ui=S({min_:QF});function eM(e,t){let s=b(e,"a","minimum"),n=b(t,"b","minimum");[s,n]=Ce(s,n),s.dtype==="bool"&&(s=G(s,"int32"),n=G(n,"int32")),Ie(s.shape,n.shape);const i=(o,a)=>{const l=o.minimum(s,n);return a([s,n]),l},r={a:s,b:n};return v.runKernelFunc(i,r,null,op)}const bn=S({minimum_:eM});function tM(e,t){let s=b(e,"a","mod"),n=b(t,"b","mod");[s,n]=Ce(s,n);const i=(o,a)=>{const l=o.mod(s,n);return a([s,n]),l},r={a:s,b:n};return v.runKernelFunc(i,r,null,ap)}const Al=S({mod_:tM});function sM(e){const t=b(e,"x","square"),s={},n=[t],i=[];return v.runKernelFunc((r,o)=>(o([t]),r.square(t)),{x:t},null,"Square",s,n,i)}const xe=S({square_:sM});function nM(e,t=null,s=!1){e=b(e,"x","moments");const n=Ne(t,e.shape),i=Xe(e,n,s);let r=i.shape;s||(r=wt(i.shape,n));const o=xe(X(G(e,"float32"),O(i,r))),a=Xe(o,n,s);return{mean:i,variance:a}}const na=S({moments_:nM});function iM(e,t,s,n){const i=b(t,"data","multiRNNCell"),r=Di(s,"c","multiRNNCell"),o=Di(n,"h","multiRNNCell");let a=i;const l=[];for(let u=0;u2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${o}`);s=s||Math.random();const a=o===1?O(i,[1,-1]):i,l=v.runKernelFunc(c=>c.multinomial(a,n,t,s),{logits2D:a});return o===1?O(l,[l.size]):l}const fd=S({multinomial_:rM});function oM(e,t){let s=b(e,"a","notEqual"),n=b(t,"b","notEqual");[s,n]=Ce(s,n),Ie(s.shape,n.shape);const i=o=>o.notEqual(s,n),r={a:s,b:n};return v.runKernelFunc(i,r,null,Ka)}const Js=S({notEqual_:oM});function aM(e){const t=b(e,"input","real"),s=i=>i.real(t),n={input:t};return v.runKernelFunc(s,n,null,mp)}const Zs=S({real_:aM});function lM(e){const t=b(e,"x","onesLike"),s=(i,r)=>{if(t.dtype==="complex64"){const o=Ot(Zs(t)),a=re(yn(t));return Gt(o,a)}return i.onesLike(t)},n={x:t};return v.runKernelFunc(s,n,null,pp)}const Ot=S({onesLike_:lM});function cM(e,t){const s=b(e,"v1","outerProduct"),n=b(t,"v2","outerProduct");I(s.rank===1&&n.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${s.rank} and ${n.rank}.`);const i=O(s,[-1,1]),r=O(n,[1,-1]);return Te(i,r)}const TI=S({outerProduct_:cM});function pM(e,t,s=0){const n=b(e,"x","pad");if(n.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");const i=(a,l)=>(l([n]),a.pad(n,t,s)),r={paddings:t,constantValue:s},o={x:n};return v.runKernelFunc(i,o,null,Bo,r)}const Pt=S({pad_:pM});function uM(e,t,s=0){return I(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),Pt(e,[t],s)}const AI=S({pad1d_:uM});function hM(e,t,s=0){return I(t.length===2&&t[0].length===2&&t[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),Pt(e,t,s)}const NI=S({pad2d_:hM});function dM(e,t,s=0){return I(t.length===3&&t[0].length===2&&t[1].length===2&&t[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),Pt(e,t,s)}const CI=S({pad3d_:dM});function mM(e,t,s=0){return I(t.length===4&&t[0].length===2&&t[1].length===2&&t[2].length===2&&t[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),Pt(e,t,s)}const RI=S({pad4d_:mM});function fM(e,t,s){const n=b(e,"x","spaceToBatchND");I(n.rank>=1+t.length,()=>`input rank ${n.rank} should be > than [blockShape] ${t.length}`),I(s.length===t.length,()=>`paddings.shape[0] ${s.length} must be equal to [blockShape] ${t.length}`),I(n.shape.reduce((a,l,c)=>c>0&&c<=t.length?a&&(l+s[c-1][0]+s[c-1][1])%t[c-1]===0:a,!0),()=>`input spatial dimensions ${n.shape.slice(1)} with paddings ${s.toString()} must be divisible by blockShapes ${t.toString()}`);const i=a=>a.spaceToBatchND(n,t,s),r={x:n},o={blockShape:t,paddings:s};return v.runKernelFunc(i,r,null,Vo,o)}const Zr=S({spaceToBatchND_:fM});function bM(e,t,s,n,i,r){i==null&&(i=[1,1]),r==null&&(r=1),n===0&&(n="valid");const o=b(e,"x","maxPool");let a=o,l=!1;o.rank===3&&(l=!0,a=O(o,[1,o.shape[0],o.shape[1],o.shape[2]])),I(tt(r,i),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${r} and dilations '${i}'`);const c=Wn(a.shape,t,r,i,n),p=[c.dilationHeight,c.dilationWidth];let u;n==="same"?u=yM([c.filterHeight,c.filterWidth],p):u=[[0,0],[0,0]];const h=p[0]===1&&p[1]===1,[d,m]=gM([c.inHeight,c.inWidth],p,u),f=h?n:"valid",g=h?a:Zr(a,p,d),y=s==="avg"?()=>ds(g,t,r,f):()=>ft(g,t,r,f),w=y(),x=h?w:Yr(w,p,m);return l?O(x,[x.shape[1],x.shape[2],x.shape[3]]):x}function gM(e,t,s){const n=s.map(p=>p[0]),i=s.map(p=>p[1]),r=e.concat(n,i),o=t.map((p,u)=>(p-r[u]%p)%p),a=i.map((p,u)=>p+o[u]),l=t.map((p,u)=>[n[u],a[u]]),c=t.map((p,u)=>[0,o[u]]);return[l,c]}function yM(e,t){const s=e.map((o,a)=>o+(o-1)*(t[a]-1)),n=s.map(o=>o-1),i=n.map(o=>Math.floor(o/2)),r=n.map((o,a)=>o-i[a]);return n.map((o,a)=>[i[a],r[a]])}const OI=S({pool_:bM});function wM(e,t){let s=b(e,"base","pow"),n=b(t,"exp","pow");[s,n]=Ce(s,n);const i={a:s,b:n},r=(o,a)=>{const l=o.pow(s,n);return a([s,n,l]),l};return v.runKernelFunc(r,i,null,hp)}const es=S({pow_:wM});function xM(e,t){const s=b(e,"x","prelu"),n=b(t,"alpha","prelu"),i=(o,a)=>{const l=o.prelu(s,n);return a([s,n]),l},r={x:s,alpha:n};return v.runKernelFunc(i,r,null,dp)}const Qr=S({prelu_:xM});function LM(e,t=null,s=!1){let n=b(e,"x","prod");const i=a=>{n.dtype==="bool"&&(n=G(n,"int32"));const l=Ne(t,n.shape),c=dt(l,n.rank);let p=l,u=n;c!=null&&(u=se(n,c),p=qt(p.length,n.rank));let h=a.prod(u,p);if(s){const d=wt(h.shape,l);h=O(h,d)}return h},r={x:n},o={axis:t,keepDims:s};return v.runKernelFunc(i,r,null,vy,o)}const Nl=S({prod_:LM});function SM(e,t,s){const n=We(e);let i=null;if(s==null||s==="float32")i=new Float32Array(n);else if(s==="int32")i=new Int32Array(n);else if(s==="bool")i=new Uint8Array(n);else throw new Error(`Unknown data type ${s}`);for(let r=0;r=1||r===0);const o=Math.sqrt(-2*Math.log(r)/r);e=this.mean+this.stdDev*n*o,t=this.mean+this.stdDev*i*o,(!this.truncated||this.isValidTruncated(e))&&(s=!0)}return(!this.truncated||this.isValidTruncated(t))&&(this.nextVal=this.convertValue(t)),this.convertValue(e)}convertValue(e){return this.dtype==null||this.dtype==="float32"?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}}class _I{constructor(e,t,s,n){this.alpha=e,this.beta=1/t,this.dtype=s;const i=n||Math.random();this.randu=gd.alea(i.toString()),this.randn=new Gp(0,1,s,!1,this.randu()),e<1?this.d=e+2/3:this.d=e-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let e,t,s,n,i,r;for(;;){do n=this.randn.nextValue(),r=1+this.c*n;while(r<=0);if(r*=r*r,e=n*n,t=1-.331*e*e,s=.5*e+this.d*(1-r+Math.log(r)),i=this.randu(),ithis.dtype==null||this.dtype==="float32",this.min=e,this.range=t-e,this.dtype=s,n==null&&(n=Math.random()),typeof n=="number"&&(n=n.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=gd.alea(n)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}}function IM(e,t,s=1,n="float32",i){if(s==null&&(s=1),n==null&&(n="float32"),n!=="float32"&&n!=="int32")throw new Error(`Unsupported data type ${n}`);const r=new _I(t,s,n,i),o=ge(e,n);for(let a=0;a{const o=e===t,a=e1;if(o||a||l)return ye([0],n);const c=Math.abs(Math.ceil((t-e)/s)),p=ai(c,n);t{const r=n.reciprocal(t);return i([t]),r},s,null,kr)}const yd=S({reciprocal_:AM});function NM(e){const t=b(e,"x","relu"),s=(i,r)=>(r([t]),t.dtype==="bool"?G(t,"int32"):i.relu(t)),n={x:t};return v.runKernelFunc(s,n,null,fp)}const Fe=S({relu_:NM});function CM(e){const t=b(e,"x","relu6"),s=(i,r)=>(r([t]),t.dtype==="bool"?G(t,"int32"):i.relu6(t)),n={x:t};return v.runKernelFunc(s,n,null,bp)}const bd=S({relu6_:CM});function RM(e,t){const s=b(e,"x","reverse"),n=o=>{const a=Ne(t,s.shape);if(s.rank===0)return Fs(s);const l=o.reverse(s,a);return O(l,s.shape)},i={x:s},r={dims:t};return v.runKernelFunc(n,i,null,wp,r)}const Et=S({reverse_:RM});function OM(e){const t=b(e,"x","reverse");return I(t.rank===1,()=>`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),Et(t,0)}const FI=S({reverse1d_:OM});function EM(e,t){const s=b(e,"x","reverse");return I(s.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${s.rank}.`),Et(s,t)}const MI=S({reverse2d_:EM});function _M(e,t){const s=b(e,"x","reverse");return I(s.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${s.rank}.`),Et(s,t)}const UI=S({reverse3d_:_M});function kM(e,t){const s=b(e,"x","reverse");return I(s.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${s.rank}.`),Et(s,t)}const $I=S({reverse4d_:kM});function DM(e){const t=b(e,"x","round"),s={x:t};return v.runKernelFunc(n=>n.round(t),s,null,Dr)}const wd=S({round_:DM});function FM(e){const t=b(e,"x","rsqrt"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.rsqrt(t);return i([t]),r},s,null,Fr)}const Cl=S({rsqrt_:FM});function MM(e){const t=b(e,"x","selu"),s=(i,r)=>{const o=i.selu(t);return r([t]),o},n={x:t};return v.runKernelFunc(s,n,null,Mr)}const Rl=S({selu_:MM});function UM(e,t,s,n,i,r=[1,1],o="NHWC"){const a=b(e,"x","separableConv2d"),l=b(t,"depthwiseFilter","separableConv2d"),c=b(s,"pointwiseFilter","separableConv2d");let p=a,u=!1;if(a.rank===3&&(u=!0,p=O(a,[1,a.shape[0],a.shape[1],a.shape[2]])),o==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");I(p.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${p.rank}.`),I(l.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${l.rank}.`),I(c.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${l.rank}.`),I(c.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${c.shape[0]}.`),I(c.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${c.shape[1]}.`);const h=l.shape[2],d=l.shape[3];I(c.shape[2]===h*d,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${h*d}, but got ${c.shape[2]}.`);const m=fn(p,l,n,i,o,r),f=1,g=rt(m,c,f,"valid",o);return u?O(g,[g.shape[1],g.shape[2],g.shape[3]]):g}const eo=S({separableConv2d_:UM});async function $M(e,t){const s=b(e,"x","setdiff1d"),n=b(t,"y","setdiff1d");I(s.dtype===n.dtype,()=>`x and y should have the same dtype, but got x (${s.dtype}) and y (${n.dtype}).`),I(s.rank===1,()=>`x should be 1D tensor, but got x (${s.shape}).`),I(n.rank===1,()=>`y should be 1D tensor, but got y (${n.shape}).`);const i=await s.data(),r=await n.data(),o=new Set(r);let a=0;for(let p=0;pn.sign(t),s,null,$r)}const Ld=S({sign_:WM});function zM(e){const t=b(e,"x","sin"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.sin(t);return i([t]),r},s,null,ti)}const Ol=S({sin_:zM});function PM(e){const t=b(e,"x","sinh"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.sinh(t);return i([t]),r},s,null,Ur)}const El=S({sinh_:PM});function BM(e,t,s){const n=b(e,"x","slice1d");return I(n.rank===1,()=>`slice1d expects a rank-1 tensor, but got a rank-${n.rank} tensor`),he(n,[t],[s])}const _l=S({slice1d_:BM});function jM(e,t,s){const n=b(e,"x","slice2d");return I(n.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${n.rank} tensor`),he(n,t,s)}const Hp=S({slice2d_:jM});function VM(e,t,s){const n=b(e,"x","slice3d");return I(n.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${n.rank} tensor`),he(n,t,s)}const to=S({slice3d_:VM});function GM(e,t,s){const n=b(e,"x","slice4d");return I(n.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${n.rank} tensor`),he(n,t,s)}const ia=S({slice4d_:GM});function qM(e,t=-1){const s=b(e,"logits","softmax","float32");if(t===-1&&(t=s.rank-1),t!==s.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${s.rank} and dim was ${t}`);const n={logits:s},i={dim:t};return v.runKernelFunc((r,o)=>{const a=r.softmax(s,t);return o([a]),a},n,null,Ip,i)}const ts=S({softmax_:qM});function HM(e){I(e.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`);const t={input:e};return v.runKernelFunc(s=>{const n=e.shape[e.shape.length-1],i=e.size/n,r=e.as2D(i,n),o=s.fft(r);return o.reshape(e.shape)},t,null,Kc)}const so=S({fft_:HM});function YM(e){I(e.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`);const t={input:e};return v.runKernelFunc(s=>{const n=e.shape[e.shape.length-1],i=e.size/n,r=O(e,[i,n]),o=s.ifft(r);return O(o,e.shape)},t,null,Qc)}const Wi=S({ifft_:YM});function KM(e){const t=e.shape[e.shape.length-1],s=e.size/t;let n;if(t<=2){const i=O(e,[s,t]);n=Wi(i)}else{const i=[s,2*(t-1)],r=O(Zs(e),[s,t]),o=O(yn(e),[s,t]),a=Et(he(r,[0,1],[s,t-2]),1),l=R(Et(he(o,[0,1],[s,t-2]),1),j(-1)),c=be([r,a],1),p=be([o,l],1),u=O(Gt(c,p),[i[0],i[1]]);n=Wi(u)}if(n=Zs(n),e.rank===3&&e.shape[0]!==0){const i=n,r=e.shape[0];n=O(n,[r,n.shape[0]/r,n.shape[1]]),i.dispose()}return n}const kl=S({irfft_:KM});function Sb(e,t,s=0){let n=[];if(typeof t=="number")I(e.shape[s]%t===0,()=>"Number of splits must evenly divide the axis."),n=new Array(t).fill(e.shape[s]/t);else{const i=t.reduce((o,a)=>(a===-1&&(o+=1),o),0);I(i<=1,()=>"There should be only one negative value in split array.");const r=t.indexOf(-1);if(r!==-1){const o=t.reduce((a,l)=>l>0?a+l:a);t[r]=e.shape[s]-o}I(e.shape[s]===t.reduce((o,a)=>o+a),()=>"The sum of sizes must match the size of the axis dimension."),n=t}return n}function XM(e,t,s=0){const n=b(e,"x","split"),i=(a,l)=>{const c=Ne(s,n.shape)[0],p=Sb(n,t,c);return a.split(n,p,c)},r={x:n},o={numOrSizeSplits:t,axis:s};return v.runKernelFunc(i,r,null,Sp,o)}const Bt=S({split_:XM});function JM(e,t){I(e.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${e.dtype}`);let s=e.shape[e.shape.length-1];const n=e.size/s;let i;if(t!=null&&t0),f=e.shape.map(g=>g);f[e.shape.length-1]=t,i=he(e,m,f),s=t}else if(t!=null&&t>s){const m=e.shape.map(f=>f);m[e.shape.length-1]=t-s,i=be([e,ye(m)],e.shape.length-1),s=t}else i=e;const r=re(i),o=O(Gt(i,r),[n,s]),a=so(o),l=Math.floor(s/2)+1,c=Zs(a),p=yn(a),u=Bt(c,[l,s-l],c.shape.length-1),h=Bt(p,[l,s-l],p.shape.length-1),d=i.shape.slice();return d[i.shape.length-1]=l,O(Gt(u[0],h[0]),d)}const no=S({rfft_:JM});function ZM(e){const t=b(e,"x","sqrt"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.sqrt(t);return i([t]),r},s,null,Pr)}const Je=S({sqrt_:ZM});function QM(e,t){let s=b(e,"a","squaredDifference"),n=b(t,"b","squaredDifference");[s,n]=Ce(s,n),Ie(s.shape,n.shape);const i=(a,l)=>{const c=a.squaredDifference(s,n);return l([s,n]),c},r={a:s,b:n},o={};return v.runKernelFunc(i,r,null,si,o)}const io=S({squaredDifference_:QM});function eU(e,t){const s=b(e,"x","squeeze");return O(s,Fy(s.shape,t).newShape)}const Qs=S({squeeze_:eU});function tU(e,t=0){const s=Di(e,"tensors","stack");if(I(s.length>=1,()=>"Pass at least one tensor to tf.stack"),s.length===1)return Mt(s[0],t);const n=s[0].rank,i=s[0].shape,r=s[0].dtype;I(t<=n,()=>"Axis must be <= rank of the tensor"),s.forEach(a=>{Se(i,a.shape,"All tensors passed to stack must have matching shapes"),I(r===a.dtype,()=>"All tensors passed to stack must have matching dtypes")});const o=s.map(a=>Mt(a,t));return be(o,t)}const Ge=S({stack_:tU});function sU(e,t=0){const s=b(e,"x","step"),n={x:s},i={alpha:t};return v.runKernelFunc(r=>r.step(s,t),n,null,Vr,i)}const mi=S({step_:sU});function nU(e,t,s,n,i=0,r=0,o=0,a=0,l=0){let c=b(e,"x","stridedSlice");const p=d=>{n==null&&(n=new Array(t.length));const m=Bp(o);if(m.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(o!==0&&a!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(o!==0&&l!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");const f=c.rank-t.length,g=Bp(a),y=c.shape.slice();g.forEach(M=>{t[M]=0,s[M]=1,y.splice(M,0,1)}),c=O(c,y);const{begin:w,end:x,strides:T}=lb(c.shape,m,f,t,s,n,i,r,o);t=w,s=x,n=T;const A=Bp(l);A.forEach(M=>{s[M]=t[M]+1,n[M]=1});const _=ab(t,s,n),E=_.filter((M,P)=>A.indexOf(P)===-1),F=n.every(M=>M===1);if(F)return O(he(c,t,_),E);const D=d.stridedSlice(c,t,s,n);return O(D,E)},u={x:c},h={begin:t,end:s,strides:n,beginMask:i,endMask:r,ellipsisMask:o,newAxisMask:a,shrinkAxisMask:l};return v.runKernelFunc(p,u,null,Oy,h)}const Sd=S({stridedSlice_:nU});function iU(e){const t=b(e,"x","tan"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.tan(t);return i([t]),r},s,null,ni)}const Id=S({tan_:iU});function ls(e,t,s){if(Ys(e),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");const n=Qt(e,s);if(n.length!==2&&n.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return hs(e,t,n,s)}function ss(e,t,s){if(Ys(e),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");const n=Qt(e,s);if(n.length!==4&&n.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return hs(e,t,n,s)}function WI(e,t,s){if(Ys(e),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");const n=Qt(e,s);if(n.length!==5&&n.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return hs(e,t,n,s)}function zI(e,t,s){if(Ys(e),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");const n=Qt(e,s);if(n.length!==6&&n.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return t=t||n,hs(e,t,n,s)}function rU(e,t=1,s=!0){const n=b(e,"x","topk");if(n.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");const i=n.shape[n.shape.length-1];if(t>i)throw new Error(`'k' passed to topk() must be <= the last dimension (${i}) but got ${t}`);const r={x:n},o={k:t,sorted:s},[a,l]=v.runKernelFunc(c=>c.topk(n,t,s),r,null,Ey,o);return{values:a,indices:l}}const vd=S({topk_:rU});function oU(e,t=0,s=1,n,i){if(n!=null&&n==="bool")throw new Error("Unsupported data type $ { dtype }");const r=new Gp(t,s,n,!0,i),o=ge(e,n);for(let a=0;a0,()=>"The input tensor must be at least 1D");const n={x:s},i={axis:t},[r,o]=v.runKernel(qo,n,i);return{values:r,indices:o}}const Yp=S({unique_:aU});function lU(e,t,s){const n=b(e,"x","unsortedSegmentSum"),i=b(t,"segmentIds","unsortedSegmentSum","int32");I(De(s),()=>"numSegments must be of dtype int");const r={x:n,segmentIds:i},o={numSegments:s},a=(l,c)=>{const p=l.unsortedSegmentSum(n,i,s);return c([i]),p};return v.runKernelFunc(a,r,null,Ap,o)}const Td=S({unsortedSegmentSum_:lU});function cU(e,t=0){const s=b(e,"x","unstack");I(t>=-s.shape.length&&t`Axis = ${t} is not in [-${s.shape.length}, ${s.shape.length})`),t<0&&(t+=s.shape.length);const n={value:s},i={axis:t},r=o=>o.unstack(s,t);return v.runKernelFunc(r,n,null,Tp,i)}const qe=S({unstack_:cU});function Ad(e,t=!0,s,n){return v.makeVariable(e,t,s,n)}function Nd(e,t){const s=[];for(let r=0;r0,()=>"mask cannot be scalar"),Se(a.slice(r,r+o),i.shape,"mask's shape must match the first K dimensions of tensor's shape,");let l=1;for(let f=r;f"Shape mismatch in v and x");const l=j(1),c=X(l,a);let p=R(X(o,r),c);if(i){I(n!=null,()=>"When using zeroDebias: true, step is required.");const u=b(n,"step","movingAverage");p=Z(p,X(l,es(a,u)))}return $(r,p)}const GU=S({movingAverage_:VU});function qU(e,t,s){const n=b(e,"indices","scatterND","int32"),i=b(t,"updates","scatterND");Mh(i,n,s);const r=l=>l.scatterND(n,i,s),o={indices:n,updates:i},a={shape:s};return v.runKernelFunc(r,o,null,Cy,a)}const Ib=S({scatterND_:qU});function BI(e,t,s,n){if(e.dtype!=="int32")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${e.dtype}.`);if(e.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${e.shape}.`);const i=e.rank>0?e.shape[0]:1,r=e.rank>1?e.shape[1]:1;if(s.length!==r)throw new Error(`outputShape has incorrect number of elements:, ${s.length}, should be: ${r}.`);const o=t.size;if(!(t.rank===0||t.rank===1&&o===i))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${i}]`);if(t.dtype!==n.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function HU(e,t,s,n=0){const i=b(e,"sparseIndices","sparseToDense","int32"),r=b(t,"sparseValues","sparseToDense"),o=b(n,"defaultValue","sparseToDense",r.dtype);BI(i,r,s,o);const a={sparseIndices:i,sparseValues:r,defaultValue:o},l={outputShape:s};return v.runKernelFunc(c=>c.sparseToDense(i,r,s,o),a,null,Ry,l)}const Xp=S({sparseToDense_:HU});function YU(e,t){const s=b(t,"indices","gatherND","int32"),n=b(e,"x","gatherND"),i=o=>o.gatherND(n,s),r={params:n,indices:s};return v.runKernelFunc(i,r,null,fy)}const vb=S({gatherND_:YU});function jI(e,t){if(t==null)return e.shape.slice();if(Nt(e.shape,t))return t;if(e.shape.length===t.length){const s=[];for(let n=0;n`x has to be a floating point tensor since it's going to be scaled, but got a ${i.dtype} tensor instead.`),I(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return e instanceof me?i.clone():i;const r=jI(i,s),o=1-t,a=Z(ui($(wn(r,0,1,"float32",n),o)),o);return R(i,a)}const Tb=S({dropout_:KU});function Ab(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function Jp(e,t,s){const n=1-e%2,i=new Float32Array(e);for(let r=0;r1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${n.rank}`),I(n.rank-1===i.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${n.rank} and targets rank ${i.rank}`),Se(n.shape.slice(0,n.shape.length-1),i.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");const r=n.shape[n.shape.length-1];I(s>0&&s<=r,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${r}), but got ${s}`);const o=await n.data(),a=await i.data(),[l,c]=[o.length/r,r],p=el("bool",l);for(let u=0;ug.value-f.value),p[u]=0;for(let f=0;f`Error in conv2dDerFilter: input must be rank 4, but got shape ${a.shape}.`),I(l.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`),I(s.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${s}.`);const c=r==="NHWC"?a.shape[3]:a.shape[1],p=r==="NHWC"?l.shape[3]:l.shape[1];I(c===s[2],()=>`Error in conv2dDerFilter: depth of input ${c}) must match input depth in filter (${s[2]}.`),I(p===s[3],()=>`Error in conv2dDerFilter: depth of dy (${p}) must match output depth for filter (${s[3]}).`),o!=null&&I(De(i),()=>`Error in conv2dDerFilter: pad must be an integer when using, dimRoundingMode ${o} but got pad ${i}.`);const u=m=>{const f=1,g=qr(r),y=rs(a.shape,s,n,f,i,o,!1,g);return m.conv2dDerFilter(a,l,y)},h={x:a,dy:l},d={strides:n,pad:i,dataFormat:r,dimRoundingMode:o};return v.runKernelFunc(u,h,null,iy,d)}const Fl=S({conv2DBackpropFilter_:ZU});function ra(e,t,s){if(s==null||s==="linear")return e;if(s==="relu")return R(e,mi(t));throw new Error(`Cannot compute gradient for fused activation ${s}.`)}function oa(e,t){let s=t;const n=Ke(e.shape,t.shape);return n.length>0&&(s=te(s,n)),O(s,e.shape)}function aa(e,t,s){if(t==="linear")return e;if(t==="relu")return Fe(e);if(t==="elu")return gn(e);if(t==="relu6")return bd(e);if(t==="prelu")return Qr(e,s);throw new Error(`Unknown fused activation ${t}.`)}const la=(e,t)=>{const s=e>0;return!s||t==="linear"};function QU({x:e,filter:t,strides:s,pad:n,dataFormat:i="NHWC",dilations:r=[1,1],dimRoundingMode:o,bias:a,activation:l="linear",preluActivationWeights:c}){if(l=l||"linear",la(v.state.gradientDepth,l)===!1){let A=rt(e,t,s,n,i,r,o);return a!=null&&(A=$(A,a)),aa(A,l,c)}const p=b(e,"x","conv2d"),u=b(t,"filter","conv2d");let h=p,d=!1;p.rank===3&&(d=!0,h=O(p,[1,p.shape[0],p.shape[1],p.shape[2]])),I(h.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${h.rank}.`),I(u.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${u.rank}.`),o!=null&&I(De(n),()=>`Error in fused conv2d: pad must be an integer when using, dimRoundingMode ${o} but got pad ${n}.`),I(h.shape[3]===u.shape[2],()=>`Error in conv2d: depth of input (${h.shape[3]}) must match input depth for filter ${u.shape[2]}.`),I(tt(s,r),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`),I(i==="NHWC",()=>`Error in conv2d: got dataFormat of ${i} but only NHWC is currently supported.`);const m=rs(h.shape,u.shape,s,r,n,o);let f;a!=null&&(f=b(a,"bias","fused conv2d"),[f]=Ce(f,p),Ie(m.outShape,f.shape));let g;c!=null&&(g=b(c,"prelu weights","fused conv2d"));const y=(A,_)=>{const[E,F,D,M]=_,P=ra(A,D,l);I(Ks(r),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${r}'`);const B=gl(F.shape,P,E,s,n),Y=Fl(F,P,E.shape,s,n),q=[B,Y];if(M!=null){const K=oa(M,P);q.push(K)}return q},w=A=>{const _=A.fusedConv2d({input:h,filter:u,convInfo:m,bias:f,activation:l,preluActivationWeights:g});return _},x={x:h,filter:u,bias:f,preluActivationWeights:g},T={strides:s,pad:n,dataFormat:i,dilations:r,dimRoundingMode:o,activation:l};if(a==null){const A=fs((_,E,F)=>{let D=v.runKernelFunc(w,x,null,Ah,T);return F([E,_,D]),d&&(D=O(D,[D.shape[1],D.shape[2],D.shape[3]])),{value:D,gradFunc:y}});return A(h,u)}else{const A=fs((_,E,F,D)=>{let M=v.runKernelFunc(w,x,null,Ah,T);return D([E,_,M,F]),d&&(M=O(M,[M.shape[1],M.shape[2],M.shape[3]])),{value:M,gradFunc:y}});return A(h,u,f)}}const e$=S({fusedConv2d_:QU});function t$(e,t,s,n){let i=e;e.rank===3&&(i=O(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let r=t;r.rank===3&&(r=O(t,[1,t.shape[0],t.shape[1],t.shape[2]]));const o=l=>l.depthwiseConv2DDerFilter(i,r,n),a={x:i,dy:r};return v.runKernelFunc(o,a,null,cy)}const Cd=S({depthwiseConv2dNativeBackpropFilter_:t$});function s$(e,t,s,n){let i=t,r=!1;t.rank===3&&(r=!0,i=O(t,[1,t.shape[0],t.shape[1],t.shape[2]]));const o=c=>c.depthwiseConv2DDerInput(i,s,n),a={dy:i},l=v.runKernelFunc(o,a,null,py);return r?O(l,[l.shape[1],l.shape[2],l.shape[3]]):l}const Rd=S({depthwiseConv2dNativeBackpropInput_:s$});function n$({x:e,filter:t,strides:s,pad:n,dataFormat:i="NHWC",dilations:r=[1,1],dimRoundingMode:o,bias:a,activation:l="linear",preluActivationWeights:c}){if(la(v.state.gradientDepth,l)===!1){let A=fn(e,t,s,n,i,r,o);return a!=null&&(A=$(A,a)),aa(A,l,c)}const p=b(e,"x","depthwiseConv2d"),u=b(t,"filter","depthwiseConv2d");let h=p,d=!1;p.rank===3&&(d=!0,h=O(p,[1,p.shape[0],p.shape[1],p.shape[2]])),I(h.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${h.rank}.`),I(u.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${u.rank}.`),I(h.shape[3]===u.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${h.shape[3]}) must match the inChannels dimension in filter ${u.shape[2]}.`),r==null&&(r=[1,1]),I(tt(s,r),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`),o!=null&&I(De(n),()=>`Error in fused depthwiseConv2d: pad must be an integer when using dimRoundingMode ${o} but got pad ${n}.`);const m=rs(h.shape,u.shape,s,r,n,o,!0);let f;a!=null&&(f=b(a,"bias","fused conv2d"),[f]=Ce(f,p),Ie(m.outShape,f.shape));let g;c!=null&&(g=b(c,"prelu weights","fused depthwiseConv2d"));const y=(A,_)=>{I(Ks(r),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${r}'`);const[E,F,D,M]=_,P=ra(A,D,l),B=Rd(F.shape,P,E,m),Y=Cd(F,P,E.shape,m);if(M!=null){const q=oa(f,P);return[B,Y,q]}return[B,Y]},w=A=>{const _=A.fusedDepthwiseConv2D({input:h,filter:u,convInfo:m,bias:f,activation:l,preluActivationWeights:g});return _},x={x:h,filter:u,bias:f,preluActivationWeights:g},T={strides:s,pad:n,dataFormat:i,dilations:r,dimRoundingMode:o,activation:l};if(a==null){const A=fs((_,E,F)=>{let D=v.runKernelFunc(w,x,null,Nh,T);return F([E,_,D]),d&&(D=O(D,[D.shape[1],D.shape[2],D.shape[3]])),{value:D,gradFunc:y}});return A(h,u)}else{const A=fs((_,E,F,D)=>{let M=v.runKernelFunc(w,x,null,Nh,T);return D([E,_,M,F]),d&&(M=O(M,[M.shape[1],M.shape[2],M.shape[3]])),{value:M,gradFunc:y}});return A(h,u,f)}}const i$=S({fusedDepthwiseConv2d_:n$});function r$({a:e,b:t,transposeA:s=!1,transposeB:n=!1,bias:i,activation:r="linear",preluActivationWeights:o}){if(la(v.state.gradientDepth,r)===!1){let M=Te(e,t,s,n);return i!=null&&(M=$(M,i)),aa(M,r,o)}let a=b(e,"a","fused matMul"),l=b(t,"b","fused matMul");[a,l]=Ce(a,l);const c=s?a.shape[a.rank-2]:a.shape[a.rank-1],p=n?l.shape[l.rank-1]:l.shape[l.rank-2],u=s?a.shape[a.rank-1]:a.shape[a.rank-2],h=n?l.shape[l.rank-2]:l.shape[l.rank-1],d=a.shape.slice(0,-2),m=l.shape.slice(0,-2),f=We(d),g=We(m);I(a.rank>=2&&l.rank>=2&&a.rank===l.rank,()=>`Error in fused matMul: inputs must have the same rank of at least 2, got ranks ${a.rank} and ${l.rank}.`),I(Nt(d,m),()=>`Error in fused matMul: outer dimensions (${d}) and (${m}) of Tensors with shapes ${a.shape} and ${l.shape} must match.`),I(c===p,()=>`Error in fused matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${a.shape} and ${l.shape} and transposeA=${s} and transposeB=${n} must match.`);const y=a.shape.slice(0,-2).concat([u,h]),w=s?O(a,[f,c,u]):O(a,[f,u,c]),x=n?O(l,[g,h,p]):O(l,[g,p,h]);let T;i!=null&&(T=b(i,"bias","fused matMul"),[T]=Ce(T,a),Ie(y,T.shape));let A;o!=null&&(A=b(o,"prelu weights","fused matMul"));const _=(M,P)=>{const[B,Y,q,K]=P,H=ra(O(M,q.shape),q,r);let Q,J;if(!s&&!n?(Q=Te(H,Y,!1,!0),J=Te(B,H,!0,!1)):!s&&n?(Q=Te(H,Y,!1,!1),J=Te(H,B,!0,!1)):s&&!n?(Q=Te(Y,H,!1,!0),J=Te(B,H,!1,!1)):(Q=Te(Y,H,!0,!0),J=Te(H,B,!0,!0)),i!=null){const ie=oa(K,H);return[Q,J,ie]}else return[Q,J]},E=M=>{const P=M.fusedBatchMatMul({a:w,b:x,transposeA:s,transposeB:n,bias:T,activation:r,preluActivationWeights:A});return P},F={a:w,b:x,bias:T,preluActivationWeights:A},D={transposeA:s,transposeB:n,activation:r};if(i==null){const M=fs((P,B,Y)=>{const q=v.runKernelFunc(E,F,null,Th,D);return Y([P,B,q]),{value:O(q,y),gradFunc:_}});return M(w,x)}else{const M=fs((P,B,Y,q)=>{const K=v.runKernelFunc(E,F,null,Th,D);return q([P,B,K,Y]),{value:O(K,y),gradFunc:_}});return M(w,x,T)}}const o$=S({fusedMatMul_:r$});const xn={};Ee(xn,{conv2d:()=>e$,depthwiseConv2d:()=>i$,matMul:()=>o$});function a$(e){return Jp(e,.54,.46)}const VI=S({hammingWindow_:a$});function l$(e){return Jp(e,.5,.5)}const Od=S({hannWindow_:l$});function c$(e,t,s,n=!1,i=0){let r=0;const o=[];for(;r+t<=e.size;)o.push(he(e,r,t)),r+=s;if(n)for(;r`Error in cropAndResize: image must be rank 4,but got rank ${o.rank}.`),I(a.rank===2&&a.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${c},4] but had shape ${a.shape}.`),I(l.rank===1&&l.shape[0]===c,()=>`Error in cropAndResize: boxInd must be have size [${c}] but had shape ${a.shape}.`),I(n.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${n.length}.`),I(n[0]>=1&&n[1]>=1,()=>`cropSize must be atleast [1,1], but was ${n}`),I(i==="bilinear"||i==="nearest",()=>`method must be bilinear or nearest, but was ${i}`);const p=m=>m.cropAndResize(o,a,l,n,i,r),u={image:o,boxes:a,boxInd:l},h={method:i,extrapolationValue:r,cropSize:n},d=v.runKernelFunc(p,u,null,ay,h);return d}const qI=S({cropAndResize_:u$});function h$(e){const t=b(e,"image","flipLeftRight","float32");I(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);const s={image:t},n=v.runKernel(Uo,s,{});return n}const HI=S({flipLeftRight_:h$});function d$(e,t,s=0,n=.5){const i=b(e,"image","rotateWithOffset","float32");I(i.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${i.rank}.`);const r={image:i},o={radians:t,fillValue:s,center:n},a=v.runKernel(Ho,r,o);return a}const YI=S({rotateWithOffset_:d$});function Ln(e,t,s,n,i,r){n==null&&(n=.5),i==null&&(i=Number.NEGATIVE_INFINITY),r==null&&(r=0);const o=e.shape[0];return s=Math.min(s,o),I(0<=n&&n<=1,()=>`iouThreshold must be in [0, 1], but was '${n}'`),I(e.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`),I(e.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`),I(t.rank===1,()=>"scores must be a 1D tensor"),I(t.shape[0]===o,()=>`scores has incompatible shape with boxes. Expected ${o}, but was ${t.shape[0]}`),I(0<=r&&r<=1,()=>`softNmsSigma must be in [0, 1], but was '${r}'`),{maxOutputSize:s,iouThreshold:n,scoreThreshold:i,softNmsSigma:r}}function m$(e,t,s,n=.5,i=Number.NEGATIVE_INFINITY){const r=b(e,"boxes","nonMaxSuppression"),o=b(t,"scores","nonMaxSuppression"),a=Ln(r,o,s,n,i);s=a.maxOutputSize,n=a.iouThreshold,i=a.scoreThreshold;const l={maxOutputSize:s,iouThreshold:n,scoreThreshold:i};return v.runKernelFunc(c=>c.nonMaxSuppression(r,o,s,n,i),{boxes:r,scores:o},null,cp,l)}const KI=S({nonMaxSuppression_:m$});function XI(e,t,s){const n=f$(e,t,s),i=n<0?-(n+1):n;e.splice(i,0,t)}function f$(e,t,s){return y$(e,t,s||g$)}function g$(e,t){return e>t?1:e>>1);const a=s(t,e[r]);a>0?n=r+1:(i=r,o=!a)}return o?n:-n-1}function _d(e,t,s,n,i){return Nb(e,t,s,n,i,0).selectedIndices}function kd(e,t,s,n,i,r){return Nb(e,t,s,n,i,0,!1,r,!0)}function Dd(e,t,s,n,i,r){return Nb(e,t,s,n,i,r,!0)}function Nb(e,t,s,n,i,r,o=!1,a=!1,l=!1){const c=[];for(let g=0;gi&&c.push({score:t[g],boxIndex:g,suppressBeginIndex:0});c.sort(JI);const p=r>0?-.5/r:0,u=[],h=[];for(;u.length0;){const g=c.pop(),{score:y,boxIndex:w,suppressBeginIndex:x}=g;if(y=x;--A){const _=b$(e,w,u[A]);if(_>=n){T=!0;break}if(g.score=g.score*w$(n,p,_),g.score<=i)break}g.suppressBeginIndex=u.length,T||(g.score===y?(u.push(w),h.push(g.score)):g.score>i&&XI(c,g,JI))}const d=u.length,m=s-d;a&&m>0&&(u.push(...new Array(m).fill(0)),h.push(...new Array(m).fill(0)));const f={selectedIndices:Oe(u,"int32")};return o&&(f.selectedScores=Oe(h,"float32")),l&&(f.validOutputs=j(d,"int32")),f}function b$(e,t,s){const n=e.subarray(t*4,t*4+4),i=e.subarray(s*4,s*4+4),r=Math.min(n[0],n[2]),o=Math.min(n[1],n[3]),a=Math.max(n[0],n[2]),l=Math.max(n[1],n[3]),c=Math.min(i[0],i[2]),p=Math.min(i[1],i[3]),u=Math.max(i[0],i[2]),h=Math.max(i[1],i[3]),d=(a-r)*(l-o),m=(u-c)*(h-p);if(d<=0||m<=0)return 0;const f=Math.max(r,c),g=Math.max(o,p),y=Math.min(a,u),w=Math.min(l,h),x=Math.max(y-f,0)*Math.max(w-g,0);return x/(d+m-x)}function w$(e,t,s){const n=Math.exp(t*s*s);return s<=e?n:0}function JI(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}async function x$(e,t,s,n=.5,i=Number.NEGATIVE_INFINITY){const r=b(e,"boxes","nonMaxSuppressionAsync"),o=b(t,"scores","nonMaxSuppressionAsync"),a=Ln(r,o,s,n,i);s=a.maxOutputSize,n=a.iouThreshold,i=a.scoreThreshold;const l=await Promise.all([r.data(),o.data()]),c=l[0],p=l[1],u=_d(c,p,s,n,i);return r!==e&&r.dispose(),o!==t&&o.dispose(),u}const ZI=x$;function L$(e,t,s,n=.5,i=Number.NEGATIVE_INFINITY,r=0){const o=b(e,"boxes","nonMaxSuppression"),a=b(t,"scores","nonMaxSuppression"),l=Ln(o,a,s,n,i,r);s=l.maxOutputSize,n=l.iouThreshold,i=l.scoreThreshold,r=l.softNmsSigma;const c={boxes:o,scores:a},p={maxOutputSize:s,iouThreshold:n,scoreThreshold:i,softNmsSigma:r},u=v.runKernel(Po,c,p);return{selectedIndices:u[0],selectedScores:u[1]}}const QI=S({nonMaxSuppressionWithScore_:L$});async function S$(e,t,s,n=.5,i=Number.NEGATIVE_INFINITY,r=0){const o=b(e,"boxes","nonMaxSuppressionAsync"),a=b(t,"scores","nonMaxSuppressionAsync"),l=Ln(o,a,s,n,i,r);s=l.maxOutputSize,n=l.iouThreshold,i=l.scoreThreshold,r=l.softNmsSigma;const c=await Promise.all([o.data(),a.data()]),p=c[0],u=c[1],h=Dd(p,u,s,n,i,r);return o!==e&&o.dispose(),a!==t&&a.dispose(),h}const ev=S$;function I$(e,t,s,n=.5,i=Number.NEGATIVE_INFINITY,r=!1){const o=b(e,"boxes","nonMaxSuppression"),a=b(t,"scores","nonMaxSuppression"),l=Ln(o,a,s,n,i,null),c=l.maxOutputSize,p=l.iouThreshold,u=l.scoreThreshold,h={boxes:o,scores:a},d={maxOutputSize:c,iouThreshold:p,scoreThreshold:u,padToMaxOutputSize:r},m=v.runKernel(zo,h,d);return{selectedIndices:m[0],validOutputs:m[1]}}const tv=S({nonMaxSuppressionPadded_:I$});async function v$(e,t,s,n=.5,i=Number.NEGATIVE_INFINITY,r=!1){const o=b(e,"boxes","nonMaxSuppressionAsync"),a=b(t,"scores","nonMaxSuppressionAsync"),l=Ln(o,a,s,n,i,null),c=l.maxOutputSize,p=l.iouThreshold,u=l.scoreThreshold,[h,d]=await Promise.all([o.data(),a.data()]),m=kd(h,d,c,p,u,r);return o!==e&&o.dispose(),a!==t&&a.dispose(),m}const sv=v$;function T$(e,t,s=!1){const n=b(e,"images","resizeBilinear");I(n.rank===3||n.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${n.rank}.`),I(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`);let i=n,r=!1;n.rank===3&&(r=!0,i=O(n,[1,n.shape[0],n.shape[1],n.shape[2]]));const[o,a]=t,l=(h,d)=>(d([i]),h.resizeBilinear(i,o,a,s)),c={images:i},p={alignCorners:s,size:t},u=v.runKernelFunc(l,c,null,yp,p);return r?O(u,[u.shape[1],u.shape[2],u.shape[3]]):u}const nv=S({resizeBilinear_:T$});function A$(e,t,s=!1){const n=b(e,"images","resizeNearestNeighbor");I(n.rank===3||n.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${n.rank}.`),I(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),I(n.dtype==="float32"||n.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype");let i=n,r=!1;n.rank===3&&(r=!0,i=O(n,[1,n.shape[0],n.shape[1],n.shape[2]]));const[o,a]=t,l={images:i},c={alignCorners:s,size:t},p=(h,d)=>(d([i]),h.resizeNearestNeighbor(i,o,a,s)),u=v.runKernelFunc(p,l,null,gp,c);return r?O(u,[u.shape[1],u.shape[2],u.shape[3]]):u}const iv=S({resizeNearestNeighbor_:A$});function N$(e,t,s){I(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),I(s%1===0,()=>`bandPart(): numUpper must be an integer, got ${s}.`);const n=b(e,"a","bandPart");I(n.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${n.rank}.`);const i=n.shape,[r,o]=n.shape.slice(-2);if(!(t<=r))throw new Error(`bandPart(): numLower (${t}) must not be greater than the number of rows (${r}).`);if(!(s<=o))throw new Error(`bandPart(): numUpper (${s}) must not be greater than the number of columns (${o}).`);t<0&&(t=r),s<0&&(s=o);const a=O($i(0,r,1,"int32"),[-1,1]),l=$i(0,o,1,"int32"),c=X(a,l),p=Yt(Ws(c,j(+t,"int32")),ms(c,j(-s,"int32"))),u=ye([r,o],n.dtype);return O(Ge(qe(O(n,[-1,r,o])).map(h=>mt(p,h,u))),i)}const rv=S({bandPart_:N$});function C$(e){let t;if(Array.isArray(e)){t=!1,I(e!=null&&e.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");const i=e[0].shape[0];for(let r=1;r`Gram-Schmidt: Non-unique lengths found in the input vectors: (${e[r].shape[0]} vs. ${i})`)}else t=!0,e=Bt(e,e.shape[0],0).map(i=>Qs(i,[0]));I(e.length<=e[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${e.length}) exceeds number of dimensions (${e[0].shape[0]}).`);const s=[],n=e;for(let i=0;i{let r=n[i];if(i>0)for(let o=0;o=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${e.rank}`),e.rank===2)return av(e,t);{const s=e.shape.slice(0,e.shape.length-2).reduce((l,c)=>l*c),n=qe(O(e,[s,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),i=[],r=[];n.forEach(l=>{const[c,p]=av(l,t);i.push(c),r.push(p)});const o=O(Ge(i,0),e.shape),a=O(Ge(r,0),e.shape);return[o,a]}}function av(e,t=!1){return v.tidy(()=>{I(e.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${e.shape.length}D Tensor.`);const s=e.shape[0],n=e.shape[1];let i=sa(s),r=Fs(e);const o=ls([[1]],[1,1]);let a=Fs(o);const l=s>=n?n:s;for(let c=0;c{const d=he(r,[c,c],[s-c,1]),m=Kp(d),f=he(r,[c,c],[1,1]),g=mt(Ut(f,0),ls([[-1]]),ls([[1]])),y=X(f,R(g,m)),w=Z(d,y);w.shape[0]===1?a=Fs(o):a=be([o,he(w,[1,0],[w.shape[0]-1,w.shape[1]])],0);const x=ke(Z(Te(g,y),m)),T=he(r,[c,0],[s-c,n]),A=R(x,a),_=se(a);if(c===0)r=X(T,Te(A,Te(_,T)));else{const D=X(T,Te(A,Te(_,T)));r=be([he(r,[0,0],[c,n]),D],0)}const E=se(A),F=he(i,[0,c],[s,i.shape[1]-c]);if(c===0)i=X(F,Te(Te(F,a),E));else{const D=X(F,Te(Te(F,a),E));i=be([he(i,[0,0],[s,c]),D],1)}return[a,r,i]}),ce([p,u,h])}return!t&&s>n&&(i=he(i,[0,0],[s,n]),r=he(r,[0,0],[n,n])),[i,r]})}const lv=S({qr_:R$});var gt;(function(e){e[e.NONE=0]="NONE",e[e.MEAN=1]="MEAN",e[e.SUM=2]="SUM",e[e.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"})(gt||(gt={}));function O$(e,t,s=gt.SUM_BY_NONZERO_WEIGHTS){const n=b(e,"losses","computeWeightedLoss");let i=null;t!=null&&(i=b(t,"weights","computeWeightedLoss"));const r=i==null?n:R(n,i);if(s===gt.NONE)return r;if(s===gt.SUM)return te(r);if(s===gt.MEAN){if(i==null)return Xe(r);{const o=n.size/i.size,a=Z(te(r),te(i));return o>1?Z(a,j(o)):a}}if(s===gt.SUM_BY_NONZERO_WEIGHTS){if(i==null)return Z(te(r),j(n.size));{const o=R(i,Kt(n.shape)),a=G(te(Js(o,j(0))),"float32");return Z(te(r),a)}}throw Error(`Unknown reduction: ${s}`)}const ns=S({computeWeightedLoss_:O$});function E$(e,t,s,n=gt.SUM_BY_NONZERO_WEIGHTS){const i=b(e,"labels","absoluteDifference"),r=b(t,"predictions","absoluteDifference");let o=null;s!=null&&(o=b(s,"weights","absoluteDifference")),Se(i.shape,r.shape,"Error in absoluteDifference: ");const a=et(X(i,r));return ns(a,o,n)}const cv=S({absoluteDifference_:E$});function _$(e,t,s,n,i=gt.SUM_BY_NONZERO_WEIGHTS){const r=b(e,"labels","cosineDistance"),o=b(t,"predictions","cosineDistance");let a=null;n!=null&&(a=b(n,"weights","cosineDistance")),Se(r.shape,o.shape,"Error in cosineDistance: ");const l=j(1),c=X(l,te(R(r,o),s,!0));return ns(c,a,i)}const pv=S({cosineDistance_:_$});function k$(e,t,s,n=gt.SUM_BY_NONZERO_WEIGHTS){let i=b(e,"labels","hingeLoss");const r=b(t,"predictions","hingeLoss");let o=null;s!=null&&(o=b(s,"weights","hingeLoss")),Se(i.shape,r.shape,"Error in hingeLoss: ");const a=j(1);i=X(R(j(2),i),a);const l=Fe(X(a,R(i,r)));return ns(l,o,n)}const uv=S({hingeLoss_:k$});function D$(e,t,s,n=1,i=gt.SUM_BY_NONZERO_WEIGHTS){const r=b(e,"labels","huberLoss"),o=b(t,"predictions","huberLoss");let a=null;s!=null&&(a=b(s,"weights","huberLoss")),Se(r.shape,o.shape,"Error in huberLoss: ");const l=j(n),c=et(X(o,r)),p=bn(c,l),u=X(c,p),h=$(R(j(.5),xe(p)),R(l,u));return ns(h,a,i)}const hv=S({huberLoss_:D$});function F$(e,t,s,n=1e-7,i=gt.SUM_BY_NONZERO_WEIGHTS){const r=b(e,"labels","logLoss"),o=b(t,"predictions","logLoss");let a=null;s!=null&&(a=b(s,"weights","logLoss")),Se(r.shape,o.shape,"Error in logLoss: ");const l=j(1),c=j(n),p=ke(R(r,zt($(o,c)))),u=R(X(l,r),zt($(X(l,o),c))),h=X(p,u);return ns(h,a,i)}const dv=S({logLoss_:F$});function M$(e,t,s,n=gt.SUM_BY_NONZERO_WEIGHTS){const i=b(e,"labels","meanSquaredError"),r=b(t,"predictions","meanSquaredError");let o=null;s!=null&&(o=b(s,"weights","meanSquaredError")),Se(i.shape,r.shape,"Error in meanSquaredError: ");const a=io(i,r);return ns(a,o,n)}const mv=S({meanSquaredError_:M$});function U$(e,t){const s=b(e,"labels","sigmoidCrossEntropyWithLogits"),n=b(t,"logits","sigmoidCrossEntropyWithLogits");Se(s.shape,n.shape,"Error in sigmoidCrossEntropyWithLogits: ");const i=Fe(n),r=R(n,s),o=Sl(ut(ke(et(n))));return $(X(i,r),o)}function $$(e,t,s,n=0,i=gt.SUM_BY_NONZERO_WEIGHTS){let r=b(e,"multiClassLabels","sigmoidCrossEntropy");const o=b(t,"logits","sigmoidCrossEntropy");let a=null;if(s!=null&&(a=b(s,"weights","sigmoidCrossEntropy")),Se(r.shape,o.shape,"Error in sigmoidCrossEntropy: "),n>0){const c=j(n),p=j(1),u=j(.5);r=$(R(r,X(p,c)),R(u,c))}const l=U$(r,o);return ns(l,a,i)}const fv=S({sigmoidCrossEntropy_:$$});function W$(e,t,s=-1){if(s===-1&&(s=t.rank-1),s!==t.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${t.rank} and dim was ${s}`);const n=fs((i,r,o)=>{const a=!0,l=dd(r,[s],a),c=X(G(r,"float32"),l);o([i,c]);const p=ke(R(c,i)),u=te(p,[s]),h=(d,m)=>{const[f,g]=m,y=wt(d.shape,[s]);return[R(O(d,y),X(G(f,"float32"),ut(g))),R(O(d,y),X(ut(g),G(f,"float32")))]};return{value:u,gradFunc:h}});return n(e,t)}function z$(e,t,s,n=0,i=gt.SUM_BY_NONZERO_WEIGHTS){let r=b(e,"onehotLabels","softmaxCrossEntropy");const o=b(t,"logits","softmaxCrossEntropy");let a=null;if(s!=null&&(a=b(s,"weights","softmaxCrossEntropy")),Se(r.shape,o.shape,"Error in softmaxCrossEntropy: "),n>0){const c=j(n),p=j(1),u=j(r.shape[1]);r=$(R(r,X(p,c)),Z(c,u))}const l=W$(r,o);return ns(l,a,i)}const gv=S({softmaxCrossEntropy_:z$});const P$={fft:so,ifft:Wi,rfft:no,irfft:kl},B$={hammingWindow:VI,hannWindow:Od,frame:Ed,stft:GI},en={flipLeftRight:HI,resizeNearestNeighbor:iv,resizeBilinear:nv,rotateWithOffset:YI,cropAndResize:qI,nonMaxSuppression:KI,nonMaxSuppressionAsync:ZI,nonMaxSuppressionWithScore:QI,nonMaxSuppressionWithScoreAsync:ev,nonMaxSuppressionPadded:tv,nonMaxSuppressionPaddedAsync:sv},Cb={bandPart:rv,gramSchmidt:ov,qr:lv},j$={absoluteDifference:cv,computeWeightedLoss:ns,cosineDistance:pv,hingeLoss:uv,huberLoss:hv,logLoss:dv,meanSquaredError:mv,sigmoidCrossEntropy:fv,softmaxCrossEntropy:gv};class gs extends cb{minimize(e,t=!1,s){const{value:n,grads:i}=this.computeGradients(e,s);if(s!=null){const r=s.map(o=>({name:o.name,tensor:i[o.name]}));this.applyGradients(r)}else this.applyGradients(i);return ce(i),t?n:(n.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return hd(e,t)}dispose(){this.iterations_!=null&&ce(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:j(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(e){return this.iterations_=(await e[0].tensor.data())[0],e.slice(1)}}Object.defineProperty(gs,Symbol.hasInstance,{value:e=>e.minimize!=null&&e.computeGradients!=null&&e.applyGradients!=null});class ca extends gs{constructor(e,t,s=null){super();this.learningRate=e,this.rho=t,this.epsilon=s,this.accumulatedGrads=[],this.accumulatedUpdates=[],s==null&&(this.epsilon=v.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map(s=>s.name):Object.keys(e);t.forEach((s,n)=>{const i=v.registeredVariables[s],r=!1;this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${s}/accum_grad`,variable:C(()=>re(i).variable(r))}),this.accumulatedUpdates[n]==null&&(this.accumulatedUpdates[n]={originalName:`${s}/accum_var`,variable:C(()=>re(i).variable(r))});const o=Array.isArray(e)?e[n].tensor:e[s];if(o==null)return;const a=this.accumulatedGrads[n].variable,l=this.accumulatedUpdates[n].variable;C(()=>{const c=$(R(a,this.rho),R(xe(o),1-this.rho)),p=R(Z(Je($(l,this.epsilon)),Je($(a,this.epsilon))),o),u=$(R(l,this.rho),R(xe(p),1-this.rho));a.assign(c),l.assign(u);const h=$(R(p,-this.learningRate),i);i.assign(h)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(ce(this.accumulatedGrads.map(e=>e.variable)),ce(this.accumulatedUpdates.map(e=>e.variable)))}async getWeights(){const e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);const t=e.length/2,s=!1;this.accumulatedGrads=e.slice(0,t).map(n=>({originalName:n.name,variable:n.tensor.variable(s)})),this.accumulatedUpdates=e.slice(t,t*2).map(n=>({originalName:n.name,variable:n.tensor.variable(s)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}}ca.className="Adadelta";As(ca);class pa extends gs{constructor(e,t=.1){super();this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){const t=Array.isArray(e)?e.map(s=>s.name):Object.keys(e);t.forEach((s,n)=>{const i=v.registeredVariables[s];if(this.accumulatedGrads[n]==null){const a=!1;this.accumulatedGrads[n]={originalName:`${s}/accumulator`,variable:C(()=>Wt(i.shape,this.initialAccumulatorValue).variable(a))}}const r=Array.isArray(e)?e[n].tensor:e[s];if(r==null)return;const o=this.accumulatedGrads[n].variable;C(()=>{const a=$(o,xe(r));o.assign(a);const l=$(R(Z(r,Je($(a,v.backend.epsilon()))),-this.learningRate),i);i.assign(l)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&ce(this.accumulatedGrads.map(e=>e.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);const t=!1;this.accumulatedGrads=e.map(s=>({originalName:s.name,variable:s.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}}pa.className="Adagrad";As(pa);class ua extends gs{constructor(e,t,s,n=null){super();this.learningRate=e,this.beta1=t,this.beta2=s,this.epsilon=n,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],C(()=>{this.accBeta1=j(t).variable(),this.accBeta2=j(s).variable()}),n==null&&(this.epsilon=v.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map(s=>s.name):Object.keys(e);C(()=>{const s=X(1,this.accBeta1),n=X(1,this.accBeta2);t.forEach((i,r)=>{const o=v.registeredVariables[i],a=!1;this.accumulatedFirstMoment[r]==null&&(this.accumulatedFirstMoment[r]={originalName:`${i}/m`,variable:C(()=>re(o).variable(a))}),this.accumulatedSecondMoment[r]==null&&(this.accumulatedSecondMoment[r]={originalName:`${i}/v`,variable:C(()=>re(o).variable(a))});const l=Array.isArray(e)?e[r].tensor:e[i];if(l==null)return;const c=this.accumulatedFirstMoment[r].variable,p=this.accumulatedSecondMoment[r].variable,u=$(R(c,this.beta1),R(l,1-this.beta1)),h=$(R(p,this.beta2),R(xe(l),1-this.beta2)),d=Z(u,s),m=Z(h,n);c.assign(u),p.assign(h);const f=$(R(Z(d,$(Je(m),this.epsilon)),-this.learningRate),o);o.assign(f)}),this.accBeta1.assign(R(this.accBeta1,this.beta1)),this.accBeta2.assign(R(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&ce(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedSecondMoment!=null&&ce(this.accumulatedSecondMoment.map(e=>e.variable))}async getWeights(){const e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e),C(()=>{this.accBeta1.assign(es(this.beta1,this.iterations_+1)),this.accBeta2.assign(es(this.beta2,this.iterations_+1))});const t=e.length/2,s=!1;this.accumulatedFirstMoment=e.slice(0,t).map(n=>({originalName:n.name,variable:n.tensor.variable(s)})),this.accumulatedSecondMoment=e.slice(t,t*2).map(n=>({originalName:n.name,variable:n.tensor.variable(s)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)}}ua.className="Adam";As(ua);class ha extends gs{constructor(e,t,s,n=null,i=0){super();this.learningRate=e,this.beta1=t,this.beta2=s,this.epsilon=n,this.decay=i,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],C(()=>{this.iteration=j(0).variable(),this.accBeta1=j(t).variable()}),n==null&&(this.epsilon=v.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map(s=>s.name):Object.keys(e);C(()=>{const s=X(1,this.accBeta1),n=Z(-this.learningRate,$(R(this.iteration,this.decay),1));t.forEach((i,r)=>{const o=v.registeredVariables[i],a=!1;this.accumulatedFirstMoment[r]==null&&(this.accumulatedFirstMoment[r]={originalName:`${i}/m`,variable:re(o).variable(a)}),this.accumulatedWeightedInfNorm[r]==null&&(this.accumulatedWeightedInfNorm[r]={originalName:`${i}/v`,variable:re(o).variable(a)});const l=Array.isArray(e)?e[r].tensor:e[i];if(l==null)return;const c=this.accumulatedFirstMoment[r].variable,p=this.accumulatedWeightedInfNorm[r].variable,u=$(R(c,this.beta1),R(l,1-this.beta1)),h=R(p,this.beta2),d=et(l),m=Ht(h,d);c.assign(u),p.assign(m);const f=$(R(Z(n,s),Z(u,$(m,this.epsilon))),o);o.assign(f)}),this.iteration.assign($(this.iteration,1)),this.accBeta1.assign(R(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&ce(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedWeightedInfNorm!=null&&ce(this.accumulatedWeightedInfNorm.map(e=>e.variable))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(e){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)}}ha.className="Adamax";As(ha);class zi extends gs{constructor(e){super();this.learningRate=e,this.setLearningRate(e)}applyGradients(e){const t=Array.isArray(e)?e.map(s=>s.name):Object.keys(e);t.forEach((s,n)=>{const i=Array.isArray(e)?e[n].tensor:e[s];if(i==null)return;const r=v.registeredVariables[s];C(()=>{const o=$(R(this.c,i),r);r.assign(o)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=pt(j(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(e=await this.extractIterations(e),e.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}}zi.className="SGD";As(zi);class da extends zi{constructor(e,t,s=!1){super(e);this.learningRate=e,this.momentum=t,this.useNesterov=s,this.accumulations=[],this.m=j(this.momentum)}applyGradients(e){const t=Array.isArray(e)?e.map(s=>s.name):Object.keys(e);t.forEach((s,n)=>{const i=v.registeredVariables[s];if(this.accumulations[n]==null){const a=!1;this.accumulations[n]={originalName:`${s}/momentum`,variable:C(()=>re(i).variable(a))}}const r=this.accumulations[n].variable,o=Array.isArray(e)?e[n].tensor:e[s];if(o==null)return;C(()=>{let a;const l=$(R(this.m,r),o);this.useNesterov?a=$(R(this.c,$(o,R(l,this.m))),i):a=$(R(this.c,l),i),r.assign(l),i.assign(a)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&ce(this.accumulations.map(e=>e.variable))}setMomentum(e){this.momentum=e}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);const t=!1;this.accumulations=e.map(s=>({originalName:s.name,variable:s.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}}da.className="Momentum";As(da);class ma extends gs{constructor(e,t=.9,s=0,n=null,i=!1){super();if(this.learningRate=e,this.decay=t,this.momentum=s,this.epsilon=n,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=i,n==null&&(this.epsilon=v.backend.epsilon()),e==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){const t=Array.isArray(e)?e.map(s=>s.name):Object.keys(e);t.forEach((s,n)=>{const i=v.registeredVariables[s],r=!1;this.accumulatedMeanSquares[n]==null&&(this.accumulatedMeanSquares[n]={originalName:`${s}/rms`,variable:C(()=>re(i).variable(r))}),this.accumulatedMoments[n]==null&&(this.accumulatedMoments[n]={originalName:`${s}/momentum`,variable:C(()=>re(i).variable(r))}),this.accumulatedMeanGrads[n]==null&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${s}/mg`,variable:C(()=>re(i).variable(r))});const o=Array.isArray(e)?e[n].tensor:e[s];if(o==null)return;const a=this.accumulatedMeanSquares[n].variable,l=this.accumulatedMoments[n].variable;C(()=>{const c=$(R(a,this.decay),R(xe(o),1-this.decay));if(this.centered){const p=this.accumulatedMeanGrads[n].variable,u=$(R(p,this.decay),R(o,1-this.decay)),h=Z(R(o,this.learningRate),Je(X(c,$(xe(u),this.epsilon)))),d=$(R(l,this.momentum),h);a.assign(c),p.assign(u),l.assign(d);const m=X(i,d);i.assign(m)}else{const p=$(R(a,this.decay),R(xe(o),1-this.decay)),u=$(R(l,this.momentum),Z(R(o,this.learningRate),Je($(p,this.epsilon))));a.assign(p),l.assign(u);const h=X(i,u);i.assign(h)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&ce(this.accumulatedMeanSquares.map(e=>e.variable)),this.accumulatedMeanGrads!=null&&this.centered&&ce(this.accumulatedMeanGrads.map(e=>e.variable)),this.accumulatedMoments!=null&&ce(this.accumulatedMoments.map(e=>e.variable))}async getWeights(){const e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);const t=this.centered?e.length/3:e.length/2,s=!1;this.accumulatedMeanSquares=e.slice(0,t).map(n=>({originalName:n.name,variable:n.tensor.variable(s)})),this.accumulatedMoments=e.slice(t,t*2).map(n=>({originalName:n.name,variable:n.tensor.variable(s)})),this.centered&&(this.accumulatedMeanGrads=e.slice(t*2,t*3).map(n=>({originalName:n.name,variable:n.tensor.variable(s)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)}}ma.className="RMSProp";As(ma);class oo{static sgd(e){return new zi(e)}static momentum(e,t,s=!1){return new da(e,t,s)}static rmsprop(e,t=.9,s=0,n=null,i=!1){return new ma(e,t,s,n,i)}static adam(e=.001,t=.9,s=.999,n=null){return new ua(e,t,s,n)}static adadelta(e=.001,t=.95,s=null){return new ca(e,t,s)}static adamax(e=.002,t=.9,s=.999,n=null,i=0){return new ha(e,t,s,n,i)}static adagrad(e,t=.1){return new pa(e,t)}}da,zi,ca,pa,ma,ha,ua;const ao={sgd:oo.sgd,momentum:oo.momentum,adadelta:oo.adadelta,adagrad:oo.adagrad,rmsprop:oo.rmsprop,adamax:oo.adamax,adam:oo.adam};const V$=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:e=>e())();function Zp(){return new Promise(e=>V$(()=>e()))}function G$(e,t,s){const n=s*(typeof e=="number"?e:e[0]),i=t*(typeof e=="number"?e:e[1]);return[n,i]}function q$(e,t,s,n=!0){let i=[];if(n)i=i.concat(t.slice(0)),i.push(e[0]/s),i=i.concat(e.slice(1));else{i=i.concat(e[0]);const r=t.length;for(let o=0;o=t*2+1||o%2===1?r.push(o):i.push(o);n.push(...i),n.push(0),n.push(...r)}return n}function Y$(e,t,s,n=!0){const i=[];n?i.push(e[0]/s):i.push(e[0]*s);for(let r=1;rZ$,ERF_A2:()=>Q$,ERF_A3:()=>eW,ERF_A4:()=>tW,ERF_A5:()=>sW,ERF_P:()=>J$,PARALLELIZE_THRESHOLD:()=>ld,SELU_SCALE:()=>Ob,SELU_SCALEALPHA:()=>Rb,applyActivation:()=>aa,assertAndGetBroadcastShape:()=>Ie,assertAxesAreInnerMostDims:()=>lD,assertParamsConsistent:()=>wb,assignToTypedArray:()=>pW,axesAreInnerMostDims:()=>fb,calculateShapes:()=>eI,castTensor:()=>dW,combineLocations:()=>hI,complexWithEvenIndex:()=>aW,complexWithOddIndex:()=>lW,computeConv2DInfo:()=>rs,computeConv3DInfo:()=>Hr,computeDefaultPad:()=>bb,computeDilation2DInfo:()=>bD,computeOptimalWindowSize:()=>gF,computeOutAndReduceShapes:()=>gb,computeOutShape:()=>xb,computePool2DInfo:()=>Wn,computePool3DInfo:()=>Fi,convertConv2DDataFormat:()=>qr,eitherStridesOrDilationsAreOne:()=>tt,expandShapeToKeepDim:()=>wt,exponent:()=>hW,exponents:()=>uW,getAxesPermutation:()=>dt,getBroadcastDims:()=>sF,getComplexWithIndex:()=>cW,getFusedBiasGradient:()=>oa,getFusedDyActivation:()=>ra,getImageCenter:()=>G$,getInnerMostAxes:()=>qt,getPermuted:()=>H$,getReductionAxes:()=>Ke,getReshaped:()=>q$,getReshapedPermuted:()=>Y$,getSliceBeginCoords:()=>K$,getSliceSize:()=>X$,getUndoAxesPermutation:()=>Jo,linspaceImpl:()=>fW,log:()=>iW,mergeRealAndImagArrays:()=>rW,prepareAndValidate:()=>ZS,prepareSplitSize:()=>Sb,reshapeTensor:()=>mW,segment_util:()=>bI,shouldFuse:()=>la,slice_util:()=>Ms,splitRealAndImagArrays:()=>oW,tupleValuesAreOne:()=>Ks,upcastType:()=>Ft,validateInput:()=>Mh,validateUpdateShape:()=>rb,warn:()=>nW});function dW(e,t,s){if(t==="complex64"){if(e.dtype==="complex64")return e.clone();const n=ye(e.shape),i=G(e,"float32"),r=s.complex(i,n);return n.dispose(),i.dispose(),r}if(!$y(e.dtype,t))return v.makeTensorFromDataId(e.dataId,e.shape,t);if(e.dtype==="complex64"){const n=s.real(e),i=G(n,t);return n.dispose(),i}if(t==="int32")return s.int(e);if(t==="bool"){const n=j(0,e.dtype),i=s.notEqual(e,n);return n.dispose(),i}else throw new Error(`Error in Cast: failed to cast ${e.dtype} to ${t}`)}function mW(e,t){return v.makeTensorFromDataId(e.dataId,t,e.dtype)}function fW(e,t,s){const n=(t-e)/(s-1),i=ai(s,"float32");i[0]=e;for(let r=1;r{const o=[...i];o[s]=r;const a=he(e,n,o);return n[s]+=r,a})}function bv(e,t){const s=new Array(e.rank);for(let i=0;ix.value-w.value);const f=u*n,g=l.subarray(f,f+n),y=c.subarray(f,f+n);for(let w=0;w_d,nonMaxSuppressionV4Impl:()=>kd,nonMaxSuppressionV5Impl:()=>Dd,split:()=>yv,tile:()=>bv,topkImpl:()=>wv,whereImpl:()=>Nd});const xv={kernelName:_o,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(e,mi(G(s,"float32"),-1))}}};const Lv={kernelName:dr,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>{const n=xe(G(s,"float32")),i=Je(X(j(1),n));return ke(Z(e,i))}}}};const Sv={kernelName:mr,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>{const n=Je(X(xe(G(s,"float32")),1));return Z(e,n)}}}};const Iv={kernelName:Zn,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=Ie(s.shape,n.shape),r=()=>{let a=e;const l=Ke(s.shape,i);return l.length>0&&(a=te(a,l)),O(a,s.shape)},o=()=>{let a=e;const l=Ke(n.shape,i);return l.length>0&&(a=te(a,l)),O(a,n.shape)};return{a:r,b:o}}};const vv={kernelName:Mc,saveAllInputs:!0,gradFunc:(e,t)=>{const s={};return t.forEach((n,i)=>{s[i]=()=>e.clone()}),s}};const Tv={kernelName:Uc,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>re(s)}}};const Av={kernelName:$c,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>re(s)}}};const Nv={kernelName:fr,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>Z(e,Je(X(j(1),xe(G(s,"float32")))))}}};const Cv={kernelName:gr,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>{const n=Je($(j(1),xe(G(s,"float32"))));return Z(e,n)}}}};const Rv={kernelName:ko,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=Ie(s.shape,n.shape),r=()=>{const a=$(xe(s),xe(n));let l=R(e,Z(n,a));const c=Ke(s.shape,i);return c.length>0&&(l=te(l,c)),O(l,s.shape)},o=()=>{const a=$(xe(s),xe(n));let l=ke(R(e,Z(s,a)));const c=Ke(n.shape,i);return c.length>0&&(l=te(l,c)),O(l,n.shape)};return{a:r,b:o}}};const Ov={kernelName:yr,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>Z(e,$(xe(G(s,"float32")),1))}}};const Ev={kernelName:br,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>Z(e,X(j(1),xe(G(s,"float32"))))}}};function gW(e,t,s,n,i=[1,1,1],r,o){const a=b(e,"dy","avgPool3dBackprop"),l=b(t,"input","avgPool3dBackprop");let c=a,p=l,u=!1;l.rank===4&&(u=!0,c=O(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]]),p=O(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]])),I(c.rank===5,()=>`Error in avgPool3dBackprop: dy must be rank 5 but got rank ${c.rank}.`),I(p.rank===5,()=>`Error in avgPool3dBackprop: input must be rank 5 but got rank ${p.rank}.`),I(tt(n,i),()=>`Error in avgPool3dBackprop: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`),o!=null&&I(De(r),()=>`Error in maxPool3dBackprop: pad must be an integer when using, dimRoundingMode ${o} but got pad ${r}.`);const h=g=>{const y=Fi(p.shape,s,n,i,r,o);return g.avgPool3dBackprop(c,p,y)},d={dy:c,input:p},m={filterSize:s,strides:n,dilations:i,pad:r,dimRoundingMode:o},f=v.runKernelFunc(h,d,null,ny,m);return u?O(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}const _v=S({avgPool3dBackprop_:gW});const kv={kernelName:Wc,inputsToSave:["x"],gradFunc:(e,t,s)=>{const[n]=t,{filterSize:i,strides:r,dilations:o,pad:a,dimRoundingMode:l}=s,c=o??[1,1,1];return{x:()=>_v(e,n,i,r,c,a,l)}}};function yW(e,t,s,n,i){const r=b(e,"dy","avgPoolBackprop"),o=b(t,"input","avgPoolBackprop");I(o.rank===r.rank,()=>`Rank of input (${o.rank}) does not match rank of dy (${r.rank})`);let a=o,l=r,c=!1;o.rank===3&&(c=!0,a=O(o,[1,o.shape[0],o.shape[1],o.shape[2]]),l=O(r,[1,r.shape[0],r.shape[1],r.shape[2]])),I(l.rank===4,()=>`Error in avgPoolBackprop: dy must be rank 4 but got rank ${l.rank}.`),I(a.rank===4,()=>`Error in avgPoolBackprop: input must be rank 4 but got rank ${a.rank}.`);const p=m=>{const f=Wn(a.shape,s,n,1,i);return m.avgPoolBackprop(l,a,f)},u={dy:l,input:a},h={filterSize:s,strides:n,pad:i},d=v.runKernelFunc(p,u,null,Do,h);return c?O(d,[d.shape[1],d.shape[2],d.shape[3]]):d}const Dv=S({avgPoolBackprop_:yW});const Fv={kernelName:Ti,inputsToSave:["x"],gradFunc:(e,t,s)=>{const[n]=t,{filterSize:i,strides:r,pad:o}=s;return{x:()=>Dv(e,n,i,r,o)}}};const Mv={kernelName:zc,inputsToSave:["a","b"],gradFunc:(e,t,s)=>{const[n,i]=t,{transposeA:r,transposeB:o}=s;return!r&&!o?{a:()=>Te(e,i,!1,!0),b:()=>Te(n,e,!0,!1)}:!r&&o?{a:()=>Te(e,i,!1,!1),b:()=>Te(e,n,!0,!1)}:r&&!o?{a:()=>Te(i,e,!1,!0),b:()=>Te(n,e,!1,!1)}:{a:()=>Te(i,e,!0,!0),b:()=>Te(e,n,!0,!0)}}};const Uv={kernelName:Pc,gradFunc:(e,t,s)=>{const{blockShape:n,crops:i}=s;return{x:()=>Zr(e,n,i)}}};const $v={kernelName:Bc,gradFunc:(e,t,s)=>{const n=s,i=n.inputShape,r=n.shape,o=Array.from(r);for(let l=i.length-1;l>=0;l--)if(i[l]===r[l])o[l]=1;else if(i[l]!==1)throw new Error(`broadcastTo(): [${i}] cannot be broadcast to [${r}].`);const a=[];for(let l=0;l1&&a.push(l);return{x:()=>te(e,a,!0)}}};const Wv={kernelName:Ai,gradFunc:e=>({x:()=>e.clone()})};const zv={kernelName:wr,gradFunc:e=>({x:()=>re(e)})};const Pv={kernelName:xr,inputsToSave:["x"],gradFunc:(e,t,s)=>{const[n]=t,{clipValueMin:i,clipValueMax:r}=s;return{x:()=>mt(Yt(ms(n,i),Ws(n,r)),e,re(e))}}};const Bv={kernelName:Fo,saveAllInputs:!0,gradFunc:(e,t,s)=>{const n=t.map(l=>l.shape),{axis:i}=s,r=Ne(i,t[0].shape)[0],o=n.map(l=>l[r]),a=Bt(e,o,r);return a.map(l=>()=>l)}};const jv={kernelName:Vc,inputsToSave:["x","filter"],gradFunc:(e,t,s)=>{const[n,i]=t,{dilations:r,strides:o,pad:a,dataFormat:l}=s;return I(Ks(r),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${r}'`),{x:()=>gl(n.shape,e,i,o,a,l),filter:()=>Fl(n,e,i.shape,o,a,l)}}};const Vv={kernelName:Gc,inputsToSave:["dy","filter"],gradFunc:(e,t,s)=>{const[n,i]=t,{strides:r,pad:o,dataFormat:a,dimRoundingMode:l}=s;return{dy:()=>rt(e,i,r,o,a,1,l),filter:()=>Fl(e,n,i.shape,r,o,a,l)}}};function bW(e,t,s,n,i){let r=e;e.rank===4&&(r=O(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let o=t;o.rank===4&&(o=O(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),I(r.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${r.shape}.`),I(o.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${o.shape}.`),I(s.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${s}.`),I(r.shape[4]===s[3],()=>`Error in conv3dDerFilter: depth of input ${r.shape[4]}) must match input depth in filter (${s[3]}.`),I(o.shape[4]===s[4],()=>`Error in conv3dDerFilter: depth of dy (${o.shape[4]}) must match output depth for filter (${s[4]}).`);const a=p=>{const u=1,h=Hr(r.shape,s,n,u,i);return p.conv3dDerFilter(r,o,h)},l={x:r,y:o},c={strides:n,pad:i};return v.runKernelFunc(a,l,null,ry,c)}const Gv=S({conv3DBackpropFilter_:bW});const qv={kernelName:qc,inputsToSave:["x","filter"],gradFunc:(e,t,s)=>{const{dilations:n,strides:i,pad:r}=s;I(Ks(n),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${n}'`);const[o,a]=t;return{x:()=>sd(o.shape,e,a,i,r),filter:()=>Gv(o,e,a.shape,i,r)}}};const Hv={kernelName:Qn,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(ke(Ol(G(s,"float32"))),e)}}};const Yv={kernelName:Lr,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(El(G(s,"float32")),e)}}};const Kv={kernelName:Hc,inputsToSave:["x"],gradFunc:(e,t,s)=>{const[n]=t,{axis:i,exclusive:r,reverse:o}=s;return{x:()=>{const a=dt([i],n.rank);let l=xl(e,i,r,!o);return a!=null&&(l=se(l,a)),l}}}};const Xv={kernelName:Yc,inputsToSave:["x","filter"],gradFunc:(e,t,s)=>{const{dilations:n,strides:i,pad:r,dimRoundingMode:o}=s,a=n??[1,1];I(Ks(a),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${a}'`);const[l,c]=t;I(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${l.rank}.`),I(c.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${c.rank}.`),I(l.shape[3]===c.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${l.shape[3]}) must match the inChannels dimension in filter ${c.shape[2]}.`),I(tt(i,a),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${a}'.`),o!=null&&I(De(r),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${o} but got pad ${r}.`);const p=rs(l.shape,c.shape,i,a,r,o,!0);return{x:()=>Rd(l.shape,e,c,p),filter:()=>Cd(l,e,c.shape,p)}}};const Jv={kernelName:Mo,inputsToSave:["x","filter"],gradFunc:(e,t,s)=>{const[n,i]=t,r={x:n,filter:i,dy:e},o={x:n,filter:i,dy:e};return{x:()=>v.runKernel(qa,r,s),filter:()=>v.runKernel(Ha,o,s)}}};const Zv={kernelName:ei,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=Ie(s.shape,n.shape),r=()=>{const a=Z(e,G(n,"float32")),l=Ke(s.shape,i);return l.length>0?O(te(a,l),s.shape):a},o=()=>{let a=R(e,G(s,"float32"));const l=Ke(n.shape,i);l.length>0&&(a=O(te(a,l),n.shape));const c=xe(n);return ke(Z(a,G(c,"float32")))};return{a:r,b:o}}};const Qv={kernelName:Sr,outputsToSave:[!0],gradFunc:(e,t)=>{const[s]=t,n=r=>r.eluDer(e,s),i={dy:e,y:s};return{x:()=>v.runKernelFunc(n,i,null,hy)}}};const eT={kernelName:Ir,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t,n=R(ut(ke(xe(s))),2/Math.sqrt(Math.PI));return{x:()=>R(e,n)}}};const tT={kernelName:vr,outputsToSave:[!0],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(e,s)}}};const sT={kernelName:Tr,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(e,ut(s))}}};const nT={kernelName:Ar,gradFunc:e=>({x:()=>re(e)})};const iT={kernelName:Xc,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=Ie(s.shape,n.shape),r=()=>{const a=Z(e,G(n,"float32")),l=Ke(s.shape,i);return l.length>0?O(te(a,l),s.shape):a},o=()=>{let a=R(e,G(s,"float32"));const l=Ke(n.shape,i);l.length>0&&(a=O(te(a,l),n.shape));const c=xe(n);return ke(Z(a,G(c,"float32")))};return{a:r,b:o}}};const rT={kernelName:Ni,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,s)=>{const{varianceEpsilon:n}=s,[i,r,o,a]=t,l=a??j(1),c=Ke(r.shape,i.shape),p=[];if(r.rank===1){for(let T=0;Tr.rank===1?O(R(R(e,$s(O(d,[1,1,1,r.shape[0]]),p)),l),i.shape):O(R(R(e,d),l),i.shape),g=()=>{let T=R(R(d,j(-1)),h);return r.rank===1&&(T=te(T,c)),O(T,r.shape)},y=()=>{let T=R(R(m,u),h);return r.rank===1&&(T=te(T,c)),O(T,r.shape)},w=()=>{const T=R(u,d);let A=R(e,T);return r.rank===1&&(A=te(A,c)),O(A,r.shape)},x=()=>{let T=e;return r.rank===1&&(T=te(T,c)),O(T,r.shape)};return{x:f,mean:g,variance:y,scale:w,offset:x}}};const lT={kernelName:Jc,inputsToSave:["x","indices"],gradFunc:(e,t,s)=>{const[n,i]=t,{axis:r}=s,o=Ne(r,n.shape)[0],a=()=>{const l=n.shape,c=i.size,p=l.slice(0,o),u=p.length,h=l.slice(r,l.length).slice(1),d=h.length,m=oT(0,u),f=oT(u+1,u+1+d),g=aT([p,[c],h]),y=O(e,g),w=O(i,[c]),x=aT([[u],m,f]),T=se(y,x);let A=Td(T,w,n.shape[o]);const _=Jo(x);return A=se(A,_),A};return{x:a,indices:()=>i}}};function oT(e,t){const s=[];for(let n=e;n{const[s,n]=t;return{a:()=>re(s),b:()=>re(n)}}};const pT={kernelName:Ci,gradFunc:e=>({x:()=>G(e,"float32")})};const uT={kernelName:Nr,gradFunc:e=>({x:()=>re(e)})};const hT={kernelName:Cr,gradFunc:e=>({x:()=>re(e)})};const dT={kernelName:Rr,gradFunc:e=>({x:()=>re(e)})};const mT={kernelName:Er,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>Z(e,$(s,1))}}};const fT={kernelName:Or,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>Z(e,G(s,"float32"))}}};const gT={kernelName:tp,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,s)=>{const[n]=t,{axis:i}=s;return{logits:()=>{const r=!0,o=ut(n);return X(e,R(te(e,i,r),o))}}}};function wW(e,t,s,n=5,i=1,r=1,o=.5){const a=p=>p.LRNGrad(s,e,t,n,i,r,o),l={x:e,y:t,dy:s},c={depthRadius:n,bias:i,alpha:r,beta:o};return v.runKernelFunc(a,l,null,Sy,c)}const yT=S({localResponseNormalizationBackprop_:wW});const bT={kernelName:sp,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,s)=>{const[n,i]=t,{depthRadius:r,bias:o,alpha:a,beta:l}=s;return{x:()=>yT(n,i,e,r,o,a,l)}}};function Fd(e,t,s,n,i){return t.rank{const r=R(e,G(as(s,t),e.dtype));return i==null?r:se(r,i)}}}const Eb={kernelName:Ri,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,s)=>{const n=s,{reductionIndices:i}=n,[r,o]=t,a=Ne(i,r.shape),l=dt(a,r.rank),c=Fd(e,o,r,a,l);return{x:()=>{let p=c.x();return l!=null&&(p=se(p)),p}}}};const wT={kernelName:np,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=()=>R(e,G(ms(s,n),"float32")),r=()=>R(e,G(Xr(s,n),"float32"));return{a:i,b:r}}};function xW(e,t,s,n,i,r=[1,1,1],o,a){const l=b(e,"dy","maxPool3dBackprop"),c=b(t,"input","maxPool3dBackprop"),p=b(s,"output","maxPool3dBackprop");let u=l,h=c,d=p,m=!1;c.rank===4&&(m=!0,u=O(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),h=O(c,[1,c.shape[0],c.shape[1],c.shape[2],c.shape[3]]),d=O(p,[1,p.shape[0],p.shape[1],p.shape[2],p.shape[3]])),I(u.rank===5,()=>`Error in maxPool3dBackprop: dy must be rank 5 but got rank ${u.rank}.`),I(h.rank===5,()=>`Error in maxPool3dBackprop: input must be rank 5 but got rank ${h.rank}.`),I(d.rank===5,()=>`Error in maxPool3dBackprop: output must be rank 5 but got rank ${d.rank}.`),I(tt(i,r),()=>`Error in maxPool3dBackprop: Either strides or dilations must be 1. Got strides ${i} and dilations '${r}'`),a!=null&&I(De(o),()=>`Error in maxPool3dBackprop: pad must be an integer when using, dimRoundingMode ${a} but got pad ${o}.`);const f=x=>{const T=Fi(h.shape,n,i,r,o,a);return x.maxPool3dBackprop(u,h,d,T)},g={dy:u,input:h,output:d},y={filterSize:n,strides:i,dilations:r,pad:o,dimRoundingMode:a},w=v.runKernelFunc(f,g,null,Iy,y);return m?O(w,[w.shape[1],w.shape[2],w.shape[3],w.shape[4]]):w}const xT=S({maxPool3dBackprop_:xW});const LT={kernelName:ip,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,s)=>{const[n,i]=t,{filterSize:r,strides:o,dilations:a,pad:l,dimRoundingMode:c}=s,p=a??[1,1,1];return{x:()=>xT(e,n,i,r,o,p,l,c)}}};function LW(e,t,s,n,i,r,o){const a=b(e,"dy","maxPoolBackprop"),l=b(t,"input","maxPoolBackprop"),c=b(s,"output","maxPoolBackprop");I(l.rank===a.rank,()=>`Rank of input (${l.rank}) does not match rank of dy (${a.rank})`),I(a.rank===4,()=>`Error in maxPoolBackprop: dy must be rank 4 but got rank ${a.rank}.`),I(l.rank===4,()=>`Error in maxPoolBackprop: input must be rank 4 but got rank ${l.rank}.`),o!=null&&I(De(r),()=>`Error in maxPoolBackprop: pad must be an integer when using, dimRoundingMode ${o} but got pad ${r}.`);const p=d=>{const m=Wn(l.shape,n,i,1,r,o);return d.maxPoolBackprop(a,l,c,m)},u={dy:a,input:l,output:c},h={filterSize:n,strides:i,pad:r,dimRoundingMode:o};return v.runKernelFunc(p,u,null,$o,h)}const ST=S({maxPoolBackprop_:LW});const IT={kernelName:Oi,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,s)=>{const[n,i]=t,{filterSize:r,strides:o,pad:a}=s;return{x:()=>ST(e,n,i,r,o,a)}}};const vT={kernelName:rp,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,s)=>{const n=s,{axis:i}=n,[r,o]=t,a=Ne(i,r.shape),l=dt(a,r.rank),c=Fd(e,o,r,a,l);return{x:()=>{let p=c.x();return l!=null&&(p=se(p)),p}}}};const TT={kernelName:op,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=()=>R(e,G(Ws(s,n),"float32")),r=()=>R(e,G(Ut(s,n),"float32"));return{a:i,b:r}}};const AT={kernelName:ap,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=Ie(s.shape,n.shape),r=()=>{const a=Ke(s.shape,i);return a.length>0?O(te(e,a),s.shape):e},o=()=>{const a=R(e,ke(ui(Z(s,n)))),l=Ke(n.shape,i);return l.length>0?O(te(a,l),n.shape):a};return{a:r,b:o}}};const NT={kernelName:_r,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=Ie(s.shape,n.shape),r=()=>{const a=R(e,G(n,"float32")),l=Ke(s.shape,i);return l.length>0?O(te(a,l),s.shape):a},o=()=>{const a=R(e,G(s,"float32")),l=Ke(n.shape,i);return l.length>0?O(te(a,l),n.shape):a};return{a:r,b:o}}};const CT={kernelName:lp,gradFunc:e=>({x:()=>ke(e)})};const RT={kernelName:up,inputsToSave:["indices"],gradFunc:(e,t)=>{const s=t[0];return{indices:()=>ye(s.shape,"float32")}}};const OT={kernelName:pp,gradFunc:e=>({x:()=>re(e)})};const _b={kernelName:Bo,inputsToSave:["x"],gradFunc:(e,t,s)=>{const n=t[0],{paddings:i}=s,r=i.map(o=>o[0]);return{x:()=>he(e,r,n.shape)}}};const ET={kernelName:hp,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{const[s,n,i]=t,r=s,o=n,a=Ie(r.shape,o.shape),l=()=>{const p=G(o,"float32");let u=R(e,R(p,es(r,X(p,j(1)))));const h=Ke(r.shape,a);return h.length>0&&(u=te(u,h)),O(u,r.shape)},c=()=>{const p=Ut(r,0),u=mt(p,zt(r),re(r));let h=R(e,R(i,u));const d=Ke(o.shape,a);return d.length>0&&(h=te(h,d)),O(h,o.shape)};return{a:l,b:c}}};const _T={kernelName:dp,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{const[s,n]=t,i=Ut(s,0);return{x:()=>mt(i,e,R(e,n)),alpha:()=>{let r=mt(i,re(e),R(e,s));const o=Ke(n.shape,e.shape);return o.length>0&&(r=te(r,o)),O(r,n.shape)}}}};const kT={kernelName:kr,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>Z(e,ke(xe(s)))}}};const DT={kernelName:bp,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t,n=R(Ws(s,6),mi(s));return{x:()=>R(e,G(n,"float32"))}}};const FT={kernelName:fp,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(e,G(mi(s),"float32"))}}};const MT={kernelName:Ei,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>O(e,s.shape)}}};const UT={kernelName:yp,inputsToSave:["images"],gradFunc:(e,t,s)=>{const[n]=t,i=a=>{const{alignCorners:l}=s;return a.resizeBilinearBackprop(e,n,l)},r={images:n},o=()=>v.runKernelFunc(i,r,null,Ny,s);return{images:o}}};const $T={kernelName:gp,inputsToSave:["images"],gradFunc:(e,t,s)=>{const[n]=t,i=a=>{const{alignCorners:l}=s;return a.resizeNearestNeighborBackprop(e,n,l)},r={images:n},o=()=>v.runKernelFunc(i,r,null,Ay,s);return{images:o}}};const WT={kernelName:wp,gradFunc:(e,t,s)=>{const{dims:n}=s,i=Ne(n,e.shape);return{x:()=>Et(e,i)}}};const zT={kernelName:Dr,gradFunc:e=>({x:()=>re(e)})};const PT={kernelName:Fr,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>ke(Z(e,R(es(s,1.5),2)))}}};const BT={kernelName:xp,inputsToSave:["condition"],gradFunc:(e,t)=>{const[s]=t;return{condition:()=>G(re(s),"float32"),t:()=>R(e,G(s,e.dtype)),e:()=>R(e,G(Jr(s),e.dtype))}}};const jT={kernelName:Mr,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>{const n=Ut(s,j(0)),i=j(Rb),r=j(Ob),o=R(e,r),a=R(R(e,i),ut(G(s,"float32")));return mt(n,o,a)}}}};const VT={kernelName:Wr,outputsToSave:[!0],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(e,R(s,X(j(1),s)))}}};const GT={kernelName:$r,gradFunc:e=>({x:()=>re(e)})};const qT={kernelName:ti,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(Kr(G(s,"float32")),e)}}};const HT={kernelName:Ur,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(wl(G(s,"float32")),e)}}};const YT={kernelName:jo,inputsToSave:["x"],gradFunc:(e,t,s)=>{const[n]=t,{begin:i,size:r}=s,o=n.shape,[a,l]=jp(n,i,r),c=[];for(let p=0;pPt(e,c)}}};const KT={kernelName:Ip,outputsToSave:[!0],gradFunc:(e,t,s)=>{const[n]=t,{dim:i}=s,r=!0,o=R(e,n);return{logits:()=>X(o,R(te(o,[i],r),n))}}};const XT={kernelName:zr,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(e,os(s))}}};const kb={kernelName:Vo,gradFunc:(e,t,s)=>{const{blockShape:n,paddings:i}=s;return{x:()=>Yr(e,n,i)}}};const Db={kernelName:Sp,gradFunc:(e,t,s)=>{const{axis:n}=s;return{x:()=>be(e,n)}}};const JT={kernelName:Pr,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>Z(e,R(Je(G(s,"float32")),2))}}};const ZT={kernelName:Go,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(e,R(G(s,"float32"),2))}}};const QT={kernelName:si,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=j(2),r=()=>R(e,R(i,X(s,n))),o=()=>R(e,R(i,X(n,s)));return{a:r,b:o}}};const eA={kernelName:Vr,gradFunc:e=>({x:()=>re(e)})};const tA={kernelName:Br,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=Ie(s.shape,n.shape),r=()=>{let a=e;const l=Ke(s.shape,i);return l.length>0&&(a=te(a,l)),O(a,s.shape)},o=()=>{let a=e;const l=Ke(n.shape,i);return l.length>0&&(a=te(a,l)),O(ke(a),n.shape)};return{a:r,b:o}}};const sA={kernelName:Lp,inputsToSave:["x"],gradFunc:(e,t,s)=>{const[n]=t,i=n.shape.slice(),{axis:r}=s,o=Ne(r,n.shape);o.forEach(c=>{i[c]=1});const a=O(e,i),l=R(a,Kt(n.shape,"float32"));return{x:()=>l}}};const nA={kernelName:ni,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>Z(e,xe(Kr(s)))}}};const iA={kernelName:jr,outputsToSave:[!0],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(X(j(1),xe(s)),e)}}};const rA={kernelName:vp,inputsToSave:["x"],gradFunc:(e,t,s)=>{const[n]=t,{reps:i}=s,r=()=>{let o=re(n);if(n.rank===1)for(let a=0;a{const n=s,{perm:i}=n,r=Jo(i);return{x:()=>se(e,r)}}};const aA={kernelName:Tp,gradFunc:(e,t,s)=>{const n=s,{axis:i}=n;return{value:()=>Ge(e,i)}}};const lA={kernelName:Ap,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{const[s]=t,n=()=>SW(e,s);return{x:n}}};function SW(e,t){const s=Ht(t,re(t)),n=hi(e,s);let i=ms(t,j(0,"int32"));const r=n.rank-i.rank;for(let a=0;a({x:()=>re(e)})};const IW=[xv,Lv,Sv,Iv,vv,Tv,Av,Nv,Cv,Rv,Ov,Ev,kv,Fv,Mv,Uv,$v,Wv,zv,Pv,Bv,Vv,jv,qv,Hv,Yv,Kv,Xv,Jv,Zv,Qv,eT,tT,sT,iT,nT,rT,lT,cT,pT,uT,hT,dT,mT,fT,gT,bT,Eb,Eb,wT,LT,IT,vT,TT,AT,NT,CT,RT,OT,_b,_b,ET,_T,kT,DT,FT,MT,UT,$T,WT,zT,PT,BT,jT,VT,GT,qT,HT,YT,KT,XT,kb,kb,Db,Db,JT,QT,ZT,eA,tA,sA,nA,iA,rA,oA,aA,lA,cA];for(const e of IW)ky(e);let Fb;function Tt(){return Fb==null&&(Fb=mb().epsilon()),Fb}function ys(){return"channelsLast"}class Sn extends Error{constructor(e){super(e);Object.setPrototypeOf(this,Sn.prototype)}}class Ns extends Error{constructor(e){super(e);Object.setPrototypeOf(this,Ns.prototype)}}class k extends Error{constructor(e){super(e);Object.setPrototypeOf(this,k.prototype)}}class ae extends Error{constructor(e){super(e);Object.setPrototypeOf(this,ae.prototype)}}class Mb extends Error{constructor(e){super(e);Object.setPrototypeOf(this,Mb.prototype)}}class vW extends Error{constructor(e){super(e);Object.setPrototypeOf(this,vW.prototype)}}function In(e,t){if(Array.isArray(e)){let s=[];for(let n=0;ns.toUpperCase())}let Tn={};function Ml(e){if(e==null)return null;const t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function $b(e){if(e==null||typeof e!="object")return;if(Array.isArray(e))e.forEach(t=>$b(t));else{const t=Object.keys(e);for(const s of t){const n=e[s];n!=null&&typeof n=="object"&&(!Array.isArray(n)&&n.type==="ndarray"&&typeof n.value=="number"?e[s]=n.value:$b(n))}}}function fi(e,t={},s={},n="object",i=!1){if(typeof e=="string"){const r=e;let o;if(r in s)o=s[r];else if(r in Tn)o=Tn[r];else if(o=t[r],o==null)throw new k(`Unknown ${n}: ${e}. This may be due to one of the following reasons: + ${n.shape}`),I(o%(t*t)===0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${o} for depthToSpace with input shape ${n.shape}`);const a=p=>p.depthToSpace(n,t,s),l={x:n},c={blockSize:t,dataFormat:s};return v.runKernelFunc(a,l,null,ly,c)}const nd=S({depthToSpace_:JD});function ZD(e,t,s,n,i="NHWC",r=[1,1],o){const a=b(e,"x","depthwiseConv2d"),l=b(t,"filter","depthwiseConv2d");let c=a,p=!1;a.rank===3&&(p=!0,c=O(a,[1,a.shape[0],a.shape[1],a.shape[2]])),I(c.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${c.rank}.`),I(l.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${l.rank}.`),I(c.shape[3]===l.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${c.shape[3]}) must match the inChannels dimension in filter ${l.shape[2]}.`),o!=null&&I(De(n),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${o} but got pad ${n}.`);const u=(f,g)=>{r==null&&(r=[1,1]),I(tt(s,r),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);const y=rs(c.shape,l.shape,s,r,n,o,!0),w=f.depthwiseConv2D(c,l,y);return g([c,l]),w},h={x:c,filter:l},d={strides:s,pad:n,dataFormat:i,dilations:r,dimRoundingMode:o},m=v.runKernelFunc(u,h,null,Yc,d);return p?O(m,[m.shape[1],m.shape[2],m.shape[3]]):m}const fn=S({depthwiseConv2d_:ZD});function QD(e){const t=b(e,"x","diag"),s=i=>{const r=O(t,[t.size]),o=i.diag(r),a=[...e.shape,...e.shape];return O(o,a)},n={x:t};return v.runKernelFunc(s,n,null,uy)}const fI=S({diag_:QD});function eF(e,t,s,n,i=[1,1],r="NHWC"){const o=b(e,"x","dilation2d"),a=b(t,"filter","dilation2d");I(o.rank===3||o.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${o.rank}.`),I(a.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${a.rank}.`),I(r==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${r}`);let l=o,c=!1;o.rank===3&&(l=O(o,[1,o.shape[0],o.shape[1],o.shape[2]]),c=!0);const p={x:l,filter:a},u={strides:s,pad:n,dilations:i},h=v.runKernel(Mo,p,u);return c?O(h,[h.shape[1],h.shape[2],h.shape[3]]):h}const id=S({dilation2d_:eF});function tF(e,t){const s=e.length,n=[];for(let i=0;i1&&o===1&&n.unshift(r)}return n}function Ke(e,t){const s=[];for(let n=0;n1)&&s.unshift(r)}return s}function Ie(e,t){const s=[],n=Math.max(e.length,t.length);for(let i=0;io.equal(s,n),r={a:s,b:n};return v.runKernelFunc(i,r,null,dy)}const as=S({equal_:sF});function nF(e,t,s){const n=b(t,"a","where"),i=b(s,"b","where"),r=b(e,"condition","where","bool"),o=Ie(n.shape,i.shape),a=ta(n,o),l=ta(i,o);r.rank===1&&I(r.shape[0]===n.shape[0],()=>"The first dimension of `a` must match the size of `condition`."),r.rank!==1&&Se(r.shape,l.shape,"Error in where: ");const c=(u,h)=>{const d=u.select(r,a,l);return h([r]),d},p={condition:r,t:a,e:l};return v.runKernelFunc(c,p,null,xp)}const mt=S({where_:nF});function iF(e){const t=b(e,"x","zerosLike"),s={x:t};return v.runKernelFunc(n=>n.zerosLike(t),s,null,Np)}const re=S({zerosLike_:iF});function rF(e,t){let s=b(e,"a","div"),n=b(t,"b","div");[s,n]=Ce(s,n);const i=Z(s,n),r=re(i),o=as(n,r);return mt(o,r,i)}const rd=S({divNoNan_:rF});function oF(e,t){const s=b(e,"t1","dot"),n=b(t,"t2","dot");I((s.rank===1||s.rank===2)&&(n.rank===1||n.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${s.rank} and ${n.rank}.`);const i=s.rank===1?s.size:s.shape[1],r=n.rank===1?n.size:n.shape[0];if(I(i===r,()=>`Error in dot: inner dimensions of inputs must match, but got ${i} and ${r}.`),s.rank===1&&n.rank===1){const o=O(s,[1,-1]),a=O(n,[-1,1]),l=Te(o,a);return O(l,[])}else if(s.rank===1&&n.rank===2){const o=O(s,[1,-1]),a=O(n,[n.shape[0],n.shape[1]]),l=Te(o,a);return O(l,[l.size])}else if(s.rank===2&&n.rank===1){const o=O(n,[-1,1]),a=Te(s,o);return O(a,[a.size])}else{const o=O(n,[n.shape[0],n.shape[1]]),a=Te(s,o);return a}}const gI=S({dot_:oF});function aF(e){const t=b(e,"x","elu"),s=(i,r)=>{const o=i.elu(t);return r([o]),o},n={x:t};return v.runKernelFunc(s,n,null,Sr)}const gn=S({elu_:aF});function lF(e){let t=b(e,"x","erf");I(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=G(t,"float32"));const s={x:t};return v.runKernelFunc((n,i)=>{const r=n.erf(t);return i([t]),r},s,null,Ir)}const od=S({erf_:lF});function cF(e){const t=b(e,"x","exp"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.exp(t);return i([r]),r},s,null,vr)}const ut=S({exp_:cF});function pF(e,t=0){const s=null,n=b(e,"x","expandDims",s);I(t<=n.rank,()=>"Axis must be <= rank of the tensor");const i=n.shape.slice();return t<0&&(I(-(n.rank+1)<=t,()=>`Axis must be in the interval [${-(n.rank+1)}, ${n.rank}]`),t=n.rank+t+1),i.splice(t,0,1),O(n,i)}const Mt=S({expandDims_:pF});function uF(e){const t=b(e,"x","expm1"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.expm1(t);return i([t]),r},s,null,Tr)}const ad=S({expm1_:uF});function hF(e,t){const s=null,n=b(e,"x","tile",s);I(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of reps ${t}.`);const i=(l,c)=>{const p=l.tile(n,t);return c([n]),p},r=[n],o={x:n},a={reps:t};return v.runKernelFunc(i,o,null,vp,a,r)}const $s=S({tile_:hF});function dF(e,t,s,n="float32"){t==null&&(t=e);const i=ge([e,t],n),r=e<=t?e:t;for(let a=0;ai.fill(e,t,s),{},null,my,n)}function mF(e){const t=b(e,"x","floor"),s={x:t};return v.runKernelFunc(n=>n.floor(t),s,null,Ar)}const ui=S({floor_:mF});const ld=30;function fF(e){return e<=ld?e:sl(e,Math.floor(Math.sqrt(e)))}const yI={};Ee(yI,{collectGatherOpShapeInfo:()=>Lb,computeOutShape:()=>yF,segOpComputeOptimalWindowSize:()=>gF});function gF(e,t){let s=!1,n;for(e<=ld?(n=e,s=!0):n=sl(e,Math.floor(Math.sqrt(e)));!s;)n>t||n===e?s=!0:n=sl(e,n+1);return n}function yF(e,t,s){const n=[],i=e.length;for(let r=0;r{const p=Ne(s,n.shape)[0],u=Lb(n,i,p),h=l.gather(n,O(i,[i.size]),p);return c([n,i]),O(h,u.outputShape)};return v.runKernelFunc(a,r,null,Jc,o)}const hi=S({gather_:bF});function wF(e,t){let s=b(e,"a","greater"),n=b(t,"b","greater");[s,n]=Ce(s,n),Ie(s.shape,n.shape);const i=o=>o.greater(s,n),r={a:s,b:n};return v.runKernelFunc(i,r,null,gy)}const Ut=S({greater_:wF});function xF(e,t){let s=b(e,"a","greaterEqual"),n=b(t,"b","greaterEqual");[s,n]=Ce(s,n),Ie(s.shape,n.shape);const i=(o,a)=>{const l=o.greaterEqual(s,n);return a([s,n]),l},r={a:s,b:n};return v.runKernelFunc(i,r,null,Zc)}const ms=S({greaterEqual_:xF});function LF(e){const t=b(e,"input","imag"),s=i=>i.imag(t),n={input:t};return v.runKernelFunc(s,n,null,ep)}const yn=S({imag_:LF});function SF(e){const t=b(e,"x","isFinite"),s={x:t};return v.runKernelFunc(n=>n.isFinite(t),s,null,Nr)}const bI=S({isFinite_:SF});function IF(e){const t=b(e,"x","isInf"),s={x:t};return v.runKernelFunc(n=>n.isInf(t),s,null,Cr)}const wI=S({isInf_:IF});function vF(e){const t=b(e,"x","isNaN"),s={x:t};return v.runKernelFunc(n=>n.isNaN(t),s,null,Rr)}const xI=S({isNaN_:vF});function TF(e,t){let s=b(e,"a","maximum"),n=b(t,"b","maximum");[s,n]=Ce(s,n),s.dtype==="bool"&&(s=G(s,"int32"),n=G(n,"int32")),Ie(s.shape,n.shape);const i=(o,a)=>{const l=o.maximum(s,n);return a([s,n]),l},r={a:s,b:n};return v.runKernelFunc(i,r,null,np)}const Ht=S({maximum_:TF});function j(e,t){if((Dt(e)&&t!=="string"||Array.isArray(e))&&t!=="complex64")throw new Error("Error creating a new Scalar: value must be a primitive (number|boolean|string)");if(t==="string"&&Dt(e)&&!(e instanceof Uint8Array))throw new Error("When making a scalar from encoded string, the value must be `Uint8Array`.");const s=[],n=[];return hs(e,s,n,t)}function AF(e,t=.2){const s=b(e,"x","leakyRelu");return Ht(R(j(t),s),s)}const Ll=S({leakyRelu_:AF});function NF(e,t){let s=b(e,"a","less"),n=b(t,"b","less");[s,n]=Ce(s,n),Ie(s.shape,n.shape);const i=o=>o.less(s,n),r={a:s,b:n};return v.runKernelFunc(i,r,null,yy)}const Xr=S({less_:NF});function CF(e,t){let s=b(e,"a","lessEqual"),n=b(t,"b","lessEqual");[s,n]=Ce(s,n),Ie(s.shape,n.shape);const i=(o,a)=>{const l=o.lessEqual(s,n);return a([s,n]),l},r={a:s,b:n};return v.runKernelFunc(i,r,null,by)}const Ws=S({lessEqual_:CF});function cd(e,t,s){if(s<=0)throw new Error("The number of values should be positive.");const n={start:e,stop:t,num:s};return v.runKernelFunc(i=>i.linspace(e,t,s),{},null,wy,n)}function RF(e,t=5,s=1,n=1,i=.5){const r=b(e,"x","localResponseNormalization");I(r.rank===4||r.rank===3,()=>`Error in localResponseNormalization: x must be rank 3 or 4 but got + rank ${r.rank}.`),I(De(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let o=r,a=!1;r.rank===3&&(a=!0,o=O(r,[1,r.shape[0],r.shape[1],r.shape[2]]));const l=(h,d)=>{const m=h.localResponseNormalization4D(o,t,s,n,i);return d([o,m]),m},c={x:o},p={depthRadius:t,bias:s,alpha:n,beta:i},u=v.runKernelFunc(l,c,null,sp,p);return a?O(u,[u.shape[1],u.shape[2],u.shape[3]]):u}const pd=S({localResponseNormalization_:RF});function OF(e){const t=b(e,"x","log"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.log(t);return i([t]),r},s,null,Or)}const zt=S({log_:OF});function EF(e){const t=b(e,"x","log1p"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.log1p(t);return i([t]),r},s,null,Er)}const Sl=S({log1p_:EF});function _F(e){return I(ri(e),()=>"The f passed in grad(f) must be a function"),(t,s)=>{const n=b(t,"x","tf.grad",null),i=s!=null?b(s,"dy","tf.grad"):null;return v.tidy(()=>{const{value:r,grads:o}=v.gradients(()=>e(n),[n],i);return i!=null&&Se(r.shape,i.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),ud(o),o[0]})}}function kF(e){return I(ri(e),()=>"The f passed in grads(f) must be a function"),(t,s)=>{I(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");const n=Di(t,"args","tf.grads",null),i=s!=null?b(s,"dy","tf.grads"):null;return v.tidy(()=>{const{value:r,grads:o}=v.gradients(()=>e(...n),n,i);return i!=null&&Se(r.shape,i.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),ud(o),o})}}function DF(e){return I(ri(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,s)=>{I(t instanceof me,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),I(s==null||s instanceof me,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");const{grads:n,value:i}=v.gradients(()=>e(t),[t],s);return ud(n),{grad:n[0],value:i}}}function FF(e){return I(ri(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,s)=>{I(Array.isArray(t)&&t.every(i=>i instanceof me),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),I(s==null||s instanceof me,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");const n=v.gradients(()=>e(...t),t,s);return s!=null&&Se(n.value.shape,s.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),ud(n.grads),n}}function hd(e,t){I(ri(e),()=>"The f passed in variableGrads(f) must be a function"),I(t==null||Array.isArray(t)&&t.every(c=>c instanceof ci),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");const s=t!=null;if(!s){t=[];for(const c in v.registeredVariables)t.push(v.registeredVariables[c])}const n=s?t.filter(c=>!c.trainable):null,i=t.length;t=t.filter(c=>c.trainable),I(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${i} variables is trainable.`);const r=!0,{value:o,grads:a}=v.gradients(e,t,null,r);I(a.some(c=>c!=null),()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize()."),I(o.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${o.rank} tensor`);const l={};return t.forEach((c,p)=>{a[p]!=null&&(l[c.name]=a[p])}),n!=null&&n.forEach(c=>l[c.name]=null),{value:o,grads:l}}function fs(e){return v.customGrad(e)}function ud(e){const t=e.filter(s=>s==null).length;if(t>0)throw new Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that + the f you passed encloses all operations that lead from x to y.`)}function MF(e){const t=b(e,"x","neg"),s={x:t};return v.runKernelFunc(n=>n.neg(t),s,null,lp)}const ke=S({neg_:MF});function UF(e){const t=b(e,"x","softplus"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.softplus(t);return i([t]),r},s,null,zr)}const di=S({softplus_:UF});function $F(e){const t=b(e,"x","logSigmoid"),s=fs(n=>{const i=ke(di(ke(n))),r=o=>{const a=R(o,os(ke(n)));return a};return{value:i,gradFunc:r}});return s(t)}const LI=S({logSigmoid_:$F});function WF(e,t=null,s=!1){const n=b(e,"x","max"),i=(a,l)=>{const c=Ne(t,n.shape);let p=c;const u=dt(p,n.rank);let h=n;u!=null&&(h=se(n,u),p=qt(p.length,h.rank));const d=a.max(h,p);u!=null&&h.dispose();let m=d;if(s){const f=wt(m.shape,Ne(t,n.shape));m=O(m,f),d.dispose()}return l([n,m]),m},r={x:n},o={reductionIndices:t,keepDims:s};return v.runKernelFunc(i,r,null,Ri,o)}const Lt=S({max_:WF});function zF(e,t){let s=b(e,"a","sub"),n=b(t,"b","sub");[s,n]=Ce(s,n);const i=(o,a)=>{const l=o.subtract(s,n);return a([s,n]),l},r={a:s,b:n};return v.runKernelFunc(i,r,null,Br)}const X=S({sub_:zF});function PF(e,t=null,s=!1){let n=b(e,"x","sum");n.dtype==="bool"&&(n=G(n,"int32"));const i=(a,l)=>{l([n]);const c=Ne(t,n.shape),p=dt(c,n.rank);let u=c,h=n;p!=null&&(h=se(n,p),u=qt(u.length,n.rank));let d=a.sum(h,u);if(s){const m=wt(d.shape,c);d=O(d,m)}return d},r={x:n},o={axis:t,keepDims:s};return v.runKernelFunc(i,r,null,Lp,o)}const te=S({sum_:PF});function BF(e,t=-1){const s=b(e,"logits","logSoftmax");if(t===-1&&(t=s.rank-1),t!==s.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${s.rank} and axis was ${t}`);const n=(o,a)=>{const l=!0,c=Lt(e,t,!0),p=X(e,c),u=X(G(p,"float32"),zt(te(ut(p),t,l)));return a([u]),u},i={logits:s},r={axis:t};return v.runKernelFunc(n,i,null,tp,r)}const Il=S({logSoftmax_:BF});function jF(e,t=null,s=!1){const n=b(e,"x","logSumExp"),i=Ne(t,n.shape),r=Lt(n,i,!0),o=X(n,r),a=ut(o),l=te(a,i),c=zt(l),p=$(O(r,c.shape),c);if(s){const u=wt(p.shape,i);return O(p,u)}return p}const dd=S({logSumExp_:jF});function VF(e,t){const s=b(e,"a","logicalAnd","bool"),n=b(t,"b","logicalAnd","bool");Ie(s.shape,n.shape);const i={a:s,b:n};return v.runKernelFunc(r=>r.logicalAnd(s,n),i,null,xy)}const Yt=S({logicalAnd_:VF});function GF(e){const t=b(e,"x","logicalNot","bool"),s={x:t};return v.runKernelFunc(n=>n.logicalNot(t),s,null,Ya)}const Jr=S({logicalNot_:GF});function qF(e,t){const s=b(e,"a","logicalOr","bool"),n=b(t,"b","logicalOr","bool");Ie(s.shape,n.shape);const i={a:s,b:n};return v.runKernelFunc(r=>r.logicalOr(s,n),i,null,Ly)}const vl=S({logicalOr_:qF});function HF(e,t){const s=b(e,"a","logicalXor","bool"),n=b(t,"b","logicalXor","bool");return Ie(s.shape,n.shape),Yt(vl(e,t),Jr(Yt(e,t)))}const SI=S({logicalXor_:HF});function YF(e,t,s,n,i){const r=b(e,"x","maxPool"),o=1;let a=r,l=!1;r.rank===3&&(l=!0,a=O(r,[1,r.shape[0],r.shape[1],r.shape[2]])),I(a.rank===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.rank}.`),I(tt(s,o),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`),i!=null&&I(De(n),()=>`Error in maxPool: pad must be an integer when using, dimRoundingMode ${i} but got pad ${n}.`);const c=(d,m)=>{const f=Wn(a.shape,t,s,1,n,i);let g;return f.filterWidth===1&&f.filterHeight===1&&Nt(f.inShape,f.outShape)?g=a.clone():g=d.maxPool(a,f),m([a,g]),g},p={x:a},u={filterSize:t,strides:s,pad:n,dimRoundingMode:i},h=v.runKernelFunc(c,p,null,Oi,u);return l?O(h,[h.shape[1],h.shape[2],h.shape[3]]):h}const ft=S({maxPool_:YF});function KF(e,t=[1,1,1],s,n,i,r="NDHWC",o){o==null?o=[1,1,1]:It("dilations is deprecated, this field will be gone in v3.0.0.");const a=b(e,"x","maxPool3d");let l=a,c=!1;a.rank===4&&(c=!0,l=O(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),I(l.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${l.rank}.`),I(r==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${r}`),I(tt(s,o),()=>`Error in maxPool3d: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`),i!=null&&I(De(n),()=>`Error in maxPool3d: pad must be an integer when using, dimRoundingMode ${i} but got pad ${n}.`);const p=(m,f)=>{o==null&&(o=[1,1,1]);const g=Fi(l.shape,t,s,o,n,i,r),y=m.maxPool3d(l,g);return f([l,y]),y},u={x:l},h={filterSize:t,strides:s,pad:n,dimRoundingMode:i,dataFormat:r,dilations:o},d=v.runKernelFunc(p,u,null,ip,h);return c?O(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}const Tl=S({maxPool3d_:KF});function XF(e,t,s,n,i=!1){const r=b(e,"x","maxPoolWithArgmax"),o={x:r},a={filterSize:t,strides:s,pad:n,includeBatchInIndex:i},l=v.runKernel(Wo,o,a);return{result:l[0],indexes:l[1]}}const md=S({maxPoolWithArgmax_:XF});function ye(e,t="float32"){if(t==="complex64"){const n=ye(e,"float32"),i=ye(e,"float32");return Gt(n,i)}const s=ai(We(e),t);return v.makeTensor(s,e,t)}function Kt(e,t="float32"){if(t==="complex64"){const n=Kt(e,"float32"),i=ye(e,"float32");return Gt(n,i)}const s=Ep(We(e),t);return v.makeTensor(s,e,t)}function JF(e,t=null,s=!1){const n=b(e,"x","mean"),i=Ne(t,n.shape),r=gb(n.shape,i),o=r[1],a=We(o),l=fs(c=>{const p=j(a),u=p.dtype===c.dtype?c:G(c,p.dtype),h=Z(u,p),d=te(h,t,s),m=f=>{const g=c.shape.slice();i.forEach(x=>{g[x]=1});const y=O(f,g),w=Z(R(y,Kt(c.shape,"float32")),a);return w};return{value:d,gradFunc:m}});return l(n)}const Xe=S({mean_:JF});function ZF(e,t=null,s=!1){const n=b(e,"x","min"),i=(a,l)=>{const c=Ne(t,n.shape);let p=c;const u=dt(p,n.rank);let h=n;u!=null&&(h=se(n,u),p=qt(p.length,n.rank));const d=a.min(h,p);u!=null&&h.dispose();let m=d;if(s){const f=wt(m.shape,c);m=O(d,f),d.dispose()}return l([n,m]),m},r={x:n},o={axis:t,keepDims:s};return v.runKernelFunc(i,r,null,rp,o)}const Ui=S({min_:ZF});function QF(e,t){let s=b(e,"a","minimum"),n=b(t,"b","minimum");[s,n]=Ce(s,n),s.dtype==="bool"&&(s=G(s,"int32"),n=G(n,"int32")),Ie(s.shape,n.shape);const i=(o,a)=>{const l=o.minimum(s,n);return a([s,n]),l},r={a:s,b:n};return v.runKernelFunc(i,r,null,op)}const bn=S({minimum_:QF});function eM(e,t){let s=b(e,"a","mod"),n=b(t,"b","mod");[s,n]=Ce(s,n);const i=(o,a)=>{const l=o.mod(s,n);return a([s,n]),l},r={a:s,b:n};return v.runKernelFunc(i,r,null,ap)}const Al=S({mod_:eM});function tM(e){const t=b(e,"x","square"),s={},n=[t],i=[];return v.runKernelFunc((r,o)=>(o([t]),r.square(t)),{x:t},null,"Square",s,n,i)}const xe=S({square_:tM});function sM(e,t=null,s=!1){e=b(e,"x","moments");const n=Ne(t,e.shape),i=Xe(e,n,s);let r=i.shape;s||(r=wt(i.shape,n));const o=xe(X(G(e,"float32"),O(i,r))),a=Xe(o,n,s);return{mean:i,variance:a}}const na=S({moments_:sM});function nM(e,t,s,n){const i=b(t,"data","multiRNNCell"),r=Di(s,"c","multiRNNCell"),o=Di(n,"h","multiRNNCell");let a=i;const l=[];for(let u=0;u2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${o}`);s=s||Math.random();const a=o===1?O(i,[1,-1]):i,l=v.runKernelFunc(c=>c.multinomial(a,n,t,s),{logits2D:a});return o===1?O(l,[l.size]):l}const fd=S({multinomial_:iM});function rM(e,t){let s=b(e,"a","notEqual"),n=b(t,"b","notEqual");[s,n]=Ce(s,n),Ie(s.shape,n.shape);const i=o=>o.notEqual(s,n),r={a:s,b:n};return v.runKernelFunc(i,r,null,Ka)}const Js=S({notEqual_:rM});function oM(e){const t=b(e,"input","real"),s=i=>i.real(t),n={input:t};return v.runKernelFunc(s,n,null,mp)}const Zs=S({real_:oM});function aM(e){const t=b(e,"x","onesLike"),s=(i,r)=>{if(t.dtype==="complex64"){const o=Ot(Zs(t)),a=re(yn(t));return Gt(o,a)}return i.onesLike(t)},n={x:t};return v.runKernelFunc(s,n,null,pp)}const Ot=S({onesLike_:aM});function lM(e,t){const s=b(e,"v1","outerProduct"),n=b(t,"v2","outerProduct");I(s.rank===1&&n.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${s.rank} and ${n.rank}.`);const i=O(s,[-1,1]),r=O(n,[1,-1]);return Te(i,r)}const vI=S({outerProduct_:lM});function cM(e,t,s=0){const n=b(e,"x","pad");if(n.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");const i=(a,l)=>(l([n]),a.pad(n,t,s)),r={paddings:t,constantValue:s},o={x:n};return v.runKernelFunc(i,o,null,Bo,r)}const Pt=S({pad_:cM});function pM(e,t,s=0){return I(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),Pt(e,[t],s)}const TI=S({pad1d_:pM});function uM(e,t,s=0){return I(t.length===2&&t[0].length===2&&t[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),Pt(e,t,s)}const AI=S({pad2d_:uM});function hM(e,t,s=0){return I(t.length===3&&t[0].length===2&&t[1].length===2&&t[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),Pt(e,t,s)}const NI=S({pad3d_:hM});function dM(e,t,s=0){return I(t.length===4&&t[0].length===2&&t[1].length===2&&t[2].length===2&&t[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),Pt(e,t,s)}const CI=S({pad4d_:dM});function mM(e,t,s){const n=b(e,"x","spaceToBatchND");I(n.rank>=1+t.length,()=>`input rank ${n.rank} should be > than [blockShape] ${t.length}`),I(s.length===t.length,()=>`paddings.shape[0] ${s.length} must be equal to [blockShape] ${t.length}`),I(n.shape.reduce((a,l,c)=>c>0&&c<=t.length?a&&(l+s[c-1][0]+s[c-1][1])%t[c-1]===0:a,!0),()=>`input spatial dimensions ${n.shape.slice(1)} with paddings ${s.toString()} must be divisible by blockShapes ${t.toString()}`);const i=a=>a.spaceToBatchND(n,t,s),r={x:n},o={blockShape:t,paddings:s};return v.runKernelFunc(i,r,null,Vo,o)}const Zr=S({spaceToBatchND_:mM});function yM(e,t,s,n,i,r){i==null&&(i=[1,1]),r==null&&(r=1),n===0&&(n="valid");const o=b(e,"x","maxPool");let a=o,l=!1;o.rank===3&&(l=!0,a=O(o,[1,o.shape[0],o.shape[1],o.shape[2]])),I(tt(r,i),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${r} and dilations '${i}'`);const c=Wn(a.shape,t,r,i,n),p=[c.dilationHeight,c.dilationWidth];let u;n==="same"?u=gM([c.filterHeight,c.filterWidth],p):u=[[0,0],[0,0]];const h=p[0]===1&&p[1]===1,[d,m]=fM([c.inHeight,c.inWidth],p,u),f=h?n:"valid",g=h?a:Zr(a,p,d),y=s==="avg"?()=>ds(g,t,r,f):()=>ft(g,t,r,f),w=y(),x=h?w:Yr(w,p,m);return l?O(x,[x.shape[1],x.shape[2],x.shape[3]]):x}function fM(e,t,s){const n=s.map(p=>p[0]),i=s.map(p=>p[1]),r=e.concat(n,i),o=t.map((p,u)=>(p-r[u]%p)%p),a=i.map((p,u)=>p+o[u]),l=t.map((p,u)=>[n[u],a[u]]),c=t.map((p,u)=>[0,o[u]]);return[l,c]}function gM(e,t){const s=e.map((o,a)=>o+(o-1)*(t[a]-1)),n=s.map(o=>o-1),i=n.map(o=>Math.floor(o/2)),r=n.map((o,a)=>o-i[a]);return n.map((o,a)=>[i[a],r[a]])}const RI=S({pool_:yM});function bM(e,t){let s=b(e,"base","pow"),n=b(t,"exp","pow");[s,n]=Ce(s,n);const i={a:s,b:n},r=(o,a)=>{const l=o.pow(s,n);return a([s,n,l]),l};return v.runKernelFunc(r,i,null,hp)}const es=S({pow_:bM});function wM(e,t){const s=b(e,"x","prelu"),n=b(t,"alpha","prelu"),i=(o,a)=>{const l=o.prelu(s,n);return a([s,n]),l},r={x:s,alpha:n};return v.runKernelFunc(i,r,null,dp)}const Qr=S({prelu_:wM});function xM(e,t=null,s=!1){let n=b(e,"x","prod");const i=a=>{n.dtype==="bool"&&(n=G(n,"int32"));const l=Ne(t,n.shape),c=dt(l,n.rank);let p=l,u=n;c!=null&&(u=se(n,c),p=qt(p.length,n.rank));let h=a.prod(u,p);if(s){const d=wt(h.shape,l);h=O(h,d)}return h},r={x:n},o={axis:t,keepDims:s};return v.runKernelFunc(i,r,null,vy,o)}const Nl=S({prod_:xM});function LM(e,t,s){const n=We(e);let i=null;if(s==null||s==="float32")i=new Float32Array(n);else if(s==="int32")i=new Int32Array(n);else if(s==="bool")i=new Uint8Array(n);else throw new Error(`Unknown data type ${s}`);for(let r=0;r=1||r===0);const o=Math.sqrt(-2*Math.log(r)/r);e=this.mean+this.stdDev*n*o,t=this.mean+this.stdDev*i*o,(!this.truncated||this.isValidTruncated(e))&&(s=!0)}return(!this.truncated||this.isValidTruncated(t))&&(this.nextVal=this.convertValue(t)),this.convertValue(e)}convertValue(e){return this.dtype==null||this.dtype==="float32"?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}}class EI{constructor(e,t,s,n){this.alpha=e,this.beta=1/t,this.dtype=s;const i=n||Math.random();this.randu=gd.alea(i.toString()),this.randn=new Gp(0,1,s,!1,this.randu()),e<1?this.d=e+2/3:this.d=e-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let e,t,s,n,i,r;for(;;){do n=this.randn.nextValue(),r=1+this.c*n;while(r<=0);if(r*=r*r,e=n*n,t=1-.331*e*e,s=.5*e+this.d*(1-r+Math.log(r)),i=this.randu(),ithis.dtype==null||this.dtype==="float32",this.min=e,this.range=t-e,this.dtype=s,n==null&&(n=Math.random()),typeof n=="number"&&(n=n.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=gd.alea(n)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}}function SM(e,t,s=1,n="float32",i){if(s==null&&(s=1),n==null&&(n="float32"),n!=="float32"&&n!=="int32")throw new Error(`Unsupported data type ${n}`);const r=new EI(t,s,n,i),o=ge(e,n);for(let a=0;a{const o=e===t,a=e1;if(o||a||l)return ye([0],n);const c=Math.abs(Math.ceil((t-e)/s)),p=ai(c,n);t{const r=n.reciprocal(t);return i([t]),r},s,null,kr)}const yd=S({reciprocal_:TM});function AM(e){const t=b(e,"x","relu"),s=(i,r)=>(r([t]),t.dtype==="bool"?G(t,"int32"):i.relu(t)),n={x:t};return v.runKernelFunc(s,n,null,fp)}const Fe=S({relu_:AM});function NM(e){const t=b(e,"x","relu6"),s=(i,r)=>(r([t]),t.dtype==="bool"?G(t,"int32"):i.relu6(t)),n={x:t};return v.runKernelFunc(s,n,null,bp)}const bd=S({relu6_:NM});function CM(e,t){const s=b(e,"x","reverse"),n=o=>{const a=Ne(t,s.shape);if(s.rank===0)return Fs(s);const l=o.reverse(s,a);return O(l,s.shape)},i={x:s},r={dims:t};return v.runKernelFunc(n,i,null,wp,r)}const Et=S({reverse_:CM});function RM(e){const t=b(e,"x","reverse");return I(t.rank===1,()=>`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),Et(t,0)}const DI=S({reverse1d_:RM});function OM(e,t){const s=b(e,"x","reverse");return I(s.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${s.rank}.`),Et(s,t)}const FI=S({reverse2d_:OM});function EM(e,t){const s=b(e,"x","reverse");return I(s.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${s.rank}.`),Et(s,t)}const MI=S({reverse3d_:EM});function _M(e,t){const s=b(e,"x","reverse");return I(s.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${s.rank}.`),Et(s,t)}const UI=S({reverse4d_:_M});function kM(e){const t=b(e,"x","round"),s={x:t};return v.runKernelFunc(n=>n.round(t),s,null,Dr)}const wd=S({round_:kM});function DM(e){const t=b(e,"x","rsqrt"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.rsqrt(t);return i([t]),r},s,null,Fr)}const Cl=S({rsqrt_:DM});function FM(e){const t=b(e,"x","selu"),s=(i,r)=>{const o=i.selu(t);return r([t]),o},n={x:t};return v.runKernelFunc(s,n,null,Mr)}const Rl=S({selu_:FM});function MM(e,t,s,n,i,r=[1,1],o="NHWC"){const a=b(e,"x","separableConv2d"),l=b(t,"depthwiseFilter","separableConv2d"),c=b(s,"pointwiseFilter","separableConv2d");let p=a,u=!1;if(a.rank===3&&(u=!0,p=O(a,[1,a.shape[0],a.shape[1],a.shape[2]])),o==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");I(p.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${p.rank}.`),I(l.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${l.rank}.`),I(c.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${l.rank}.`),I(c.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${c.shape[0]}.`),I(c.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${c.shape[1]}.`);const h=l.shape[2],d=l.shape[3];I(c.shape[2]===h*d,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${h*d}, but got ${c.shape[2]}.`);const m=fn(p,l,n,i,o,r),f=1,g=rt(m,c,f,"valid",o);return u?O(g,[g.shape[1],g.shape[2],g.shape[3]]):g}const eo=S({separableConv2d_:MM});async function UM(e,t){const s=b(e,"x","setdiff1d"),n=b(t,"y","setdiff1d");I(s.dtype===n.dtype,()=>`x and y should have the same dtype, but got x (${s.dtype}) and y (${n.dtype}).`),I(s.rank===1,()=>`x should be 1D tensor, but got x (${s.shape}).`),I(n.rank===1,()=>`y should be 1D tensor, but got y (${n.shape}).`);const i=await s.data(),r=await n.data(),o=new Set(r);let a=0;for(let p=0;pn.sign(t),s,null,$r)}const Ld=S({sign_:$M});function WM(e){const t=b(e,"x","sin"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.sin(t);return i([t]),r},s,null,ti)}const Ol=S({sin_:WM});function zM(e){const t=b(e,"x","sinh"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.sinh(t);return i([t]),r},s,null,Ur)}const El=S({sinh_:zM});function PM(e,t,s){const n=b(e,"x","slice1d");return I(n.rank===1,()=>`slice1d expects a rank-1 tensor, but got a rank-${n.rank} tensor`),he(n,[t],[s])}const _l=S({slice1d_:PM});function BM(e,t,s){const n=b(e,"x","slice2d");return I(n.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${n.rank} tensor`),he(n,t,s)}const Hp=S({slice2d_:BM});function jM(e,t,s){const n=b(e,"x","slice3d");return I(n.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${n.rank} tensor`),he(n,t,s)}const to=S({slice3d_:jM});function VM(e,t,s){const n=b(e,"x","slice4d");return I(n.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${n.rank} tensor`),he(n,t,s)}const ia=S({slice4d_:VM});function GM(e,t=-1){const s=b(e,"logits","softmax","float32");if(t===-1&&(t=s.rank-1),t!==s.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${s.rank} and dim was ${t}`);const n={logits:s},i={dim:t};return v.runKernelFunc((r,o)=>{const a=r.softmax(s,t);return o([a]),a},n,null,Ip,i)}const ts=S({softmax_:GM});function qM(e){I(e.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`);const t={input:e};return v.runKernelFunc(s=>{const n=e.shape[e.shape.length-1],i=e.size/n,r=e.as2D(i,n),o=s.fft(r);return o.reshape(e.shape)},t,null,Kc)}const so=S({fft_:qM});function HM(e){I(e.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`);const t={input:e};return v.runKernelFunc(s=>{const n=e.shape[e.shape.length-1],i=e.size/n,r=O(e,[i,n]),o=s.ifft(r);return O(o,e.shape)},t,null,Qc)}const Wi=S({ifft_:HM});function YM(e){const t=e.shape[e.shape.length-1],s=e.size/t;let n;if(t<=2){const i=O(e,[s,t]);n=Wi(i)}else{const i=[s,2*(t-1)],r=O(Zs(e),[s,t]),o=O(yn(e),[s,t]),a=Et(he(r,[0,1],[s,t-2]),1),l=R(Et(he(o,[0,1],[s,t-2]),1),j(-1)),c=be([r,a],1),p=be([o,l],1),u=O(Gt(c,p),[i[0],i[1]]);n=Wi(u)}if(n=Zs(n),e.rank===3&&e.shape[0]!==0){const i=n,r=e.shape[0];n=O(n,[r,n.shape[0]/r,n.shape[1]]),i.dispose()}return n}const kl=S({irfft_:YM});function Sb(e,t,s=0){let n=[];if(typeof t=="number")I(e.shape[s]%t===0,()=>"Number of splits must evenly divide the axis."),n=new Array(t).fill(e.shape[s]/t);else{const i=t.reduce((o,a)=>(a===-1&&(o+=1),o),0);I(i<=1,()=>"There should be only one negative value in split array.");const r=t.indexOf(-1);if(r!==-1){const o=t.reduce((a,l)=>l>0?a+l:a);t[r]=e.shape[s]-o}I(e.shape[s]===t.reduce((o,a)=>o+a),()=>"The sum of sizes must match the size of the axis dimension."),n=t}return n}function KM(e,t,s=0){const n=b(e,"x","split"),i=(a,l)=>{const c=Ne(s,n.shape)[0],p=Sb(n,t,c);return a.split(n,p,c)},r={x:n},o={numOrSizeSplits:t,axis:s};return v.runKernelFunc(i,r,null,Sp,o)}const Bt=S({split_:KM});function XM(e,t){I(e.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${e.dtype}`);let s=e.shape[e.shape.length-1];const n=e.size/s;let i;if(t!=null&&t0),f=e.shape.map(g=>g);f[e.shape.length-1]=t,i=he(e,m,f),s=t}else if(t!=null&&t>s){const m=e.shape.map(f=>f);m[e.shape.length-1]=t-s,i=be([e,ye(m)],e.shape.length-1),s=t}else i=e;const r=re(i),o=O(Gt(i,r),[n,s]),a=so(o),l=Math.floor(s/2)+1,c=Zs(a),p=yn(a),u=Bt(c,[l,s-l],c.shape.length-1),h=Bt(p,[l,s-l],p.shape.length-1),d=i.shape.slice();return d[i.shape.length-1]=l,O(Gt(u[0],h[0]),d)}const no=S({rfft_:XM});function JM(e){const t=b(e,"x","sqrt"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.sqrt(t);return i([t]),r},s,null,Pr)}const Je=S({sqrt_:JM});function ZM(e,t){let s=b(e,"a","squaredDifference"),n=b(t,"b","squaredDifference");[s,n]=Ce(s,n),Ie(s.shape,n.shape);const i=(a,l)=>{const c=a.squaredDifference(s,n);return l([s,n]),c},r={a:s,b:n},o={};return v.runKernelFunc(i,r,null,si,o)}const io=S({squaredDifference_:ZM});function QM(e,t){const s=b(e,"x","squeeze");return O(s,Fy(s.shape,t).newShape)}const Qs=S({squeeze_:QM});function eU(e,t=0){const s=Di(e,"tensors","stack");if(I(s.length>=1,()=>"Pass at least one tensor to tf.stack"),s.length===1)return Mt(s[0],t);const n=s[0].rank,i=s[0].shape,r=s[0].dtype;I(t<=n,()=>"Axis must be <= rank of the tensor"),s.forEach(a=>{Se(i,a.shape,"All tensors passed to stack must have matching shapes"),I(r===a.dtype,()=>"All tensors passed to stack must have matching dtypes")});const o=s.map(a=>Mt(a,t));return be(o,t)}const Ge=S({stack_:eU});function tU(e,t=0){const s=b(e,"x","step"),n={x:s},i={alpha:t};return v.runKernelFunc(r=>r.step(s,t),n,null,Vr,i)}const mi=S({step_:tU});function sU(e,t,s,n,i=0,r=0,o=0,a=0,l=0){let c=b(e,"x","stridedSlice");const p=d=>{n==null&&(n=new Array(t.length));const m=Bp(o);if(m.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(o!==0&&a!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(o!==0&&l!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");const f=c.rank-t.length,g=Bp(a),y=c.shape.slice();g.forEach(M=>{t[M]=0,s[M]=1,y.splice(M,0,1)}),c=O(c,y);const{begin:w,end:x,strides:T}=lb(c.shape,m,f,t,s,n,i,r,o);t=w,s=x,n=T;const A=Bp(l);A.forEach(M=>{s[M]=t[M]+1,n[M]=1});const _=ab(t,s,n),E=_.filter((M,P)=>A.indexOf(P)===-1),F=n.every(M=>M===1);if(F)return O(he(c,t,_),E);const D=d.stridedSlice(c,t,s,n);return O(D,E)},u={x:c},h={begin:t,end:s,strides:n,beginMask:i,endMask:r,ellipsisMask:o,newAxisMask:a,shrinkAxisMask:l};return v.runKernelFunc(p,u,null,Oy,h)}const Sd=S({stridedSlice_:sU});function nU(e){const t=b(e,"x","tan"),s={x:t};return v.runKernelFunc((n,i)=>{const r=n.tan(t);return i([t]),r},s,null,ni)}const Id=S({tan_:nU});function ls(e,t,s){if(Ys(e),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");const n=Qt(e,s);if(n.length!==2&&n.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return hs(e,t,n,s)}function ss(e,t,s){if(Ys(e),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");const n=Qt(e,s);if(n.length!==4&&n.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return hs(e,t,n,s)}function $I(e,t,s){if(Ys(e),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");const n=Qt(e,s);if(n.length!==5&&n.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return hs(e,t,n,s)}function WI(e,t,s){if(Ys(e),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");const n=Qt(e,s);if(n.length!==6&&n.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return t=t||n,hs(e,t,n,s)}function iU(e,t=1,s=!0){const n=b(e,"x","topk");if(n.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");const i=n.shape[n.shape.length-1];if(t>i)throw new Error(`'k' passed to topk() must be <= the last dimension (${i}) but got ${t}`);const r={x:n},o={k:t,sorted:s},[a,l]=v.runKernelFunc(c=>c.topk(n,t,s),r,null,Ey,o);return{values:a,indices:l}}const vd=S({topk_:iU});function rU(e,t=0,s=1,n,i){if(n!=null&&n==="bool")throw new Error("Unsupported data type $ { dtype }");const r=new Gp(t,s,n,!0,i),o=ge(e,n);for(let a=0;a0,()=>"The input tensor must be at least 1D");const n={x:s},i={axis:t},[r,o]=v.runKernel(qo,n,i);return{values:r,indices:o}}const Yp=S({unique_:oU});function aU(e,t,s){const n=b(e,"x","unsortedSegmentSum"),i=b(t,"segmentIds","unsortedSegmentSum","int32");I(De(s),()=>"numSegments must be of dtype int");const r={x:n,segmentIds:i},o={numSegments:s},a=(l,c)=>{const p=l.unsortedSegmentSum(n,i,s);return c([i]),p};return v.runKernelFunc(a,r,null,Ap,o)}const Td=S({unsortedSegmentSum_:aU});function lU(e,t=0){const s=b(e,"x","unstack");I(t>=-s.shape.length&&t`Axis = ${t} is not in [-${s.shape.length}, ${s.shape.length})`),t<0&&(t+=s.shape.length);const n={value:s},i={axis:t},r=o=>o.unstack(s,t);return v.runKernelFunc(r,n,null,Tp,i)}const qe=S({unstack_:lU});function Ad(e,t=!0,s,n){return v.makeVariable(e,t,s,n)}function Nd(e,t){const s=[];for(let r=0;r0,()=>"mask cannot be scalar"),Se(a.slice(r,r+o),i.shape,"mask's shape must match the first K dimensions of tensor's shape,");let l=1;for(let f=r;f"Shape mismatch in v and x");const l=j(1),c=X(l,a);let p=R(X(o,r),c);if(i){I(n!=null,()=>"When using zeroDebias: true, step is required.");const u=b(n,"step","movingAverage");p=Z(p,X(l,es(a,u)))}return $(r,p)}const VU=S({movingAverage_:jU});function GU(e,t,s){const n=b(e,"indices","scatterND","int32"),i=b(t,"updates","scatterND");Mh(i,n,s);const r=l=>l.scatterND(n,i,s),o={indices:n,updates:i},a={shape:s};return v.runKernelFunc(r,o,null,Cy,a)}const Ib=S({scatterND_:GU});function PI(e,t,s,n){if(e.dtype!=="int32")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${e.dtype}.`);if(e.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${e.shape}.`);const i=e.rank>0?e.shape[0]:1,r=e.rank>1?e.shape[1]:1;if(s.length!==r)throw new Error(`outputShape has incorrect number of elements:, ${s.length}, should be: ${r}.`);const o=t.size;if(!(t.rank===0||t.rank===1&&o===i))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${i}]`);if(t.dtype!==n.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function qU(e,t,s,n=0){const i=b(e,"sparseIndices","sparseToDense","int32"),r=b(t,"sparseValues","sparseToDense"),o=b(n,"defaultValue","sparseToDense",r.dtype);PI(i,r,s,o);const a={sparseIndices:i,sparseValues:r,defaultValue:o},l={outputShape:s};return v.runKernelFunc(c=>c.sparseToDense(i,r,s,o),a,null,Ry,l)}const Xp=S({sparseToDense_:qU});function HU(e,t){const s=b(t,"indices","gatherND","int32"),n=b(e,"x","gatherND"),i=o=>o.gatherND(n,s),r={params:n,indices:s};return v.runKernelFunc(i,r,null,fy)}const vb=S({gatherND_:HU});function BI(e,t){if(t==null)return e.shape.slice();if(Nt(e.shape,t))return t;if(e.shape.length===t.length){const s=[];for(let n=0;n`x has to be a floating point tensor since it's going to be scaled, but got a ${i.dtype} tensor instead.`),I(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return e instanceof me?i.clone():i;const r=BI(i,s),o=1-t,a=Z(ui($(wn(r,0,1,"float32",n),o)),o);return R(i,a)}const Tb=S({dropout_:YU});function Ab(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function Jp(e,t,s){const n=1-e%2,i=new Float32Array(e);for(let r=0;r1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${n.rank}`),I(n.rank-1===i.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${n.rank} and targets rank ${i.rank}`),Se(n.shape.slice(0,n.shape.length-1),i.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");const r=n.shape[n.shape.length-1];I(s>0&&s<=r,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${r}), but got ${s}`);const o=await n.data(),a=await i.data(),[l,c]=[o.length/r,r],p=el("bool",l);for(let u=0;ug.value-f.value),p[u]=0;for(let f=0;f`Error in conv2dDerFilter: input must be rank 4, but got shape ${a.shape}.`),I(l.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`),I(s.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${s}.`);const c=r==="NHWC"?a.shape[3]:a.shape[1],p=r==="NHWC"?l.shape[3]:l.shape[1];I(c===s[2],()=>`Error in conv2dDerFilter: depth of input ${c}) must match input depth in filter (${s[2]}.`),I(p===s[3],()=>`Error in conv2dDerFilter: depth of dy (${p}) must match output depth for filter (${s[3]}).`),o!=null&&I(De(i),()=>`Error in conv2dDerFilter: pad must be an integer when using, dimRoundingMode ${o} but got pad ${i}.`);const u=m=>{const f=1,g=qr(r),y=rs(a.shape,s,n,f,i,o,!1,g);return m.conv2dDerFilter(a,l,y)},h={x:a,dy:l},d={strides:n,pad:i,dataFormat:r,dimRoundingMode:o};return v.runKernelFunc(u,h,null,iy,d)}const Fl=S({conv2DBackpropFilter_:JU});function ra(e,t,s){if(s==null||s==="linear")return e;if(s==="relu")return R(e,mi(t));throw new Error(`Cannot compute gradient for fused activation ${s}.`)}function oa(e,t){let s=t;const n=Ke(e.shape,t.shape);return n.length>0&&(s=te(s,n)),O(s,e.shape)}function aa(e,t,s){if(t==="linear")return e;if(t==="relu")return Fe(e);if(t==="elu")return gn(e);if(t==="relu6")return bd(e);if(t==="prelu")return Qr(e,s);throw new Error(`Unknown fused activation ${t}.`)}const la=(e,t)=>{const s=e>0;return!s||t==="linear"};function ZU({x:e,filter:t,strides:s,pad:n,dataFormat:i="NHWC",dilations:r=[1,1],dimRoundingMode:o,bias:a,activation:l="linear",preluActivationWeights:c}){if(l=l||"linear",la(v.state.gradientDepth,l)===!1){let A=rt(e,t,s,n,i,r,o);return a!=null&&(A=$(A,a)),aa(A,l,c)}const p=b(e,"x","conv2d"),u=b(t,"filter","conv2d");let h=p,d=!1;p.rank===3&&(d=!0,h=O(p,[1,p.shape[0],p.shape[1],p.shape[2]])),I(h.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${h.rank}.`),I(u.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${u.rank}.`),o!=null&&I(De(n),()=>`Error in fused conv2d: pad must be an integer when using, dimRoundingMode ${o} but got pad ${n}.`),I(h.shape[3]===u.shape[2],()=>`Error in conv2d: depth of input (${h.shape[3]}) must match input depth for filter ${u.shape[2]}.`),I(tt(s,r),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`),I(i==="NHWC",()=>`Error in conv2d: got dataFormat of ${i} but only NHWC is currently supported.`);const m=rs(h.shape,u.shape,s,r,n,o);let f;a!=null&&(f=b(a,"bias","fused conv2d"),[f]=Ce(f,p),Ie(m.outShape,f.shape));let g;c!=null&&(g=b(c,"prelu weights","fused conv2d"));const y=(A,_)=>{const[E,F,D,M]=_,P=ra(A,D,l);I(Ks(r),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${r}'`);const B=gl(F.shape,P,E,s,n),Y=Fl(F,P,E.shape,s,n),q=[B,Y];if(M!=null){const K=oa(M,P);q.push(K)}return q},w=A=>{const _=A.fusedConv2d({input:h,filter:u,convInfo:m,bias:f,activation:l,preluActivationWeights:g});return _},x={x:h,filter:u,bias:f,preluActivationWeights:g},T={strides:s,pad:n,dataFormat:i,dilations:r,dimRoundingMode:o,activation:l};if(a==null){const A=fs((_,E,F)=>{let D=v.runKernelFunc(w,x,null,Ah,T);return F([E,_,D]),d&&(D=O(D,[D.shape[1],D.shape[2],D.shape[3]])),{value:D,gradFunc:y}});return A(h,u)}else{const A=fs((_,E,F,D)=>{let M=v.runKernelFunc(w,x,null,Ah,T);return D([E,_,M,F]),d&&(M=O(M,[M.shape[1],M.shape[2],M.shape[3]])),{value:M,gradFunc:y}});return A(h,u,f)}}const QU=S({fusedConv2d_:ZU});function e$(e,t,s,n){let i=e;e.rank===3&&(i=O(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let r=t;r.rank===3&&(r=O(t,[1,t.shape[0],t.shape[1],t.shape[2]]));const o=l=>l.depthwiseConv2DDerFilter(i,r,n),a={x:i,dy:r};return v.runKernelFunc(o,a,null,cy)}const Cd=S({depthwiseConv2dNativeBackpropFilter_:e$});function t$(e,t,s,n){let i=t,r=!1;t.rank===3&&(r=!0,i=O(t,[1,t.shape[0],t.shape[1],t.shape[2]]));const o=c=>c.depthwiseConv2DDerInput(i,s,n),a={dy:i},l=v.runKernelFunc(o,a,null,py);return r?O(l,[l.shape[1],l.shape[2],l.shape[3]]):l}const Rd=S({depthwiseConv2dNativeBackpropInput_:t$});function s$({x:e,filter:t,strides:s,pad:n,dataFormat:i="NHWC",dilations:r=[1,1],dimRoundingMode:o,bias:a,activation:l="linear",preluActivationWeights:c}){if(la(v.state.gradientDepth,l)===!1){let A=fn(e,t,s,n,i,r,o);return a!=null&&(A=$(A,a)),aa(A,l,c)}const p=b(e,"x","depthwiseConv2d"),u=b(t,"filter","depthwiseConv2d");let h=p,d=!1;p.rank===3&&(d=!0,h=O(p,[1,p.shape[0],p.shape[1],p.shape[2]])),I(h.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${h.rank}.`),I(u.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${u.rank}.`),I(h.shape[3]===u.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${h.shape[3]}) must match the inChannels dimension in filter ${u.shape[2]}.`),r==null&&(r=[1,1]),I(tt(s,r),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`),o!=null&&I(De(n),()=>`Error in fused depthwiseConv2d: pad must be an integer when using dimRoundingMode ${o} but got pad ${n}.`);const m=rs(h.shape,u.shape,s,r,n,o,!0);let f;a!=null&&(f=b(a,"bias","fused conv2d"),[f]=Ce(f,p),Ie(m.outShape,f.shape));let g;c!=null&&(g=b(c,"prelu weights","fused depthwiseConv2d"));const y=(A,_)=>{I(Ks(r),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${r}'`);const[E,F,D,M]=_,P=ra(A,D,l),B=Rd(F.shape,P,E,m),Y=Cd(F,P,E.shape,m);if(M!=null){const q=oa(f,P);return[B,Y,q]}return[B,Y]},w=A=>{const _=A.fusedDepthwiseConv2D({input:h,filter:u,convInfo:m,bias:f,activation:l,preluActivationWeights:g});return _},x={x:h,filter:u,bias:f,preluActivationWeights:g},T={strides:s,pad:n,dataFormat:i,dilations:r,dimRoundingMode:o,activation:l};if(a==null){const A=fs((_,E,F)=>{let D=v.runKernelFunc(w,x,null,Nh,T);return F([E,_,D]),d&&(D=O(D,[D.shape[1],D.shape[2],D.shape[3]])),{value:D,gradFunc:y}});return A(h,u)}else{const A=fs((_,E,F,D)=>{let M=v.runKernelFunc(w,x,null,Nh,T);return D([E,_,M,F]),d&&(M=O(M,[M.shape[1],M.shape[2],M.shape[3]])),{value:M,gradFunc:y}});return A(h,u,f)}}const n$=S({fusedDepthwiseConv2d_:s$});function i$({a:e,b:t,transposeA:s=!1,transposeB:n=!1,bias:i,activation:r="linear",preluActivationWeights:o}){if(la(v.state.gradientDepth,r)===!1){let M=Te(e,t,s,n);return i!=null&&(M=$(M,i)),aa(M,r,o)}let a=b(e,"a","fused matMul"),l=b(t,"b","fused matMul");[a,l]=Ce(a,l);const c=s?a.shape[a.rank-2]:a.shape[a.rank-1],p=n?l.shape[l.rank-1]:l.shape[l.rank-2],u=s?a.shape[a.rank-1]:a.shape[a.rank-2],h=n?l.shape[l.rank-2]:l.shape[l.rank-1],d=a.shape.slice(0,-2),m=l.shape.slice(0,-2),f=We(d),g=We(m);I(a.rank>=2&&l.rank>=2&&a.rank===l.rank,()=>`Error in fused matMul: inputs must have the same rank of at least 2, got ranks ${a.rank} and ${l.rank}.`),I(Nt(d,m),()=>`Error in fused matMul: outer dimensions (${d}) and (${m}) of Tensors with shapes ${a.shape} and ${l.shape} must match.`),I(c===p,()=>`Error in fused matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${a.shape} and ${l.shape} and transposeA=${s} and transposeB=${n} must match.`);const y=a.shape.slice(0,-2).concat([u,h]),w=s?O(a,[f,c,u]):O(a,[f,u,c]),x=n?O(l,[g,h,p]):O(l,[g,p,h]);let T;i!=null&&(T=b(i,"bias","fused matMul"),[T]=Ce(T,a),Ie(y,T.shape));let A;o!=null&&(A=b(o,"prelu weights","fused matMul"));const _=(M,P)=>{const[B,Y,q,K]=P,H=ra(O(M,q.shape),q,r);let Q,J;if(!s&&!n?(Q=Te(H,Y,!1,!0),J=Te(B,H,!0,!1)):!s&&n?(Q=Te(H,Y,!1,!1),J=Te(H,B,!0,!1)):s&&!n?(Q=Te(Y,H,!1,!0),J=Te(B,H,!1,!1)):(Q=Te(Y,H,!0,!0),J=Te(H,B,!0,!0)),i!=null){const ie=oa(K,H);return[Q,J,ie]}else return[Q,J]},E=M=>{const P=M.fusedBatchMatMul({a:w,b:x,transposeA:s,transposeB:n,bias:T,activation:r,preluActivationWeights:A});return P},F={a:w,b:x,bias:T,preluActivationWeights:A},D={transposeA:s,transposeB:n,activation:r};if(i==null){const M=fs((P,B,Y)=>{const q=v.runKernelFunc(E,F,null,Th,D);return Y([P,B,q]),{value:O(q,y),gradFunc:_}});return M(w,x)}else{const M=fs((P,B,Y,q)=>{const K=v.runKernelFunc(E,F,null,Th,D);return q([P,B,K,Y]),{value:O(K,y),gradFunc:_}});return M(w,x,T)}}const r$=S({fusedMatMul_:i$});const xn={};Ee(xn,{conv2d:()=>QU,depthwiseConv2d:()=>n$,matMul:()=>r$});function o$(e){return Jp(e,.54,.46)}const jI=S({hammingWindow_:o$});function a$(e){return Jp(e,.5,.5)}const Od=S({hannWindow_:a$});function l$(e,t,s,n=!1,i=0){let r=0;const o=[];for(;r+t<=e.size;)o.push(he(e,r,t)),r+=s;if(n)for(;r`Error in cropAndResize: image must be rank 4,but got rank ${o.rank}.`),I(a.rank===2&&a.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${c},4] but had shape ${a.shape}.`),I(l.rank===1&&l.shape[0]===c,()=>`Error in cropAndResize: boxInd must be have size [${c}] but had shape ${a.shape}.`),I(n.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${n.length}.`),I(n[0]>=1&&n[1]>=1,()=>`cropSize must be atleast [1,1], but was ${n}`),I(i==="bilinear"||i==="nearest",()=>`method must be bilinear or nearest, but was ${i}`);const p=m=>m.cropAndResize(o,a,l,n,i,r),u={image:o,boxes:a,boxInd:l},h={method:i,extrapolationValue:r,cropSize:n},d=v.runKernelFunc(p,u,null,ay,h);return d}const GI=S({cropAndResize_:p$});function u$(e){const t=b(e,"image","flipLeftRight","float32");I(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);const s={image:t},n=v.runKernel(Uo,s,{});return n}const qI=S({flipLeftRight_:u$});function h$(e,t,s=0,n=.5){const i=b(e,"image","rotateWithOffset","float32");I(i.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${i.rank}.`);const r={image:i},o={radians:t,fillValue:s,center:n},a=v.runKernel(Ho,r,o);return a}const HI=S({rotateWithOffset_:h$});function Ln(e,t,s,n,i,r){n==null&&(n=.5),i==null&&(i=Number.NEGATIVE_INFINITY),r==null&&(r=0);const o=e.shape[0];return s=Math.min(s,o),I(0<=n&&n<=1,()=>`iouThreshold must be in [0, 1], but was '${n}'`),I(e.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`),I(e.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`),I(t.rank===1,()=>"scores must be a 1D tensor"),I(t.shape[0]===o,()=>`scores has incompatible shape with boxes. Expected ${o}, but was ${t.shape[0]}`),I(0<=r&&r<=1,()=>`softNmsSigma must be in [0, 1], but was '${r}'`),{maxOutputSize:s,iouThreshold:n,scoreThreshold:i,softNmsSigma:r}}function d$(e,t,s,n=.5,i=Number.NEGATIVE_INFINITY){const r=b(e,"boxes","nonMaxSuppression"),o=b(t,"scores","nonMaxSuppression"),a=Ln(r,o,s,n,i);s=a.maxOutputSize,n=a.iouThreshold,i=a.scoreThreshold;const l={maxOutputSize:s,iouThreshold:n,scoreThreshold:i};return v.runKernelFunc(c=>c.nonMaxSuppression(r,o,s,n,i),{boxes:r,scores:o},null,cp,l)}const YI=S({nonMaxSuppression_:d$});function KI(e,t,s){const n=m$(e,t,s),i=n<0?-(n+1):n;e.splice(i,0,t)}function m$(e,t,s){return g$(e,t,s||f$)}function f$(e,t){return e>t?1:e>>1);const a=s(t,e[r]);a>0?n=r+1:(i=r,o=!a)}return o?n:-n-1}function _d(e,t,s,n,i){return Nb(e,t,s,n,i,0).selectedIndices}function kd(e,t,s,n,i,r){return Nb(e,t,s,n,i,0,!1,r,!0)}function Dd(e,t,s,n,i,r){return Nb(e,t,s,n,i,r,!0)}function Nb(e,t,s,n,i,r,o=!1,a=!1,l=!1){const c=[];for(let g=0;gi&&c.push({score:t[g],boxIndex:g,suppressBeginIndex:0});c.sort(XI);const p=r>0?-.5/r:0,u=[],h=[];for(;u.length0;){const g=c.pop(),{score:y,boxIndex:w,suppressBeginIndex:x}=g;if(y=x;--A){const _=y$(e,w,u[A]);if(_>=n){T=!0;break}if(g.score=g.score*b$(n,p,_),g.score<=i)break}g.suppressBeginIndex=u.length,T||(g.score===y?(u.push(w),h.push(g.score)):g.score>i&&KI(c,g,XI))}const d=u.length,m=s-d;a&&m>0&&(u.push(...new Array(m).fill(0)),h.push(...new Array(m).fill(0)));const f={selectedIndices:Oe(u,"int32")};return o&&(f.selectedScores=Oe(h,"float32")),l&&(f.validOutputs=j(d,"int32")),f}function y$(e,t,s){const n=e.subarray(t*4,t*4+4),i=e.subarray(s*4,s*4+4),r=Math.min(n[0],n[2]),o=Math.min(n[1],n[3]),a=Math.max(n[0],n[2]),l=Math.max(n[1],n[3]),c=Math.min(i[0],i[2]),p=Math.min(i[1],i[3]),u=Math.max(i[0],i[2]),h=Math.max(i[1],i[3]),d=(a-r)*(l-o),m=(u-c)*(h-p);if(d<=0||m<=0)return 0;const f=Math.max(r,c),g=Math.max(o,p),y=Math.min(a,u),w=Math.min(l,h),x=Math.max(y-f,0)*Math.max(w-g,0);return x/(d+m-x)}function b$(e,t,s){const n=Math.exp(t*s*s);return s<=e?n:0}function XI(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}async function w$(e,t,s,n=.5,i=Number.NEGATIVE_INFINITY){const r=b(e,"boxes","nonMaxSuppressionAsync"),o=b(t,"scores","nonMaxSuppressionAsync"),a=Ln(r,o,s,n,i);s=a.maxOutputSize,n=a.iouThreshold,i=a.scoreThreshold;const l=await Promise.all([r.data(),o.data()]),c=l[0],p=l[1],u=_d(c,p,s,n,i);return r!==e&&r.dispose(),o!==t&&o.dispose(),u}const JI=w$;function x$(e,t,s,n=.5,i=Number.NEGATIVE_INFINITY,r=0){const o=b(e,"boxes","nonMaxSuppression"),a=b(t,"scores","nonMaxSuppression"),l=Ln(o,a,s,n,i,r);s=l.maxOutputSize,n=l.iouThreshold,i=l.scoreThreshold,r=l.softNmsSigma;const c={boxes:o,scores:a},p={maxOutputSize:s,iouThreshold:n,scoreThreshold:i,softNmsSigma:r},u=v.runKernel(Po,c,p);return{selectedIndices:u[0],selectedScores:u[1]}}const ZI=S({nonMaxSuppressionWithScore_:x$});async function L$(e,t,s,n=.5,i=Number.NEGATIVE_INFINITY,r=0){const o=b(e,"boxes","nonMaxSuppressionAsync"),a=b(t,"scores","nonMaxSuppressionAsync"),l=Ln(o,a,s,n,i,r);s=l.maxOutputSize,n=l.iouThreshold,i=l.scoreThreshold,r=l.softNmsSigma;const c=await Promise.all([o.data(),a.data()]),p=c[0],u=c[1],h=Dd(p,u,s,n,i,r);return o!==e&&o.dispose(),a!==t&&a.dispose(),h}const QI=L$;function S$(e,t,s,n=.5,i=Number.NEGATIVE_INFINITY,r=!1){const o=b(e,"boxes","nonMaxSuppression"),a=b(t,"scores","nonMaxSuppression"),l=Ln(o,a,s,n,i,null),c=l.maxOutputSize,p=l.iouThreshold,u=l.scoreThreshold,h={boxes:o,scores:a},d={maxOutputSize:c,iouThreshold:p,scoreThreshold:u,padToMaxOutputSize:r},m=v.runKernel(zo,h,d);return{selectedIndices:m[0],validOutputs:m[1]}}const ev=S({nonMaxSuppressionPadded_:S$});async function I$(e,t,s,n=.5,i=Number.NEGATIVE_INFINITY,r=!1){const o=b(e,"boxes","nonMaxSuppressionAsync"),a=b(t,"scores","nonMaxSuppressionAsync"),l=Ln(o,a,s,n,i,null),c=l.maxOutputSize,p=l.iouThreshold,u=l.scoreThreshold,[h,d]=await Promise.all([o.data(),a.data()]),m=kd(h,d,c,p,u,r);return o!==e&&o.dispose(),a!==t&&a.dispose(),m}const tv=I$;function v$(e,t,s=!1){const n=b(e,"images","resizeBilinear");I(n.rank===3||n.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${n.rank}.`),I(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`);let i=n,r=!1;n.rank===3&&(r=!0,i=O(n,[1,n.shape[0],n.shape[1],n.shape[2]]));const[o,a]=t,l=(h,d)=>(d([i]),h.resizeBilinear(i,o,a,s)),c={images:i},p={alignCorners:s,size:t},u=v.runKernelFunc(l,c,null,yp,p);return r?O(u,[u.shape[1],u.shape[2],u.shape[3]]):u}const sv=S({resizeBilinear_:v$});function T$(e,t,s=!1){const n=b(e,"images","resizeNearestNeighbor");I(n.rank===3||n.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${n.rank}.`),I(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),I(n.dtype==="float32"||n.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype");let i=n,r=!1;n.rank===3&&(r=!0,i=O(n,[1,n.shape[0],n.shape[1],n.shape[2]]));const[o,a]=t,l={images:i},c={alignCorners:s,size:t},p=(h,d)=>(d([i]),h.resizeNearestNeighbor(i,o,a,s)),u=v.runKernelFunc(p,l,null,gp,c);return r?O(u,[u.shape[1],u.shape[2],u.shape[3]]):u}const nv=S({resizeNearestNeighbor_:T$});function A$(e,t,s){I(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),I(s%1===0,()=>`bandPart(): numUpper must be an integer, got ${s}.`);const n=b(e,"a","bandPart");I(n.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${n.rank}.`);const i=n.shape,[r,o]=n.shape.slice(-2);if(!(t<=r))throw new Error(`bandPart(): numLower (${t}) must not be greater than the number of rows (${r}).`);if(!(s<=o))throw new Error(`bandPart(): numUpper (${s}) must not be greater than the number of columns (${o}).`);t<0&&(t=r),s<0&&(s=o);const a=O($i(0,r,1,"int32"),[-1,1]),l=$i(0,o,1,"int32"),c=X(a,l),p=Yt(Ws(c,j(+t,"int32")),ms(c,j(-s,"int32"))),u=ye([r,o],n.dtype);return O(Ge(qe(O(n,[-1,r,o])).map(h=>mt(p,h,u))),i)}const iv=S({bandPart_:A$});function N$(e){let t;if(Array.isArray(e)){t=!1,I(e!=null&&e.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");const i=e[0].shape[0];for(let r=1;r`Gram-Schmidt: Non-unique lengths found in the input vectors: (${e[r].shape[0]} vs. ${i})`)}else t=!0,e=Bt(e,e.shape[0],0).map(i=>Qs(i,[0]));I(e.length<=e[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${e.length}) exceeds number of dimensions (${e[0].shape[0]}).`);const s=[],n=e;for(let i=0;i{let r=n[i];if(i>0)for(let o=0;o=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${e.rank}`),e.rank===2)return ov(e,t);{const s=e.shape.slice(0,e.shape.length-2).reduce((l,c)=>l*c),n=qe(O(e,[s,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),i=[],r=[];n.forEach(l=>{const[c,p]=ov(l,t);i.push(c),r.push(p)});const o=O(Ge(i,0),e.shape),a=O(Ge(r,0),e.shape);return[o,a]}}function ov(e,t=!1){return v.tidy(()=>{I(e.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${e.shape.length}D Tensor.`);const s=e.shape[0],n=e.shape[1];let i=sa(s),r=Fs(e);const o=ls([[1]],[1,1]);let a=Fs(o);const l=s>=n?n:s;for(let c=0;c{const d=he(r,[c,c],[s-c,1]),m=Kp(d),f=he(r,[c,c],[1,1]),g=mt(Ut(f,0),ls([[-1]]),ls([[1]])),y=X(f,R(g,m)),w=Z(d,y);w.shape[0]===1?a=Fs(o):a=be([o,he(w,[1,0],[w.shape[0]-1,w.shape[1]])],0);const x=ke(Z(Te(g,y),m)),T=he(r,[c,0],[s-c,n]),A=R(x,a),_=se(a);if(c===0)r=X(T,Te(A,Te(_,T)));else{const D=X(T,Te(A,Te(_,T)));r=be([he(r,[0,0],[c,n]),D],0)}const E=se(A),F=he(i,[0,c],[s,i.shape[1]-c]);if(c===0)i=X(F,Te(Te(F,a),E));else{const D=X(F,Te(Te(F,a),E));i=be([he(i,[0,0],[s,c]),D],1)}return[a,r,i]}),ce([p,u,h])}return!t&&s>n&&(i=he(i,[0,0],[s,n]),r=he(r,[0,0],[n,n])),[i,r]})}const av=S({qr_:C$});var gt;(function(e){e[e.NONE=0]="NONE",e[e.MEAN=1]="MEAN",e[e.SUM=2]="SUM",e[e.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"})(gt||(gt={}));function R$(e,t,s=gt.SUM_BY_NONZERO_WEIGHTS){const n=b(e,"losses","computeWeightedLoss");let i=null;t!=null&&(i=b(t,"weights","computeWeightedLoss"));const r=i==null?n:R(n,i);if(s===gt.NONE)return r;if(s===gt.SUM)return te(r);if(s===gt.MEAN){if(i==null)return Xe(r);{const o=n.size/i.size,a=Z(te(r),te(i));return o>1?Z(a,j(o)):a}}if(s===gt.SUM_BY_NONZERO_WEIGHTS){if(i==null)return Z(te(r),j(n.size));{const o=R(i,Kt(n.shape)),a=G(te(Js(o,j(0))),"float32");return Z(te(r),a)}}throw Error(`Unknown reduction: ${s}`)}const ns=S({computeWeightedLoss_:R$});function O$(e,t,s,n=gt.SUM_BY_NONZERO_WEIGHTS){const i=b(e,"labels","absoluteDifference"),r=b(t,"predictions","absoluteDifference");let o=null;s!=null&&(o=b(s,"weights","absoluteDifference")),Se(i.shape,r.shape,"Error in absoluteDifference: ");const a=et(X(i,r));return ns(a,o,n)}const lv=S({absoluteDifference_:O$});function E$(e,t,s,n,i=gt.SUM_BY_NONZERO_WEIGHTS){const r=b(e,"labels","cosineDistance"),o=b(t,"predictions","cosineDistance");let a=null;n!=null&&(a=b(n,"weights","cosineDistance")),Se(r.shape,o.shape,"Error in cosineDistance: ");const l=j(1),c=X(l,te(R(r,o),s,!0));return ns(c,a,i)}const cv=S({cosineDistance_:E$});function _$(e,t,s,n=gt.SUM_BY_NONZERO_WEIGHTS){let i=b(e,"labels","hingeLoss");const r=b(t,"predictions","hingeLoss");let o=null;s!=null&&(o=b(s,"weights","hingeLoss")),Se(i.shape,r.shape,"Error in hingeLoss: ");const a=j(1);i=X(R(j(2),i),a);const l=Fe(X(a,R(i,r)));return ns(l,o,n)}const pv=S({hingeLoss_:_$});function k$(e,t,s,n=1,i=gt.SUM_BY_NONZERO_WEIGHTS){const r=b(e,"labels","huberLoss"),o=b(t,"predictions","huberLoss");let a=null;s!=null&&(a=b(s,"weights","huberLoss")),Se(r.shape,o.shape,"Error in huberLoss: ");const l=j(n),c=et(X(o,r)),p=bn(c,l),u=X(c,p),h=$(R(j(.5),xe(p)),R(l,u));return ns(h,a,i)}const uv=S({huberLoss_:k$});function D$(e,t,s,n=1e-7,i=gt.SUM_BY_NONZERO_WEIGHTS){const r=b(e,"labels","logLoss"),o=b(t,"predictions","logLoss");let a=null;s!=null&&(a=b(s,"weights","logLoss")),Se(r.shape,o.shape,"Error in logLoss: ");const l=j(1),c=j(n),p=ke(R(r,zt($(o,c)))),u=R(X(l,r),zt($(X(l,o),c))),h=X(p,u);return ns(h,a,i)}const hv=S({logLoss_:D$});function F$(e,t,s,n=gt.SUM_BY_NONZERO_WEIGHTS){const i=b(e,"labels","meanSquaredError"),r=b(t,"predictions","meanSquaredError");let o=null;s!=null&&(o=b(s,"weights","meanSquaredError")),Se(i.shape,r.shape,"Error in meanSquaredError: ");const a=io(i,r);return ns(a,o,n)}const dv=S({meanSquaredError_:F$});function M$(e,t){const s=b(e,"labels","sigmoidCrossEntropyWithLogits"),n=b(t,"logits","sigmoidCrossEntropyWithLogits");Se(s.shape,n.shape,"Error in sigmoidCrossEntropyWithLogits: ");const i=Fe(n),r=R(n,s),o=Sl(ut(ke(et(n))));return $(X(i,r),o)}function U$(e,t,s,n=0,i=gt.SUM_BY_NONZERO_WEIGHTS){let r=b(e,"multiClassLabels","sigmoidCrossEntropy");const o=b(t,"logits","sigmoidCrossEntropy");let a=null;if(s!=null&&(a=b(s,"weights","sigmoidCrossEntropy")),Se(r.shape,o.shape,"Error in sigmoidCrossEntropy: "),n>0){const c=j(n),p=j(1),u=j(.5);r=$(R(r,X(p,c)),R(u,c))}const l=M$(r,o);return ns(l,a,i)}const mv=S({sigmoidCrossEntropy_:U$});function $$(e,t,s=-1){if(s===-1&&(s=t.rank-1),s!==t.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${t.rank} and dim was ${s}`);const n=fs((i,r,o)=>{const a=!0,l=dd(r,[s],a),c=X(G(r,"float32"),l);o([i,c]);const p=ke(R(c,i)),u=te(p,[s]),h=(d,m)=>{const[f,g]=m,y=wt(d.shape,[s]);return[R(O(d,y),X(G(f,"float32"),ut(g))),R(O(d,y),X(ut(g),G(f,"float32")))]};return{value:u,gradFunc:h}});return n(e,t)}function W$(e,t,s,n=0,i=gt.SUM_BY_NONZERO_WEIGHTS){let r=b(e,"onehotLabels","softmaxCrossEntropy");const o=b(t,"logits","softmaxCrossEntropy");let a=null;if(s!=null&&(a=b(s,"weights","softmaxCrossEntropy")),Se(r.shape,o.shape,"Error in softmaxCrossEntropy: "),n>0){const c=j(n),p=j(1),u=j(r.shape[1]);r=$(R(r,X(p,c)),Z(c,u))}const l=$$(r,o);return ns(l,a,i)}const fv=S({softmaxCrossEntropy_:W$});const z$={fft:so,ifft:Wi,rfft:no,irfft:kl},P$={hammingWindow:jI,hannWindow:Od,frame:Ed,stft:VI},en={flipLeftRight:qI,resizeNearestNeighbor:nv,resizeBilinear:sv,rotateWithOffset:HI,cropAndResize:GI,nonMaxSuppression:YI,nonMaxSuppressionAsync:JI,nonMaxSuppressionWithScore:ZI,nonMaxSuppressionWithScoreAsync:QI,nonMaxSuppressionPadded:ev,nonMaxSuppressionPaddedAsync:tv},Cb={bandPart:iv,gramSchmidt:rv,qr:av},B$={absoluteDifference:lv,computeWeightedLoss:ns,cosineDistance:cv,hingeLoss:pv,huberLoss:uv,logLoss:hv,meanSquaredError:dv,sigmoidCrossEntropy:mv,softmaxCrossEntropy:fv};class gs extends cb{minimize(e,t=!1,s){const{value:n,grads:i}=this.computeGradients(e,s);if(s!=null){const r=s.map(o=>({name:o.name,tensor:i[o.name]}));this.applyGradients(r)}else this.applyGradients(i);return ce(i),t?n:(n.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return hd(e,t)}dispose(){this.iterations_!=null&&ce(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:j(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(e){return this.iterations_=(await e[0].tensor.data())[0],e.slice(1)}}Object.defineProperty(gs,Symbol.hasInstance,{value:e=>e.minimize!=null&&e.computeGradients!=null&&e.applyGradients!=null});class ca extends gs{constructor(e,t,s=null){super();this.learningRate=e,this.rho=t,this.epsilon=s,this.accumulatedGrads=[],this.accumulatedUpdates=[],s==null&&(this.epsilon=v.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map(s=>s.name):Object.keys(e);t.forEach((s,n)=>{const i=v.registeredVariables[s],r=!1;this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${s}/accum_grad`,variable:C(()=>re(i).variable(r))}),this.accumulatedUpdates[n]==null&&(this.accumulatedUpdates[n]={originalName:`${s}/accum_var`,variable:C(()=>re(i).variable(r))});const o=Array.isArray(e)?e[n].tensor:e[s];if(o==null)return;const a=this.accumulatedGrads[n].variable,l=this.accumulatedUpdates[n].variable;C(()=>{const c=$(R(a,this.rho),R(xe(o),1-this.rho)),p=R(Z(Je($(l,this.epsilon)),Je($(a,this.epsilon))),o),u=$(R(l,this.rho),R(xe(p),1-this.rho));a.assign(c),l.assign(u);const h=$(R(p,-this.learningRate),i);i.assign(h)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(ce(this.accumulatedGrads.map(e=>e.variable)),ce(this.accumulatedUpdates.map(e=>e.variable)))}async getWeights(){const e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);const t=e.length/2,s=!1;this.accumulatedGrads=e.slice(0,t).map(n=>({originalName:n.name,variable:n.tensor.variable(s)})),this.accumulatedUpdates=e.slice(t,t*2).map(n=>({originalName:n.name,variable:n.tensor.variable(s)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}}ca.className="Adadelta";As(ca);class pa extends gs{constructor(e,t=.1){super();this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){const t=Array.isArray(e)?e.map(s=>s.name):Object.keys(e);t.forEach((s,n)=>{const i=v.registeredVariables[s];if(this.accumulatedGrads[n]==null){const a=!1;this.accumulatedGrads[n]={originalName:`${s}/accumulator`,variable:C(()=>Wt(i.shape,this.initialAccumulatorValue).variable(a))}}const r=Array.isArray(e)?e[n].tensor:e[s];if(r==null)return;const o=this.accumulatedGrads[n].variable;C(()=>{const a=$(o,xe(r));o.assign(a);const l=$(R(Z(r,Je($(a,v.backend.epsilon()))),-this.learningRate),i);i.assign(l)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&ce(this.accumulatedGrads.map(e=>e.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);const t=!1;this.accumulatedGrads=e.map(s=>({originalName:s.name,variable:s.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}}pa.className="Adagrad";As(pa);class ua extends gs{constructor(e,t,s,n=null){super();this.learningRate=e,this.beta1=t,this.beta2=s,this.epsilon=n,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],C(()=>{this.accBeta1=j(t).variable(),this.accBeta2=j(s).variable()}),n==null&&(this.epsilon=v.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map(s=>s.name):Object.keys(e);C(()=>{const s=X(1,this.accBeta1),n=X(1,this.accBeta2);t.forEach((i,r)=>{const o=v.registeredVariables[i],a=!1;this.accumulatedFirstMoment[r]==null&&(this.accumulatedFirstMoment[r]={originalName:`${i}/m`,variable:C(()=>re(o).variable(a))}),this.accumulatedSecondMoment[r]==null&&(this.accumulatedSecondMoment[r]={originalName:`${i}/v`,variable:C(()=>re(o).variable(a))});const l=Array.isArray(e)?e[r].tensor:e[i];if(l==null)return;const c=this.accumulatedFirstMoment[r].variable,p=this.accumulatedSecondMoment[r].variable,u=$(R(c,this.beta1),R(l,1-this.beta1)),h=$(R(p,this.beta2),R(xe(l),1-this.beta2)),d=Z(u,s),m=Z(h,n);c.assign(u),p.assign(h);const f=$(R(Z(d,$(Je(m),this.epsilon)),-this.learningRate),o);o.assign(f)}),this.accBeta1.assign(R(this.accBeta1,this.beta1)),this.accBeta2.assign(R(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&ce(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedSecondMoment!=null&&ce(this.accumulatedSecondMoment.map(e=>e.variable))}async getWeights(){const e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e),C(()=>{this.accBeta1.assign(es(this.beta1,this.iterations_+1)),this.accBeta2.assign(es(this.beta2,this.iterations_+1))});const t=e.length/2,s=!1;this.accumulatedFirstMoment=e.slice(0,t).map(n=>({originalName:n.name,variable:n.tensor.variable(s)})),this.accumulatedSecondMoment=e.slice(t,t*2).map(n=>({originalName:n.name,variable:n.tensor.variable(s)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)}}ua.className="Adam";As(ua);class ha extends gs{constructor(e,t,s,n=null,i=0){super();this.learningRate=e,this.beta1=t,this.beta2=s,this.epsilon=n,this.decay=i,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],C(()=>{this.iteration=j(0).variable(),this.accBeta1=j(t).variable()}),n==null&&(this.epsilon=v.backend.epsilon())}applyGradients(e){const t=Array.isArray(e)?e.map(s=>s.name):Object.keys(e);C(()=>{const s=X(1,this.accBeta1),n=Z(-this.learningRate,$(R(this.iteration,this.decay),1));t.forEach((i,r)=>{const o=v.registeredVariables[i],a=!1;this.accumulatedFirstMoment[r]==null&&(this.accumulatedFirstMoment[r]={originalName:`${i}/m`,variable:re(o).variable(a)}),this.accumulatedWeightedInfNorm[r]==null&&(this.accumulatedWeightedInfNorm[r]={originalName:`${i}/v`,variable:re(o).variable(a)});const l=Array.isArray(e)?e[r].tensor:e[i];if(l==null)return;const c=this.accumulatedFirstMoment[r].variable,p=this.accumulatedWeightedInfNorm[r].variable,u=$(R(c,this.beta1),R(l,1-this.beta1)),h=R(p,this.beta2),d=et(l),m=Ht(h,d);c.assign(u),p.assign(m);const f=$(R(Z(n,s),Z(u,$(m,this.epsilon))),o);o.assign(f)}),this.iteration.assign($(this.iteration,1)),this.accBeta1.assign(R(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&ce(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedWeightedInfNorm!=null&&ce(this.accumulatedWeightedInfNorm.map(e=>e.variable))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(e){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)}}ha.className="Adamax";As(ha);class zi extends gs{constructor(e){super();this.learningRate=e,this.setLearningRate(e)}applyGradients(e){const t=Array.isArray(e)?e.map(s=>s.name):Object.keys(e);t.forEach((s,n)=>{const i=Array.isArray(e)?e[n].tensor:e[s];if(i==null)return;const r=v.registeredVariables[s];C(()=>{const o=$(R(this.c,i),r);r.assign(o)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=pt(j(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(e=await this.extractIterations(e),e.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}}zi.className="SGD";As(zi);class da extends zi{constructor(e,t,s=!1){super(e);this.learningRate=e,this.momentum=t,this.useNesterov=s,this.accumulations=[],this.m=j(this.momentum)}applyGradients(e){const t=Array.isArray(e)?e.map(s=>s.name):Object.keys(e);t.forEach((s,n)=>{const i=v.registeredVariables[s];if(this.accumulations[n]==null){const a=!1;this.accumulations[n]={originalName:`${s}/momentum`,variable:C(()=>re(i).variable(a))}}const r=this.accumulations[n].variable,o=Array.isArray(e)?e[n].tensor:e[s];if(o==null)return;C(()=>{let a;const l=$(R(this.m,r),o);this.useNesterov?a=$(R(this.c,$(o,R(l,this.m))),i):a=$(R(this.c,l),i),r.assign(l),i.assign(a)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&ce(this.accumulations.map(e=>e.variable))}setMomentum(e){this.momentum=e}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);const t=!1;this.accumulations=e.map(s=>({originalName:s.name,variable:s.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}}da.className="Momentum";As(da);class ma extends gs{constructor(e,t=.9,s=0,n=null,i=!1){super();if(this.learningRate=e,this.decay=t,this.momentum=s,this.epsilon=n,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=i,n==null&&(this.epsilon=v.backend.epsilon()),e==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){const t=Array.isArray(e)?e.map(s=>s.name):Object.keys(e);t.forEach((s,n)=>{const i=v.registeredVariables[s],r=!1;this.accumulatedMeanSquares[n]==null&&(this.accumulatedMeanSquares[n]={originalName:`${s}/rms`,variable:C(()=>re(i).variable(r))}),this.accumulatedMoments[n]==null&&(this.accumulatedMoments[n]={originalName:`${s}/momentum`,variable:C(()=>re(i).variable(r))}),this.accumulatedMeanGrads[n]==null&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${s}/mg`,variable:C(()=>re(i).variable(r))});const o=Array.isArray(e)?e[n].tensor:e[s];if(o==null)return;const a=this.accumulatedMeanSquares[n].variable,l=this.accumulatedMoments[n].variable;C(()=>{const c=$(R(a,this.decay),R(xe(o),1-this.decay));if(this.centered){const p=this.accumulatedMeanGrads[n].variable,u=$(R(p,this.decay),R(o,1-this.decay)),h=Z(R(o,this.learningRate),Je(X(c,$(xe(u),this.epsilon)))),d=$(R(l,this.momentum),h);a.assign(c),p.assign(u),l.assign(d);const m=X(i,d);i.assign(m)}else{const p=$(R(a,this.decay),R(xe(o),1-this.decay)),u=$(R(l,this.momentum),Z(R(o,this.learningRate),Je($(p,this.epsilon))));a.assign(p),l.assign(u);const h=X(i,u);i.assign(h)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&ce(this.accumulatedMeanSquares.map(e=>e.variable)),this.accumulatedMeanGrads!=null&&this.centered&&ce(this.accumulatedMeanGrads.map(e=>e.variable)),this.accumulatedMoments!=null&&ce(this.accumulatedMoments.map(e=>e.variable))}async getWeights(){const e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);const t=this.centered?e.length/3:e.length/2,s=!1;this.accumulatedMeanSquares=e.slice(0,t).map(n=>({originalName:n.name,variable:n.tensor.variable(s)})),this.accumulatedMoments=e.slice(t,t*2).map(n=>({originalName:n.name,variable:n.tensor.variable(s)})),this.centered&&(this.accumulatedMeanGrads=e.slice(t*2,t*3).map(n=>({originalName:n.name,variable:n.tensor.variable(s)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)}}ma.className="RMSProp";As(ma);class oo{static sgd(e){return new zi(e)}static momentum(e,t,s=!1){return new da(e,t,s)}static rmsprop(e,t=.9,s=0,n=null,i=!1){return new ma(e,t,s,n,i)}static adam(e=.001,t=.9,s=.999,n=null){return new ua(e,t,s,n)}static adadelta(e=.001,t=.95,s=null){return new ca(e,t,s)}static adamax(e=.002,t=.9,s=.999,n=null,i=0){return new ha(e,t,s,n,i)}static adagrad(e,t=.1){return new pa(e,t)}}da,zi,ca,pa,ma,ha,ua;const ao={sgd:oo.sgd,momentum:oo.momentum,adadelta:oo.adadelta,adagrad:oo.adagrad,rmsprop:oo.rmsprop,adamax:oo.adamax,adam:oo.adam};const j$=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:e=>e())();function Zp(){return new Promise(e=>j$(()=>e()))}function V$(e,t,s){const n=s*(typeof e=="number"?e:e[0]),i=t*(typeof e=="number"?e:e[1]);return[n,i]}function G$(e,t,s,n=!0){let i=[];if(n)i=i.concat(t.slice(0)),i.push(e[0]/s),i=i.concat(e.slice(1));else{i=i.concat(e[0]);const r=t.length;for(let o=0;o=t*2+1||o%2===1?r.push(o):i.push(o);n.push(...i),n.push(0),n.push(...r)}return n}function H$(e,t,s,n=!0){const i=[];n?i.push(e[0]/s):i.push(e[0]*s);for(let r=1;rJ$,ERF_A2:()=>Z$,ERF_A3:()=>Q$,ERF_A4:()=>eW,ERF_A5:()=>tW,ERF_P:()=>X$,PARALLELIZE_THRESHOLD:()=>ld,SELU_SCALE:()=>Ob,SELU_SCALEALPHA:()=>Rb,applyActivation:()=>aa,assertAndGetBroadcastShape:()=>Ie,assertAxesAreInnerMostDims:()=>aD,assertParamsConsistent:()=>wb,assignToTypedArray:()=>cW,axesAreInnerMostDims:()=>fb,calculateShapes:()=>QS,castTensor:()=>hW,combineLocations:()=>uI,complexWithEvenIndex:()=>oW,complexWithOddIndex:()=>aW,computeConv2DInfo:()=>rs,computeConv3DInfo:()=>Hr,computeDefaultPad:()=>bb,computeDilation2DInfo:()=>yD,computeOptimalWindowSize:()=>fF,computeOutAndReduceShapes:()=>gb,computeOutShape:()=>xb,computePool2DInfo:()=>Wn,computePool3DInfo:()=>Fi,convertConv2DDataFormat:()=>qr,eitherStridesOrDilationsAreOne:()=>tt,expandShapeToKeepDim:()=>wt,exponent:()=>uW,exponents:()=>pW,getAxesPermutation:()=>dt,getBroadcastDims:()=>tF,getComplexWithIndex:()=>lW,getFusedBiasGradient:()=>oa,getFusedDyActivation:()=>ra,getImageCenter:()=>V$,getInnerMostAxes:()=>qt,getPermuted:()=>q$,getReductionAxes:()=>Ke,getReshaped:()=>G$,getReshapedPermuted:()=>H$,getSliceBeginCoords:()=>Y$,getSliceSize:()=>K$,getUndoAxesPermutation:()=>Jo,linspaceImpl:()=>mW,log:()=>nW,mergeRealAndImagArrays:()=>iW,prepareAndValidate:()=>JS,prepareSplitSize:()=>Sb,reshapeTensor:()=>dW,segment_util:()=>yI,shouldFuse:()=>la,slice_util:()=>Ms,splitRealAndImagArrays:()=>rW,tupleValuesAreOne:()=>Ks,upcastType:()=>Ft,validateInput:()=>Mh,validateUpdateShape:()=>rb,warn:()=>sW});function hW(e,t,s){if(t==="complex64"){if(e.dtype==="complex64")return e.clone();const n=ye(e.shape),i=G(e,"float32"),r=s.complex(i,n);return n.dispose(),i.dispose(),r}if(!$y(e.dtype,t))return v.makeTensorFromDataId(e.dataId,e.shape,t);if(e.dtype==="complex64"){const n=s.real(e),i=G(n,t);return n.dispose(),i}if(t==="int32")return s.int(e);if(t==="bool"){const n=j(0,e.dtype),i=s.notEqual(e,n);return n.dispose(),i}else throw new Error(`Error in Cast: failed to cast ${e.dtype} to ${t}`)}function dW(e,t){return v.makeTensorFromDataId(e.dataId,t,e.dtype)}function mW(e,t,s){const n=(t-e)/(s-1),i=ai(s,"float32");i[0]=e;for(let r=1;r{const o=[...i];o[s]=r;const a=he(e,n,o);return n[s]+=r,a})}function yv(e,t){const s=new Array(e.rank);for(let i=0;ix.value-w.value);const f=u*n,g=l.subarray(f,f+n),y=c.subarray(f,f+n);for(let w=0;w_d,nonMaxSuppressionV4Impl:()=>kd,nonMaxSuppressionV5Impl:()=>Dd,split:()=>gv,tile:()=>yv,topkImpl:()=>bv,whereImpl:()=>Nd});const wv={kernelName:_o,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(e,mi(G(s,"float32"),-1))}}};const xv={kernelName:dr,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>{const n=xe(G(s,"float32")),i=Je(X(j(1),n));return ke(Z(e,i))}}}};const Lv={kernelName:mr,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>{const n=Je(X(xe(G(s,"float32")),1));return Z(e,n)}}}};const Sv={kernelName:Zn,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=Ie(s.shape,n.shape),r=()=>{let a=e;const l=Ke(s.shape,i);return l.length>0&&(a=te(a,l)),O(a,s.shape)},o=()=>{let a=e;const l=Ke(n.shape,i);return l.length>0&&(a=te(a,l)),O(a,n.shape)};return{a:r,b:o}}};const Iv={kernelName:Mc,saveAllInputs:!0,gradFunc:(e,t)=>{const s={};return t.forEach((n,i)=>{s[i]=()=>e.clone()}),s}};const vv={kernelName:Uc,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>re(s)}}};const Tv={kernelName:$c,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>re(s)}}};const Av={kernelName:fr,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>Z(e,Je(X(j(1),xe(G(s,"float32")))))}}};const Nv={kernelName:gr,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>{const n=Je($(j(1),xe(G(s,"float32"))));return Z(e,n)}}}};const Cv={kernelName:ko,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=Ie(s.shape,n.shape),r=()=>{const a=$(xe(s),xe(n));let l=R(e,Z(n,a));const c=Ke(s.shape,i);return c.length>0&&(l=te(l,c)),O(l,s.shape)},o=()=>{const a=$(xe(s),xe(n));let l=ke(R(e,Z(s,a)));const c=Ke(n.shape,i);return c.length>0&&(l=te(l,c)),O(l,n.shape)};return{a:r,b:o}}};const Rv={kernelName:yr,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>Z(e,$(xe(G(s,"float32")),1))}}};const Ov={kernelName:br,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>Z(e,X(j(1),xe(G(s,"float32"))))}}};function fW(e,t,s,n,i=[1,1,1],r,o){const a=b(e,"dy","avgPool3dBackprop"),l=b(t,"input","avgPool3dBackprop");let c=a,p=l,u=!1;l.rank===4&&(u=!0,c=O(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]]),p=O(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]])),I(c.rank===5,()=>`Error in avgPool3dBackprop: dy must be rank 5 but got rank ${c.rank}.`),I(p.rank===5,()=>`Error in avgPool3dBackprop: input must be rank 5 but got rank ${p.rank}.`),I(tt(n,i),()=>`Error in avgPool3dBackprop: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`),o!=null&&I(De(r),()=>`Error in maxPool3dBackprop: pad must be an integer when using, dimRoundingMode ${o} but got pad ${r}.`);const h=g=>{const y=Fi(p.shape,s,n,i,r,o);return g.avgPool3dBackprop(c,p,y)},d={dy:c,input:p},m={filterSize:s,strides:n,dilations:i,pad:r,dimRoundingMode:o},f=v.runKernelFunc(h,d,null,ny,m);return u?O(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}const Ev=S({avgPool3dBackprop_:fW});const _v={kernelName:Wc,inputsToSave:["x"],gradFunc:(e,t,s)=>{const[n]=t,{filterSize:i,strides:r,dilations:o,pad:a,dimRoundingMode:l}=s,c=o??[1,1,1];return{x:()=>Ev(e,n,i,r,c,a,l)}}};function gW(e,t,s,n,i){const r=b(e,"dy","avgPoolBackprop"),o=b(t,"input","avgPoolBackprop");I(o.rank===r.rank,()=>`Rank of input (${o.rank}) does not match rank of dy (${r.rank})`);let a=o,l=r,c=!1;o.rank===3&&(c=!0,a=O(o,[1,o.shape[0],o.shape[1],o.shape[2]]),l=O(r,[1,r.shape[0],r.shape[1],r.shape[2]])),I(l.rank===4,()=>`Error in avgPoolBackprop: dy must be rank 4 but got rank ${l.rank}.`),I(a.rank===4,()=>`Error in avgPoolBackprop: input must be rank 4 but got rank ${a.rank}.`);const p=m=>{const f=Wn(a.shape,s,n,1,i);return m.avgPoolBackprop(l,a,f)},u={dy:l,input:a},h={filterSize:s,strides:n,pad:i},d=v.runKernelFunc(p,u,null,Do,h);return c?O(d,[d.shape[1],d.shape[2],d.shape[3]]):d}const kv=S({avgPoolBackprop_:gW});const Dv={kernelName:Ti,inputsToSave:["x"],gradFunc:(e,t,s)=>{const[n]=t,{filterSize:i,strides:r,pad:o}=s;return{x:()=>kv(e,n,i,r,o)}}};const Fv={kernelName:zc,inputsToSave:["a","b"],gradFunc:(e,t,s)=>{const[n,i]=t,{transposeA:r,transposeB:o}=s;return!r&&!o?{a:()=>Te(e,i,!1,!0),b:()=>Te(n,e,!0,!1)}:!r&&o?{a:()=>Te(e,i,!1,!1),b:()=>Te(e,n,!0,!1)}:r&&!o?{a:()=>Te(i,e,!1,!0),b:()=>Te(n,e,!1,!1)}:{a:()=>Te(i,e,!0,!0),b:()=>Te(e,n,!0,!0)}}};const Mv={kernelName:Pc,gradFunc:(e,t,s)=>{const{blockShape:n,crops:i}=s;return{x:()=>Zr(e,n,i)}}};const Uv={kernelName:Bc,gradFunc:(e,t,s)=>{const n=s,i=n.inputShape,r=n.shape,o=Array.from(r);for(let l=i.length-1;l>=0;l--)if(i[l]===r[l])o[l]=1;else if(i[l]!==1)throw new Error(`broadcastTo(): [${i}] cannot be broadcast to [${r}].`);const a=[];for(let l=0;l1&&a.push(l);return{x:()=>te(e,a,!0)}}};const $v={kernelName:Ai,gradFunc:e=>({x:()=>e.clone()})};const Wv={kernelName:wr,gradFunc:e=>({x:()=>re(e)})};const zv={kernelName:xr,inputsToSave:["x"],gradFunc:(e,t,s)=>{const[n]=t,{clipValueMin:i,clipValueMax:r}=s;return{x:()=>mt(Yt(ms(n,i),Ws(n,r)),e,re(e))}}};const Pv={kernelName:Fo,saveAllInputs:!0,gradFunc:(e,t,s)=>{const n=t.map(l=>l.shape),{axis:i}=s,r=Ne(i,t[0].shape)[0],o=n.map(l=>l[r]),a=Bt(e,o,r);return a.map(l=>()=>l)}};const Bv={kernelName:Vc,inputsToSave:["x","filter"],gradFunc:(e,t,s)=>{const[n,i]=t,{dilations:r,strides:o,pad:a,dataFormat:l}=s;return I(Ks(r),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${r}'`),{x:()=>gl(n.shape,e,i,o,a,l),filter:()=>Fl(n,e,i.shape,o,a,l)}}};const jv={kernelName:Gc,inputsToSave:["dy","filter"],gradFunc:(e,t,s)=>{const[n,i]=t,{strides:r,pad:o,dataFormat:a,dimRoundingMode:l}=s;return{dy:()=>rt(e,i,r,o,a,1,l),filter:()=>Fl(e,n,i.shape,r,o,a,l)}}};function yW(e,t,s,n,i){let r=e;e.rank===4&&(r=O(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let o=t;o.rank===4&&(o=O(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),I(r.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${r.shape}.`),I(o.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${o.shape}.`),I(s.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${s}.`),I(r.shape[4]===s[3],()=>`Error in conv3dDerFilter: depth of input ${r.shape[4]}) must match input depth in filter (${s[3]}.`),I(o.shape[4]===s[4],()=>`Error in conv3dDerFilter: depth of dy (${o.shape[4]}) must match output depth for filter (${s[4]}).`);const a=p=>{const u=1,h=Hr(r.shape,s,n,u,i);return p.conv3dDerFilter(r,o,h)},l={x:r,y:o},c={strides:n,pad:i};return v.runKernelFunc(a,l,null,ry,c)}const Vv=S({conv3DBackpropFilter_:yW});const Gv={kernelName:qc,inputsToSave:["x","filter"],gradFunc:(e,t,s)=>{const{dilations:n,strides:i,pad:r}=s;I(Ks(n),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${n}'`);const[o,a]=t;return{x:()=>sd(o.shape,e,a,i,r),filter:()=>Vv(o,e,a.shape,i,r)}}};const qv={kernelName:Qn,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(ke(Ol(G(s,"float32"))),e)}}};const Hv={kernelName:Lr,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(El(G(s,"float32")),e)}}};const Yv={kernelName:Hc,inputsToSave:["x"],gradFunc:(e,t,s)=>{const[n]=t,{axis:i,exclusive:r,reverse:o}=s;return{x:()=>{const a=dt([i],n.rank);let l=xl(e,i,r,!o);return a!=null&&(l=se(l,a)),l}}}};const Kv={kernelName:Yc,inputsToSave:["x","filter"],gradFunc:(e,t,s)=>{const{dilations:n,strides:i,pad:r,dimRoundingMode:o}=s,a=n??[1,1];I(Ks(a),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${a}'`);const[l,c]=t;I(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${l.rank}.`),I(c.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${c.rank}.`),I(l.shape[3]===c.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${l.shape[3]}) must match the inChannels dimension in filter ${c.shape[2]}.`),I(tt(i,a),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${a}'.`),o!=null&&I(De(r),()=>`Error in depthwiseConv2d: pad must be an integer when using, dimRoundingMode ${o} but got pad ${r}.`);const p=rs(l.shape,c.shape,i,a,r,o,!0);return{x:()=>Rd(l.shape,e,c,p),filter:()=>Cd(l,e,c.shape,p)}}};const Xv={kernelName:Mo,inputsToSave:["x","filter"],gradFunc:(e,t,s)=>{const[n,i]=t,r={x:n,filter:i,dy:e},o={x:n,filter:i,dy:e};return{x:()=>v.runKernel(qa,r,s),filter:()=>v.runKernel(Ha,o,s)}}};const Jv={kernelName:ei,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=Ie(s.shape,n.shape),r=()=>{const a=Z(e,G(n,"float32")),l=Ke(s.shape,i);return l.length>0?O(te(a,l),s.shape):a},o=()=>{let a=R(e,G(s,"float32"));const l=Ke(n.shape,i);l.length>0&&(a=O(te(a,l),n.shape));const c=xe(n);return ke(Z(a,G(c,"float32")))};return{a:r,b:o}}};const Zv={kernelName:Sr,outputsToSave:[!0],gradFunc:(e,t)=>{const[s]=t,n=r=>r.eluDer(e,s),i={dy:e,y:s};return{x:()=>v.runKernelFunc(n,i,null,hy)}}};const Qv={kernelName:Ir,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t,n=R(ut(ke(xe(s))),2/Math.sqrt(Math.PI));return{x:()=>R(e,n)}}};const eT={kernelName:vr,outputsToSave:[!0],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(e,s)}}};const tT={kernelName:Tr,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(e,ut(s))}}};const sT={kernelName:Ar,gradFunc:e=>({x:()=>re(e)})};const nT={kernelName:Xc,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=Ie(s.shape,n.shape),r=()=>{const a=Z(e,G(n,"float32")),l=Ke(s.shape,i);return l.length>0?O(te(a,l),s.shape):a},o=()=>{let a=R(e,G(s,"float32"));const l=Ke(n.shape,i);l.length>0&&(a=O(te(a,l),n.shape));const c=xe(n);return ke(Z(a,G(c,"float32")))};return{a:r,b:o}}};const iT={kernelName:Ni,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,s)=>{const{varianceEpsilon:n}=s,[i,r,o,a]=t,l=a??j(1),c=Ke(r.shape,i.shape),p=[];if(r.rank===1){for(let T=0;Tr.rank===1?O(R(R(e,$s(O(d,[1,1,1,r.shape[0]]),p)),l),i.shape):O(R(R(e,d),l),i.shape),g=()=>{let T=R(R(d,j(-1)),h);return r.rank===1&&(T=te(T,c)),O(T,r.shape)},y=()=>{let T=R(R(m,u),h);return r.rank===1&&(T=te(T,c)),O(T,r.shape)},w=()=>{const T=R(u,d);let A=R(e,T);return r.rank===1&&(A=te(A,c)),O(A,r.shape)},x=()=>{let T=e;return r.rank===1&&(T=te(T,c)),O(T,r.shape)};return{x:f,mean:g,variance:y,scale:w,offset:x}}};const aT={kernelName:Jc,inputsToSave:["x","indices"],gradFunc:(e,t,s)=>{const[n,i]=t,{axis:r}=s,o=Ne(r,n.shape)[0],a=()=>{const l=n.shape,c=i.size,p=l.slice(0,o),u=p.length,h=l.slice(r,l.length).slice(1),d=h.length,m=rT(0,u),f=rT(u+1,u+1+d),g=oT([p,[c],h]),y=O(e,g),w=O(i,[c]),x=oT([[u],m,f]),T=se(y,x);let A=Td(T,w,n.shape[o]);const _=Jo(x);return A=se(A,_),A};return{x:a,indices:()=>i}}};function rT(e,t){const s=[];for(let n=e;n{const[s,n]=t;return{a:()=>re(s),b:()=>re(n)}}};const cT={kernelName:Ci,gradFunc:e=>({x:()=>G(e,"float32")})};const pT={kernelName:Nr,gradFunc:e=>({x:()=>re(e)})};const uT={kernelName:Cr,gradFunc:e=>({x:()=>re(e)})};const hT={kernelName:Rr,gradFunc:e=>({x:()=>re(e)})};const dT={kernelName:Er,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>Z(e,$(s,1))}}};const mT={kernelName:Or,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>Z(e,G(s,"float32"))}}};const fT={kernelName:tp,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,s)=>{const[n]=t,{axis:i}=s;return{logits:()=>{const r=!0,o=ut(n);return X(e,R(te(e,i,r),o))}}}};function bW(e,t,s,n=5,i=1,r=1,o=.5){const a=p=>p.LRNGrad(s,e,t,n,i,r,o),l={x:e,y:t,dy:s},c={depthRadius:n,bias:i,alpha:r,beta:o};return v.runKernelFunc(a,l,null,Sy,c)}const gT=S({localResponseNormalizationBackprop_:bW});const yT={kernelName:sp,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,s)=>{const[n,i]=t,{depthRadius:r,bias:o,alpha:a,beta:l}=s;return{x:()=>gT(n,i,e,r,o,a,l)}}};function Fd(e,t,s,n,i){return t.rank{const r=R(e,G(as(s,t),e.dtype));return i==null?r:se(r,i)}}}const Eb={kernelName:Ri,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,s)=>{const n=s,{reductionIndices:i}=n,[r,o]=t,a=Ne(i,r.shape),l=dt(a,r.rank),c=Fd(e,o,r,a,l);return{x:()=>{let p=c.x();return l!=null&&(p=se(p)),p}}}};const bT={kernelName:np,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=()=>R(e,G(ms(s,n),"float32")),r=()=>R(e,G(Xr(s,n),"float32"));return{a:i,b:r}}};function wW(e,t,s,n,i,r=[1,1,1],o,a){const l=b(e,"dy","maxPool3dBackprop"),c=b(t,"input","maxPool3dBackprop"),p=b(s,"output","maxPool3dBackprop");let u=l,h=c,d=p,m=!1;c.rank===4&&(m=!0,u=O(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),h=O(c,[1,c.shape[0],c.shape[1],c.shape[2],c.shape[3]]),d=O(p,[1,p.shape[0],p.shape[1],p.shape[2],p.shape[3]])),I(u.rank===5,()=>`Error in maxPool3dBackprop: dy must be rank 5 but got rank ${u.rank}.`),I(h.rank===5,()=>`Error in maxPool3dBackprop: input must be rank 5 but got rank ${h.rank}.`),I(d.rank===5,()=>`Error in maxPool3dBackprop: output must be rank 5 but got rank ${d.rank}.`),I(tt(i,r),()=>`Error in maxPool3dBackprop: Either strides or dilations must be 1. Got strides ${i} and dilations '${r}'`),a!=null&&I(De(o),()=>`Error in maxPool3dBackprop: pad must be an integer when using, dimRoundingMode ${a} but got pad ${o}.`);const f=x=>{const T=Fi(h.shape,n,i,r,o,a);return x.maxPool3dBackprop(u,h,d,T)},g={dy:u,input:h,output:d},y={filterSize:n,strides:i,dilations:r,pad:o,dimRoundingMode:a},w=v.runKernelFunc(f,g,null,Iy,y);return m?O(w,[w.shape[1],w.shape[2],w.shape[3],w.shape[4]]):w}const wT=S({maxPool3dBackprop_:wW});const xT={kernelName:ip,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,s)=>{const[n,i]=t,{filterSize:r,strides:o,dilations:a,pad:l,dimRoundingMode:c}=s,p=a??[1,1,1];return{x:()=>wT(e,n,i,r,o,p,l,c)}}};function xW(e,t,s,n,i,r,o){const a=b(e,"dy","maxPoolBackprop"),l=b(t,"input","maxPoolBackprop"),c=b(s,"output","maxPoolBackprop");I(l.rank===a.rank,()=>`Rank of input (${l.rank}) does not match rank of dy (${a.rank})`),I(a.rank===4,()=>`Error in maxPoolBackprop: dy must be rank 4 but got rank ${a.rank}.`),I(l.rank===4,()=>`Error in maxPoolBackprop: input must be rank 4 but got rank ${l.rank}.`),o!=null&&I(De(r),()=>`Error in maxPoolBackprop: pad must be an integer when using, dimRoundingMode ${o} but got pad ${r}.`);const p=d=>{const m=Wn(l.shape,n,i,1,r,o);return d.maxPoolBackprop(a,l,c,m)},u={dy:a,input:l,output:c},h={filterSize:n,strides:i,pad:r,dimRoundingMode:o};return v.runKernelFunc(p,u,null,$o,h)}const LT=S({maxPoolBackprop_:xW});const ST={kernelName:Oi,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,s)=>{const[n,i]=t,{filterSize:r,strides:o,pad:a}=s;return{x:()=>LT(e,n,i,r,o,a)}}};const IT={kernelName:rp,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,s)=>{const n=s,{axis:i}=n,[r,o]=t,a=Ne(i,r.shape),l=dt(a,r.rank),c=Fd(e,o,r,a,l);return{x:()=>{let p=c.x();return l!=null&&(p=se(p)),p}}}};const vT={kernelName:op,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=()=>R(e,G(Ws(s,n),"float32")),r=()=>R(e,G(Ut(s,n),"float32"));return{a:i,b:r}}};const TT={kernelName:ap,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=Ie(s.shape,n.shape),r=()=>{const a=Ke(s.shape,i);return a.length>0?O(te(e,a),s.shape):e},o=()=>{const a=R(e,ke(ui(Z(s,n)))),l=Ke(n.shape,i);return l.length>0?O(te(a,l),n.shape):a};return{a:r,b:o}}};const AT={kernelName:_r,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=Ie(s.shape,n.shape),r=()=>{const a=R(e,G(n,"float32")),l=Ke(s.shape,i);return l.length>0?O(te(a,l),s.shape):a},o=()=>{const a=R(e,G(s,"float32")),l=Ke(n.shape,i);return l.length>0?O(te(a,l),n.shape):a};return{a:r,b:o}}};const NT={kernelName:lp,gradFunc:e=>({x:()=>ke(e)})};const CT={kernelName:up,inputsToSave:["indices"],gradFunc:(e,t)=>{const s=t[0];return{indices:()=>ye(s.shape,"float32")}}};const RT={kernelName:pp,gradFunc:e=>({x:()=>re(e)})};const _b={kernelName:Bo,inputsToSave:["x"],gradFunc:(e,t,s)=>{const n=t[0],{paddings:i}=s,r=i.map(o=>o[0]);return{x:()=>he(e,r,n.shape)}}};const OT={kernelName:hp,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{const[s,n,i]=t,r=s,o=n,a=Ie(r.shape,o.shape),l=()=>{const p=G(o,"float32");let u=R(e,R(p,es(r,X(p,j(1)))));const h=Ke(r.shape,a);return h.length>0&&(u=te(u,h)),O(u,r.shape)},c=()=>{const p=Ut(r,0),u=mt(p,zt(r),re(r));let h=R(e,R(i,u));const d=Ke(o.shape,a);return d.length>0&&(h=te(h,d)),O(h,o.shape)};return{a:l,b:c}}};const ET={kernelName:dp,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{const[s,n]=t,i=Ut(s,0);return{x:()=>mt(i,e,R(e,n)),alpha:()=>{let r=mt(i,re(e),R(e,s));const o=Ke(n.shape,e.shape);return o.length>0&&(r=te(r,o)),O(r,n.shape)}}}};const _T={kernelName:kr,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>Z(e,ke(xe(s)))}}};const kT={kernelName:bp,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t,n=R(Ws(s,6),mi(s));return{x:()=>R(e,G(n,"float32"))}}};const DT={kernelName:fp,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(e,G(mi(s),"float32"))}}};const FT={kernelName:Ei,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>O(e,s.shape)}}};const MT={kernelName:yp,inputsToSave:["images"],gradFunc:(e,t,s)=>{const[n]=t,i=a=>{const{alignCorners:l}=s;return a.resizeBilinearBackprop(e,n,l)},r={images:n},o=()=>v.runKernelFunc(i,r,null,Ny,s);return{images:o}}};const UT={kernelName:gp,inputsToSave:["images"],gradFunc:(e,t,s)=>{const[n]=t,i=a=>{const{alignCorners:l}=s;return a.resizeNearestNeighborBackprop(e,n,l)},r={images:n},o=()=>v.runKernelFunc(i,r,null,Ay,s);return{images:o}}};const $T={kernelName:wp,gradFunc:(e,t,s)=>{const{dims:n}=s,i=Ne(n,e.shape);return{x:()=>Et(e,i)}}};const WT={kernelName:Dr,gradFunc:e=>({x:()=>re(e)})};const zT={kernelName:Fr,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>ke(Z(e,R(es(s,1.5),2)))}}};const PT={kernelName:xp,inputsToSave:["condition"],gradFunc:(e,t)=>{const[s]=t;return{condition:()=>G(re(s),"float32"),t:()=>R(e,G(s,e.dtype)),e:()=>R(e,G(Jr(s),e.dtype))}}};const BT={kernelName:Mr,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>{const n=Ut(s,j(0)),i=j(Rb),r=j(Ob),o=R(e,r),a=R(R(e,i),ut(G(s,"float32")));return mt(n,o,a)}}}};const jT={kernelName:Wr,outputsToSave:[!0],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(e,R(s,X(j(1),s)))}}};const VT={kernelName:$r,gradFunc:e=>({x:()=>re(e)})};const GT={kernelName:ti,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(Kr(G(s,"float32")),e)}}};const qT={kernelName:Ur,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(wl(G(s,"float32")),e)}}};const HT={kernelName:jo,inputsToSave:["x"],gradFunc:(e,t,s)=>{const[n]=t,{begin:i,size:r}=s,o=n.shape,[a,l]=jp(n,i,r),c=[];for(let p=0;pPt(e,c)}}};const YT={kernelName:Ip,outputsToSave:[!0],gradFunc:(e,t,s)=>{const[n]=t,{dim:i}=s,r=!0,o=R(e,n);return{logits:()=>X(o,R(te(o,[i],r),n))}}};const KT={kernelName:zr,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(e,os(s))}}};const kb={kernelName:Vo,gradFunc:(e,t,s)=>{const{blockShape:n,paddings:i}=s;return{x:()=>Yr(e,n,i)}}};const Db={kernelName:Sp,gradFunc:(e,t,s)=>{const{axis:n}=s;return{x:()=>be(e,n)}}};const XT={kernelName:Pr,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>Z(e,R(Je(G(s,"float32")),2))}}};const JT={kernelName:Go,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(e,R(G(s,"float32"),2))}}};const ZT={kernelName:si,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=j(2),r=()=>R(e,R(i,X(s,n))),o=()=>R(e,R(i,X(n,s)));return{a:r,b:o}}};const QT={kernelName:Vr,gradFunc:e=>({x:()=>re(e)})};const eA={kernelName:Br,inputsToSave:["a","b"],gradFunc:(e,t)=>{const[s,n]=t,i=Ie(s.shape,n.shape),r=()=>{let a=e;const l=Ke(s.shape,i);return l.length>0&&(a=te(a,l)),O(a,s.shape)},o=()=>{let a=e;const l=Ke(n.shape,i);return l.length>0&&(a=te(a,l)),O(ke(a),n.shape)};return{a:r,b:o}}};const tA={kernelName:Lp,inputsToSave:["x"],gradFunc:(e,t,s)=>{const[n]=t,i=n.shape.slice(),{axis:r}=s,o=Ne(r,n.shape);o.forEach(c=>{i[c]=1});const a=O(e,i),l=R(a,Kt(n.shape,"float32"));return{x:()=>l}}};const sA={kernelName:ni,inputsToSave:["x"],gradFunc:(e,t)=>{const[s]=t;return{x:()=>Z(e,xe(Kr(s)))}}};const nA={kernelName:jr,outputsToSave:[!0],gradFunc:(e,t)=>{const[s]=t;return{x:()=>R(X(j(1),xe(s)),e)}}};const iA={kernelName:vp,inputsToSave:["x"],gradFunc:(e,t,s)=>{const[n]=t,{reps:i}=s,r=()=>{let o=re(n);if(n.rank===1)for(let a=0;a{const n=s,{perm:i}=n,r=Jo(i);return{x:()=>se(e,r)}}};const oA={kernelName:Tp,gradFunc:(e,t,s)=>{const n=s,{axis:i}=n;return{value:()=>Ge(e,i)}}};const aA={kernelName:Ap,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{const[s]=t,n=()=>LW(e,s);return{x:n}}};function LW(e,t){const s=Ht(t,re(t)),n=hi(e,s);let i=ms(t,j(0,"int32"));const r=n.rank-i.rank;for(let a=0;a({x:()=>re(e)})};const SW=[wv,xv,Lv,Sv,Iv,vv,Tv,Av,Nv,Cv,Rv,Ov,_v,Dv,Fv,Mv,Uv,$v,Wv,zv,Pv,jv,Bv,Gv,qv,Hv,Yv,Kv,Xv,Jv,Zv,Qv,eT,tT,nT,sT,iT,aT,lT,cT,pT,uT,hT,dT,mT,fT,yT,Eb,Eb,bT,xT,ST,IT,vT,TT,AT,NT,CT,RT,_b,_b,OT,ET,_T,kT,DT,FT,MT,UT,$T,WT,zT,PT,BT,jT,VT,GT,qT,HT,YT,KT,kb,kb,Db,Db,XT,ZT,JT,QT,eA,tA,sA,nA,iA,rA,oA,aA,lA];for(const e of SW)ky(e);let Fb;function Tt(){return Fb==null&&(Fb=mb().epsilon()),Fb}function ys(){return"channelsLast"}class Sn extends Error{constructor(e){super(e);Object.setPrototypeOf(this,Sn.prototype)}}class Ns extends Error{constructor(e){super(e);Object.setPrototypeOf(this,Ns.prototype)}}class k extends Error{constructor(e){super(e);Object.setPrototypeOf(this,k.prototype)}}class ae extends Error{constructor(e){super(e);Object.setPrototypeOf(this,ae.prototype)}}class Mb extends Error{constructor(e){super(e);Object.setPrototypeOf(this,Mb.prototype)}}class IW extends Error{constructor(e){super(e);Object.setPrototypeOf(this,IW.prototype)}}function In(e,t){if(Array.isArray(e)){let s=[];for(let n=0;ns.toUpperCase())}let Tn={};function Ml(e){if(e==null)return null;const t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function $b(e){if(e==null||typeof e!="object")return;if(Array.isArray(e))e.forEach(t=>$b(t));else{const t=Object.keys(e);for(const s of t){const n=e[s];n!=null&&typeof n=="object"&&(!Array.isArray(n)&&n.type==="ndarray"&&typeof n.value=="number"?e[s]=n.value:$b(n))}}}function fi(e,t={},s={},n="object",i=!1){if(typeof e=="string"){const r=e;let o;if(r in s)o=s[r];else if(r in Tn)o=Tn[r];else if(o=t[r],o==null)throw new k(`Unknown ${n}: ${e}. This may be due to one of the following reasons: 1. The ${n} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. 2. The custom ${n} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return o}else{const r=e;if(r.className==null||r.config==null)throw new k(`${n}: Improper config format: ${JSON.stringify(r)}. 'className' and 'config' must set.`);const o=r.className;let a,l;if(o in s?[a,l]=s[o]:o in Tn?[a,l]=Tn.className:o in t&&([a,l]=t[o]),a==null)throw new k(`Unknown ${n}: ${o}. This may be due to one of the following reasons: 1. The ${n} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. -2. The custom ${n} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(l!=null){const c={};for(const d of Object.keys(Tn))c[d]=Tn[d];for(const d of Object.keys(s))c[d]=s[d];const p=r.config;p.customObjects=c;const u=Object.assign({},Tn);for(const d of Object.keys(s))Tn[d]=s[d];$b(r.config);const h=l(a,r.config,s,i);return Tn=Object.assign({},u),h}else{const c=Object.assign({},Tn);for(const u of Object.keys(s))Tn[u]=s[u];const p=new a(r.config);return Tn=Object.assign({},c),p}}}function TW(e,t){return et?1:0}function Qp(e,t){return-1*TW(e,t)}function An(e){if(e==null)return e;const t=[];for(const s of e)t.indexOf(s)===-1&&t.push(s);return t}function pA(e){if(e==null)throw new k(`Invalid value in obj: ${JSON.stringify(e)}`);for(const t in e)if(e.hasOwnProperty(t))return!1;return!0}function Bi(e,t,s){if(s==null)return;if(e.indexOf(s)<0)throw new k(`${s} is not a valid ${t}. Valid values are ${e} or null/undefined.`)}function Md(e,t,s=0,n=Infinity){return tn(s>=0),tn(n>=s),Array.isArray(e)&&e.length>=s&&e.length<=n&&e.every(i=>typeof i===t)}function yt(e,t){Array.isArray(e)?(N.assert(e.length>0,()=>`${t} is unexpectedly an empty array.`),e.forEach((s,n)=>yt(s,`element ${n+1} of ${t}`))):N.assert(Number.isInteger(e)&&e>0,()=>`Expected ${t} to be a positive integer, but got ${uA(e)}.`)}function uA(e){return e===null?"null":Array.isArray(e)?"["+e.map(t=>uA(t)).join(",")+"]":typeof e=="string"?`"${e}"`:`${e}`}function hA(e,t){let s=N.now(),n;const i=(...r)=>{const o=N.now();return o-sJe(te(R(e,e),t,!0)))}class eu extends V.Serializable{getConfig(){return{}}}class $d extends eu{constructor(e){super();this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return C(()=>{const t=Wb(e,this.axis),s=xt(t,0,this.maxValue);return R(e,Z(s,$(Tt(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}}$d.className="MaxNorm";V.registerClass($d);class Wd extends eu{constructor(e){super();this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return C(()=>Z(e,$(Tt(),Wb(e,this.axis))))}getConfig(){return{axis:this.axis}}}Wd.className="UnitNorm";V.registerClass(Wd);class zd extends eu{apply(e){return Fe(e)}}zd.className="NonNeg";V.registerClass(zd);class Pd extends eu{constructor(e){super();this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=e.minValue!=null?e.minValue:this.defaultMinValue,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.rate=e.rate!=null?e.rate:this.defaultRate,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return C(()=>{const t=Wb(e,this.axis),s=$(R(this.rate,xt(t,this.minValue,this.maxValue)),R(1-this.rate,t));return R(e,Z(s,$(Tt(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}}Pd.className="MinMaxNorm";V.registerClass(Pd);const dA={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function ot(e){return Ml(e)}function mA(e,t={}){return fi(e,V.SerializationMap.getMap().classNameMap,t,"constraint")}function at(e){if(e==null)return null;if(typeof e=="string"){const t=e in dA?dA[e]:e,s={className:t,config:{}};return mA(s)}else return e instanceof eu?e:mA(e)}const zb={};Ee(zb,{maxNorm:()=>AW,minMaxNorm:()=>RW,nonNeg:()=>CW,unitNorm:()=>NW});function AW(e){return new $d(e)}function NW(e){return new Wd(e)}function CW(){return new zd}function RW(e){return new Pd(e)}const fA=["channelsFirst","channelsLast"],gA=["valid","same","causal"],yA=["max","avg"],bA=["sum","mul","concat","ave"];const Ul=new Map;function lt(e){Bi(fA,"DataFormat",e)}function bs(e){Bi(gA,"PaddingMode",e)}function Pb(e){Bi(yA,"PoolMode",e)}const tu=[],wA="/";function zn(e,t){tu.push(e);try{const s=t();return tu.pop(),s}catch(s){throw tu.pop(),s}}function OW(){return tu.length===0?"":tu.join(wA)+wA}function Bd(e){if(!xA(e))throw new Error("Not a valid tensor name: '"+e+"'");return OW()+e}function jd(e){if(!xA(e))throw new Error("Not a valid tensor name: '"+e+"'");Ul.has(e)||Ul.set(e,0);const t=Ul.get(e);if(Ul.set(e,Ul.get(e)+1),t>0){const s=`${e}_${t}`;return Ul.set(s,1),s}else return e}const EW=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function xA(e){return!!e.match(EW)}function LA(e){return e===parseInt(e.toString(),10)}function Nn(e,t,s){t==null&&(t=0),s==null&&(s=e.length);let n=1;for(let i=t;i{if(e.shape.length!==2)throw new k(`repeat() expects a rank-2 tensor, but received a rank-${e.shape.length} tensor.`);const s=Vi(e,1);return Vd(s,[1,t,1])})}function vA(e){const t=[Nn(e.shape)];return e.reshape(t)}function TA(e){if(e.rank<=1)throw new k(`batchFlatten requires a minimum rank of 2. Got rank: ${e.rank}.`);const t=[e.shape[0],Nn(e.shape,1)];return e.reshape(t)}function Gi(e,t,s){return C(()=>{switch(e.rank){case 1:return _l(e,t,s);case 2:return Hp(e,[t,0],[s,e.shape[1]]);case 3:return to(e,[t,0,0],[s,e.shape[1],e.shape[2]]);case 4:return ia(e,[t,0,0,0],[s,e.shape[1],e.shape[2],e.shape[3]]);case 5:return he(e,[t,0,0,0,0],[s,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return he(e,[t,0,0,0,0,0],[s,e.shape[1],e.shape[2],e.shape[3],e.shape[4],e.shape[5]]);default:throw new k(`sliceAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}})}function Bb(e,t,s){return C(()=>{switch(e.rank){case 1:return _l(e,t,s);case 2:return Hp(e,[0,t],[e.shape[0],s]);case 3:return to(e,[0,0,t],[e.shape[0],e.shape[1],s]);case 4:return ia(e,[0,0,0,t],[e.shape[0],e.shape[1],e.shape[2],s]);default:throw new k(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function su(e,t,s,n){return C(()=>{switch(e.rank){case 1:return _l(e,t,s);case 2:switch(n){case 1:return Gi(e,t,s);case 2:return Bb(e,t,s);default:throw new k(`The axis is not within the rank of the tensor ${n}`)}case 3:switch(n){case 1:return Gi(e,t,s);case 2:return to(e,[0,t,0],[e.shape[0],s,e.shape[2]]);case 3:return Bb(e,t,s);default:throw new k(`The axis is not within the rank of the tensor ${n}`)}case 4:switch(n){case 1:return Gi(e,t,s);case 2:return ia(e,[0,t,0,0],[e.shape[0],s,e.shape[2],e.shape[3]]);case 3:return ia(e,[0,0,t,0],[e.shape[0],e.shape[1],s,e.shape[3]]);case 4:return Bb(e,t,s);default:throw new k(`The axis is not within the rank of the tensor ${n}`)}default:throw new k(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function $l(e,t=-1){let s;return t<0&&(s=e[0].rank,s!==0?t=s:t=0),t===e[0].rank&&(t=-1),be(e,t)}function jb(e,t){switch(e.rank){case 1:return Zh([e,t]);case 2:return Qh([e,t],0);case 3:return ed([e,t],0);case 4:return td([e,t],0);default:throw new k(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function Vd(e,t){if(Array.isArray(t)||(t=[t]),e.rank!==t.length)throw new k(`The length of input n (${t.length}) does not match the number of dimensions in input x (${e.rank})`);return $s(e,t)}function Wl(e,t=0,s=1,n,i){return qp(e,t,s,n,i)}function Cn(e,t,s,n){if(e.rank<2||t.rank<2)throw new ae(`dot requires both inputs to be rank >= 2 but got x shape = ${e.shape} and y shape = ${t.shape}`);if(t.rank>=3){const i=e.shape.slice(-1)[0],r=t.shape.slice(-2)[0];if(i!==r)throw new ae(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${e.shape} and y shape = ${t.shape}`)}if(e.rank===2&&t.rank===2){const i=!1,r=!1;return xn.matMul({a:e,b:t,transposeA:i,transposeB:r,bias:n?Vb(e.rank,n,ys()):null,activation:s})}else{const i=e.shape.slice(),r=i.pop();e=e.reshape([-1,r]);const o=t.shape.slice(),a=o.pop(),l=o.pop(),c=[...o,a],p=Array.from({length:t.rank},(m,f)=>f===0?t.rank-2:f<=t.rank-2?f-1:f);t=t.transpose(p).reshape([l,-1]);const u=[...i,...c],h=!1,d=!1;return xn.matMul({a:e,b:t,transposeA:h,transposeB:d,bias:n?Vb(e.rank,n,ys()):null,activation:s}).reshape(u)}}function Gd(e,t,s){return C(()=>(Array.isArray(t)?t=Oe(t,"int32"):t=t.toInt(),hi(e,t,s)))}function ga(e){return R(e,e)}function Vb(e,t,s){const n=t.shape;if(t.rank!==1&&t.rank!==e)throw new k(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${e}`);if(e===5){if(s==="channelsFirst")return n.length===1?t.reshape([1,n[0],1,1,1]):t.reshape([1,n[3],n[0],n[1],n[2]]);if(s==="channelsLast")return n.length===1?t.reshape([1,1,1,1,n[0]]):t.reshape([1].concat(n))}else if(e===4){if(s==="channelsFirst")return n.length===1?t.reshape([1,n[0],1,1]):t.reshape([1,n[2],n[0],n[1]]);if(s==="channelsLast")return n.length===1?t.reshape([1,1,1,n[0]]):t.reshape([1].concat(n))}else if(e===3){if(s==="channelsFirst")return n.length===1?t.reshape([1,n[0],1]):t.reshape([1,n[1],n[0]]);if(s==="channelsLast")return n.length===1?t.reshape([1,1,n[0]]):t.reshape([1].concat(n))}else if(e<3)return t;throw new k(`Unsupported input rank by biasAdd: ${t.rank}`)}function Cs(e,t,s){return C(()=>(s==null&&(s=ys()),lt(s),e.add(Vb(e.rank,t,s))))}function AA(e,t=1){if(t!==1)throw new ae(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return gn(e)}function NA(e){return C(()=>Z(e,et(e).add(1)))}function qd(e,t,s,n){return C(()=>Tb(e,t,s,n))}function CA(e){return C(()=>{const t=$(.5,R(.2,e));return xt(t,0,1)})}function lo(e,t,s=!1){return s?e():t()}const RA=["fanIn","fanOut","fanAvg"],OA=["normal","uniform","truncatedNormal"];function _W(e){Bi(RA,"FanMode",e)}function kW(e){Bi(OA,"Distribution",e)}class zs extends V.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}}class Hd extends zs{apply(e,t){return ye(e,t)}}Hd.className="Zeros";V.registerClass(Hd);class zl extends zs{apply(e,t){return Kt(e,t)}}zl.className="Ones";V.registerClass(zl);class Yd extends zs{constructor(e){super();if(typeof e!="object")throw new k(`Expected argument of type ConstantConfig but got ${e}`);if(e.value===void 0)throw new k(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return C(()=>R(j(this.value),Kt(e,t)))}getConfig(){return{value:this.value}}}Yd.className="Constant";V.registerClass(Yd);class Kd extends zs{constructor(e){super();this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=e.minval||this.DEFAULT_MINVAL,this.maxval=e.maxval||this.DEFAULT_MAXVAL,this.seed=e.seed}apply(e,t){return wn(e,this.minval,this.maxval,t)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}}Kd.className="RandomUniform";V.registerClass(Kd);class Xd extends zs{constructor(e){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new ae(`randomNormal does not support dType ${t}.`);return Wl(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}}Xd.className="RandomNormal";V.registerClass(Xd);class Jd extends zs{constructor(e){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new ae(`truncatedNormal does not support dType ${t}.`);return ro(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}}Jd.className="TruncatedNormal";V.registerClass(Jd);class Zd extends zs{constructor(e){super();this.gain=e.gain!=null?e.gain:1}apply(e,t){return C(()=>{if(e.length!==2||e[0]!==e[1])throw new k("Identity matrix initializer can only be used for 2D square matrices.");return R(this.gain,sa(e[0]))})}getConfig(){return{gain:this.gain}}}Zd.className="Identity";V.registerClass(Zd);function DW(e,t="channelsLast"){let s,n;if(lt(t),e.length===2)s=e[0],n=e[1];else if([3,4,5].indexOf(e.length)!==-1){if(t==="channelsFirst"){const i=Nn(e,2);s=e[1]*i,n=e[0]*i}else if(t==="channelsLast"){const i=Nn(e,0,e.length-2);s=e[e.length-2]*i,n=e[e.length-1]*i}}else{const i=Nn(e);s=Math.sqrt(i),n=Math.sqrt(i)}return[s,n]}class ws extends zs{constructor(e){super();if(e.scale<0)throw new k(`scale must be a positive float. Got: ${e.scale}`);this.scale=e.scale==null?1:e.scale,this.mode=e.mode==null?"fanIn":e.mode,_W(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,kW(this.distribution),this.seed=e.seed}apply(e,t){const s=DW(e),n=s[0],i=s[1];let r=this.scale;if(this.mode==="fanIn"?r/=Math.max(1,n):this.mode==="fanOut"?r/=Math.max(1,i):r/=Math.max(1,(n+i)/2),this.distribution==="normal"){const o=Math.sqrt(r);if(t=t||"float32",t!=="float32"&&t!=="int32")throw new ae(`${this.getClassName()} does not support dType ${t}.`);return ro(e,0,o,t,this.seed)}else{const o=Math.sqrt(3*r);return wn(e,-o,o,t)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}}ws.className="VarianceScaling";V.registerClass(ws);class nu extends ws{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return ws.className}}nu.className="GlorotUniform";V.registerClass(nu);class iu extends ws{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return ws.className}}iu.className="GlorotNormal";V.registerClass(iu);class ru extends ws{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return ws.className}}ru.className="HeNormal";V.registerClass(ru);class ou extends ws{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return ws.className}}ou.className="HeUniform";V.registerClass(ou);class au extends ws{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return ws.className}}au.className="LeCunNormal";V.registerClass(au);class lu extends ws{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return ws.className}}lu.className="LeCunNormal";V.registerClass(lu);class Qd extends zs{constructor(e){super();if(this.DEFAULT_GAIN=1,this.gain=e.gain==null?this.DEFAULT_GAIN:e.gain,this.seed=e.seed,this.seed!=null)throw new ae("Random seed is not implemented for Orthogonal Initializer yet.")}apply(e,t){return C(()=>{if(e.length<2)throw new ae("Shape must be at least 2D.");e[0]*e[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${e[0]*e[1]}) elements: Slowness may result.`);const s=e[0]>e[1]?[e[1],e[0]]:e,n=Wl(s,0,1,"float32");let i=Cb.gramSchmidt(n);return e[0]>e[1]&&(i=i.transpose()),R(this.gain,i)})}getConfig(){return{gain:this.gain,seed:this.seed}}}Qd.className="Orthogonal";V.registerClass(Qd);const EA={constant:"Constant",glorotNormal:"GlorotNormal",glorotUniform:"GlorotUniform",heNormal:"HeNormal",heUniform:"HeUniform",identity:"Identity",leCunNormal:"LeCunNormal",leCunUniform:"LeCunUniform",ones:"Ones",orthogonal:"Orthogonal",randomNormal:"RandomNormal",randomUniform:"RandomUniform",truncatedNormal:"TruncatedNormal",varianceScaling:"VarianceScaling",zeros:"Zeros"};function _A(e,t={}){return fi(e,V.SerializationMap.getMap().classNameMap,t,"initializer")}function Ze(e){return Ml(e)}function je(e){if(typeof e=="string"){const t=e in EA?EA[e]:e;if(t==="GlorotNormal")return new iu;if(t==="GlorotUniform")return new nu;if(t==="HeNormal")return new ru;if(t==="HeUniform")return new ou;if(t==="LeCunNormal")return new au;if(t==="LeCunUniform")return new lu;{const s={};return s.className=t,s.config={},_A(s)}}else return e instanceof zs?e:_A(e)}const Gb={};Ee(Gb,{constant:()=>UW,glorotNormal:()=>VW,glorotUniform:()=>jW,heNormal:()=>GW,heUniform:()=>qW,identity:()=>PW,leCunNormal:()=>HW,leCunUniform:()=>YW,ones:()=>MW,orthogonal:()=>KW,randomNormal:()=>WW,randomUniform:()=>$W,truncatedNormal:()=>zW,varianceScaling:()=>BW,zeros:()=>FW});function FW(){return new Hd}function MW(){return new zl}function UW(e){return new Yd(e)}function $W(e){return new Kd(e)}function WW(e){return new Xd(e)}function zW(e){return new Jd(e)}function PW(e){return new Zd(e)}function BW(e){return new ws(e)}function jW(e){return new nu(e)}function VW(e){return new iu(e)}function GW(e){return new ru(e)}function qW(e){return new ou(e)}function HW(e){return new au(e)}function YW(e){return new lu(e)}function KW(e){return new Qd(e)}let XW=0;function em(){return XW++}const tm={};function co(e=""){return e in tm||(tm[e]=0),tm[e]+=1,e+tm[e].toString()}function sm(e){return Array.isArray(e)&&Array.isArray(e[0])}function Pl(e){return e.length===0?[]:Array.isArray(e[0])?e:[e]}function we(e){let t;if(Array.isArray(e)){if(e.length!==1)throw new k(`Expected Tensor length to be 1; got ${e.length}`);t=e[0]}else t=e;return t}function Ue(e){if(Array.isArray(e)&&Array.isArray(e[0])){if(e.length===1)return e=e,e[0];throw new k(`Expected exactly 1 Shape; got ${e.length}`)}else return e}function Bl(e){let t=0;for(const s of e)s.shape.length===0?t+=1:t+=s.shape.reduce((n,i)=>n*i);return t}const kA="Variable";class nm{constructor(e,t="float32",s=kA,n=!0,i=null){this.dtype=t??"float32",this.shape=e.shape,this.id=em(),s=s??kA,this.originalName=Bd(s),this.name=jd(this.originalName),this.trainable_=n,this.constraint=i,this.val=Ad(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),JW(this.val,e),this.val.id!==e.id&&(this.val.assign(e),this.constraint!=null&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(e){this.trainable_=e,this.val.trainable=e}}function JW(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}function cu(e){return e.map(t=>t.read())}function jl(e){e.forEach(t=>{const s=t[0];s.write(t[1])})}class st{constructor(e){this.dtype=e.dtype,this.shape=e.shape,e.shape!=null?this.ndim=e.shape.length:this.ndim=e.ndim,this.maxNDim=e.maxNDim,this.minNDim=e.minNDim,this.axes=e.axes||{}}}class xs{constructor(e,t,s,n,i,r,o){this.dtype=e,this.shape=t,this.sourceLayer=s,this.inputs=n,this.callArgs=i,this.outputTensorIndex=o,this.id=em(),r!=null&&(this.originalName=Bd(r),this.name=jd(this.originalName)),this.rank=t.length}}let ZW=0;class ya{constructor(e,t){this.callArgs=t,this.id=ZW++,this.outboundLayer=e.outboundLayer,this.inboundLayers=e.inboundLayers,this.nodeIndices=e.nodeIndices,this.tensorIndices=e.tensorIndices,this.inputTensors=e.inputTensors,this.outputTensors=e.outputTensors,this.inputMasks=e.inputMasks,this.outputMasks=e.outputMasks,this.inputShapes=e.inputShapes,this.outputShapes=e.outputShapes;for(const s of e.inboundLayers)s!=null&&s.outboundNodes.push(this);e.outboundLayer.inboundNodes.push(this)}getConfig(){const e=[];for(const t of this.inboundLayers)t!=null?e.push(t.name):e.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:e,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}}let QW=0;class Le extends V.Serializable{constructor(e={}){super();this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=QW++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let t=e.name;if(!t){const s=this.getClassName();t=vn(s)+"_"+co(s)}if(this.name=t,this.trainable_=e.trainable==null?!0:e.trainable,e.inputShape!=null||e.batchInputShape!=null){let s;if(e.batchInputShape!=null)s=e.batchInputShape;else if(e.inputShape!=null){let i=null;e.batchSize!=null&&(i=e.batchSize),s=[i].concat(e.inputShape)}this.batchInputShape=s;let n=e.dtype;n==null&&(n=e.inputDType),n==null&&(n="float32"),this.dtype=n}e.weights!=null?this.initialWeights=e.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(e,t){return e.name+"_ib-"+t.toString()}getNodeAtIndex(e,t){if(this.inboundNodes.length===0)throw new Ns(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new k(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return jt(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return jt(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new Sn(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new Sn(`Layer ${this.name} is not connected, no input to return.`);return jt(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new Sn(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new Sn(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return jt(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(e=>e())}get updates(){return this._updates}get built(){return this._built}set built(e){this._built=e}get trainable(){return this.trainable_}set trainable(e){this._trainableWeights.forEach(t=>t.trainable=e),this.trainable_=e}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(e=>e.trainable):[]}set trainableWeights(e){this._trainableWeights=e}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(e=>!e.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(e){this._nonTrainableWeights=e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(e){if(e=He(e),this.inputSpec==null||this.inputSpec.length===0)return;const t=He(this.inputSpec);if(e.length!==t.length)throw new k(`Layer ${this.name} expects ${t.length} inputs, but it received ${e.length} input tensors. Input received: ${e}`);for(let s=0;si.maxNDim)throw new k(`Input ${s} is incompatible with layer ${this.name}: expected max_ndim=${i.maxNDim}, found ndim=${r}`);if(i.minNDim!=null&&r=0?o[l]:o[o.length+l];if(c!=null&&[c,null].indexOf(p)===-1)throw new k(`Input ${s} is incompatible with layer ${this.name}: expected axis ${l} of input shape to have value ${c} but got shape ${o}.`)}}if(i.shape!=null)for(let o=0;o{if(!this.built){this.assertInputCompatibility(e);const r=[];for(const o of He(e))r.push(o.shape);this.build(jt(r)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&i&&(this._refCount=1)}if(this.assertInputCompatibility(e),i){let r=this.call(e,t);const o=He(r),a=[];for(let l of o)s.indexOf(l)!==-1&&(l=l.clone()),a.push(l);if(r=jt(a),this.activityRegularizer!=null)throw new ae("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return r}else{const r=ez(e),o=this.computeOutputShape(r);let a;const l=tz(e);if(this.warnOnIncompatibleInputShape(Array.isArray(e)?r[0]:r),o!=null&&o.length>0&&Array.isArray(o[0])?a=o.map((c,p)=>new xs(l,c,this,He(e),t,this.name,p)):a=new xs(l,o,this,He(e),t,this.name),this.addInboundNode(e,a,null,null,r,o,t),this._refCount++,this.activityRegularizer!=null)throw new ae("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return a}})}warnOnIncompatibleInputShape(e){if(this.batchInputShape==null)return;if(e.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(e)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let t=!1;this.batchInputShape.forEach((s,n)=>{s!=null&&e[n]!=null&&e[n]!==s&&(t=!0)}),t&&console.warn(`The shape of the input tensor (${JSON.stringify(e)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new Sn(`The layer ${this.name} has never been called and thus has no defined output shape.`);const e=[];for(const t of this.inboundNodes){const s=JSON.stringify(t.outputShapes);e.indexOf(s)===-1&&e.push(s)}if(e.length===1){const t=this.inboundNodes[0].outputShapes;return Array.isArray(t)&&Array.isArray(t[0])&&t.length===1?t[0]:t}else throw new Sn(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new Ns(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Bl(this.weights)}build(e){this.built=!0}getWeights(e=!1){return cu(e?this.trainableWeights:this.weights)}setWeights(e){C(()=>{const t=this.weights;if(t.length!==e.length)throw new k(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${e.length}, but the layer was expecting ${t.length} weights. Provided weights: ${e}...`);if(t.length===0)return;const s=[],n=cu(t);for(let i=0;ii.apply(l.read())),r==null&&(r=!0),r?this._trainableWeights.push(l):this._nonTrainableWeights.push(l),l}setFastWeightInitDuringBuild(e){this.fastWeightInitDuringBuild=e}addLoss(e){if(e==null||Array.isArray(e)&&e.length===0)return;e=He(e),this._losses!==void 0&&this._losses!==null&&this.losses.push(...e)}computeOutputShape(e){return e}computeMask(e,t){if(!this.supportsMasking){if(t!=null)if(Array.isArray(t))t.forEach(s=>{if(s!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return t}addInboundNode(e,t,s,n,i,r,o=null){const a=He(e);t=He(t),s=He(s),n=He(n),i=Pl(i),r=Pl(r);const l=[],c=[],p=[];for(const u of a)l.push(u.sourceLayer),c.push(u.nodeIndex),p.push(u.tensorIndex);new ya({outboundLayer:this,inboundLayers:l,nodeIndices:c,tensorIndices:p,inputTensors:a,outputTensors:t,inputMasks:s,outputMasks:n,inputShapes:i,outputShapes:r},o);for(let u=0;ue.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let e=0;return--this._refCount===0&&(e=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:e}}}function ez(e){e=He(e);const t=[];for(const s of e)t.push(s.shape);return jt(t)}function tz(e){return"float32"}function qb(e,t,s){if((t==null||s!=null&&s>0)&&(t=e.sourceLayer,s=e.nodeIndex),t.inboundNodes.length===0)return[e];{const n=t.inboundNodes[s];if(n.inboundLayers.length===0)return n.inputTensors;{const i=[];for(let r=0;r0){const i=await Promise.all(t);for(let r=0;r$(this.totals[n],R(i,s)));this.totals[n]=o,r!=null&&r.dispose()}}}async onEpochEnd(e,t){if(t!=null)for(const s of this.params.metrics){if(this.totals[s]==null)continue;typeof this.totals[s]=="number"?t[s]=this.totals[s]/this.seen:C(()=>{const n=R(Z(1,this.seen),this.totals[s]);t[s]=n,this.totals[s].dispose(),pt(t[s])})}}}class Yb extends ba{async onTrainBegin(e){this.epoch=[],this.history={}}async onEpochEnd(e,t){t==null&&(t={}),this.epoch.push(e);for(const s in t)this.history[s]==null&&(this.history[s]=[]),this.history[s].push(t[s])}async syncData(){const e=[],t=[],s=[];for(const i in this.history){const r=this.history[i];for(let o=0;onew Kb(n,t))}class sn{constructor(){}static registerCallbackConstructor(e,t){N.assert(e>=0&&Number.isInteger(e),()=>`Verbosity level is expected to be an integer >= 0, but got ${e}`),sn.checkForDuplicate(t),sn.constructors[e]==null&&(sn.constructors[e]=[]),sn.constructors[e].push(t)}static checkForDuplicate(e){for(const t in sn.constructors){const s=sn.constructors[+t];s.forEach(n=>{if(n===e)throw new k("Duplicate callback constructor.")})}}static clear(){sn.constructors={}}static createCallbacks(e){const t=[];for(const s in sn.constructors){const n=+s;e>=n&&t.push(...sn.constructors[n])}return t.map(s=>new s)}}sn.constructors={};function am(e,t,s,n,i,r,o,a,l){const c=new Yb,p=[new nz,...sn.createCallbacks(t)];e!=null&&p.push(...e),p.push(c);const u=new Hb(p);return u.setParams({epochs:s,initialEpoch:n,samples:i,steps:r,batchSize:o,verbose:t,doValidation:a,metrics:l}),{callbackList:u,history:c}}function Ls(e,t={},s=!1){return fi(e,V.SerializationMap.getMap().classNameMap,t,"layer",s)}function pu(e,t){return C(()=>{e.dtype!=="float32"&&(e=e.asType("float32"));const s=te(ga(e),t,!0),n=Wt(s.shape,Tt()),i=Je(Ht(s,n));return Z(e,i)})}function yi(e,t){return C(()=>Xe(ga(X(t,e)),-1))}function Vl(e,t){return C(()=>Xe(et(X(t,e)),-1))}function po(e,t){return C(()=>{const s=X(e,t),n=xt(et(e),Tt(),Number.MAX_VALUE),i=et(Z(s,n));return R(100,Xe(i,-1))})}function iz(e,t){return C(()=>{const s=xt(t,Tt(),Number.MAX_VALUE),n=zt($(1,s)),i=xt(e,Tt(),Number.MAX_VALUE),r=zt($(1,i));return Xe(ga(X(n,r)),-1)})}function rz(e,t){return C(()=>{const s=Ht(0,X(1,R(e,t)));return Xe(ga(s),-1)})}function oz(e,t){return C(()=>{const s=Ht(0,X(1,R(e,t)));return Xe(s,-1)})}function az(e,t){return C(()=>{const s=te(R(e,t),-1),n=Lt(R(X(1,e),t),-1);return Ht(0,$(1,X(n,s)))})}function lz(e,t){return C(()=>{const s=Math.log(2),n=X(t,e),i=X($(n,di(R(-2,n))),s);return Xe(i,-1)})}function wa(e,t,s=!1){return C(()=>{if(s)t=ts(t);else{const n=te(t,t.shape.length-1,!0);t=Z(t,n)}return t=xt(t,Tt(),1-Tt()),ke(te(R(e.toFloat(),zt(t)),t.shape.length-1))})}function Gl(e,t,s=!1){return C(()=>{const n=ui(vA(e)).toInt();t=xt(t,Tt(),1-Tt());const i=t.shape,r=pi(n,i[i.length-1]).reshape(i);return wa(r,t,s)})}function cz(e,t){if(!N.arraysEqual(e.shape,t.shape))throw new k(`logits and labels must have the same shape, but got shapes ${JSON.stringify(e.shape)} and ${JSON.stringify(t.shape)}`);return C(()=>{const s=t.relu(),n=t.abs().neg();return s.sub(t.mul(e)).add(n.exp().log1p())})}function ql(e,t){return C(()=>{let s;return s=xt(t,Tt(),1-Tt()),s=zt(Z(s,X(1,s))),Xe(cz(e,s),-1)})}function pz(e,t){return C(()=>{const s=xt(e,Tt(),1),n=xt(t,Tt(),1);return te(R(e,zt(Z(s,n))),-1)})}function uz(e,t){return C(()=>{const s=zt($(Tt(),t));return Xe(X(t,R(e,s)),-1)})}function uu(e,t){return C(()=>{const s=pu(e,-1),n=pu(t,-1),i=R(s,n);return ke(te(i,-1))})}const hu={meanSquaredError:yi,meanAbsoluteError:Vl,meanAbsolutePercentageError:po,meanSquaredLogarithmicError:iz,squaredHinge:rz,hinge:oz,categoricalHinge:az,logcosh:lz,categoricalCrossentropy:wa,sparseCategoricalCrossentropy:Gl,binaryCrossentropy:ql,kullbackLeiblerDivergence:pz,poisson:uz,cosineProximity:uu};function lm(e){if(typeof e=="string"){if(e in hu)return hu[e];let t=`Unknown loss ${e}`;throw e.toLowerCase().includes("softmaxcrossentropy")&&(t=`Unknown loss ${e}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new k(t)}else return e}function du(e,t){return C(()=>{const s=R(.5,Ot(t)),n=ji(Ut(t,s),e.dtype);return Xe(as(e,n),-1)})}function mu(e,t){return C(()=>ji(as(Qo(e,-1),Qo(t,-1)),"float32"))}function FA(e,t){return C(()=>Yt(e.equal(1),t.equal(1)).sum().cast("float32"))}function hz(e,t){return C(()=>Yt(e.equal(1),t.equal(0)).sum().cast("float32"))}function dz(e,t){return C(()=>Yt(e.equal(0),t.equal(1)).sum().cast("float32"))}function Xb(e,t){return C(()=>{const s=FA(e,t),n=dz(e,t),i=s.add(n);return mt(Ut(i,0),s.div(i),0).cast("float32")})}function MA(e,t){return C(()=>{const s=FA(e,t),n=hz(e,t),i=s.add(n);return mt(Ut(i,0),s.div(i),0).cast("float32")})}function cm(e,t){return ql(e,t)}function pm(e,t){return e.rank===t.rank&&(e=e.squeeze([e.rank-1])),t=t.argMax(-1),t.dtype!==e.dtype&&(t=t.asType(e.dtype)),as(e,t).asType("float32")}const mz=yi,fz=yi,gz=Vl,yz=Vl,bz=po,wz=po,fu=wa,xz=uu,Jb=Gl,um={binaryAccuracy:du,categoricalAccuracy:mu,precision:Xb,categoricalCrossentropy:fu,sparseCategoricalCrossentropy:Jb,mse:mz,MSE:fz,mae:gz,MAE:yz,mape:bz,MAPE:wz,cosine:xz};function UA(e){if(typeof e=="string"&&e in um)return um[e];if(typeof e!="string"&&e!=null)return e;throw new k(`Unknown metric ${e}`)}function gu(e){if(tn(e!==null,`Unknown LossOrMetricFn ${e}`),typeof e=="string")return e;{let t;for(const s of Object.keys(hu))if(hu[s]===e){t=s;break}if(t!==void 0)return t;for(const s of Object.keys(um))if(um[s]===e){t=s;break}return t!==void 0?t:e.name}}function $A(e){const t={Adagrad:()=>ao.adagrad(.01),Adadelta:()=>ao.adadelta(1,.95,Tt()),Adam:()=>ao.adam(.001,.9,.999,Tt()),Adamax:()=>ao.adamax(.002,.9,.999,Tt(),0),RMSProp:()=>ao.rmsprop(.001,.9,0,Tt()),SGD:()=>ao.sgd(.01)};if(t.adagrad=t.Adagrad,t.adadelta=t.Adadelta,t.adam=t.Adam,t.adamax=t.Adamax,t.rmsprop=t.RMSProp,t.sgd=t.SGD,e in t)return t[e]();throw new k(`Unknown Optimizer ${e}`)}const WA=1*1024*1024;function Qb(e,t,s=!1){if(e==null||typeof e!="object"||Object.getPrototypeOf(e)!==Object.prototype||!Zb(e))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(s){const n=JSON.stringify(e);n.length>WA&&console.warn(`User-defined metadata of model "${t}" is too large in size (length=${n.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= ${WA}.`)}}function Zb(e){if(e===null)return!0;if(typeof e=="object")if(Object.getPrototypeOf(e)===Object.prototype){const t=Object.keys(e);for(const s of t){if(typeof s!="string")return!1;if(!Zb(e[s]))return!1}return!0}else if(Array.isArray(e)){for(const t of e)if(!Zb(t))return!1;return!0}else return!1;else{const t=typeof e;return t==="string"||t==="number"||t==="boolean"}}function zA(e,t,s,n=console.log){const i=Sz(e),r=["Layer (type)","Output shape","Param #"];i?(t=t||65,s=s||[.45,.85,1]):(t=t||98,s=s||[.33,.55,.67,1]),s[s.length-1]<=1&&(s=s.map(p=>Math.floor(t*p)));let o;if(!i){r.push("Receives inputs"),o=[];for(const p in e.nodesByDepth)o.push(...e.nodesByDepth[p])}n("_".repeat(t)),hm(r,s,n),n("=".repeat(t));const a=e.layers;for(let p=0;p1||i.length===1&&i[0].inboundLayers.length>1){t=!1;break}n.push(...i)}if(t)for(const i of e.layers){let r=!1;for(const o of i.inboundNodes)if(n.indexOf(o)!==-1)if(r){t=!1;break}else r=!0;if(!t)break}return t}function hm(e,t,s=console.log){let n="";for(let i=0;i0&&(n=n.slice(0,n.length-1)+" "),n+=e[i],n=n.slice(0,t[i]),n+=" ".repeat(t[i]-n.length);s(n)}function Iz(e,t,s){let n;try{n=JSON.stringify(e.outputShape)}catch(a){n="multiple"}const i=e.name,r=e.getClassName(),o=[`${i} (${r})`,n,e.countParams().toString()];hm(o,t,s)}function vz(e,t,s,n){let i;try{i=JSON.stringify(e.outputShape)}catch(p){i="multiple"}const r=[];for(const p of e.inboundNodes){if(s!=null&&s.length>0&&s.indexOf(p)===-1)continue;for(let u=0;um.name),l=[],c=t.names();for(const m of a)c.indexOf(m)!==-1?l.push(t.getValue(m)):l.push(null);n!=null&&(n.maxNumTensors=-Infinity,n.minNumTensors=Infinity);const p=a.join(",")+"|"+t.names().join(",");let u,h;if(ew[p]==null){const m=Az(o,t);u=m.sorted,h=m.recipientCounts,ew[p]=u,BA[p]=h}u=ew[p],h={},i||Object.assign(h,BA[p]);const d=new Hi(t);for(let m=0;mn.maxNumTensors&&(n.maxNumTensors=D),D0,()=>"Expected at least one fetch, got none");let s=[],n={};if(e.length===1){const i=jA(e[0],t);s=i.sorted,n=i.recipientMap}else{const i=new Set;for(const r of e){const{sorted:o,recipientMap:a}=jA(r,t);for(const l of o)i.has(l.name)||(s.push(l),i.add(l.name));for(const l in a)n[l]==null&&(n[l]=new Set),a[l].forEach(c=>n[l].add(c))}}return{sorted:s,recipientCounts:Cz(n)}}function Cz(e){const t={};for(const s in e)t[s]=e[s].size;return t}function jA(e,t){const s=new Set,n=[],i={};for(const a of t.names())s.add(a);const r=[],o=[];for(r.push(e);r.length>0;){const a=r[r.length-1];if(s.has(a.name)){r.pop();continue}const l=o[o.length-1]===r.length-1;if(a.inputs.length===0||l)r.pop(),n.push(a),s.add(a.name),l&&o.pop();else{o.push(r.length-1);for(const c of a.inputs){if(i[c.name]==null&&(i[c.name]=new Set),i[c.name].add(a.name),s.has(c.name))continue;r.push(c)}}}return{sorted:n,recipientMap:i}}function Nz(e){let t;if(e.sourceLayer.inboundNodes.length===1)t=e.sourceLayer.output;else{let s=null;for(let n=0;ny.name)}`);An(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map(y=>y.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(const y of this.outputs){const w=y.sourceLayer,x=y.nodeIndex,T=y.tensorIndex;this.outputLayers.push(w),this.outputLayersNodeIndices.push(x),this.outputLayersTensorIndices.push(T)}for(const y of this.inputs){const w=y.sourceLayer,x=y.nodeIndex,T=y.tensorIndex;tn(x===0,"input layer has >1 nodes"),tn(T===0,"input layer has >1 tensors"),this.inputLayers.push(w),this.inputLayersNodeIndices.push(x),this.inputLayersTensorIndices.push(T)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let y=0;yy.shape),this.internalOutputShapes=this.outputs.map(y=>y.shape);const t={},s={},n={},i={},r={},o=[],a=(y,w,x,T,A,_)=>{(T==null||A==null||_==null)&&(T=y.sourceLayer,A=y.nodeIndex,_=y.tensorIndex);const E=T.inboundNodes[A];if(x.indexOf(E)!==-1)throw new Ns(`The tensor ${y.name} at layer "${T.name}" is part of a cycle.`);if(w.indexOf(E)!==-1)return;this.containerNodes.add(Bn.nodeKey(T,A)),T.id in r||(r[T.id]=Object.keys(r).length),x.indexOf(E)===-1&&x.push(E);const F=E.inboundLayers.length;for(let D=0;D=0;)x.splice(x.indexOf(E),1);o.push(E)},l=[],c=[];for(const y of this.outputs)a(y,l,c);const p=o.slice().reverse();for(const y of p){s[y.id]=y,y.id in t||(t[y.id]=0);let w=t[y.id];const x=n[y.outboundLayer.id]==null?0:n[y.outboundLayer.id];w=Math.max(w,x),n[y.outboundLayer.id]=w,i[y.outboundLayer.id]=y.outboundLayer,t[y.id]=w;for(let T=0;TparseInt(y,10)).sort(Qp);this.layers=[];for(const y of d){const w=h[y];w.sort((x,T)=>{const A=r[x.id],_=r[T.id];return A<_?-1:A>_?1:0});for(const x of w)x instanceof Bn&&this.internalContainerRefs.push(x),this.layers.push(x)}this.layersByDepth=h,d=Object.keys(u).map(y=>parseInt(y,10)).sort(Qp);const m=this.inputs.slice(),f=[];for(const y of d)for(const w of u[y]){const x=w.outboundLayer;if(x!=null){for(const T of w.inputTensors)if(m.indexOf(T)===-1)throw new Ns(`Graph disconnected: cannot obtain value for tensor ${T} at layer "${x.name}". The following previous layers were accessed without issue: ${f}`);for(const T of w.outputTensors)m.push(T);f.push(x.name)}}this.nodesByDepth=u;const g=this.layers.map(y=>y.name);for(const y of g){const w=g.filter(x=>x===y).length;if(w!==1)throw new Ns(`The name "${y}" is used ${w} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(g))}this.outboundNodes=[],this.inboundNodes=[],new ya({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(y=>null),outputMasks:this.outputs.map(y=>null),inputShapes:this.inputs.map(y=>y.shape),outputShapes:this.outputs.map(y=>y.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();const e={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount===0){for(const t of this.layers)e.numDisposedVariables+=t.dispose().numDisposedVariables;for(const t of this.internalContainerRefs)e.numDisposedVariables+=t.dispose().numDisposedVariables}return e.refCountAfterDispose=this._refCount,e}get trainable(){return this.trainable_}set trainable(e){this.layers.forEach(t=>{t._trainableWeights.forEach(s=>s.trainable=e)}),this.trainable_=e}get trainableWeights(){if(this._trainableWeights.length>0)throw new k("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let e=[];for(const t of this.layers)e=e.concat(t.trainableWeights);return e}get nonTrainableWeights(){const e=[];for(const t of this.layers)e.push(...t.nonTrainableWeights);if(!this.trainable){const t=[];for(const s of this.layers)t.push(...s.trainableWeights);return t.concat(e)}return e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(e,t=!0){const s={};let n=0;for(const r of this.layers)for(const o of r.weights){if(s[o.originalName]!=null)throw new k(`Duplicate weight name: ${o.originalName}`);s[o.originalName]=o,n++}const i=[];for(const r in e){let o=r;if(s[r]==null){const a=r.split("/"),l=a.slice(0,-2).concat([a[a.length-1]]);o=l.join("/")}if(s[o]!=null)i.push([s[o],e[r]]);else if(t)throw new k(`Provided weight data has no target variable: ${r}`);delete s[o]}if(t){const r=[];for(const o in s)r.push(o);if(r.length>0)throw new k(`${r.length} of ${n} weights are not set: ${r}`)}jl(i)}updatedConfig(){const e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${uo}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){const s=dm(this.updatedConfig());return t?JSON.stringify(s):s}call(e,t){return C(()=>{e=He(e);const s=new Hi;for(let n=0;n{e=He(e);let s;return t==null?s=In(null,e.length):s=He(t),this.runInternalGraph(e,s)[1]})}computeOutputShape(e){const t=Pl(e);if(t.length!==this.inputLayers.length)throw new k(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);const s={};for(let o=0;oparseInt(o,10)).sort(Qp);if(n.length>1)for(const o of n){const a=this.nodesByDepth[o];for(const l of a){const c=l.outboundLayer;if(this.inputLayers.map(m=>m.id).indexOf(c.id)!==-1)continue;const p=[];for(let m=0;mparseInt(a,10)).sort(Qp);for(const a of n){const l=this.nodesByDepth[a];for(const c of l){const p=c.outboundLayer,u=c.inputTensors,h=c.outputTensors,d=new Array;for(const m of u)m.id in s&&d.push(s[m.id]);if(d.length===u.length){let m={},f,g,y,w;if(c.callArgs!=null&&(m=c.callArgs),d.length===1){const[x,T]=d[0];m.mask==null&&(m.mask=T),y=He(p.call(x,m)),w=He(p.computeMask(x,T)),f=[x],g=[T]}else f=d.map(x=>x[0]),g=d.map(x=>x[1]),m.mask==null&&(m.mask=g),y=He(p.call(f,m)),w=He(p.computeMask(f,g));if(p.activityRegularizer)throw new ae("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let x=0;x{const e=[];for(const t of this.layers)for(let s=0;s0){const m=[];for(let f=0;f0&&f.apply(jt(y),w)}function l(f){const g=f.name,y=Ls(f,t.customObjects!=null?t.customObjects:{});y.setFastWeightInitDuringBuild(n),i[g]=y;const w=f.inboundNodes;w.forEach(x=>{if(!(x instanceof Array))throw new k(`Corrupted configuration, expected array for nodeData: ${x}`);o(y,x)})}const c=t.name,p=t.layers;for(const f of p)l(f);for(;!pA(r);)for(const f of p){const g=i[f.name];if(g.name in r){const y=r[g.name];delete r[g.name];for(const w of y)a(g,w)}}const u=[],h=[],d=t.inputLayers;for(const f of d){const g=f[0],y=f[1],w=f[2];tn(g in i);const x=i[g],T=x.inboundNodes[y].outputTensors;u.push(T[w])}const m=t.outputLayers;for(const f of m){const g=f[0],y=f[1],w=f[2];tn(g in i);const x=i[g],T=x.inboundNodes[y].outputTensors;h.push(T[w])}return new e({inputs:u,outputs:h,name:c})}get stateful(){if(this._stateful)throw new k("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(const e of this.layers)if(e.stateful)return!0;return!1}resetStates(){C(()=>{this.layers.forEach(e=>{e.stateful&&e.resetStates()})})}}function Rz(e,t,s){const n=t.length;if(e==null||Array.isArray(e)&&e.length===0)return t.map(i=>null);if(n===1)return Array.isArray(e)&&e.length===1?e:typeof e=="object"&&t[0]in e?[e[t[0]]]:[e];if(Array.isArray(e)){if(e.length!==n)throw new Error(`Provided ${s} is an array of ${e.length} element(s), but the model has ${n} outputs. Make sure a set of weights is provided for each model output.`);return e}else if(typeof e=="object"&&Object.keys(e).length>0&&typeof e[Object.keys(e)[0]]=="object"){const i=[];return t.forEach(r=>{r in e?i.push(e[r]):i.push(null)}),i}else throw new Error(`The model has multiple (${n}) outputs, so ${s} must be either an array with ${n} elements or an object with ${t} keys. Provided ${s} not understood: ${JSON.stringify(e)}`)}function mm(e,t){return Rz(e,t,"classWeight")}async function fm(e,t,s,n){if(t!=null||n!=null)throw new Error("Support sampleWeight is not implemented yet");if(s!=null){const i=C(()=>{if(e.shape.length===1)return e.clone();if(e.shape.length===2)if(e.shape[1]>1){const a=1;return e.argMax(a)}else{if(e.shape[1]===1)return e.reshape([e.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${e.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${e.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),r=Array.from(await i.data());ce(i);const o=[];return r.forEach(a=>{if(s[a]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${a} exists in the data but not in classWeight`);o.push(s[a])}),Oe(o,"float32")}else return null}function VA(e,t){return R(e,t)}const Oz=32;function qA(e,t){let s,n;const i=t;s=i.xs,n=i.ys,N.assert(s!=null&&n!=null,()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${t}`);const r=GA("input",e.inputNames,s),o=GA("output",e.outputNames,n),a=r[0].shape[0];N.assert(r.length===e.inputs.length,()=>`LayersModel has ${e.inputs.length} inputs, but the dataset provides ${r.length} inputs. (Expected input keys: ${JSON.stringify(e.inputNames)})`),N.assert(o.length===e.outputs.length,()=>`LayersModel has ${e.outputs.length} outputs, but the dataset provides ${o.length} outputs. (Expected output keys: ${JSON.stringify(e.outputNames)})`);for(let l=0;l`Batch size mismatch: input ${e.inputNames[l]} has ${r[l].shape[0]}; expected ${a} based on input ${e.inputNames[0]}.`);for(let l=0;l`Batch size mismatch: output ${e.outputNames[l]} has ${o[l].shape[0]}; expected ${a} based on input ${e.inputNames[0]}.`);return{xs:r,ys:o}}function GA(e,t,s){if(s instanceof me)return[s];if(Array.isArray(s))return N.assert(s.length===t.length,()=>`Received an array of ${s.length} Tensors, but expected ${t.length} to match the ${e} keys ${t}.`),s;{const n=[];for(const i of t){if(s[i]==null)throw new k(`The feature data generated by the dataset lacks the required ${e} key '${i}'.`);n.push(s[i])}return n}}function Ez(e){if(e.length===3)throw new ae("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}async function YA(e,t,s){const n=s.batchesPerEpoch!=null;if(N.assert(e.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),N.assert(s!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),N.assert(s.epochs!=null&&s.epochs>0&&Number.isInteger(s.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${s.epochs}`),N.assert(!n||s.batchesPerEpoch>0&&Number.isInteger(s.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${s.batchesPerEpoch}`),N.assert(s.validationSplit==null,()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead."),e.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");e.isTraining=!0;try{const i=s.validationData!=null;let r,o;if(i)if(HA(s.validationData))N.assert(s.validationBatches==null||s.validationBatches>0&&Number.isInteger(s.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${s.validationBatches}`);else{const g=Ez(s.validationData);r=g.xs,o=g.ys}const a=e.makeTrainFunction(),l=e.getDedupedMetricsNames();let c;i?c=l.slice().concat(l.map(g=>"val_"+g)):c=l.slice();const p=om(s.callbacks,s.yieldEvery),u=s.verbose==null?1:s.verbose,{callbackList:h,history:d}=am(p,u,s.epochs,null,null,_z(t,s),null,i,c);h.setModel(e),e.history=d,await h.onTrainBegin(),e.stopTraining_=!1;let m=s.initialEpoch==null?0:s.initialEpoch,f=await t.iterator();for(;m=s.batchesPerEpoch:x.done){if(i){let T;HA(s.validationData)?T=He(await e.evaluateDataset(s.validationData,{batches:s.validationBatches})):T=He(e.evaluate(r,o,{batchSize:s.validationBatchSize==null?Oz:s.validationBatchSize,verbose:0}));for(let A=0;A0)throw new ae("Verbose mode is not implemented yet.");N.assert(!n||s.batches>0&&Number.isInteger(s.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(s.batches)}`);const o=kz(t)?t:await t.iterator();let a=0,l=0;for(;n?l{if(c.value){const{xs:p,ys:u}=qA(e,c.value),h=p.concat(u),d=C(()=>i(h));if(ce(h),l===0)for(let f=0;f$(r[f],R(m,g))),l>0&&ce(y)}ce(d),a+=m,++l}return r}),c.done){n&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \`batches\` batches (in this case, ${s.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let c=0;c0&&Number.isInteger(e),()=>`batchSize is required to be a positive integer, but got ${e}`)}function Hl(e,t,s){return e==null?[null]:Array.isArray(e)?e.map(n=>Gi(n,t,s-t)):Gi(e,t,s-t)}function ym(e,t){return C(()=>e==null?null:Array.isArray(e)?e.map(s=>ym(s,t)):Gd(e,t.dtype==="int32"?t:t.toInt()))}function bm(e,t){const s=[];let n=0,i=null;for(;n=e&&(i=e),s.push([n,i]),n=i;return s}async function Dz(e,t,s,n,i,r,o,a,l,c,p,u,h,d,m){i==null&&(i=32),r==null&&(r=1),p==null&&(p=!0),h==null&&(h=0);let f=!1;if(l!=null&&c!=null&&(f=!0),m!=null&&(f=!0,d==null))throw new k("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");const g=e.checkNumSamples(s,i,d,"steps_per_epoch");let y;g!=null&&(y=cs(0,g)),o==null&&(o=1);const{callbackList:w,history:x}=am(a,o,r,h,g,d,i,f,u);w.setModel(e),e.history=x,await w.onTrainBegin(),e.stopTraining_=!1;for(let T=h;T{const M=E[F][0],P=E[F][1],B=Gi(_,M,P-M);D.batch=F,D.size=P-M;const Y=ym(s,B),q=t(Y);for(let K=0;K0){if(m=!0,n.validationData.length===2)o=n.validationData[0],a=n.validationData[1];else throw n.validationData.length===3?new ae("validationData including sample weights is not supported yet."):new k(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${n.validationData} is invalid.`);const E=!0,F=await e.standardizeUserData(o,a,null,null,E,u);l=F[0],c=F[1],f=l.concat(c)}else if(n.validationSplit!=null&&n.validationSplit>0&&n.validationSplit<1){m=!0;const E=Math.floor(i[0].shape[0]*(1-n.validationSplit)),F=i[0].shape[0];l=Hl(i,E,F),i=Hl(i,0,E),c=Hl(r,E,F),r=Hl(r,0,E),f=l.concat(c)}else n.validationSteps!=null&&(m=!0);const g=i.concat(r).concat(p);e.checkTrainableWeightsConsistency();const y=e.makeTrainFunction(),w=e.getDedupedMetricsNames();let x,T;m?(e.makeTestFunction(),x=e.testFunction,T=w.slice().concat(w.map(E=>"val_"+E))):(x=null,f=[],T=w.slice());const A=om(n.callbacks,n.yieldEvery),_=await Dz(e,y,g,w,u,n.epochs,n.verbose,A,x,f,n.shuffle,T,n.initialEpoch,null,null);return _}finally{e.isTraining=!1,ho(i,t),ho(r,s),ho(l,o),ho(c,a),p!=null&&ce(p)}}function tw(e){const t=[];e instanceof me&&(e=[e]);for(let s=0;ss.push(i.id));else if(t!=null)for(const i in t){const r=t[i];s.push(r.id)}const n=[];if(e instanceof me)s.indexOf(e.id)===-1&&n.push(e);else if(Array.isArray(e))e.forEach(i=>{s.indexOf(i.id)===-1&&n.push(i)});else if(e!=null)for(const i in e){const r=e[i];s.indexOf(r.id)===-1&&n.push(r)}n.forEach(i=>{i.isDisposed||i.dispose()})}function Fz(e){return e instanceof me}function sw(e){return Array.isArray(e)}function JA(e){return!Fz(e)&&!sw(e)}function ZA(e,t,s,n=!0,i=""){if(t==null||t.length===0){if(e!=null){let o=!1;if(sw(e)&&e.length>0)o=!0;else if(JA(e)){for(const a in e)if(e.hasOwnProperty(a)){o=!0;break}}else o=!0;if(o)throw new k(`Error when checking model ${i} expected no data, but got ${e}`)}return[]}if(e==null)return t.map(o=>null);let r;if(JA(e)){e=e,r=[];for(const o of t){if(e[o]==null)throw new k(`No data provided for "${o}". Need data for each key in: ${t}`);r.push(e[o])}}else if(sw(e)){if(e=e,e.length!==t.length)throw new k(`Error when checking model ${i}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${t.length} Tensor(s), but instead got the following list of Tensor(s): ${e}`);r=e}else{if(e=e,t.length>1)throw new k(`The model ${i} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${e.shape}`);r=[e]}if(r=tw(r),s!=null)for(let o=0;o=0&&c!==p)throw new k(`Error when checking ${i}: expected ${t[o]} to have shape [${s[o]}], but got array with shape [${a.shape}].`)}}return r}function Mz(e,t,s){const n=An(e.map(r=>r.shape[0]));n.sort();const i=An(t.map(r=>r.shape[0]));if(i.sort(),n.length>1)throw new k(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(e.map(r=>r.shape))}`);if(i.length>1)throw new k(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(t.map(r=>r.shape))}`);if(n.length>0&&i.length>0&&!N.arraysEqual(n,i))throw new k(`Input Tensors should have the same number of samples as target Tensors. Found ${n[0]} input sample(s) and ${i[0]} target sample(s).`)}function Uz(e,t,s){const n=[yi,ql,wa];for(let i=0;i1)throw new k(`The model expects ${t.length} ${i} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(e.shape)}.`);r=[e]}if(s!=null)for(let o=0;o[]);let s;if(typeof e=="string"||typeof e=="function")s=[e];else if(Array.isArray(e)||typeof e=="object")s=e;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${e}`);if(Array.isArray(s))return t.map(n=>s);{const n=[];for(const i of t){let r=s.hasOwnProperty(i)?s[i]:[];Array.isArray(r)||(r=[r]),n.push(r)}return n}}const Wz="layers-model";class nn extends Bn{constructor(e){super(e);this.isTraining=!1}summary(e,t,s=console.log){if(!this.built)throw new k("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");zA(this,e,t,s)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=$A(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof gs))throw new k("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=e.optimizer,this.isOptimizerOwned=!1}let t=[];if(!Array.isArray(e.loss)&&typeof e.loss!="string"&&typeof e.loss!="function"){e.loss=e.loss;for(const r in e.loss)if(this.outputNames.indexOf(r)===-1)throw new k(`Unknown entry in loss dictionary: "${r}". Only expected the following keys: ${this.outputNames}`);for(const r of this.outputNames)e.loss[r]==null&&console.warn(`Output "${r}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${r} during training`),t.push(lm(e.loss[r]))}else if(Array.isArray(e.loss)){if(e.loss.length!==this.outputs.length)throw new k(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${e.loss}.`);const r=e.loss;t=r.map(o=>lm(o))}else{const r=lm(e.loss);this.outputs.forEach(o=>{t.push(r)})}this.lossFunctions=t,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let r=0;r{for(let r=0;r1&&(this.metricsTensors.push([o,r]),this.metricsNames.push(this.outputNames[r]+"_loss"))}});const n=$z(e.metrics,this.outputNames),i=(r,o,a)=>{this.outputNames.length>1&&(o=this.outputNames[r]+"_"+o),this.metricsNames.push(o),this.metricsTensors.push([a,r])};zn("metric",()=>{for(let r=0;r{const c="";let p,u,h;for(const d of l){if(typeof d=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(d)!==-1){const f=this.internalOutputShapes[r];f[f.length-1]===1||this.lossFunctions[r]===ql?["accuracy","acc"].indexOf(d)!==-1?u=du:["crossentropy","ce"].indexOf(d)!==-1&&(u=cm):this.lossFunctions[r]===Gl?["accuracy","acc"].indexOf(d)!==-1?u=pm:["crossentropy","ce"].indexOf(d)!==-1&&(u=Jb):["accuracy","acc"].indexOf(d)!==-1?u=mu:["crossentropy","ce"].indexOf(d)!==-1&&(u=fu);let g;["accuracy","acc"].indexOf(d)!==-1?g="acc":["crossentropy","ce"].indexOf(d)!==-1&&(g="ce"),h=u,p=c+g}else{const f=UA(d);h=f,p=c+gu(d)}let m;zn(p,()=>{m=h}),i(r,p,m)}};a(o)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){if(this.collectedTrainableWeights==null)return;this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")}evaluate(e,t,s={}){const n=s.batchSize==null?32:s.batchSize;gm(n);const i=!0,r=this.standardizeUserDataXY(e,t,i,n);try{const o=r[0].concat(r[1]);this.makeTestFunction();const a=this.testFunction,l=this.testLoop(a,o,n,s.verbose,s.steps);return jt(l)}finally{ho(r[0],e),ho(r[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),KA(this,e,t)}checkNumSamples(e,t,s,n="steps"){let i;if(s!=null){if(i=null,t!=null)throw new k(`If ${n} is set, batchSize must be null or undefined.Got batchSize = ${t}`)}else if(e!=null)Array.isArray(e)?i=e[0].shape[0]:i=e.shape[0];else throw new k(`Either the input data should have a defined shape, or ${n} shoud be specified.`);return i}execute(e,t){if(Array.isArray(t)&&t.length===0)throw new k("`outputs` is an empty Array, which is not allowed.");const s=Array.isArray(t),n=s?t:[t],i=this.retrieveSymbolicTensors(n),r=new Hi;if(e instanceof me&&(e=[e]),Array.isArray(e)){if(e.length!==this.inputs.length)throw new k(`The number of inputs provided (${e.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let a=0;ao.name);for(let o=0;o0){const n=[];throw t.forEach((i,r)=>{i==null&&n.push(e[r])}),new k(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(n)}`)}return t}predictLoop(e,t=32,s=!1){return C(()=>{const n=this.checkNumSamples(e);if(s)throw new ae("Verbose predictLoop() is not implemented yet.");const i=bm(n,t),r=this.outputs.map(o=>[]);for(let o=0;o{const l=i[o][0],c=i[o][1],p=Hl(e,l,c),u=[];if(Array.isArray(p))for(let d=0;dr[c].push(l))}return jt(r.map(o=>be(o,0)))})}predict(e,t={}){const s=tw(e);QA(s,this.inputNames,this.feedInputShapes,!1);try{const n=t.batchSize==null?32:t.batchSize;return gm(n),this.predictLoop(s,n)}finally{ho(s,e)}}predictOnBatch(e){QA(e,this.inputNames,this.feedInputShapes,!0);const t=(Array.isArray(e)?e[0]:e).shape[0];return this.predictLoop(e,t)}standardizeUserDataXY(e,t,s=!0,n){if(this.optimizer_==null)throw new Ns("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");const i=[];for(let r=0;r0&&e[0].shape[0]%n!==0)throw new k(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${n}. Found: ${e[0].shape[0]} sample(s).`);return[e,t]}async standardizeUserData(e,t,s,n,i=!0,r){const[o,a]=this.standardizeUserDataXY(e,t,i,r);if(s!=null)throw new Error("sample weight is not supported yet.");let l=null;if(n!=null){const c=mm(n,this.outputNames);l=[];for(let p=0;p{const r=this.checkNumSamples(t,s,i,"steps"),o=[];if(n>0)throw new ae("Verbose mode is not implemented yet.");if(i!=null)throw new ae("steps mode in testLoop() is not implemented yet");{const a=bm(r,s),l=Oe(cs(0,r));for(let c=0;c1){const r=Ub(e.slice(0,s),n);i+=`_${r}`}t.push(i)}return t}makeTrainFunction(){return e=>{const t=[],s=e.slice(0,this.inputs.length),n=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),i=e.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),r=[],o=()=>{const p=[];for(let m=0;m1&&m{d=$(d,m)}),d},a=this.collectedTrainableWeights.map(p=>p.read()),l=!0,c=this.optimizer_.minimize(o,l,a);return[c].concat(r)}}makeTestFunction(){this.testFunction=e=>C(()=>{const t=[];let s;const n=e.slice(0,this.inputs.length),i=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),r=[];for(let l=0;lvn(t))}else{const t=Object.keys(this.loss);e={};const s=this.loss;for(const n of t)if(typeof s[n]=="string")e[n]=vn(s[n]);else throw new Error("Serialization of non-string loss is not supported.")}return e}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[vn(gu(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>vn(gu(e)));{const e={};for(const t in this.metrics)e[t]=vn(gu(this.metrics[t]));return e}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(e){if(e.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(e.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(e.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");const t=xa(e.optimizer_config),s=Ls(t);let n;if(typeof e.loss=="string")n=Pi(e.loss);else if(Array.isArray(e.loss))n=e.loss.map(r=>Pi(r));else if(e.loss!=null){n={};for(const r in e.loss)n[r]=Pi(e.loss[r])}let i;if(Array.isArray(e.metrics))i=e.metrics.map(r=>Pi(r));else if(e.metrics!=null){i={};for(const r in e.metrics)i[r]=Pi(e.metrics[r])}this.compile({loss:n,metrics:i,optimizer:s})}async save(e,t){if(typeof e=="string"){const l=Rt.getSaveHandlers(e);if(l.length===0)throw new k(`Cannot find any save handlers for URL '${e}'`);if(l.length>1)throw new k(`Found more than one (${l.length}) save handlers for URL '${e}'`);e=l[0]}if(e.save==null)throw new k("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");const s=await Rt.encodeWeights(this.getNamedWeights(t)),n=!1,i=null,r=this.toJSON(i,n),o={modelTopology:r,format:Wz,generatedBy:`TensorFlow.js tfjs-layers v${uo}`,convertedBy:null},a=t==null?!1:t.includeOptimizer;if(a&&this.optimizer!=null){o.trainingConfig=this.getTrainingConfig();const l="optimizer",{data:c,specs:p}=await Rt.encodeWeights(await this.optimizer.getWeights(),l);s.specs.push(...p),s.data=Rt.concatenateArrayBuffers([s.data,c])}if(this.userDefinedMetadata!=null){const l=!0;Qb(this.userDefinedMetadata,this.name,l),o.userDefinedMetadata=this.userDefinedMetadata}return o.weightData=s.data,o.weightSpecs=s.specs,e.save(o)}setUserDefinedMetadata(e){Qb(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}}nn.className="Model";V.registerClass(nn);class eN extends nn{}eN.className="Functional";V.registerClass(eN);async function tN(e,t){"modelTopology"in e||(e={modelTopology:e}),e=e;let s=e.modelTopology;s.model_config!=null&&(s=s.model_config);const n=xa(s),i=Ls(n,t);if(e.weightsManifest!=null){const r=await Rt.loadWeights(e.weightsManifest,e.pathPrefix,i.weights.map(a=>a.originalName)),o={};for(const a of i.weights)o[a.originalName]=r[a.originalName];i.loadWeights(o),ce(r)}return i}async function sN(e,t){if(t==null&&(t={}),typeof e=="string"){const s=Rt.getLoadHandlers(e,t);if(s.length===0)s.push(Rt.browserHTTPRequest(e,t));else if(s.length>1)throw new k(`Found more than one (${s.length}) load handlers for URL '${e}'`);e=s[0]}return zz(e,void 0,t)}async function zz(e,t,s){if(s==null&&(s={}),e.load==null)throw new k("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");const n=await e.load();let i=n.modelTopology;i.model_config!=null&&(i=i.model_config);const r=s.strict==null?!0:s.strict,o=n.weightData!=null&&n.weightSpecs!=null&&r,a=Ls(xa(i),t,o),l=n.trainingConfig;if(l!=null&&a.loadTrainingConfig(l),n.userDefinedMetadata!=null&&a.setUserDefinedMetadata(n.userDefinedMetadata),n.weightData!=null){if(n.weightSpecs==null)throw new k("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");const{modelWeights:c,optimizerWeights:p}=Pz(n.weightData,n.weightSpecs);a.loadWeights(c,r),a.optimizer!=null&&p.length>0&&await a.optimizer.setWeights(p),ce(c),ce(p.map(u=>u.tensor))}return a}function Pz(e,t){const s=Rt.decodeWeights(e,t),n={},i=[];return t.forEach(r=>{r.group==="optimizer"?i.push({name:r.name,tensor:s[r.name]}):n[r.name]=s[r.name]}),{modelWeights:n,optimizerWeights:i}}class mo extends nn{constructor(e){super({inputs:[],outputs:[]});if(e=e||{},this.trainable=!0,this.built=!1,this.name=e.name!=null?e.name:co("sequential_"),e.layers!=null)for(const t of e.layers)this.add(t)}checkShape(e){const t=e.inboundNodes[0].outputTensors[0].shape;if(t.some(s=>s<0))throw new k(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){const t=e instanceof mo||e instanceof nn;let s;if(t){if(s=e,s.outputs.length!==1)throw new k("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(s.inputs.length!==1)throw new k("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(e.inboundNodes.length===0){if(e.batchInputShape==null)throw new k("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");const n=im({batchShape:e.batchInputShape,dtype:e.dtype,name:e.name+"_input"});e.apply(n)}if(t)this.outputs=s.outputs,this.inputs=s.inputs;else{if(e.inboundNodes.length!==1)throw new k(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${e.name} which has ${e.inboundNodes.length} pre-existing inbound connections.`);if(e.inboundNodes[0].outputTensors.length!==1)throw new k("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[e.inboundNodes[0].outputTensors[0]],this.inputs=qb(this.outputs[0])}this.inboundNodes=[],new ya({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:In(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(n=>n.shape),outputShapes:this.outputs[0].shape})}else{const n=e.apply(this.outputs[0]);if(Array.isArray(n))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[n],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(e),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{const e=this.layers.length-1;this.layers[e].outboundNodes=[],this.outputs=[this.layers[e].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(e,t){return this.model==null&&this.build(),this.model.call(e,t)}build(e){if(Ue(e),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new nn({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(e,t,s=console.log){this.built||this.build(),super.summary(e,t,s)}setWeights(e){this.model==null&&this.build(),this.model.setWeights(e)}evaluate(e,t,s={}){if(!this.built)throw new Ns("The model needs to be compiled before being used.");return this.model.evaluate(e,t,s)}async evaluateDataset(e,t){if(!this.built)throw new Ns("The model needs to be compiled before being used.");return this.model.evaluateDataset(e,t)}predict(e,t={}){return this.model==null&&this.build(),this.model.predict(e,t)}predictOnBatch(e){return this.model==null&&this.build(),this.model.predictOnBatch(e)}compile(e){this.build(),this.model.compile(e),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return this.model==null?void 0:this.model.optimizer}set optimizer(e){this.model.optimizer=e}async fit(e,t,s={}){if(!this.built)throw new Ns("The model needs to be compiled before being used.");return this.model.fit(e,t,s)}async fitDataset(e,t){if(!this.built)throw new Ns("The model needs to be compiled before being used.");return this.model.fitDataset(e,t)}async trainOnBatch(e,t){return this.model.trainOnBatch(e,t)}static fromConfig(e,t,s={},n=!1){let i,r={};if(t instanceof Array){if(!(t[0].className!=null)||t[0].className==="Merge")throw new k("Legacy serialization format not supported yet.");i=t}else N.assert(t.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),i=t.layers,delete t.layers,r=t;const o=new e(r);if(!(o instanceof mo))throw new ae(`Sequential.fromConfig called on non-Sequential input: ${o}`);for(const a of i){const l=void 0,c=Ls(a,l,n);n&&c.setFastWeightInitDuringBuild(!0),o.add(c)}return o}set stopTraining(e){if(this.model==null)throw new k("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=e}get stopTraining(){if(this.model==null)throw new k("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){const e=[];for(const t of this.layers){const s={};s.className=t.getClassName(),s.config=t.getConfig(),e.push(s)}return{name:this.name,layers:e}}}mo.className="Sequential";V.registerClass(mo);function nN(e){return new nn(e)}function iN(e){return new mo(e)}function rN(e,t){return t==null&&(t={}),sN(e,t)}function wm(e){return im(e)}function oN(e,t){sn.registerCallbackConstructor(e,t)}class Ps extends V.Serializable{getConfig(){return{}}}class aN extends Ps{apply(e,t=1){return AA(e,t)}}aN.className="elu";V.registerClass(aN);class lN extends Ps{apply(e){return Rl(e)}}lN.className="selu";V.registerClass(lN);class cN extends Ps{apply(e){return Fe(e)}}cN.className="relu";V.registerClass(cN);class pN extends Ps{apply(e){return C(()=>bn(6,Fe(e)))}}pN.className="relu6";V.registerClass(pN);class uN extends Ps{apply(e){return e}}uN.className="linear";V.registerClass(uN);class hN extends Ps{apply(e){return os(e)}}hN.className="sigmoid";V.registerClass(hN);class dN extends Ps{apply(e){return CA(e)}}dN.className="hardSigmoid";V.registerClass(dN);class mN extends Ps{apply(e){return di(e)}}mN.className="softplus";V.registerClass(mN);class fN extends Ps{apply(e){return NA(e)}}fN.className="softsign";V.registerClass(fN);class gN extends Ps{apply(e){return Mi(e)}}gN.className="tanh";V.registerClass(gN);class xm extends Ps{apply(e,t=-1){return ts(e,t)}}xm.className="softmax";V.registerClass(xm);class yN extends Ps{apply(e,t=-1){return Il(e,t)}}yN.className="logSoftmax";V.registerClass(yN);class bN extends Ps{apply(e,t=1){return C(()=>os(e.mul(t)).mul(e))}}bN.className="swish";V.registerClass(bN);function jn(e){return e.getClassName()}function nw(e,t={}){return fi(e,V.SerializationMap.getMap().classNameMap,t,"activation")}function Vn(e){if(e==null){const t={};return t.className="linear",t.config={},nw(t)}if(typeof e=="string"){const t={};return t.className=e,t.config={},nw(t)}else return e instanceof Ps?e:nw(e)}function iw(e){if(e!=null&&typeof e!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${e}`)}class wN extends V.Serializable{}class Yl extends wN{constructor(e){super();iw(e),this.l1=e==null||e.l1==null?.01:e.l1,this.l2=e==null||e.l2==null?.01:e.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(e){return C(()=>{let t=ye([1]);return this.hasL1&&(t=$(t,te(R(this.l1,et(e))))),this.hasL2&&(t=$(t,te(R(this.l2,ga(e))))),t.asScalar()})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}}Yl.className="L1L2";V.registerClass(Yl);function xN(e){return iw(e),new Yl({l1:e!=null?e.l1:null,l2:0})}function LN(e){return iw(e),new Yl({l2:e!=null?e.l2:null,l1:0})}const SN={l1l2:"L1L2"};function Pe(e){return Ml(e)}function IN(e,t={}){return fi(e,V.SerializationMap.getMap().classNameMap,t,"regularizer")}function Ye(e){if(e==null)return null;if(typeof e=="string"){const t=e in SN?SN[e]:e,s={className:t,config:{}};return IN(s)}else return e instanceof wN?e:IN(e)}class Lm extends Le{constructor(e){super(e??{});this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=we(e);let s=Fe(e);return this.maxValue!=null&&(s=xt(s,0,this.maxValue)),s}computeOutputShape(e){return e}getConfig(){const e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}}Lm.className="ReLU";V.registerClass(Lm);class Sm extends Le{constructor(e){super(e??{});this.DEFAULT_ALPHA=.3,e==null&&(e={}),this.alpha=e.alpha==null?this.DEFAULT_ALPHA:e.alpha}call(e,t){const s=we(e);return Ll(s,this.alpha)}computeOutputShape(e){return e}getConfig(){const e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}}Sm.className="LeakyReLU";V.registerClass(Sm);class Im extends Le{constructor(e){super(e??{});if(this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=je(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=Ye(e.alphaRegularizer),this.alphaConstraint=at(e.alphaConstraint),e.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(e.sharedAxes))this.sharedAxes=e.sharedAxes;else if(typeof e.sharedAxes=="number")this.sharedAxes=[e.sharedAxes];else throw new k(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`)}build(e){e=Ue(e);const t=e.slice(1);if(this.sharedAxes!=null)for(const n of this.sharedAxes)t[n-1]=1;this.alpha=this.addWeight("alpha",t,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);const s={};if(this.sharedAxes!=null)for(let n=1;n(lt(t),t==="channelsFirst"?se(e,[0,2,3,1]):e))}function rw(e,t){return C(()=>(lt(t),t==="channelsFirst"?se(e,[0,2,3,4,1]):e))}function Bz(e,t,s,n=1,i="valid",r,o=1){return C(()=>{if(r==null&&(r=ys()),lt(r),e.shape.length!==3)throw new k(`The input of a conv1dWithBias operation should be 3, but is ${e.shape.length} instead.`);if(t.shape.length!==3)throw new k(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(s!=null&&s.shape.length!==1)throw new k(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(r==="channelsFirst"&&(e=se(e,[0,2,1])),i==="causal")throw new ae("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let a=fl(e,t,n,i==="same"?"same":"valid","NWC",o);return s!=null&&(a=Cs(a,s)),a})}function vN(e,t,s,n=[1,1],i="valid",r,o,a=null){return C(()=>{if(r==null&&(r=ys()),lt(r),e.rank!==3&&e.rank!==4)throw new k(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${e.rank}.`);if(t.rank!==3&&t.rank!==4)throw new k(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${e.rank}.`);let l=bu(e,r);if(i==="causal")throw new ae("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=xn.conv2d({x:l,filter:t,strides:n,pad:i==="same"?"same":"valid",dilations:o,dataFormat:"NHWC",bias:s,activation:a}),r==="channelsFirst"&&(l=se(l,[0,3,1,2])),l})}function jz(e,t,s,n=[1,1,1],i="valid",r,o){return C(()=>{if(r==null&&(r=ys()),lt(r),e.rank!==4&&e.rank!==5)throw new k(`conv3dWithBias expects input to be of rank 4 or 5, but received ${e.rank}.`);if(t.rank!==4&&t.rank!==5)throw new k(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${e.rank}.`);let a=rw(e,r);if(i==="causal")throw new ae("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return a=bl(a,t,n,i==="same"?"same":"valid","NDHWC",o),s!=null&&(a=Cs(a,s)),r==="channelsFirst"&&(a=se(a,[0,4,1,2,3])),a})}class Nm extends Le{constructor(e,t){super(t);if(this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",Nm.verifyArgs(t),this.rank=e,yt(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new ae(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=fo(t.kernelSize,e,"kernelSize"),this.strides=fo(t.strides==null?1:t.strides,e,"strides"),this.padding=t.padding==null?"valid":t.padding,bs(this.padding),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,lt(this.dataFormat),this.activation=Vn(t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.biasInitializer=je(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=at(t.biasConstraint),this.biasRegularizer=Ye(t.biasRegularizer),this.activityRegularizer=Ye(t.activityRegularizer),this.dilationRate=fo(t.dilationRate==null?1:t.dilationRate,e,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new k(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new k(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new k(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(e){if(tn("kernelSize"in e,"required key 'kernelSize' not in config"),typeof e.kernelSize!="number"&&!Md(e.kernelSize,"number",1,3))throw new k(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(e.kernelSize)}.`)}getConfig(){const e={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:jn(this.activation),useBias:this.useBias,biasInitializer:Ze(this.biasInitializer),biasRegularizer:Pe(this.biasRegularizer),activityRegularizer:Pe(this.activityRegularizer),biasConstraint:ot(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}}class wu extends Nm{constructor(e,t){super(e,t);this.kernel=null,wu.verifyArgs(t),this.filters=t.filters,yt(this.filters,"filters"),this.kernelInitializer=je(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=at(t.kernelConstraint),this.kernelRegularizer=Ye(t.kernelRegularizer)}build(e){e=Ue(e);const t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new k(`The channel dimension of the input should be defined. Found ${e[t]}`);const s=e[t],n=this.kernelSize.concat([s,this.filters]);this.kernel=this.addWeight("kernel",n,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[t]:s}}],this.built=!0}call(e,t){return C(()=>{e=we(e);let s;const n=this.bias==null?null:this.bias.read(),i=Ud(this.activation.getClassName());if(i!=null&&this.rank===2)s=vN(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate,i);else{if(this.rank===1)s=Bz(e,this.kernel.read(),n,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)s=vN(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)s=jz(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new ae("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(s=this.activation.apply(s))}return s})}computeOutputShape(e){e=Ue(e);const t=[],s=this.dataFormat==="channelsLast"?e.slice(1,e.length-1):e.slice(2);for(let i=0;i 0 but got ${JSON.stringify(e.filters)}`)}}class Kl extends wu{constructor(e){super(2,e);Kl.verifyArgs(e)}getConfig(){const e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!Md(e.kernelSize,"number",1,2))throw new k(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}}Kl.className="Conv2D";V.registerClass(Kl);class xu extends wu{constructor(e){super(3,e);xu.verifyArgs(e)}getConfig(){const e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!(Array.isArray(e.kernelSize)&&(e.kernelSize.length===1||e.kernelSize.length===3)))throw new k(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}}xu.className="Conv3D";V.registerClass(xu);class Cm extends Kl{constructor(e){super(e);if(this.inputSpec=[new st({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new k(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=Ue(e),e.length!==4)throw new k("Input should have rank 4; Received input shape: "+JSON.stringify(e));const t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new k("The channel dimension of the inputs should be defined. Found `None`.");const s=e[t],n=this.kernelSize.concat([this.filters,s]);this.kernel=this.addWeight("kernel",n,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new st({ndim:4,axes:{[t]:s}})],this.built=!0}call(e,t){return C(()=>{let s=we(e);if(s.shape.length!==4)throw new k(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${s.shape.length}`);const n=s.shape,i=n[0];let r,o;this.dataFormat==="channelsFirst"?(r=2,o=3):(r=1,o=2);const a=n[r],l=n[o],c=this.kernelSize[0],p=this.kernelSize[1],u=this.strides[0],h=this.strides[1],d=yu(a,u,c,this.padding),m=yu(l,h,p,this.padding),f=[i,d,m,this.filters];this.dataFormat!=="channelsLast"&&(s=se(s,[0,2,3,1]));let g=yl(s,this.kernel.read(),f,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(g=se(g,[0,3,1,2])),this.bias!=null&&(g=Cs(g,this.bias.read(),this.dataFormat)),this.activation!=null&&(g=this.activation.apply(g)),g})}computeOutputShape(e){e=Ue(e);const t=e.slice();let s,n,i;this.dataFormat==="channelsFirst"?(s=1,n=2,i=3):(s=3,n=1,i=2);const r=this.kernelSize[0],o=this.kernelSize[1],a=this.strides[0],l=this.strides[1];return t[s]=this.filters,t[n]=yu(t[n],a,r,this.padding),t[i]=yu(t[i],l,o,this.padding),t}getConfig(){const e=super.getConfig();return delete e.dilationRate,e}}Cm.className="Conv2DTranspose";V.registerClass(Cm);class TN extends wu{constructor(e,t){super(e,t);if(this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,t.filters==null)throw new k("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(t.kernelInitializer!=null||t.kernelRegularizer!=null||t.kernelConstraint!=null)throw new k("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(t.padding!=null&&t.padding!=="same"&&t.padding!=="valid")throw new k(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(t.padding)}`);this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=je(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=Ye(t.depthwiseRegularizer),this.depthwiseConstraint=at(t.depthwiseConstraint),this.pointwiseInitializer=je(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=Ye(t.pointwiseRegularizer),this.pointwiseConstraint=at(t.pointwiseConstraint)}build(e){if(e=Ue(e),e.length{e=we(e);let s;if(this.rank===1)throw new ae("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=se(e,[0,2,3,1])),s=eo(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(s=Cs(s,this.bias.read(),this.dataFormat)),this.activation!=null&&(s=this.activation.apply(s)),this.dataFormat==="channelsFirst"&&(s=se(s,[0,3,1,2])),s})}getConfig(){const e=super.getConfig();return delete e.rank,delete e.kernelInitializer,delete e.kernelRegularizer,delete e.kernelConstraint,e.depthwiseInitializer=Ze(this.depthwiseInitializer),e.pointwiseInitializer=Ze(this.pointwiseInitializer),e.depthwiseRegularizer=Pe(this.depthwiseRegularizer),e.pointwiseRegularizer=Pe(this.pointwiseRegularizer),e.depthwiseConstraint=ot(this.depthwiseConstraint),e.pointwiseConstraint=ot(this.pointwiseConstraint),e}}TN.className="SeparableConv";class Rm extends TN{constructor(e){super(2,e)}}Rm.className="SeparableConv2D";V.registerClass(Rm);class Lu extends wu{constructor(e){super(1,e);Lu.verifyArgs(e),this.inputSpec=[{ndim:3}]}getConfig(){const e=super.getConfig();return delete e.rank,delete e.dataFormat,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!Md(e.kernelSize,"number",1,1))throw new k(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}}Lu.className="Conv1D";V.registerClass(Lu);class Om extends Le{constructor(e){super(e);typeof e.cropping=="number"?this.cropping=[[e.cropping,e.cropping],[e.cropping,e.cropping]]:typeof e.cropping[0]=="number"?this.cropping=[[e.cropping[0],e.cropping[0]],[e.cropping[1],e.cropping[1]]]:this.cropping=e.cropping,this.dataFormat=e.dataFormat===void 0?"channelsLast":e.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(e){return this.dataFormat==="channelsFirst"?[e[0],e[1],e[2]-this.cropping[0][0]-this.cropping[0][1],e[3]-this.cropping[1][0]-this.cropping[1][1]]:[e[0],e[1]-this.cropping[0][0]-this.cropping[0][1],e[2]-this.cropping[1][0]-this.cropping[1][1],e[3]]}call(e,t){return C(()=>{if(e=we(e),this.dataFormat==="channelsLast"){const s=su(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return su(s,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{const s=su(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return su(s,this.cropping[1][0],e.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){const e={cropping:this.cropping,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}Om.className="Cropping2D";V.registerClass(Om);class Em extends Le{constructor(e){super(e);this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=e.size==null?this.DEFAULT_SIZE:e.size,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat}computeOutputShape(e){if(this.dataFormat==="channelsFirst"){const t=e[2]==null?null:this.size[0]*e[2],s=e[3]==null?null:this.size[1]*e[3];return[e[0],e[1],t,s]}else{const t=e[1]==null?null:this.size[0]*e[1],s=e[2]==null?null:this.size[1]*e[2];return[e[0],t,s,e[3]]}}call(e,t){return C(()=>{let s=we(e);const n=s.shape;if(this.dataFormat==="channelsFirst"){s=se(s,[0,2,3,1]);const i=this.size[0]*n[2],r=this.size[1]*n[3],o=s.resizeNearestNeighbor([i,r]);return se(o,[0,3,1,2])}else{const i=this.size[0]*n[1],r=this.size[1]*n[2];return s.resizeNearestNeighbor([i,r])}})}getConfig(){const e={size:this.size,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}Em.className="UpSampling2D";V.registerClass(Em);function Vz(e,t,s=[1,1],n="valid",i,r){return C(()=>{i==null&&(i=ys()),lt(i);let o=bu(e,i);if(e.rank!==4)throw new k(`Input for depthwiseConv2d is required to be 4-D, but is instead ${e.rank}-D`);if(t.rank!==4)throw new k(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return o=fn(o,t,s,n==="same"?"same":"valid","NHWC",r),i==="channelsFirst"&&(o=se(o,[0,3,1,2])),o})}class _m extends Nm{constructor(e){super(2,e);this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=je(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=at(e.depthwiseConstraint),this.depthwiseRegularizer=Ye(e.depthwiseRegularizer)}build(e){if(e=Ue(e),e.length<4)throw new k(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(e)}.`);const t=this.dataFormat==="channelsFirst"?1:3;if(e[t]==null||e[t]<0)throw new k(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${e[t]}).`);const s=e[t],n=[this.kernelSize[0],this.kernelSize[1],s,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",n,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[s*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return C(()=>{e=we(e);let s=Vz(e,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(s=Cs(s,this.bias.read(),this.dataFormat)),this.activation!=null&&(s=this.activation.apply(s)),s})}computeOutputShape(e){e=Ue(e);const t=this.dataFormat==="channelsFirst"?e[2]:e[1],s=this.dataFormat==="channelsFirst"?e[3]:e[2],n=this.dataFormat==="channelsFirst"?e[1]*this.depthMultiplier:e[3]*this.depthMultiplier,i=Rs(t,this.kernelSize[0],this.padding,this.strides[0]),r=Rs(s,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[e[0],n,i,r]:[e[0],i,r,n]}getConfig(){const e=super.getConfig();return e.depthMultiplier=this.depthMultiplier,e.depthwiseInitializer=Ze(this.depthwiseInitializer),e.depthwiseRegularizer=Pe(this.depthwiseRegularizer),e.depthwiseConstraint=ot(this.depthwiseRegularizer),e}}_m.className="DepthwiseConv2D";V.registerClass(_m);function ow(e,t,s,n){if(Array.isArray(e)){if(t!=null||s!=null)throw new k("When inputs is an array, neither initialState or constants should be provided");n!=null&&(s=e.slice(e.length-n,e.length),e=e.slice(0,e.length-n)),e.length>1&&(t=e.slice(1,e.length)),e=e[0]}function i(r){return r==null||Array.isArray(r)?r:[r]}return t=i(t),s=i(s),{inputs:e,initialState:t,constants:s}}function aw(e,t,s,n=!1,i,r,o=!1,a=!1){return C(()=>{const l=t.shape.length;if(l<3)throw new k(`Input should be at least 3D, but is ${l}D.`);const c=[1,0].concat(cs(2,l));if(t=se(t,c),r!=null)throw new ae("The rnn() functoin of the deeplearn.js backend does not support constants yet.");o&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),i!=null&&(i=i.asType("bool").asType("float32"),i.rank===l-1&&(i=Mt(i,-1)),i=se(i,c)),n&&(t=Et(t,0),i!=null&&(i=Et(i,0)));const p=[];let u,h=s;const d=t.shape[0],m=qe(t);let f;i!=null&&(f=qe(i));for(let y=0;ye(w,h));if(i==null)u=x[0],h=x[1];else{const T=C(()=>{const A=f[y],_=Ot(A).sub(A),E=x[0].mul(A).add(h[0].mul(_)),F=h.map((D,M)=>x[1][M].mul(A).add(D.mul(_)));return{output:E,newStates:F}});u=T.output,h=T.newStates}a&&p.push(u)}let g;if(a){const y=1;g=Ge(p,y)}return[u,g,h]})}class rn extends Le{constructor(e){super(e);let t;if(e.cell==null)throw new k("cell property is missing for the constructor of RNN.");if(Array.isArray(e.cell)?t=new Su({cells:e.cell}):t=e.cell,t.stateSize==null)throw new k("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=t,this.returnSequences=e.returnSequences==null?!1:e.returnSequences,this.returnState=e.returnState==null?!1:e.returnState,this.goBackwards=e.goBackwards==null?!1:e.goBackwards,this._stateful=e.stateful==null?!1:e.stateful,this.unroll=e.unroll==null?!1:e.unroll,this.supportsMasking=!0,this.inputSpec=[new st({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){const e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return cs(0,e).map(t=>null)}else return this.states_}setStates(e){this.states_=e}computeOutputShape(e){sm(e)&&(e=e[0]),e=e;let t=this.cell.stateSize;Array.isArray(t)||(t=[t]);const s=t[0];let n;if(this.returnSequences?n=[e[0],e[1],s]:n=[e[0],s],this.returnState){const i=[];for(const r of t)i.push([e[0],r]);return[n].concat(i)}else return n}computeMask(e,t){return C(()=>{Array.isArray(t)&&(t=t[0]);const s=this.returnSequences?t:null;if(this.returnState){const n=this.states.map(i=>null);return[s].concat(n)}else return s})}get states(){if(this.states_==null){const e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,t=[];for(let s=0;so.shape[o.shape.length-1]),r))throw new k(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=r.map(o=>new st({shape:[null,o]}));this.stateful&&this.resetStates()}resetStates(e,t=!1){C(()=>{if(!this.stateful)throw new Sn("Cannot call resetStates() on an RNN Layer that is not stateful.");const s=this.inputSpec[0].shape[0];if(s==null)throw new k("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(n=>ye([s,n])):this.states_=[ye([s,this.cell.stateSize])];else if(e==null)ce(this.states_),this.keptStates!=null&&(ce(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(n=>ye([s,n])):this.states_[0]=ye([s,this.cell.stateSize]);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new k(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t===!0?this.keptStates.push(this.states_.slice()):ce(this.states_);for(let n=0;npt(n.clone()))})}apply(e,t){let s=t==null?null:t.initialState,n=t==null?null:t.constants;t==null&&(t={});const i=ow(e,s,n,this.numConstants);e=i.inputs,s=i.initialState,n=i.constants;let r=[],o=[];if(s!=null){t.initialState=s,r=r.concat(s),this.stateSpec=[];for(const l of s)this.stateSpec.push(new st({shape:l.shape}));o=o.concat(this.stateSpec)}n!=null&&(t.constants=n,r=r.concat(n),this.numConstants=n.length);const a=r[0]instanceof xs;if(a){const l=[e].concat(r),c=this.inputSpec.concat(o),p=this.inputSpec;this.inputSpec=c;const u=super.apply(l,t);return this.inputSpec=p,u}else return super.apply(e,t)}call(e,t){return C(()=>{const s=t==null?null:t.mask,n=t==null?null:t.training;let i=t==null?null:t.initialState;e=we(e),i==null&&(this.stateful?i=this.states_:i=this.getInitialState(e));const r=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(i.length!==r)throw new k(`RNN Layer has ${r} state(s) but was passed ${i.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");const o={training:n},a=(d,m)=>{const f=this.cell.call([d].concat(m),o);return[f[0],f.slice(1)]},l=aw(a,e,i,this.goBackwards,s,null,this.unroll,this.returnSequences),c=l[0],p=l[1],u=l[2];this.stateful&&this.resetStates(u,n);const h=this.returnSequences?p:c;return this.returnState?[h].concat(u):h})}getInitialState(e){return C(()=>{let t=ye(e.shape);return t=te(t,[1,2]),t=Vi(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(s=>s>1?Vd(t,[1,s]):t):this.cell.stateSize>1?[Vd(t,[1,this.cell.stateSize])]:[t]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(e)}getConfig(){const e=super.getConfig(),t={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(t.numConstants=this.numConstants);const s=this.cell.getConfig();return this.getClassName()===rn.className&&(t.cell={className:this.cell.getClassName(),config:s}),Object.assign({},s,e,t)}static fromConfig(e,t,s={}){const n=t.cell,i=Ls(n,s);return new e(Object.assign(t,{cell:i}))}}rn.className="RNN";V.registerClass(rn);class go extends Le{}class Iu extends go{constructor(e){super(e);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,yt(this.units,"units"),this.activation=Vn(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=je(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=je(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=je(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Ye(e.kernelRegularizer),this.recurrentRegularizer=Ye(e.recurrentRegularizer),this.biasRegularizer=Ye(e.biasRegularizer),this.kernelConstraint=at(e.kernelConstraint),this.recurrentConstraint=at(e.recurrentConstraint),this.biasConstraint=at(e.biasConstraint),this.dropout=fa([1,Pn([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=fa([1,Pn([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Ue(e),this.kernel=this.addWeight("kernel",[e[e.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return C(()=>{if(e=e,e.length!==2)throw new k(`SimpleRNNCell expects 2 input Tensors, got ${e.length}.`);let s=e[1];e=e[0];const n=t.training==null?!1:t.training;0Ot(e),rate:this.dropout,training:n})),0Ot(s),rate:this.recurrentDropout,training:n}));let i;const r=this.dropoutMask,o=this.recurrentDropoutMask;r!=null?i=Cn(R(e,r),this.kernel.read()):i=Cn(e,this.kernel.read()),this.bias!=null&&(i=Cs(i,this.bias.read())),o!=null&&(s=R(s,o));let a=$(i,Cn(s,this.recurrentKernel.read()));return this.activation!=null&&(a=this.activation.apply(a)),[a,a]})}getConfig(){const e=super.getConfig(),t={units:this.units,activation:jn(this.activation),useBias:this.useBias,kernelInitializer:Ze(this.kernelInitializer),recurrentInitializer:Ze(this.recurrentInitializer),biasInitializer:Ze(this.biasInitializer),kernelRegularizer:Pe(this.kernelRegularizer),recurrentRegularizer:Pe(this.recurrentRegularizer),biasRegularizer:Pe(this.biasRegularizer),activityRegularizer:Pe(this.activityRegularizer),kernelConstraint:ot(this.kernelConstraint),recurrentConstraint:ot(this.recurrentConstraint),biasConstraint:ot(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign({},e,t)}}Iu.className="SimpleRNNCell";V.registerClass(Iu);class km extends rn{constructor(e){e.cell=new Iu(e),super(e)}call(e,t){return C(()=>{this.cell.dropoutMask!=null&&(ce(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(ce(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);const s=t==null?null:t.mask,n=t==null?null:t.training,i=t==null?null:t.initialState;return super.call(e,{mask:s,training:n,initialState:i})})}static fromConfig(e,t){return new e(t)}}km.className="SimpleRNN";V.registerClass(km);class vu extends go{constructor(e){super(e);if(this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.resetAfter)throw new k("GRUCell does not support reset_after parameter set to true.");this.units=e.units,yt(this.units,"units"),this.activation=Vn(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=Vn(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=je(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=je(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=je(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Ye(e.kernelRegularizer),this.recurrentRegularizer=Ye(e.recurrentRegularizer),this.biasRegularizer=Ye(e.biasRegularizer),this.kernelConstraint=at(e.kernelConstraint),this.recurrentConstraint=at(e.recurrentConstraint),this.biasConstraint=at(e.biasConstraint),this.dropout=fa([1,Pn([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=fa([1,Pn([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Ue(e);const t=e[e.length-1];this.kernel=this.addWeight("kernel",[t,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return C(()=>{if(e=e,e.length!==2)throw new k(`GRUCell expects 2 input Tensors (inputs, h, c), got ${e.length}.`);const s=t.training==null?!1:t.training;let n=e[1];e=e[0],0Ot(e),rate:this.dropout,training:s,count:3})),0Ot(n),rate:this.recurrentDropout,training:s,count:3}));const i=this.dropoutMask,r=this.recurrentDropoutMask;let o,a,l;0{this.cell.dropoutMask!=null&&(ce(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(ce(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);const s=t==null?null:t.mask,n=t==null?null:t.training,i=t==null?null:t.initialState;return super.call(e,{mask:s,training:n,initialState:i})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}}Dm.className="GRU";V.registerClass(Dm);class Sa extends go{constructor(e){super(e);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,yt(this.units,"units"),this.activation=Vn(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=Vn(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=je(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=je(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=je(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=Ye(e.kernelRegularizer),this.recurrentRegularizer=Ye(e.recurrentRegularizer),this.biasRegularizer=Ye(e.biasRegularizer),this.kernelConstraint=at(e.kernelConstraint),this.recurrentConstraint=at(e.recurrentConstraint),this.biasConstraint=at(e.biasConstraint),this.dropout=fa([1,Pn([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=fa([1,Pn([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;e=Ue(e);const s=e[e.length-1];this.kernel=this.addWeight("kernel",[s,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let n;if(this.useBias){if(this.unitForgetBias){const i=this.biasInitializer,r=this.units;n=new(t=class extends zs{apply(a,l){const c=i.apply([r]),p=new zl().apply([r]),u=i.apply([r*2]);return jb(jb(c,p),u)}},t.className="CustomInit",t)}else n=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,n,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(e,t){return C(()=>{const s=t.training==null?!1:t.training;if(e=e,e.length!==3)throw new k(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let n=e[1];const i=e[2];e=e[0],0Ot(e),rate:this.dropout,training:s,count:4})),0Ot(n),rate:this.recurrentDropout,training:s,count:4}));const r=this.dropoutMask,o=this.recurrentDropoutMask;let a,l,c,p;0{this.cell.dropoutMask!=null&&(ce(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(ce(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);const s=t==null?null:t.mask,n=t==null?null:t.training,i=t==null?null:t.initialState;return super.call(e,{mask:s,training:n,initialState:i})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}}Fm.className="LSTM";V.registerClass(Fm);class Su extends go{constructor(e){super(e);this.cells=e.cells}get stateSize(){const e=[];for(const t of this.cells.slice().reverse())Array.isArray(t.stateSize)?e.push(...t.stateSize):e.push(t.stateSize);return e}call(e,t){return C(()=>{e=e;let s=e.slice(1);const n=[];for(const o of this.cells.slice().reverse())Array.isArray(o.stateSize)?n.push(s.splice(0,o.stateSize.length)):n.push(s.splice(0,1));n.reverse();const i=[];let r;for(let o=0;o{zn(`RNNCell_${n}`,()=>{s.build(e),Array.isArray(s.stateSize)?t=s.stateSize[0]:t=s.stateSize,e=[e[0],t]})}),this.built=!0}getConfig(){const e=super.getConfig(),t=i=>({className:i.getClassName(),config:i.getConfig()}),s=this.cells.map(t),n={cells:s};return Object.assign({},e,n)}static fromConfig(e,t,s={}){const n=[];for(const i of t.cells)n.push(Ls(i,s));return new e({cells:n})}get trainableWeights(){if(!this.trainable)return[];const e=[];for(const t of this.cells)e.push(...t.trainableWeights);return e}get nonTrainableWeights(){const e=[];for(const t of this.cells)e.push(...t.nonTrainableWeights);if(!this.trainable){const t=[];for(const s of this.cells)t.push(...s.trainableWeights);return t.concat(e)}return e}getWeights(){const e=[];for(const t of this.cells)e.push(...t.weights);return cu(e)}setWeights(e){const t=[];for(const s of this.cells){const n=s.weights.length,i=e.splice(n);for(let r=0;rqd(t(),s),o=()=>lo(r,t,n);if(!i||i<=1)return pt(o().clone());const a=Array(i).fill(void 0).map(o);return a.map(l=>pt(l.clone()))}var Gz=function(e,t){var s={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(s[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(e);i{if(this.cell.dropoutMask!=null&&(ce(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(ce(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),t&&t.constants)throw new k("ConvRNN2D cell does not support constants");const s=t==null?null:t.mask,n=t==null?null:t.training,i=t==null?null:t.initialState;return super.call(e,{mask:s,training:n,initialState:i})})}computeOutputShape(e){let t=this.computeSingleOutputShape(e);return this.returnSequences||(t=[t[0],...t.slice(2)]),this.returnState&&(t=[t,...Array(2).fill([e[0],...t.slice(-3)])]),t}getInitialState(e){return C(()=>{const{stateSize:t}=this.cell,s=e.shape,n=this.computeSingleOutputShape(s),i=[n[0],...n.slice(2)],r=ye(i);return Array.isArray(t)?Array(t.length).fill(r):[r]})}resetStates(e,t=!1){C(()=>{if(!this.stateful)throw new Sn("Cannot call resetStates() on an RNN Layer that is not stateful.");const s=this.inputSpec[0].shape,n=this.computeSingleOutputShape(s),i=[n[0],...n.slice(2)],r=s[0];if(r==null)throw new k("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>ye(i)):this.states_=[ye(i)];else if(e==null)ce(this.states_),this.keptStates!=null&&(ce(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>ye(i)):this.states_[0]=ye(i);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new k(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t?this.keptStates.push(this.states_.slice()):ce(this.states_);for(let o=0;opt(o.clone()))})}computeSingleOutputShape(e){const{dataFormat:t,filters:s,kernelSize:n,padding:i,strides:r,dilationRate:o}=this.cell,a=t==="channelsFirst",l=e[a?3:2],c=e[a?4:3],p=Rs(l,n[0],i,r[0],o[0]),u=Rs(c,n[1],i,r[1],o[1]),h=[...e.slice(0,2),...a?[s,p,u]:[p,u,s]];return h}}AN.className="ConvRNN2D";class Tu extends Sa{constructor(e){const{filters:t,kernelSize:s,strides:n,padding:i,dataFormat:r,dilationRate:o}=e;super(Object.assign({},e,{units:t}));this.filters=t,yt(this.filters,"filters"),this.kernelSize=fo(s,2,"kernelSize"),this.kernelSize.forEach(a=>yt(a,"kernelSize")),this.strides=fo(n||1,2,"strides"),this.strides.forEach(a=>yt(a,"strides")),this.padding=i||"valid",bs(this.padding),this.dataFormat=r||"channelsLast",lt(this.dataFormat),this.dilationRate=fo(o||1,2,"dilationRate"),this.dilationRate.forEach(a=>yt(a,"dilationRate"))}build(e){var t;e=Ue(e);const s=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[s]==null)throw new k(`The channel dimension of the input should be defined. Found ${e[s]}`);const n=e[s],i=4,r=this.kernelSize.concat([n,this.filters*i]);this.kernel=this.addWeight("kernel",r,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);const o=this.kernelSize.concat([this.filters,this.filters*i]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",o,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let a;if(this.unitForgetBias){const l=this.biasInitializer,c=this.filters;a=new(t=class extends zs{apply(u,h){const d=l.apply([c]),m=Kt([c]),f=l.apply([c*2]);return $l([d,m,f])}},t.className="CustomInit",t)}else a=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*i],null,a,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(e,t){return C(()=>{if(e.length!==3)throw new k(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);const s=t.training||!1,n=e[0],i=e[1],r=e[2],o=4;0Ot(n),rate:this.dropout,training:s,count:o}));const a=this.dropoutMask,l=(ie,ne,le)=>!ne||!ne[le]?ie:R(ne[le],ie);let c=l(n,a,0),p=l(n,a,1),u=l(n,a,2),h=l(n,a,3);0Ot(i),rate:this.recurrentDropout,training:s,count:o}));const d=this.recurrentDropoutMask;let m=l(i,d,0),f=l(i,d,1),g=l(i,d,2),y=l(i,d,3);const w=3,[x,T,A,_]=Bt(this.kernel.read(),o,w),[E,F,D,M]=this.useBias?Bt(this.bias.read(),o):[null,null,null,null];c=this.inputConv(c,x,E,this.padding),p=this.inputConv(p,T,F,this.padding),u=this.inputConv(u,A,D,this.padding),h=this.inputConv(h,_,M,this.padding);const[P,B,Y,q]=Bt(this.recurrentKernel.read(),o,w);m=this.recurrentConv(m,P),f=this.recurrentConv(f,B),g=this.recurrentConv(g,Y),y=this.recurrentConv(y,q);const K=this.recurrentActivation.apply($(c,m)),H=this.recurrentActivation.apply($(p,f)),Q=$(R(H,r),R(K,this.activation.apply($(u,g)))),J=R(this.recurrentActivation.apply($(h,y)),this.activation.apply(Q));return[J,J,Q]})}getConfig(){const e=super.getConfig(),{units:t}=e,s=Gz(e,["units"]),n={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign({},s,n)}inputConv(e,t,s,n){const i=rt(e,t,this.strides,n||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return s?Cs(i,s,this.dataFormat):i}recurrentConv(e,t){const s=1;return rt(e,t,s,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}}Tu.className="ConvLSTM2DCell";V.registerClass(Tu);class Mm extends AN{constructor(e){const t=new Tu(e);super(Object.assign({},e,{cell:t}))}static fromConfig(e,t){return new e(t)}}Mm.className="ConvLSTM2D";V.registerClass(Mm);class Au extends Le{constructor(e){super(e);this.rate=Math.max(Math.min(e.rate,1),0),this.noiseShape=e.noiseShape,this.seed=e.seed,this.supportsMasking=!0}getNoiseShape(e){if(this.noiseShape==null)return this.noiseShape;const t=e.shape,s=[];for(let n=0;n{this.invokeCallHook(e,t);const s=we(e);if(0qd(s,this.rate,i,this.seed),()=>s,n);return r}return e})}getConfig(){const e={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},t=super.getConfig();return Object.assign(e,t),e}dispose(){return super.dispose()}}Au.className="Dropout";V.registerClass(Au);class Um extends Au{constructor(e){super(e);this.inputSpec=[{ndim:3}]}getNoiseShape(e){const t=e.shape;return[t[0],1,t[2]]}}Um.className="SpatialDropout1D";V.registerClass(Um);class $m extends Le{constructor(e){super(e);if(this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.batchInputShape==null&&e.inputShape==null&&e.inputDim!=null){let t=null;e.batchSize!=null&&(t=e.batchSize),this.batchInputShape=[t,e.inputDim]}this.units=e.units,yt(this.units,"units"),this.activation=Vn(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=je(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=je(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=at(e.kernelConstraint),this.biasConstraint=at(e.biasConstraint),this.kernelRegularizer=Ye(e.kernelRegularizer),this.biasRegularizer=Ye(e.biasRegularizer),this.activityRegularizer=Ye(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){e=Ue(e);const t=e[e.length-1];this.kernel==null&&(this.kernel=this.addWeight("kernel",[t,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:t}}],this.built=!0}computeOutputShape(e){e=Ue(e);const t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return C(()=>{this.invokeCallHook(e,t);const s=we(e),n=Ud(this.activation.getClassName());let i;return n!=null?i=Cn(s,this.kernel.read(),n,this.bias?this.bias.read():null):(i=Cn(s,this.kernel.read()),this.bias!=null&&(i=Cs(i,this.bias.read())),this.activation!=null&&(i=this.activation.apply(i))),i})}getConfig(){const e={units:this.units,activation:jn(this.activation),useBias:this.useBias,kernelInitializer:Ze(this.kernelInitializer),biasInitializer:Ze(this.biasInitializer),kernelRegularizer:Pe(this.kernelRegularizer),biasRegularizer:Pe(this.biasRegularizer),activityRegularizer:Pe(this.activityRegularizer),kernelConstraint:ot(this.kernelConstraint),biasConstraint:ot(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}}$m.className="Dense";V.registerClass($m);class Wm extends Le{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=Ue(e);for(const t of e.slice(1))if(t==null)throw new k(`The shape of the input to "Flatten" is not fully defined (got ${e.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[e[0],Nn(e,1)]}call(e,t){return C(()=>{this.invokeCallHook(e,t);let s=we(e);if(this.dataFormat==="channelsFirst"&&s.rank>1){const n=[0];for(let i=2;i{this.invokeCallHook(e,t);const s=we(e);return this.activation.apply(s)})}getConfig(){const e={activation:jn(this.activation)},t=super.getConfig();return Object.assign(e,t),e}}zm.className="Activation";V.registerClass(zm);class Pm extends Le{constructor(e){super(e);this.n=e.n,this.inputSpec=[{ndim:2}]}computeOutputShape(e){return[e[0],this.n,e[1]]}call(e,t){return C(()=>(e=we(e),IA(e,this.n)))}getConfig(){const e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}}Pm.className="RepeatVector";V.registerClass(Pm);class Bm extends Le{constructor(e){super(e);this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);const s=we(e),n=s.shape,i=n.slice(0,1).concat(this.fixUnknownDimension(n.slice(1),this.targetShape));return s.reshape(i)})}getConfig(){const e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}}Bm.className="Reshape";V.registerClass(Bm);class jm extends Le{constructor(e){super(e);if(e.dims==null)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(e.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${e.dims} instead.`);const t=cs(1,e.dims.length+1);if(!N.arraysEqual(e.dims.slice().sort(),t))throw new Error("Invalid permutation `dims`: "+JSON.stringify(e.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=e.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new st({ndim:this.dims.length+1})]}computeOutputShape(e){e=Ue(e);const t=e.slice();return this.dims.forEach((s,n)=>{t[n+1]=e[s]}),t}call(e,t){return se(we(e),this.dimsIncludingBatch)}getConfig(){const e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}}jm.className="Permute";V.registerClass(jm);class Vm extends Le{constructor(e){super(e??{});this.supportsMasking=!0,e!=null?this.maskValue=e.maskValue==null?0:e.maskValue:this.maskValue=0}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={maskValue:this.maskValue};return Object.assign(t,e),t}computeMask(e,t){const s=we(e),n=-1;return Zo(Js(s,this.maskValue),n)}call(e,t){return C(()=>{this.invokeCallHook(e,t);const s=we(e),n=-1,i=!0,r=Zo(Js(s,this.maskValue),n,i),o=s.mul(r.asType(s.dtype));return o})}}Vm.className="Masking";V.registerClass(Vm);class Gm extends Le{constructor(e){super(e);if(this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",e.batchInputShape==null&&e.inputShape==null){let t=null;e.batchSize!=null&&(t=e.batchSize),e.inputLength==null?this.batchInputShape=[t,null]:this.batchInputShape=[t].concat(He(e.inputLength))}this.inputDim=e.inputDim,yt(this.inputDim,"inputDim"),this.outputDim=e.outputDim,yt(this.outputDim,"outputDim"),this.embeddingsInitializer=je(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=Ye(e.embeddingsRegularizer),this.activityRegularizer=Ye(e.activityRegularizer),this.embeddingsConstraint=at(e.embeddingsConstraint),this.maskZero=e.maskZero,this.supportsMasking=e.maskZero,this.inputLength=e.inputLength}build(e){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(e){}computeMask(e,t){return C(()=>this.maskZero?(e=we(e),Js(e,re(e))):null)}computeOutputShape(e){if(e=Ue(e),this.inputLength==null)return[...e,this.outputDim];const t=He(this.inputLength);if(t.length!==e.length-1)throw new k(`"inputLength" is ${this.inputLength}, but received input shape has shape ${e}`);{let s=0;for(let n=0;n{this.invokeCallHook(e,t);let s=we(e);s.dtype!=="int32"&&(s=ji(s,"int32"));const n=Gd(this.embeddings.read(),s.as1D());return n.reshape(Ue(this.computeOutputShape(s.shape)))})}getConfig(){const e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Ze(this.embeddingsInitializer),embeddingsRegularizer:Pe(this.embeddingsRegularizer),activityRegularizer:Pe(this.activityRegularizer),embeddingsConstraint:ot(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}}Gm.className="Embedding";V.registerClass(Gm);class Ia extends Le{constructor(e){super(e||{});this.supportsMasking=!0}mergeFunction(e){throw new ae}computeElementwiseOpOutputShape(e,t){if(e==null||t==null)return null;if(e.length1)throw new k(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(e)}.`);let s=e[0]==null?null:e[0].slice(1);for(let i=1;ii.length);e.indexOf(null)===-1&&An(n).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return C(()=>{if(e=e,this.reshapeRequired){const s=[],n=e.map(i=>i.rank);if(n.indexOf(null)===-1){const i=Pn(n);for(let r of e){const o=r.rank;for(let a=0;a1){const c=cs(1,l).concat([0]);s.push(se(a,c)),i=!0}else s.push(a)}let r=this.mergeFunction(s);const o=r.rank;if(i){if(o==null){const a=r.shape,l=a.length,c=a[l-1],p=[c].concat(a.slice(0,a.length-1));r=se(r.reshape([-1,c]),[1,0]).reshape(p)}else if(o>1){const a=[o-1].concat(cs(0,o-1));r=se(r,a)}}return r}}else return this.mergeFunction(e)})}computeOutputShape(e){e=e;let t;e[0]==null?t=null:t=e[0].slice(1);for(let n=1;n{if(t==null)return null;if(!Array.isArray(t))throw new k("`mask` should be an Array");if(!Array.isArray(e))throw new k("`inputs` should be an Array");if(t.length!==e.length)throw new k(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${e.length} vs ${t.length})`);if(t.every(n=>n==null))return null;t=t.map(n=>n==null?n:Mt(n,0));let s=t[0];for(let n=1;n{let t=e[0].clone();for(let s=1;s{let t=e[0].clone();for(let s=1;s{let t=e[0].clone();for(let s=1;s{let t=e[0];for(let s=1;s{let t=e[0];for(let s=1;s1)throw new k("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return C(()=>$l(e,this.axis))}computeOutputShape(e){if(!(Array.isArray(e)&&Array.isArray(e[0])))throw new k("A `Concatenate` layer should be called on a list of inputs.");const t=e,s=t[0].slice(),n=this.axis<0?s.length+this.axis:this.axis;for(const i of t.slice(1)){if(s[n]==null||i[n]==null){s[n]=null;break}s[n]+=i[n]}return s}computeMask(e,t){if(t==null)return null;if(!Array.isArray(t))throw new k("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new k("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new k(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return C(()=>{let s=!0;if(t.forEach(r=>{if(r!=null){s=!1;return}}),s)return null;const n=[];for(let r=0;r3||t.shape.length>3)throw new ae("batchDot is not implemented for tensors of 4D or higher rank yet");if(N.assert(e.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${e.shape.length}`),N.assert(e.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${t.shape.length}`),typeof s=="number"&&(s=[s,s]),e.dtype==="complex64"||t.dtype==="complex64")throw new ae("batchDot is not implemented for complex64-type Tensors yet.");const n=e.shape.length,i=t.shape.length;s==null&&(s=[n-1,i-2]);const r=s;return C(()=>{let o;if(n>i){o=n-i;const l=[];for(let c=0;cn){o=i-n;const l=[];for(let c=0;c0){let l;n>i?l=n+i-3:l=n-1;const c=[];for(let p=l;p"A `Dot` layer should be called on a list of exactly 2 inputs.");const t=e[0],s=e[1];if(t.length>3||s.length>3)throw new ae("Dot layer does not support tensors of 4D or higher rank yet.");const n=this.interpretAxes(t,s);if(t[n[0]]!==s[n[1]])throw new k(`Dimension incompatibility: ${t[n[0]]} !== ${s[n[1]]}`)}mergeFunction(e){if(e.length!==2)throw new k(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${e.length} input(s).`);let t=e[0],s=e[1],n;return Array.isArray(this.axes)?n=this.axes.map((i,r)=>Nu(i,e[r].shape.length)):n=[Nu(this.axes,t.shape.length),Nu(this.axes,s.shape.length)],this.normalize&&(t=pu(t,n[0]),s=pu(s,n[1])),qz(t,s,n)}interpretAxes(e,t){let s;return Array.isArray(this.axes)?s=this.axes:s=[Nu(this.axes,e.length),Nu(this.axes,t.length)],s}computeOutputShape(e){N.assert(Array.isArray(e)&&e.length===2&&Array.isArray(e[0])&&Array.isArray(e[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");const t=e[0].slice(),s=e[1].slice();if(t.length>3||s.length>3)throw new ae("Dot layer does not support tensors of 4D or higher rank yet.");const n=this.interpretAxes(t,s);t.splice(n[0],1),s.splice(n[1],1),s.splice(0,1);const i=t.concat(s);return i.length===1&&i.push(1),i}computeMask(e,t){return null}getConfig(){const e={axes:this.axes,normalize:this.normalize},t=super.getConfig();return Object.assign(e,t),e}}Zm.className="Dot";V.registerClass(Zm);class Qm extends Le{constructor(e){super(e);this.supportsMasking=!0,this.stddev=e.stddev}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={stddev:this.stddev};return Object.assign(t,e),t}call(e,t){return C(()=>{this.invokeCallHook(e,t);const s=we(e),n=()=>Wl(s.shape,0,this.stddev).add(s),i=lo(n,()=>s,t.training||!1);return i})}}Qm.className="GaussianNoise";V.registerClass(Qm);class ef extends Le{constructor(e){super(e);this.supportsMasking=!0,this.rate=e.rate}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return C(()=>{this.invokeCallHook(e,t);const s=we(e);if(this.rate>0&&this.rate<1){const n=()=>{const i=Math.sqrt(this.rate/(1-this.rate));return s.mul(Wl(s.shape,1,i))};return lo(n,()=>s,t.training||!1)}return s})}}ef.className="GaussianDropout";V.registerClass(ef);class tf extends Le{constructor(e){super(e);this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||we(e).shape}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return C(()=>{if(this.rate<1&&this.rate>0){const s=this._getNoiseShape(e),n=()=>{const i=we(e),r=1.6732632423543772,o=1.0507009873554805,a=-r*o;let l=ms(wn(s),this.rate);l=ji(l,"float32");const c=((1-this.rate)*(1+this.rate*a**2))**-.5,p=-c*a*this.rate,u=i.mul(l).add(l.add(-1).mul(a));return u.mul(c).add(p)};return lo(n,()=>we(e),t.training||!1)}return e})}}tf.className="AlphaDropout";V.registerClass(tf);function Cu(e,t,s,n,i,r=.001){let o;if(e.rank===2)o=Yh(e,t,s,n,i,r);else if(e.rank===3)o=Kh(e,t,s,n,i,r);else if(e.rank===4)o=Xh(e,t,s,n,i,r);else throw new ae(`batchNormalization is not implemented for array of rank ${e.rank} yet`);return o}function Hz(e,t,s,n,i=.001){return C(()=>{const r=na(e,n),o=r.mean,a=r.variance,l=Cu(e,o,a,s,t,i);return[l,o,a]})}function Yz(e,t,s,n,i=.001){return C(()=>{const r=na(e,n),o=r.mean,a=r.variance,l=[];for(const m of cs(0,e.rank))n.indexOf(m)!==-1?l.push(1):l.push(e.shape[m]);const c=o.reshape(l),p=a.reshape(l),u=t==null?null:t.reshape(l),h=s==null?null:s.reshape(l),d=Cu(e,c,p,h,u,i);return[d,o,a]})}function Kz(e,t,s,n,i=.001){return N.arraysEqual(n.slice().sort(),cs(0,e.rank-1))?Hz(e,t,s,n,i):Yz(e,t,s,n,i)}class sf extends Le{constructor(e){e==null&&(e={}),super(e),this.supportsMasking=!0,this.axis=e.axis==null?-1:e.axis,this.momentum=e.momentum==null?.99:e.momentum,this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=je(e.betaInitializer||"zeros"),this.gammaInitializer=je(e.gammaInitializer||"ones"),this.movingMeanInitializer=je(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=je(e.movingVarianceInitializer||"ones"),this.betaConstraint=at(e.betaConstraint),this.gammaConstraint=at(e.gammaConstraint),this.betaRegularizer=Ye(e.betaRegularizer),this.gammaRegularizer=Ye(e.gammaRegularizer)}build(e){e=Ue(e);const t=this.axis>=0?this.axis:this.axis+e.length,s=e[t];if(s==null)throw new k(`Axis ${t} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(e)}.`);this.inputSpec=[new st({ndim:e.length,axes:{[t]:s}})];const n=[s];this.scale&&(this.gamma=this.addWeight("gamma",n,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",n,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",n,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",n,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(e,t){return C(()=>{const s=t.training==null?!1:t.training,n=we(e),i=n.shape,r=i.length,o=cs(0,r),a=this.axis>=0?this.axis:this.axis+r;o.splice(a,1);const l=In(1,r);l[a]=i[a];const c=o.slice();c.sort();const p=!N.arraysEqual(c,cs(0,r).slice(0,r-1)),u=()=>{if(p){const y=this.movingMean.read().reshape(l),w=this.movingVariance.read().reshape(l),x=this.center?this.beta.read().reshape(l):null,T=this.scale?this.gamma.read().reshape(l):null;return Cu(n,y,w,x,T,this.epsilon)}else return Cu(n,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!s)return u();const[h,d,m]=Kz(n,this.gamma.read(),this.beta.read(),o,this.epsilon),f=(y,w,x)=>{C(()=>{const T=1-x,A=y.read(),_=A.sub(w).mul(T);y.write(A.sub(_))})},g=()=>{f(this.movingMean,d,this.momentum),f(this.movingVariance,m,this.momentum)};return g(),h})}getConfig(){const e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Ze(this.betaInitializer),gammaInitializer:Ze(this.gammaInitializer),movingMeanInitializer:Ze(this.movingMeanInitializer),movingVarianceInitializer:Ze(this.movingVarianceInitializer),betaRegularizer:Pe(this.betaRegularizer),gammaRegularizer:Pe(this.gammaRegularizer),betaConstraint:ot(this.betaConstraint),gammaConstraint:ot(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}}sf.className="BatchNormalization";V.registerClass(sf);class nf extends Le{constructor(e){if(e==null&&(e={}),super(e),this.axis=e.axis==null?-1:e.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(const t of this.axis)if(!Number.isInteger(t))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=je(e.betaInitializer||"zeros"),this.gammaInitializer=je(e.gammaInitializer||"ones"),this.betaRegularizer=Ye(e.betaRegularizer),this.gammaRegularizer=Ye(e.gammaRegularizer),this.supportsMasking=!0}build(e){e=Ue(e);const t=e.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let i=0;i=t)throw new Error(`Invalid axis: ${i}`);if(this.axis.length!==An(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);const s=this.axis.map(i=>e[i]),n=!0;this.scale?this.gamma=this.addWeight("gamma",s,"float32",this.gammaInitializer,this.gammaRegularizer,n):this.gamma=null,this.center?this.beta=this.addWeight("beta",s,"float32",this.betaInitializer,this.betaRegularizer,n):this.beta=null,this.built=!0}call(e,t){const s=we(e),n=s.shape,i=n.length;return C(()=>{const r=!0;let{mean:o,variance:a}=na(s,this.axis,r);const l=In(1,i);for(const m of this.axis)l[m]=n[m];const c=m=>m!=null&&m.shape.length!==i&&this.axis!==[i-1]?m.reshape(l):m;let p=c(this.gamma.read()),u=c(this.beta.read());const h=[],d=[];for(let m=0;m{if(e.rank!==4)throw new k(`temporalPadding expects input tensor to be 4-D, but received a ${e.rank}-D tensor.`);if(t==null&&(t=[[1,1],[1,1]]),t.length!==2||t[0].length!==2||t[1].length!==2)throw new k("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(s==null&&(s=ys()),s!=="channelsLast"&&s!=="channelsFirst")throw new k(`Unknown data format: ${s}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let n;return s==="channelsFirst"?n=[[0,0],[0,0],t[0],t[1]]:n=[[0,0],t[0],t[1],[0,0]],Pt(e,n)})}class rf extends Le{constructor(e){if(e==null&&(e={}),super(e),this.dataFormat=e.dataFormat==null?ys():e.dataFormat,e.padding==null)this.padding=[[1,1],[1,1]];else if(typeof e.padding=="number")this.padding=[[e.padding,e.padding],[e.padding,e.padding]];else{if(e.padding=e.padding,e.padding.length!==2)throw new k(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${e.padding.length} array.`);let t,s;if(typeof e.padding[0]=="number")t=[e.padding[0],e.padding[0]],s=[e.padding[1],e.padding[1]];else{if(e.padding=e.padding,e.padding[0].length!==2)throw new k(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${e.padding[0].length} array.`);if(t=e.padding[0],e.padding[1].length!==2)throw new k(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${e.padding[1].length} array.`);s=e.padding[1]}this.padding=[t,s]}this.inputSpec=[new st({ndim:4})]}computeOutputShape(e){e=Ue(e);let t,s;return this.dataFormat==="channelsFirst"?(e[2]!=null&&e[2]>=0?t=e[2]+this.padding[0][0]+this.padding[0][1]:t=null,e[3]!=null&&e[3]>=0?s=e[3]+this.padding[1][0]+this.padding[1][1]:s=null,[e[0],e[1],t,s]):(e[1]!=null&&e[1]>=0?t=e[1]+this.padding[0][0]+this.padding[0][1]:t=null,e[2]!=null&&e[2]>=0?s=e[2]+this.padding[1][0]+this.padding[1][1]:s=null,[e[0],t,s,e[3]])}call(e,t){return C(()=>Xz(we(e),this.padding,this.dataFormat))}getConfig(){const e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}rf.className="ZeroPadding2D";V.registerClass(rf);function of(e,t,s,n,i,r){return C(()=>{lt(i),Pb(r),bs(n),s==null&&(s=[1,1]),n==null&&(n="valid"),i==null&&(i=ys()),r==null&&(r="max"),e=bu(e,i);let o;const a=n==="same"?"same":"valid";return r==="max"?o=ft(e,t,s,a):o=ds(e,t,s,a),i==="channelsFirst"&&(o=se(o,[0,3,1,2])),o})}function NN(e,t,s,n,i,r){return C(()=>{lt(i),Pb(r),bs(n),s==null&&(s=[1,1,1]),n==null&&(n="valid"),i==null&&(i=ys()),r==null&&(r="max"),e=rw(e,i);let o;const a=n==="same"?"same":"valid";return r==="max"?o=Tl(e,t,s,a):o=ml(e,t,s,a),i==="channelsFirst"&&(o=se(o,[0,4,1,2,3])),o})}class CN extends Le{constructor(e){if(e.poolSize==null&&(e.poolSize=2),super(e),typeof e.poolSize=="number")this.poolSize=[e.poolSize];else if(Array.isArray(e.poolSize)&&e.poolSize.length===1&&typeof e.poolSize[0]=="number")this.poolSize=e.poolSize;else throw new k(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.poolSize)}`);if(yt(this.poolSize,"poolSize"),e.strides==null)this.strides=this.poolSize;else if(typeof e.strides=="number")this.strides=[e.strides];else if(Array.isArray(e.strides)&&e.strides.length===1&&typeof e.strides[0]=="number")this.strides=e.strides;else throw new k(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.strides)}`);yt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,bs(this.padding),this.inputSpec=[new st({ndim:3})]}computeOutputShape(e){e=Ue(e);const t=Rs(e[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return C(()=>{this.invokeCallHook(e,t),e=Vi(we(e),2);const s=this.poolingFunction(we(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return Qs(s,[2])})}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}}class af extends CN{constructor(e){super(e)}poolingFunction(e,t,s,n,i){return lt(i),bs(n),of(e,t,s,n,i,"max")}}af.className="MaxPooling1D";V.registerClass(af);class lf extends CN{constructor(e){super(e)}poolingFunction(e,t,s,n,i){return lt(i),bs(n),of(e,t,s,n,i,"avg")}}lf.className="AveragePooling1D";V.registerClass(lf);class RN extends Le{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==2)throw new k(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides];yt(this.poolSize,"poolSize"),yt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,lt(this.dataFormat),bs(this.padding),this.inputSpec=[new st({ndim:4})]}computeOutputShape(e){e=Ue(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],s=this.dataFormat==="channelsFirst"?e[3]:e[2];return t=Rs(t,this.poolSize[0],this.padding,this.strides[0]),s=Rs(s,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,s]:[e[0],t,s,e[3]]}call(e,t){return C(()=>(this.invokeCallHook(e,t),this.poolingFunction(we(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}class cf extends RN{constructor(e){super(e)}poolingFunction(e,t,s,n,i){return lt(i),bs(n),of(e,t,s,n,i,"max")}}cf.className="MaxPooling2D";V.registerClass(cf);class pf extends RN{constructor(e){super(e)}poolingFunction(e,t,s,n,i){return lt(i),bs(n),of(e,t,s,n,i,"avg")}}pf.className="AveragePooling2D";V.registerClass(pf);class ON extends Le{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==3)throw new k(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides,e.strides];yt(this.poolSize,"poolSize"),yt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,lt(this.dataFormat),bs(this.padding),this.inputSpec=[new st({ndim:5})]}computeOutputShape(e){e=Ue(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],s=this.dataFormat==="channelsFirst"?e[3]:e[2],n=this.dataFormat==="channelsFirst"?e[4]:e[3];return t=Rs(t,this.poolSize[0],this.padding,this.strides[0]),s=Rs(s,this.poolSize[1],this.padding,this.strides[1]),n=Rs(n,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,s,n]:[e[0],t,s,n,e[4]]}call(e,t){return C(()=>(this.invokeCallHook(e,t),this.poolingFunction(we(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}class uf extends ON{constructor(e){super(e)}poolingFunction(e,t,s,n,i){return lt(i),bs(n),NN(e,t,s,n,i,"max")}}uf.className="MaxPooling3D";V.registerClass(uf);class hf extends ON{constructor(e){super(e)}poolingFunction(e,t,s,n,i){return lt(i),bs(n),NN(e,t,s,n,i,"avg")}}hf.className="AveragePooling3D";V.registerClass(hf);class EN extends Le{constructor(e){super(e);this.inputSpec=[new st({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new ae}}class df extends EN{constructor(e){super(e||{})}call(e,t){return C(()=>{const s=we(e);return Xe(s,1)})}}df.className="GlobalAveragePooling1D";V.registerClass(df);class mf extends EN{constructor(e){super(e||{})}call(e,t){return C(()=>{const s=we(e);return Lt(s,1)})}}mf.className="GlobalMaxPooling1D";V.registerClass(mf);class _N extends Le{constructor(e){super(e);this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,lt(this.dataFormat),this.inputSpec=[new st({ndim:4})]}computeOutputShape(e){return e=e,this.dataFormat==="channelsLast"?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new ae}getConfig(){const e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}class ff extends _N{call(e,t){return C(()=>{const s=we(e);return this.dataFormat==="channelsLast"?Xe(s,[1,2]):Xe(s,[2,3])})}}ff.className="GlobalAveragePooling2D";V.registerClass(ff);class gf extends _N{call(e,t){return C(()=>{const s=we(e);return this.dataFormat==="channelsLast"?Lt(s,[1,2]):Lt(s,[2,3])})}}gf.className="GlobalMaxPooling2D";V.registerClass(gf);class kN extends Le{constructor(e){super(e);this.layer=e.layer}build(e){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(e){this.layer!=null&&(this.layer.trainable=e)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(e){this.layer.setWeights(e)}getConfig(){const e={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},t=super.getConfig();return Object.assign(e,t),e}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(e)}static fromConfig(e,t,s={}){const n=t.layer,i=Ls(n,s);delete t.layer;const r={layer:i};return Object.assign(r,t),new e(r)}}class yf extends kN{constructor(e){super(e);this.supportsMasking=!0}build(e){if(e=Ue(e),e.length<3)throw new k(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(e)}`);this.inputSpec=[{shape:e}];const t=[e[0]].concat(e.slice(2));this.layer.built||(this.layer.build(t),this.layer.built=!0),super.build(e)}computeOutputShape(e){e=Ue(e);const t=[e[0]].concat(e.slice(2)),s=this.layer.computeOutputShape(t),n=e[1];return[s[0],n].concat(s.slice(1))}call(e,t){return C(()=>{e=we(e);const s=(r,o)=>{const a=we(this.layer.call(r,t));return[a,[]]},n=aw(s,e,[],!1,null,null,!1,!0),i=n[1];return i})}}yf.className="TimeDistributed";V.registerClass(yf);function Jz(e){Bi(bA,"BidirectionalMergeMode",e)}const Zz="concat";class bf extends kN{constructor(e){super(e);const t=e.layer.getConfig(),s={};s.className=e.layer.getClassName(),s.config=t,this.forwardLayer=Ls(s),t.goBackwards=!(t.goBackwards===!0);const n={};if(n.className=e.layer.getClassName(),n.config=t,this.backwardLayer=Ls(n),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=e.mergeMode===void 0?Zz:e.mergeMode,Jz(this.mergeMode),e.weights)throw new ae("weights support is not implemented for Bidirectional layer yet.");this._stateful=e.layer.stateful,this.returnSequences=e.layer.returnSequences,this.returnState=e.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=e.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(e){this._trainable=e,this.forwardLayer!=null&&(this.forwardLayer.trainable=e),this.backwardLayer!=null&&(this.backwardLayer.trainable=e)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(e){const t=e.length,s=Math.floor(t/2);this.forwardLayer.setWeights(e.slice(0,s)),this.backwardLayer.setWeights(e.slice(s))}computeOutputShape(e){let t=this.forwardLayer.computeOutputShape(e);Array.isArray(t)&&Array.isArray(t[0])||(t=[t]),t=t;let s,n,i;return this.returnState&&(i=t.slice(1)),s=t[0],s=s,this.mergeMode==="concat"?(s[s.length-1]*=2,n=[s]):this.mergeMode==null?n=[s,s.slice()]:n=[s],this.returnState?this.mergeMode==null?n.concat(i).concat(i.slice()):[s].concat(i).concat(i.slice()):jt(n)}apply(e,t){let s=t==null?null:t.initialState,n=t==null?null:t.constants;t==null&&(t={});const i=ow(e,s,n,this.numConstants);if(e=i.inputs,s=i.initialState,n=i.constants,Array.isArray(e)&&(s=e.slice(1),e=e[0]),(s==null||s.length===0)&&n==null)return super.apply(e,t);const r=[],o=[];if(s!=null){const l=s.length;if(l%2>0)throw new k("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");t.initialState=s,r.push(...s);const c=s.map(p=>new st({shape:p.shape}));this.forwardLayer.stateSpec=c.slice(0,l/2),this.backwardLayer.stateSpec=c.slice(l/2),o.push(...c)}if(n!=null)throw new ae("Support for constants in Bidirectional layers is not implemented yet.");const a=r[0]instanceof xs;for(const l of r)if(l instanceof xs!==a)throw new k("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(a){const l=[e].concat(r),c=this.inputSpec.concat(o),p=this.inputSpec;this.inputSpec=c;const u=super.apply(l,t);return this.inputSpec=p,u}else return super.apply(e,t)}call(e,t){return C(()=>{const s=t.initialState;let n,i;if(s==null)n=this.forwardLayer.call(e,t),i=this.backwardLayer.call(e,t);else{const a=s.slice(0,s.length/2),l=s.slice(s.length/2);n=this.forwardLayer.call(e,Object.assign(t,{initialState:a})),i=this.backwardLayer.call(e,Object.assign(t,{initialState:l}))}let r;this.returnState&&(Array.isArray(n)&&(r=n.slice(1).concat(i.slice(1))),n=n[0],i=i[0]),this.returnSequences&&(i=Et(i,1));let o;return this.mergeMode==="concat"?o=$l([n,i]):this.mergeMode==="sum"?o=$(n,i):this.mergeMode==="ave"?o=R(.5,$(n,i)):this.mergeMode==="mul"?o=R(n,i):this.mergeMode==null&&(o=[n,i]),this.returnState?this.mergeMode==null?o.concat(r):[o].concat(r):o})}resetStates(e){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(e){zn(this.forwardLayer.name,()=>{this.forwardLayer.build(e)}),zn(this.backwardLayer.name,()=>{this.backwardLayer.build(e)}),this.built=!0}computeMask(e,t){Array.isArray(t)&&(t=t[0]);let s;if(this.returnSequences?this.mergeMode==null?s=[t,t]:s=t:this.mergeMode==null?s=[null,null]:s=null,this.returnState){const n=this.forwardLayer.states,i=n.map(r=>null);return Array.isArray(s)?s.concat(i).concat(i):[s].concat(i).concat(i)}else return s}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(e),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(e)}getConfig(){const e={mergeMode:this.mergeMode},t=super.getConfig();return Object.assign(e,t),e}static fromConfig(e,t){const s=Ls(t.layer);if(delete t.layer,t.numConstants!=null)throw new ae("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");const n=t;return n.layer=s,new e(n)}}bf.className="Bidirectional";V.registerClass(bf);const lw={};Ee(lw,{Layer:()=>Le,RNN:()=>rn,RNNCell:()=>go,activation:()=>mP,add:()=>IP,alphaDropout:()=>oB,average:()=>vP,averagePooling1d:()=>cw,averagePooling2d:()=>pw,averagePooling3d:()=>uw,avgPool1d:()=>kP,avgPool2d:()=>FP,avgPool3d:()=>UP,avgPooling1d:()=>DP,avgPooling2d:()=>MP,avgPooling3d:()=>$P,batchNormalization:()=>OP,bidirectional:()=>ZP,concatenate:()=>TP,conv1d:()=>oP,conv2d:()=>aP,conv2dTranspose:()=>lP,conv3d:()=>cP,convLstm2d:()=>YP,convLstm2dCell:()=>KP,cropping2D:()=>uP,dense:()=>fP,depthwiseConv2d:()=>dP,dot:()=>RP,dropout:()=>gP,elu:()=>eP,embedding:()=>SP,flatten:()=>bP,gaussianDropout:()=>rB,gaussianNoise:()=>iB,globalAveragePooling1d:()=>WP,globalAveragePooling2d:()=>zP,globalMaxPool1d:()=>eB,globalMaxPool2d:()=>tB,globalMaxPooling1d:()=>DN,globalMaxPooling2d:()=>FN,gru:()=>BP,gruCell:()=>jP,input:()=>wm,inputLayer:()=>Qz,layerNormalization:()=>EP,leakyReLU:()=>sP,lstm:()=>VP,lstmCell:()=>GP,masking:()=>aB,maxPool1d:()=>sB,maxPool2d:()=>nB,maxPooling1d:()=>MN,maxPooling2d:()=>UN,maxPooling3d:()=>PP,maximum:()=>AP,minimum:()=>NP,multiply:()=>CP,permute:()=>LP,prelu:()=>nP,reLU:()=>tP,repeatVector:()=>wP,reshape:()=>xP,rnn:()=>XP,separableConv2d:()=>pP,simpleRNN:()=>qP,simpleRNNCell:()=>HP,softmax:()=>iP,spatialDropout1d:()=>yP,stackedRNNCells:()=>JP,thresholdedReLU:()=>rP,timeDistributed:()=>QP,upSampling2d:()=>hP,zeroPadding2d:()=>_P});function Qz(e){return new qi(e)}function eP(e){return new vm(e)}function tP(e){return new Lm(e)}function sP(e){return new Sm(e)}function nP(e){return new Im(e)}function iP(e){return new Am(e)}function rP(e){return new Tm(e)}function oP(e){return new Lu(e)}function aP(e){return new Kl(e)}function lP(e){return new Cm(e)}function cP(e){return new xu(e)}function pP(e){return new Rm(e)}function uP(e){return new Om(e)}function hP(e){return new Em(e)}function dP(e){return new _m(e)}function mP(e){return new zm(e)}function fP(e){return new $m(e)}function gP(e){return new Au(e)}function yP(e){return new Um(e)}function bP(e){return new Wm(e)}function wP(e){return new Pm(e)}function xP(e){return new Bm(e)}function LP(e){return new jm(e)}function SP(e){return new Gm(e)}function IP(e){return new qm(e)}function vP(e){return new Ym(e)}function TP(e){return new Jm(e)}function AP(e){return new Km(e)}function NP(e){return new Xm(e)}function CP(e){return new Hm(e)}function RP(e){return new Zm(e)}function OP(e){return new sf(e)}function EP(e){return new nf(e)}function _P(e){return new rf(e)}function cw(e){return new lf(e)}function kP(e){return cw(e)}function DP(e){return cw(e)}function pw(e){return new pf(e)}function FP(e){return pw(e)}function MP(e){return pw(e)}function uw(e){return new hf(e)}function UP(e){return uw(e)}function $P(e){return uw(e)}function WP(e){return new df(e)}function zP(e){return new ff(e)}function DN(e){return new mf(e)}function FN(e){return new gf(e)}function MN(e){return new af(e)}function UN(e){return new cf(e)}function PP(e){return new uf(e)}function BP(e){return new Dm(e)}function jP(e){return new vu(e)}function VP(e){return new Fm(e)}function GP(e){return new Sa(e)}function qP(e){return new km(e)}function HP(e){return new Iu(e)}function YP(e){return new Mm(e)}function KP(e){return new Tu(e)}function XP(e){return new rn(e)}function JP(e){return new Su(e)}function ZP(e){return new bf(e)}function QP(e){return new yf(e)}const eB=DN,tB=FN,sB=MN,nB=UN;function iB(e){return new Qm(e)}function rB(e){return new ef(e)}function oB(e){return new tf(e)}function aB(e){return new Vm(e)}const hw={};Ee(hw,{MAPE:()=>bB,MSE:()=>LB,binaryAccuracy:()=>lB,binaryCrossentropy:()=>cB,categoricalAccuracy:()=>uB,categoricalCrossentropy:()=>hB,cosineProximity:()=>fB,mape:()=>wB,meanAbsoluteError:()=>gB,meanAbsolutePercentageError:()=>yB,meanSquaredError:()=>xB,mse:()=>SB,precision:()=>dB,recall:()=>mB,sparseCategoricalAccuracy:()=>pB});function lB(e,t){return du(e,t)}function cB(e,t){return cm(e,t)}function pB(e,t){return pm(e,t)}function uB(e,t){return mu(e,t)}function hB(e,t){return fu(e,t)}function dB(e,t){return Xb(e,t)}function mB(e,t){return MA(e,t)}function fB(e,t){return uu(e,t)}function gB(e,t){return Vl(e,t)}function yB(e,t){return po(e,t)}function bB(e,t){return po(e,t)}function wB(e,t){return po(e,t)}function xB(e,t){return yi(e,t)}function LB(e,t){return yi(e,t)}function SB(e,t){return yi(e,t)}const dw={};Ee(dw,{modelFromJSON:()=>tN});const mw={};Ee(mw,{l1:()=>vB,l1l2:()=>IB,l2:()=>TB});function IB(e){return new Yl(e)}function vB(e){return xN(e)}function TB(e){return LN(e)}class fw extends ba{constructor(){super(...arguments);this.model=null}setModel(e){if(!(e instanceof nn))throw new Error("model must be a LayersModel, not some other Container");this.model=e}}function wf(e,t){return et}class gw extends fw{constructor(e){super();if(e==null&&(e={}),e.restoreBestWeights)throw new ae("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=e.monitor||"val_loss",this.minDelta=Math.abs(e.minDelta||0),this.patience=e.patience||0,this.verbose=e.verbose||0,this.mode=e.mode||"auto",this.baseline=e.baseline,["auto","min","max"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=wf:this.mode==="max"?this.monitorFunc=$N:this.monitor.indexOf("acc")!==-1?this.monitorFunc=$N:this.monitorFunc=wf,this.monitorFunc===wf&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===wf?Infinity:-Infinity}async onEpochEnd(e,t){await gi(t);const s=this.getMonitorValue(t);if(s==null)return;this.monitorFunc(s-this.minDelta,this.best)?(this.best=s,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=e,this.model.stopTraining=!0))}async onTrainEnd(e){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(e){e==null&&(e={});const t=e[this.monitor];return t==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(e)}`),t}}function AB(e){return new gw(e)}const WN={earlyStopping:AB};var Rn;(function(e){e[e.DT_INVALID=0]="DT_INVALID",e[e.DT_FLOAT=1]="DT_FLOAT",e[e.DT_DOUBLE=2]="DT_DOUBLE",e[e.DT_INT32=3]="DT_INT32",e[e.DT_UINT8=4]="DT_UINT8",e[e.DT_INT16=5]="DT_INT16",e[e.DT_INT8=6]="DT_INT8",e[e.DT_STRING=7]="DT_STRING",e[e.DT_COMPLEX64=8]="DT_COMPLEX64",e[e.DT_INT64=9]="DT_INT64",e[e.DT_BOOL=10]="DT_BOOL",e[e.DT_QINT8=11]="DT_QINT8",e[e.DT_QUINT8=12]="DT_QUINT8",e[e.DT_QINT32=13]="DT_QINT32",e[e.DT_BFLOAT16=14]="DT_BFLOAT16",e[e.DT_FLOAT_REF=101]="DT_FLOAT_REF",e[e.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",e[e.DT_INT32_REF=103]="DT_INT32_REF",e[e.DT_UINT8_REF=104]="DT_UINT8_REF",e[e.DT_INT16_REF=105]="DT_INT16_REF",e[e.DT_INT8_REF=106]="DT_INT8_REF",e[e.DT_STRING_REF=107]="DT_STRING_REF",e[e.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",e[e.DT_INT64_REF=109]="DT_INT64_REF",e[e.DT_BOOL_REF=110]="DT_BOOL_REF",e[e.DT_QINT8_REF=111]="DT_QINT8_REF",e[e.DT_QUINT8_REF=112]="DT_QUINT8_REF",e[e.DT_QINT32_REF=113]="DT_QINT32_REF",e[e.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF"})(Rn||(Rn={}));var zN;(function(e){let t;(function(s){s[s.LEGACY=0]="LEGACY",s[s.V1=1]="V1",s[s.V2=2]="V2"})(t=e.CheckpointFormatVersion||(e.CheckpointFormatVersion={}))})(zN||(zN={}));const yw={};function PN(e,t){const s={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};yw[e]=s}function xf(e){return yw[e]}function BN(e){delete yw[e]}function L(e,t,s,n){const i=t.inputParams[e];if(i&&i.inputIndexStart!==void 0){const o=i.inputIndexStart,a=i.inputIndexEnd===0?void 0:i.inputIndexEnd===void 0?o+1:i.inputIndexEnd;if(i.type==="tensor")return Vt(t.inputNames[i.inputIndexStart],s,n);if(i.type==="tensors"){const p=t.inputNames.slice(o,a);return p.map(u=>Vt(u,s,n))}const l=Vt(t.inputNames.slice(o)[0],s,n),c=l.dataSync();return i.type==="number"?c[0]:N.toNestedArray(l.shape,c)}const r=t.attrParams[e];return r&&r.value}function Vt(e,t,s){const[n,i]=Ss(e),r=s.currentContextIds.find(o=>!!t[Lf(n,o)]);return r!==void 0?t[Lf(n,r)][i]:void 0}function jN(e,t,s){return t[Lf(e,s.currentContextId)]}function Gn(e,t){const[s,n]=Ss(e);return[Lf(s,t&&t.currentContextId),n]}function Lf(e,t){return t?`${e}-${t}`:e}function Ss(e){const t=e.split(":");if(t.length===1)return[e,0];const s=t[0];return[s,Number(t[t.length-1])]}function Ru(e,t,s){let n=L("pad",e,t,s);if(n==="explicit"){n=L("explicitPaddings",e,t,s);const i=[[0,0],[0,0],[0,0],[0,0]];for(let r=0;r<4;r++)i[r][0]=n[r*2],i[r][1]=n[r*2+1];return i}return n}function qn(e){return e.kept?e:Fs(e)}const bw={};Ee(bw,{json:()=>NB});const NB=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];const ww={};Ee(ww,{json:()=>CB});const CB=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"clip_value_min",name:"clipValueMin",type:"number"},{tfName:"clip_value_max",name:"clipValueMax",type:"number"}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"clipValueMin",name:"clipValueMin",type:"number",defaultValue:0},{tfName:"clipValueMax",name:"clipValueMax",type:"number",defaultValue:6}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];const xw={};Ee(xw,{json:()=>RB});const RB=[{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]}];const Lw={};Ee(Lw,{json:()=>OB});const OB=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}];const Sw={};Ee(Sw,{json:()=>EB});const EB=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}];const Iw={};Ee(Iw,{json:()=>_B});const _B=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];const vw={};Ee(vw,{json:()=>kB});const kB=[{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}];const Tw={};Ee(Tw,{json:()=>DB});const DB=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}];const Aw={};Ee(Aw,{json:()=>FB});const FB=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]}];const Nw={};Ee(Nw,{json:()=>MB});const MB=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];const Cw={};Ee(Cw,{json:()=>UB});const UB=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];const Rw={};Ee(Rw,{json:()=>$B});const $B=[{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}];const Ow={};Ee(Ow,{json:()=>WB});const WB=[{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}];const Ew={};Ee(Ew,{json:()=>zB});const zB=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool",notSupported:!0}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}];const _w={};Ee(_w,{json:()=>PB});const PB=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}];const kw={};Ee(kw,{json:()=>BB});const BB=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]}];class Fw{static get Instance(){return this._instance||(this._instance=new this)}constructor(){const e=[bw,ww,xw,Lw,Sw,Iw,vw,Nw,Aw,Tw,Cw,Rw,Ow,Ew,_w,kw],t=[].concat(...e.map(s=>s.json));this.opMappers=t.reduce((s,n)=>(s[n.tfOpName]=n,s),{})}transformGraph(e,t={}){const s=e.node,n=[],i=[],r=[],o=s.reduce((m,f)=>(m[f.name]=this.mapNode(f),f.op.startsWith("Placeholder")?n.push(m[f.name]):f.op==="Const"?i.push(m[f.name]):(f.input==null||f.input.length===0)&&r.push(m[f.name]),m),{});let a=[];const l=[];let c={},p={};t!=null&&(c=this.mapSignatureEntries(t.inputs),p=this.mapSignatureEntries(t.outputs));const u=Object.keys(o);u.forEach(m=>{const f=o[m];f.inputNames.forEach(g=>{const[y]=Gn(g);f.inputs.push(o[y]),o[y].children.push(f)})}),Object.keys(p).length===0?u.forEach(m=>{const f=o[m];f.children.length===0&&l.push(f)}):Object.keys(p).forEach(m=>{const[f]=Gn(m),g=o[f];g!=null&&(g.signatureKey=p[m],l.push(g))}),Object.keys(c).length>0?Object.keys(c).forEach(m=>{const[f]=Gn(m),g=o[f];g&&(g.signatureKey=c[m],a.push(g))}):a=n;let h={};e.library!=null&&e.library.function!=null&&(h=e.library.function.reduce((m,f)=>(m[f.signature.name]=this.mapFunction(f),m),{}));const d={nodes:o,inputs:a,outputs:l,weights:i,placeholders:n,signature:t,functions:h};return r.length>0&&(d.initNodes=r),d}mapSignatureEntries(e){return Object.keys(e||{}).reduce((t,s)=>(t[e[s].name]=s,t),{})}mapNode(e){const t=xf(e.op)||this.opMappers[e.op]||{};e.attr==null&&(e.attr={});const s={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map(n=>n.startsWith("^")?n.substr(1):n),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr};return t.inputs!=null&&(s.inputParams=t.inputs.reduce((n,i)=>(n[i.name]={type:i.type,inputIndexStart:i.start,inputIndexEnd:i.end},n),{})),t.attrs!=null&&(s.attrParams=t.attrs.reduce((n,i)=>{const r=i.type;let o;switch(i.type){case"string":o=Sf(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=Sf(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"string[]":o=Rf(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=Rf(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"number":o=vf(e.attr,i.tfName,i.defaultValue||0),o===void 0&&!!i.tfDeprecatedName&&(o=vf(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"number[]":o=Cf(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=Cf(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"bool":o=If(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=If(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"bool[]":o=Ef(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=Ef(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"shape":o=Nf(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=Nf(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"shape[]":o=Of(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=Of(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"dtype":o=Tf(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=Tf(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"dtype[]":o=Af(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=Af(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"func":o=VN(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=VN(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${i.type} for op: ${e.op}`)}return n[i.name]={value:o,type:r},n},{})),s}mapFunction(e){const t=e.nodeDef,s=[],n=[];let i={};t!=null&&(i=t.reduce((p,u)=>(p[u.name]=this.mapNode(u),u.op==="Const"&&n.push(p[u.name]),p),{}));const r=[],o=[];e.signature.inputArg.forEach(p=>{const[u]=Gn(p.name),h={name:u,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:Dw(p.type),type:"dtype"}},children:[]};h.signatureKey=p.name,r.push(h),i[u]=h});const a=Object.keys(i);a.forEach(p=>{const u=i[p];u.inputNames.forEach(h=>{const[d]=Gn(h);u.inputs.push(i[d]),i[d].children.push(u)})});const l=e.ret;e.signature.outputArg.forEach(p=>{const[u,h]=Gn(l[p.name]),d=i[u];d!=null&&(d.defaultOutput=h,o.push(d))});const c=this.mapArgsToSignature(e);return{nodes:i,inputs:r,outputs:o,weights:n,placeholders:s,signature:c}}mapArgsToSignature(e){return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce((t,s)=>(t[s.name]=this.mapArgToTensorInfo(s),t),{}),outputs:e.signature.outputArg.reduce((t,s)=>(t[s.name]=this.mapArgToTensorInfo(s,e.ret),t),{})}}mapArgToTensorInfo(e,t){let s=e.name;return t!=null&&(s=t[s]),{name:s,dtype:e.type}}}function jB(e){const t=W().global;if(typeof t.atob!="undefined")return t.atob(e);if(typeof Buffer!="undefined")return new Buffer(e,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function GN(e,t){const s=Array.isArray(e)?String.fromCharCode.apply(null,e):jB(e);return t?s:s.toLowerCase()}function Sf(e,t,s,n=!1){const i=e[t];return i!=null?GN(i.s,n):s}function If(e,t,s){const n=e[t];return n?n.b:s}function vf(e,t,s){const n=e[t]||{},i=n.i!=null?n.i:n.f!=null?n.f:s;return typeof i=="number"?i:parseInt(i,10)}function Dw(e){typeof e=="string"&&(e=Rn[e]);switch(e){case Rn.DT_FLOAT:return"float32";case Rn.DT_INT32:case Rn.DT_INT64:case Rn.DT_INT8:case Rn.DT_UINT8:return"int32";case Rn.DT_BOOL:return"bool";case Rn.DT_DOUBLE:return"float32";case Rn.DT_STRING:return"string";default:return null}}function VN(e,t,s){const n=e[t];return n&&n.func?n.func.name:s}function Tf(e,t,s){const n=e[t];return n&&n.type?Dw(n.type):s}function Af(e,t,s){const n=e[t];return n&&n.list&&n.list.type?n.list.type.map(i=>Dw(i)):s}function qN(e){return e.unknownRank?void 0:e.dim!=null?e.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function Nf(e,t,s){const n=e[t];return n&&n.shape?qN(n.shape):s}function Cf(e,t,s){const n=e[t];return n?((n.list.f&&n.list.f.length?n.list.f:n.list.i)||[]).map(i=>typeof i=="number"?i:parseInt(i,10)):s}function Rf(e,t,s,n=!1){const i=e[t];return i&&i.list&&i.list.s?i.list.s.map(r=>GN(r,n)):s}function Of(e,t,s){const n=e[t];return n&&n.list&&n.list.shape?n.list.shape.map(i=>qN(i)):s}function Ef(e,t,s){const n=e[t];return n&&n.list&&n.list.b?n.list.b:s}class HN{constructor(e,t,s){this.node=e,this.tensorMap=t,this.context=s,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map(n=>this.getInput(n)),e.rawAttrs!=null&&(this.attrs=Object.keys(e.rawAttrs).reduce((n,i)=>(n[i]=this.getAttr(i),n),{}))}getInput(e){return Vt(e,this.tensorMap,this.context)}getAttr(e,t){const s=this.node.rawAttrs[e];if(s.tensor!=null)return Vt(e,this.tensorMap,this.context);if(s.i!=null||s.f!=null)return vf(this.node.rawAttrs,e,t);if(s.s!=null)return Sf(this.node.rawAttrs,e,t);if(s.b!=null)return If(this.node.rawAttrs,e,t);if(s.shape!=null)return Nf(this.node.rawAttrs,e,t);if(s.type!=null)return Tf(this.node.rawAttrs,e,t);if(s.list!=null){if(s.list.i!=null||s.list.f!=null)return Cf(this.node.rawAttrs,e,t);if(s.list.s!=null)return Rf(this.node.rawAttrs,e,t);if(s.list.shape!=null)return Of(this.node.rawAttrs,e,t);if(s.list.b!=null)return Ef(this.node.rawAttrs,e,t);if(s.list.type!=null)return Af(this.node.rawAttrs,e,t)}return t}}const YN=(e,t,s)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[$(L("a",e,t,s),L("b",e,t,s))];case"AddN":return[Wh(L("tensors",e,t,s))];case"FloorMod":case"Mod":return[Al(L("a",e,t,s),L("b",e,t,s))];case"Mul":return[R(L("a",e,t,s),L("b",e,t,s))];case"RealDiv":case"Div":return[Z(L("a",e,t,s),L("b",e,t,s))];case"DivNoNan":return[rd(L("a",e,t,s),L("b",e,t,s))];case"FloorDiv":return[ul(L("a",e,t,s),L("b",e,t,s))];case"Sub":return[X(L("a",e,t,s),L("b",e,t,s))];case"Minimum":return[bn(L("a",e,t,s),L("b",e,t,s))];case"Maximum":return[Ht(L("a",e,t,s),L("b",e,t,s))];case"Pow":return[es(L("a",e,t,s),L("b",e,t,s))];case"SquaredDifference":return[io(L("a",e,t,s),L("b",e,t,s))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};const KN=(e,t,s)=>{switch(e.op){case"Abs":case"ComplexAbs":return[et(L("x",e,t,s))];case"Acos":return[Uh(L("x",e,t,s))];case"Acosh":return[$h(L("x",e,t,s))];case"Asin":return[Ph(L("x",e,t,s))];case"Asinh":return[Bh(L("x",e,t,s))];case"Atan":return[jh(L("x",e,t,s))];case"Atan2":return[Vh(L("x",e,t,s),L("y",e,t,s))];case"Atanh":return[Gh(L("x",e,t,s))];case"Ceil":return[Jh(L("x",e,t,s))];case"Complex":return[Gt(L("real",e,t,s),L("imag",e,t,s))];case"Cos":return[Kr(L("x",e,t,s))];case"Cosh":return[wl(L("x",e,t,s))];case"Elu":return[gn(L("x",e,t,s))];case"Erf":return[od(L("x",e,t,s))];case"Exp":return[ut(L("x",e,t,s))];case"Expm1":return[ad(L("x",e,t,s))];case"Floor":return[ui(L("x",e,t,s))];case"Log":return[zt(L("x",e,t,s))];case"Log1p":return[Sl(L("x",e,t,s))];case"Imag":return[yn(L("x",e,t,s))];case"Neg":return[ke(L("x",e,t,s))];case"Reciprocal":return[yd(L("x",e,t,s))];case"Real":return[Zs(L("x",e,t,s))];case"Relu":return[Fe(L("x",e,t,s))];case"Round":return[wd(L("x",e,t,s))];case"Selu":return[Rl(L("x",e,t,s))];case"Sigmoid":return[os(L("x",e,t,s))];case"Sin":return[Ol(L("x",e,t,s))];case"Sign":return[Ld(L("x",e,t,s))];case"Sinh":return[El(L("x",e,t,s))];case"Softplus":return[di(L("x",e,t,s))];case"Sqrt":return[Je(L("x",e,t,s))];case"Square":return[xe(L("x",e,t,s))];case"Tanh":return[Mi(L("x",e,t,s))];case"Tan":return[Id(L("x",e,t,s))];case"Relu6":case"ClipByValue":return[xt(L("x",e,t,s),L("clipValueMin",e,t,s),L("clipValueMax",e,t,s))];case"Rsqrt":return[Cl(Vt(e.inputNames[0],t,s))];case"Prod":return[Nl(L("x",e,t,s),L("axes",e,t,s))];case"LeakyRelu":return[Ll(L("x",e,t,s),L("alpha",e,t,s))];case"Prelu":return[Qr(L("x",e,t,s),L("alpha",e,t,s))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Bs(e,t,s=""){N.assert(VB(e,t),()=>s+` Shapes ${e} and ${t} must match`)}function VB(e,t){if(e.length!==t.length)return!1;for(let s=0;s{(e==null||!e.has(t.tensor.id))&&t.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||e>=this.size())throw new Error(`Tried to read from index ${e}, but array size is: ${this.size()}`);const t=this.tensors[e];if(t.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${e} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(t.cleared=!0),t.read=!0,t.tensor}readMany(e){return e.map(t=>this.read(t))}write(e,t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||!this.dynamicSize&&e>=this.maxSize)throw new Error(`Tried to write to index ${e}, but array is not resizeable and size is: ${this.maxSize}`);const s=this.tensors[e]||{};if(t.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, +2. The custom ${n} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(l!=null){const c={};for(const d of Object.keys(Tn))c[d]=Tn[d];for(const d of Object.keys(s))c[d]=s[d];const p=r.config;p.customObjects=c;const u=Object.assign({},Tn);for(const d of Object.keys(s))Tn[d]=s[d];$b(r.config);const h=l(a,r.config,s,i);return Tn=Object.assign({},u),h}else{const c=Object.assign({},Tn);for(const u of Object.keys(s))Tn[u]=s[u];const p=new a(r.config);return Tn=Object.assign({},c),p}}}function vW(e,t){return et?1:0}function Qp(e,t){return-1*vW(e,t)}function An(e){if(e==null)return e;const t=[];for(const s of e)t.indexOf(s)===-1&&t.push(s);return t}function cA(e){if(e==null)throw new k(`Invalid value in obj: ${JSON.stringify(e)}`);for(const t in e)if(e.hasOwnProperty(t))return!1;return!0}function Bi(e,t,s){if(s==null)return;if(e.indexOf(s)<0)throw new k(`${s} is not a valid ${t}. Valid values are ${e} or null/undefined.`)}function Md(e,t,s=0,n=Infinity){return tn(s>=0),tn(n>=s),Array.isArray(e)&&e.length>=s&&e.length<=n&&e.every(i=>typeof i===t)}function yt(e,t){Array.isArray(e)?(N.assert(e.length>0,()=>`${t} is unexpectedly an empty array.`),e.forEach((s,n)=>yt(s,`element ${n+1} of ${t}`))):N.assert(Number.isInteger(e)&&e>0,()=>`Expected ${t} to be a positive integer, but got ${pA(e)}.`)}function pA(e){return e===null?"null":Array.isArray(e)?"["+e.map(t=>pA(t)).join(",")+"]":typeof e=="string"?`"${e}"`:`${e}`}function uA(e,t){let s=N.now(),n;const i=(...r)=>{const o=N.now();return o-sJe(te(R(e,e),t,!0)))}class eu extends V.Serializable{getConfig(){return{}}}class $d extends eu{constructor(e){super();this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return C(()=>{const t=Wb(e,this.axis),s=xt(t,0,this.maxValue);return R(e,Z(s,$(Tt(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}}$d.className="MaxNorm";V.registerClass($d);class Wd extends eu{constructor(e){super();this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return C(()=>Z(e,$(Tt(),Wb(e,this.axis))))}getConfig(){return{axis:this.axis}}}Wd.className="UnitNorm";V.registerClass(Wd);class zd extends eu{apply(e){return Fe(e)}}zd.className="NonNeg";V.registerClass(zd);class Pd extends eu{constructor(e){super();this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=e.minValue!=null?e.minValue:this.defaultMinValue,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.rate=e.rate!=null?e.rate:this.defaultRate,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return C(()=>{const t=Wb(e,this.axis),s=$(R(this.rate,xt(t,this.minValue,this.maxValue)),R(1-this.rate,t));return R(e,Z(s,$(Tt(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}}Pd.className="MinMaxNorm";V.registerClass(Pd);const hA={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function ot(e){return Ml(e)}function dA(e,t={}){return fi(e,V.SerializationMap.getMap().classNameMap,t,"constraint")}function at(e){if(e==null)return null;if(typeof e=="string"){const t=e in hA?hA[e]:e,s={className:t,config:{}};return dA(s)}else return e instanceof eu?e:dA(e)}const zb={};Ee(zb,{maxNorm:()=>TW,minMaxNorm:()=>CW,nonNeg:()=>NW,unitNorm:()=>AW});function TW(e){return new $d(e)}function AW(e){return new Wd(e)}function NW(){return new zd}function CW(e){return new Pd(e)}const mA=["channelsFirst","channelsLast"],fA=["valid","same","causal"],gA=["max","avg"],yA=["sum","mul","concat","ave"];const Ul=new Map;function lt(e){Bi(mA,"DataFormat",e)}function bs(e){Bi(fA,"PaddingMode",e)}function Pb(e){Bi(gA,"PoolMode",e)}const tu=[],bA="/";function zn(e,t){tu.push(e);try{const s=t();return tu.pop(),s}catch(s){throw tu.pop(),s}}function RW(){return tu.length===0?"":tu.join(bA)+bA}function Bd(e){if(!wA(e))throw new Error("Not a valid tensor name: '"+e+"'");return RW()+e}function jd(e){if(!wA(e))throw new Error("Not a valid tensor name: '"+e+"'");Ul.has(e)||Ul.set(e,0);const t=Ul.get(e);if(Ul.set(e,Ul.get(e)+1),t>0){const s=`${e}_${t}`;return Ul.set(s,1),s}else return e}const OW=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function wA(e){return!!e.match(OW)}function xA(e){return e===parseInt(e.toString(),10)}function Nn(e,t,s){t==null&&(t=0),s==null&&(s=e.length);let n=1;for(let i=t;i{if(e.shape.length!==2)throw new k(`repeat() expects a rank-2 tensor, but received a rank-${e.shape.length} tensor.`);const s=Vi(e,1);return Vd(s,[1,t,1])})}function IA(e){const t=[Nn(e.shape)];return e.reshape(t)}function vA(e){if(e.rank<=1)throw new k(`batchFlatten requires a minimum rank of 2. Got rank: ${e.rank}.`);const t=[e.shape[0],Nn(e.shape,1)];return e.reshape(t)}function Gi(e,t,s){return C(()=>{switch(e.rank){case 1:return _l(e,t,s);case 2:return Hp(e,[t,0],[s,e.shape[1]]);case 3:return to(e,[t,0,0],[s,e.shape[1],e.shape[2]]);case 4:return ia(e,[t,0,0,0],[s,e.shape[1],e.shape[2],e.shape[3]]);case 5:return he(e,[t,0,0,0,0],[s,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return he(e,[t,0,0,0,0,0],[s,e.shape[1],e.shape[2],e.shape[3],e.shape[4],e.shape[5]]);default:throw new k(`sliceAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}})}function Bb(e,t,s){return C(()=>{switch(e.rank){case 1:return _l(e,t,s);case 2:return Hp(e,[0,t],[e.shape[0],s]);case 3:return to(e,[0,0,t],[e.shape[0],e.shape[1],s]);case 4:return ia(e,[0,0,0,t],[e.shape[0],e.shape[1],e.shape[2],s]);default:throw new k(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function su(e,t,s,n){return C(()=>{switch(e.rank){case 1:return _l(e,t,s);case 2:switch(n){case 1:return Gi(e,t,s);case 2:return Bb(e,t,s);default:throw new k(`The axis is not within the rank of the tensor ${n}`)}case 3:switch(n){case 1:return Gi(e,t,s);case 2:return to(e,[0,t,0],[e.shape[0],s,e.shape[2]]);case 3:return Bb(e,t,s);default:throw new k(`The axis is not within the rank of the tensor ${n}`)}case 4:switch(n){case 1:return Gi(e,t,s);case 2:return ia(e,[0,t,0,0],[e.shape[0],s,e.shape[2],e.shape[3]]);case 3:return ia(e,[0,0,t,0],[e.shape[0],e.shape[1],s,e.shape[3]]);case 4:return Bb(e,t,s);default:throw new k(`The axis is not within the rank of the tensor ${n}`)}default:throw new k(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function $l(e,t=-1){let s;return t<0&&(s=e[0].rank,s!==0?t=s:t=0),t===e[0].rank&&(t=-1),be(e,t)}function jb(e,t){switch(e.rank){case 1:return Zh([e,t]);case 2:return Qh([e,t],0);case 3:return ed([e,t],0);case 4:return td([e,t],0);default:throw new k(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function Vd(e,t){if(Array.isArray(t)||(t=[t]),e.rank!==t.length)throw new k(`The length of input n (${t.length}) does not match the number of dimensions in input x (${e.rank})`);return $s(e,t)}function Wl(e,t=0,s=1,n,i){return qp(e,t,s,n,i)}function Cn(e,t,s,n){if(e.rank<2||t.rank<2)throw new ae(`dot requires both inputs to be rank >= 2 but got x shape = ${e.shape} and y shape = ${t.shape}`);if(t.rank>=3){const i=e.shape.slice(-1)[0],r=t.shape.slice(-2)[0];if(i!==r)throw new ae(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${e.shape} and y shape = ${t.shape}`)}if(e.rank===2&&t.rank===2){const i=!1,r=!1;return xn.matMul({a:e,b:t,transposeA:i,transposeB:r,bias:n?Vb(e.rank,n,ys()):null,activation:s})}else{const i=e.shape.slice(),r=i.pop();e=e.reshape([-1,r]);const o=t.shape.slice(),a=o.pop(),l=o.pop(),c=[...o,a],p=Array.from({length:t.rank},(m,f)=>f===0?t.rank-2:f<=t.rank-2?f-1:f);t=t.transpose(p).reshape([l,-1]);const u=[...i,...c],h=!1,d=!1;return xn.matMul({a:e,b:t,transposeA:h,transposeB:d,bias:n?Vb(e.rank,n,ys()):null,activation:s}).reshape(u)}}function Gd(e,t,s){return C(()=>(Array.isArray(t)?t=Oe(t,"int32"):t=t.toInt(),hi(e,t,s)))}function ga(e){return R(e,e)}function Vb(e,t,s){const n=t.shape;if(t.rank!==1&&t.rank!==e)throw new k(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${e}`);if(e===5){if(s==="channelsFirst")return n.length===1?t.reshape([1,n[0],1,1,1]):t.reshape([1,n[3],n[0],n[1],n[2]]);if(s==="channelsLast")return n.length===1?t.reshape([1,1,1,1,n[0]]):t.reshape([1].concat(n))}else if(e===4){if(s==="channelsFirst")return n.length===1?t.reshape([1,n[0],1,1]):t.reshape([1,n[2],n[0],n[1]]);if(s==="channelsLast")return n.length===1?t.reshape([1,1,1,n[0]]):t.reshape([1].concat(n))}else if(e===3){if(s==="channelsFirst")return n.length===1?t.reshape([1,n[0],1]):t.reshape([1,n[1],n[0]]);if(s==="channelsLast")return n.length===1?t.reshape([1,1,n[0]]):t.reshape([1].concat(n))}else if(e<3)return t;throw new k(`Unsupported input rank by biasAdd: ${t.rank}`)}function Cs(e,t,s){return C(()=>(s==null&&(s=ys()),lt(s),e.add(Vb(e.rank,t,s))))}function TA(e,t=1){if(t!==1)throw new ae(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return gn(e)}function AA(e){return C(()=>Z(e,et(e).add(1)))}function qd(e,t,s,n){return C(()=>Tb(e,t,s,n))}function NA(e){return C(()=>{const t=$(.5,R(.2,e));return xt(t,0,1)})}function lo(e,t,s=!1){return s?e():t()}const CA=["fanIn","fanOut","fanAvg"],RA=["normal","uniform","truncatedNormal"];function EW(e){Bi(CA,"FanMode",e)}function _W(e){Bi(RA,"Distribution",e)}class zs extends V.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}}class Hd extends zs{apply(e,t){return ye(e,t)}}Hd.className="Zeros";V.registerClass(Hd);class zl extends zs{apply(e,t){return Kt(e,t)}}zl.className="Ones";V.registerClass(zl);class Yd extends zs{constructor(e){super();if(typeof e!="object")throw new k(`Expected argument of type ConstantConfig but got ${e}`);if(e.value===void 0)throw new k(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return C(()=>R(j(this.value),Kt(e,t)))}getConfig(){return{value:this.value}}}Yd.className="Constant";V.registerClass(Yd);class Kd extends zs{constructor(e){super();this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=e.minval||this.DEFAULT_MINVAL,this.maxval=e.maxval||this.DEFAULT_MAXVAL,this.seed=e.seed}apply(e,t){return wn(e,this.minval,this.maxval,t)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}}Kd.className="RandomUniform";V.registerClass(Kd);class Xd extends zs{constructor(e){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new ae(`randomNormal does not support dType ${t}.`);return Wl(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}}Xd.className="RandomNormal";V.registerClass(Xd);class Jd extends zs{constructor(e){super();this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new ae(`truncatedNormal does not support dType ${t}.`);return ro(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}}Jd.className="TruncatedNormal";V.registerClass(Jd);class Zd extends zs{constructor(e){super();this.gain=e.gain!=null?e.gain:1}apply(e,t){return C(()=>{if(e.length!==2||e[0]!==e[1])throw new k("Identity matrix initializer can only be used for 2D square matrices.");return R(this.gain,sa(e[0]))})}getConfig(){return{gain:this.gain}}}Zd.className="Identity";V.registerClass(Zd);function kW(e,t="channelsLast"){let s,n;if(lt(t),e.length===2)s=e[0],n=e[1];else if([3,4,5].indexOf(e.length)!==-1){if(t==="channelsFirst"){const i=Nn(e,2);s=e[1]*i,n=e[0]*i}else if(t==="channelsLast"){const i=Nn(e,0,e.length-2);s=e[e.length-2]*i,n=e[e.length-1]*i}}else{const i=Nn(e);s=Math.sqrt(i),n=Math.sqrt(i)}return[s,n]}class ws extends zs{constructor(e){super();if(e.scale<0)throw new k(`scale must be a positive float. Got: ${e.scale}`);this.scale=e.scale==null?1:e.scale,this.mode=e.mode==null?"fanIn":e.mode,EW(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,_W(this.distribution),this.seed=e.seed}apply(e,t){const s=kW(e),n=s[0],i=s[1];let r=this.scale;if(this.mode==="fanIn"?r/=Math.max(1,n):this.mode==="fanOut"?r/=Math.max(1,i):r/=Math.max(1,(n+i)/2),this.distribution==="normal"){const o=Math.sqrt(r);if(t=t||"float32",t!=="float32"&&t!=="int32")throw new ae(`${this.getClassName()} does not support dType ${t}.`);return ro(e,0,o,t,this.seed)}else{const o=Math.sqrt(3*r);return wn(e,-o,o,t)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}}ws.className="VarianceScaling";V.registerClass(ws);class nu extends ws{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return ws.className}}nu.className="GlorotUniform";V.registerClass(nu);class iu extends ws{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return ws.className}}iu.className="GlorotNormal";V.registerClass(iu);class ru extends ws{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return ws.className}}ru.className="HeNormal";V.registerClass(ru);class ou extends ws{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return ws.className}}ou.className="HeUniform";V.registerClass(ou);class au extends ws{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return ws.className}}au.className="LeCunNormal";V.registerClass(au);class lu extends ws{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return ws.className}}lu.className="LeCunNormal";V.registerClass(lu);class Qd extends zs{constructor(e){super();if(this.DEFAULT_GAIN=1,this.gain=e.gain==null?this.DEFAULT_GAIN:e.gain,this.seed=e.seed,this.seed!=null)throw new ae("Random seed is not implemented for Orthogonal Initializer yet.")}apply(e,t){return C(()=>{if(e.length<2)throw new ae("Shape must be at least 2D.");e[0]*e[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${e[0]*e[1]}) elements: Slowness may result.`);const s=e[0]>e[1]?[e[1],e[0]]:e,n=Wl(s,0,1,"float32");let i=Cb.gramSchmidt(n);return e[0]>e[1]&&(i=i.transpose()),R(this.gain,i)})}getConfig(){return{gain:this.gain,seed:this.seed}}}Qd.className="Orthogonal";V.registerClass(Qd);const OA={constant:"Constant",glorotNormal:"GlorotNormal",glorotUniform:"GlorotUniform",heNormal:"HeNormal",heUniform:"HeUniform",identity:"Identity",leCunNormal:"LeCunNormal",leCunUniform:"LeCunUniform",ones:"Ones",orthogonal:"Orthogonal",randomNormal:"RandomNormal",randomUniform:"RandomUniform",truncatedNormal:"TruncatedNormal",varianceScaling:"VarianceScaling",zeros:"Zeros"};function EA(e,t={}){return fi(e,V.SerializationMap.getMap().classNameMap,t,"initializer")}function Ze(e){return Ml(e)}function je(e){if(typeof e=="string"){const t=e in OA?OA[e]:e;if(t==="GlorotNormal")return new iu;if(t==="GlorotUniform")return new nu;if(t==="HeNormal")return new ru;if(t==="HeUniform")return new ou;if(t==="LeCunNormal")return new au;if(t==="LeCunUniform")return new lu;{const s={};return s.className=t,s.config={},EA(s)}}else return e instanceof zs?e:EA(e)}const Gb={};Ee(Gb,{constant:()=>MW,glorotNormal:()=>jW,glorotUniform:()=>BW,heNormal:()=>VW,heUniform:()=>GW,identity:()=>zW,leCunNormal:()=>qW,leCunUniform:()=>HW,ones:()=>FW,orthogonal:()=>YW,randomNormal:()=>$W,randomUniform:()=>UW,truncatedNormal:()=>WW,varianceScaling:()=>PW,zeros:()=>DW});function DW(){return new Hd}function FW(){return new zl}function MW(e){return new Yd(e)}function UW(e){return new Kd(e)}function $W(e){return new Xd(e)}function WW(e){return new Jd(e)}function zW(e){return new Zd(e)}function PW(e){return new ws(e)}function BW(e){return new nu(e)}function jW(e){return new iu(e)}function VW(e){return new ru(e)}function GW(e){return new ou(e)}function qW(e){return new au(e)}function HW(e){return new lu(e)}function YW(e){return new Qd(e)}let KW=0;function em(){return KW++}const tm={};function co(e=""){return e in tm||(tm[e]=0),tm[e]+=1,e+tm[e].toString()}function sm(e){return Array.isArray(e)&&Array.isArray(e[0])}function Pl(e){return e.length===0?[]:Array.isArray(e[0])?e:[e]}function we(e){let t;if(Array.isArray(e)){if(e.length!==1)throw new k(`Expected Tensor length to be 1; got ${e.length}`);t=e[0]}else t=e;return t}function Ue(e){if(Array.isArray(e)&&Array.isArray(e[0])){if(e.length===1)return e=e,e[0];throw new k(`Expected exactly 1 Shape; got ${e.length}`)}else return e}function Bl(e){let t=0;for(const s of e)s.shape.length===0?t+=1:t+=s.shape.reduce((n,i)=>n*i);return t}const _A="Variable";class nm{constructor(e,t="float32",s=_A,n=!0,i=null){this.dtype=t??"float32",this.shape=e.shape,this.id=em(),s=s??_A,this.originalName=Bd(s),this.name=jd(this.originalName),this.trainable_=n,this.constraint=i,this.val=Ad(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),XW(this.val,e),this.val.id!==e.id&&(this.val.assign(e),this.constraint!=null&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(e){this.trainable_=e,this.val.trainable=e}}function XW(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}function cu(e){return e.map(t=>t.read())}function jl(e){e.forEach(t=>{const s=t[0];s.write(t[1])})}class st{constructor(e){this.dtype=e.dtype,this.shape=e.shape,e.shape!=null?this.ndim=e.shape.length:this.ndim=e.ndim,this.maxNDim=e.maxNDim,this.minNDim=e.minNDim,this.axes=e.axes||{}}}class xs{constructor(e,t,s,n,i,r,o){this.dtype=e,this.shape=t,this.sourceLayer=s,this.inputs=n,this.callArgs=i,this.outputTensorIndex=o,this.id=em(),r!=null&&(this.originalName=Bd(r),this.name=jd(this.originalName)),this.rank=t.length}}let JW=0;class ya{constructor(e,t){this.callArgs=t,this.id=JW++,this.outboundLayer=e.outboundLayer,this.inboundLayers=e.inboundLayers,this.nodeIndices=e.nodeIndices,this.tensorIndices=e.tensorIndices,this.inputTensors=e.inputTensors,this.outputTensors=e.outputTensors,this.inputMasks=e.inputMasks,this.outputMasks=e.outputMasks,this.inputShapes=e.inputShapes,this.outputShapes=e.outputShapes;for(const s of e.inboundLayers)s!=null&&s.outboundNodes.push(this);e.outboundLayer.inboundNodes.push(this)}getConfig(){const e=[];for(const t of this.inboundLayers)t!=null?e.push(t.name):e.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:e,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}}let ZW=0;class Le extends V.Serializable{constructor(e={}){super();this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=ZW++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let t=e.name;if(!t){const s=this.getClassName();t=vn(s)+"_"+co(s)}if(this.name=t,this.trainable_=e.trainable==null?!0:e.trainable,e.inputShape!=null||e.batchInputShape!=null){let s;if(e.batchInputShape!=null)s=e.batchInputShape;else if(e.inputShape!=null){let i=null;e.batchSize!=null&&(i=e.batchSize),s=[i].concat(e.inputShape)}this.batchInputShape=s;let n=e.dtype;n==null&&(n=e.inputDType),n==null&&(n="float32"),this.dtype=n}e.weights!=null?this.initialWeights=e.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(e,t){return e.name+"_ib-"+t.toString()}getNodeAtIndex(e,t){if(this.inboundNodes.length===0)throw new Ns(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new k(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return jt(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return jt(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new Sn(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new Sn(`Layer ${this.name} is not connected, no input to return.`);return jt(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new Sn(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new Sn(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return jt(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(e=>e())}get updates(){return this._updates}get built(){return this._built}set built(e){this._built=e}get trainable(){return this.trainable_}set trainable(e){this._trainableWeights.forEach(t=>t.trainable=e),this.trainable_=e}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(e=>e.trainable):[]}set trainableWeights(e){this._trainableWeights=e}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(e=>!e.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(e){this._nonTrainableWeights=e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(e){if(e=He(e),this.inputSpec==null||this.inputSpec.length===0)return;const t=He(this.inputSpec);if(e.length!==t.length)throw new k(`Layer ${this.name} expects ${t.length} inputs, but it received ${e.length} input tensors. Input received: ${e}`);for(let s=0;si.maxNDim)throw new k(`Input ${s} is incompatible with layer ${this.name}: expected max_ndim=${i.maxNDim}, found ndim=${r}`);if(i.minNDim!=null&&r=0?o[l]:o[o.length+l];if(c!=null&&[c,null].indexOf(p)===-1)throw new k(`Input ${s} is incompatible with layer ${this.name}: expected axis ${l} of input shape to have value ${c} but got shape ${o}.`)}}if(i.shape!=null)for(let o=0;o{if(!this.built){this.assertInputCompatibility(e);const r=[];for(const o of He(e))r.push(o.shape);this.build(jt(r)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&i&&(this._refCount=1)}if(this.assertInputCompatibility(e),i){let r=this.call(e,t);const o=He(r),a=[];for(let l of o)s.indexOf(l)!==-1&&(l=l.clone()),a.push(l);if(r=jt(a),this.activityRegularizer!=null)throw new ae("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return r}else{const r=QW(e),o=this.computeOutputShape(r);let a;const l=ez(e);if(this.warnOnIncompatibleInputShape(Array.isArray(e)?r[0]:r),o!=null&&o.length>0&&Array.isArray(o[0])?a=o.map((c,p)=>new xs(l,c,this,He(e),t,this.name,p)):a=new xs(l,o,this,He(e),t,this.name),this.addInboundNode(e,a,null,null,r,o,t),this._refCount++,this.activityRegularizer!=null)throw new ae("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return a}})}warnOnIncompatibleInputShape(e){if(this.batchInputShape==null)return;if(e.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(e)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let t=!1;this.batchInputShape.forEach((s,n)=>{s!=null&&e[n]!=null&&e[n]!==s&&(t=!0)}),t&&console.warn(`The shape of the input tensor (${JSON.stringify(e)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new Sn(`The layer ${this.name} has never been called and thus has no defined output shape.`);const e=[];for(const t of this.inboundNodes){const s=JSON.stringify(t.outputShapes);e.indexOf(s)===-1&&e.push(s)}if(e.length===1){const t=this.inboundNodes[0].outputShapes;return Array.isArray(t)&&Array.isArray(t[0])&&t.length===1?t[0]:t}else throw new Sn(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new Ns(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Bl(this.weights)}build(e){this.built=!0}getWeights(e=!1){return cu(e?this.trainableWeights:this.weights)}setWeights(e){C(()=>{const t=this.weights;if(t.length!==e.length)throw new k(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${e.length}, but the layer was expecting ${t.length} weights. Provided weights: ${e}...`);if(t.length===0)return;const s=[],n=cu(t);for(let i=0;ii.apply(l.read())),r==null&&(r=!0),r?this._trainableWeights.push(l):this._nonTrainableWeights.push(l),l}setFastWeightInitDuringBuild(e){this.fastWeightInitDuringBuild=e}addLoss(e){if(e==null||Array.isArray(e)&&e.length===0)return;e=He(e),this._losses!==void 0&&this._losses!==null&&this.losses.push(...e)}computeOutputShape(e){return e}computeMask(e,t){if(!this.supportsMasking){if(t!=null)if(Array.isArray(t))t.forEach(s=>{if(s!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return t}addInboundNode(e,t,s,n,i,r,o=null){const a=He(e);t=He(t),s=He(s),n=He(n),i=Pl(i),r=Pl(r);const l=[],c=[],p=[];for(const u of a)l.push(u.sourceLayer),c.push(u.nodeIndex),p.push(u.tensorIndex);new ya({outboundLayer:this,inboundLayers:l,nodeIndices:c,tensorIndices:p,inputTensors:a,outputTensors:t,inputMasks:s,outputMasks:n,inputShapes:i,outputShapes:r},o);for(let u=0;ue.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let e=0;return--this._refCount===0&&(e=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:e}}}function QW(e){e=He(e);const t=[];for(const s of e)t.push(s.shape);return jt(t)}function ez(e){return"float32"}function qb(e,t,s){if((t==null||s!=null&&s>0)&&(t=e.sourceLayer,s=e.nodeIndex),t.inboundNodes.length===0)return[e];{const n=t.inboundNodes[s];if(n.inboundLayers.length===0)return n.inputTensors;{const i=[];for(let r=0;r0){const i=await Promise.all(t);for(let r=0;r$(this.totals[n],R(i,s)));this.totals[n]=o,r!=null&&r.dispose()}}}async onEpochEnd(e,t){if(t!=null)for(const s of this.params.metrics){if(this.totals[s]==null)continue;typeof this.totals[s]=="number"?t[s]=this.totals[s]/this.seen:C(()=>{const n=R(Z(1,this.seen),this.totals[s]);t[s]=n,this.totals[s].dispose(),pt(t[s])})}}}class Yb extends ba{async onTrainBegin(e){this.epoch=[],this.history={}}async onEpochEnd(e,t){t==null&&(t={}),this.epoch.push(e);for(const s in t)this.history[s]==null&&(this.history[s]=[]),this.history[s].push(t[s])}async syncData(){const e=[],t=[],s=[];for(const i in this.history){const r=this.history[i];for(let o=0;onew Kb(n,t))}class sn{constructor(){}static registerCallbackConstructor(e,t){N.assert(e>=0&&Number.isInteger(e),()=>`Verbosity level is expected to be an integer >= 0, but got ${e}`),sn.checkForDuplicate(t),sn.constructors[e]==null&&(sn.constructors[e]=[]),sn.constructors[e].push(t)}static checkForDuplicate(e){for(const t in sn.constructors){const s=sn.constructors[+t];s.forEach(n=>{if(n===e)throw new k("Duplicate callback constructor.")})}}static clear(){sn.constructors={}}static createCallbacks(e){const t=[];for(const s in sn.constructors){const n=+s;e>=n&&t.push(...sn.constructors[n])}return t.map(s=>new s)}}sn.constructors={};function am(e,t,s,n,i,r,o,a,l){const c=new Yb,p=[new sz,...sn.createCallbacks(t)];e!=null&&p.push(...e),p.push(c);const u=new Hb(p);return u.setParams({epochs:s,initialEpoch:n,samples:i,steps:r,batchSize:o,verbose:t,doValidation:a,metrics:l}),{callbackList:u,history:c}}function Ls(e,t={},s=!1){return fi(e,V.SerializationMap.getMap().classNameMap,t,"layer",s)}function pu(e,t){return C(()=>{e.dtype!=="float32"&&(e=e.asType("float32"));const s=te(ga(e),t,!0),n=Wt(s.shape,Tt()),i=Je(Ht(s,n));return Z(e,i)})}function yi(e,t){return C(()=>Xe(ga(X(t,e)),-1))}function Vl(e,t){return C(()=>Xe(et(X(t,e)),-1))}function po(e,t){return C(()=>{const s=X(e,t),n=xt(et(e),Tt(),Number.MAX_VALUE),i=et(Z(s,n));return R(100,Xe(i,-1))})}function nz(e,t){return C(()=>{const s=xt(t,Tt(),Number.MAX_VALUE),n=zt($(1,s)),i=xt(e,Tt(),Number.MAX_VALUE),r=zt($(1,i));return Xe(ga(X(n,r)),-1)})}function iz(e,t){return C(()=>{const s=Ht(0,X(1,R(e,t)));return Xe(ga(s),-1)})}function rz(e,t){return C(()=>{const s=Ht(0,X(1,R(e,t)));return Xe(s,-1)})}function oz(e,t){return C(()=>{const s=te(R(e,t),-1),n=Lt(R(X(1,e),t),-1);return Ht(0,$(1,X(n,s)))})}function az(e,t){return C(()=>{const s=Math.log(2),n=X(t,e),i=X($(n,di(R(-2,n))),s);return Xe(i,-1)})}function wa(e,t,s=!1){return C(()=>{if(s)t=ts(t);else{const n=te(t,t.shape.length-1,!0);t=Z(t,n)}return t=xt(t,Tt(),1-Tt()),ke(te(R(e.toFloat(),zt(t)),t.shape.length-1))})}function Gl(e,t,s=!1){return C(()=>{const n=ui(IA(e)).toInt();t=xt(t,Tt(),1-Tt());const i=t.shape,r=pi(n,i[i.length-1]).reshape(i);return wa(r,t,s)})}function lz(e,t){if(!N.arraysEqual(e.shape,t.shape))throw new k(`logits and labels must have the same shape, but got shapes ${JSON.stringify(e.shape)} and ${JSON.stringify(t.shape)}`);return C(()=>{const s=t.relu(),n=t.abs().neg();return s.sub(t.mul(e)).add(n.exp().log1p())})}function ql(e,t){return C(()=>{let s;return s=xt(t,Tt(),1-Tt()),s=zt(Z(s,X(1,s))),Xe(lz(e,s),-1)})}function cz(e,t){return C(()=>{const s=xt(e,Tt(),1),n=xt(t,Tt(),1);return te(R(e,zt(Z(s,n))),-1)})}function pz(e,t){return C(()=>{const s=zt($(Tt(),t));return Xe(X(t,R(e,s)),-1)})}function uu(e,t){return C(()=>{const s=pu(e,-1),n=pu(t,-1),i=R(s,n);return ke(te(i,-1))})}const hu={meanSquaredError:yi,meanAbsoluteError:Vl,meanAbsolutePercentageError:po,meanSquaredLogarithmicError:nz,squaredHinge:iz,hinge:rz,categoricalHinge:oz,logcosh:az,categoricalCrossentropy:wa,sparseCategoricalCrossentropy:Gl,binaryCrossentropy:ql,kullbackLeiblerDivergence:cz,poisson:pz,cosineProximity:uu};function lm(e){if(typeof e=="string"){if(e in hu)return hu[e];let t=`Unknown loss ${e}`;throw e.toLowerCase().includes("softmaxcrossentropy")&&(t=`Unknown loss ${e}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new k(t)}else return e}function du(e,t){return C(()=>{const s=R(.5,Ot(t)),n=ji(Ut(t,s),e.dtype);return Xe(as(e,n),-1)})}function mu(e,t){return C(()=>ji(as(Qo(e,-1),Qo(t,-1)),"float32"))}function DA(e,t){return C(()=>Yt(e.equal(1),t.equal(1)).sum().cast("float32"))}function uz(e,t){return C(()=>Yt(e.equal(1),t.equal(0)).sum().cast("float32"))}function hz(e,t){return C(()=>Yt(e.equal(0),t.equal(1)).sum().cast("float32"))}function Xb(e,t){return C(()=>{const s=DA(e,t),n=hz(e,t),i=s.add(n);return mt(Ut(i,0),s.div(i),0).cast("float32")})}function FA(e,t){return C(()=>{const s=DA(e,t),n=uz(e,t),i=s.add(n);return mt(Ut(i,0),s.div(i),0).cast("float32")})}function cm(e,t){return ql(e,t)}function pm(e,t){return e.rank===t.rank&&(e=e.squeeze([e.rank-1])),t=t.argMax(-1),t.dtype!==e.dtype&&(t=t.asType(e.dtype)),as(e,t).asType("float32")}const dz=yi,mz=yi,fz=Vl,gz=Vl,yz=po,bz=po,fu=wa,wz=uu,Jb=Gl,um={binaryAccuracy:du,categoricalAccuracy:mu,precision:Xb,categoricalCrossentropy:fu,sparseCategoricalCrossentropy:Jb,mse:dz,MSE:mz,mae:fz,MAE:gz,mape:yz,MAPE:bz,cosine:wz};function MA(e){if(typeof e=="string"&&e in um)return um[e];if(typeof e!="string"&&e!=null)return e;throw new k(`Unknown metric ${e}`)}function gu(e){if(tn(e!==null,`Unknown LossOrMetricFn ${e}`),typeof e=="string")return e;{let t;for(const s of Object.keys(hu))if(hu[s]===e){t=s;break}if(t!==void 0)return t;for(const s of Object.keys(um))if(um[s]===e){t=s;break}return t!==void 0?t:e.name}}function UA(e){const t={Adagrad:()=>ao.adagrad(.01),Adadelta:()=>ao.adadelta(1,.95,Tt()),Adam:()=>ao.adam(.001,.9,.999,Tt()),Adamax:()=>ao.adamax(.002,.9,.999,Tt(),0),RMSProp:()=>ao.rmsprop(.001,.9,0,Tt()),SGD:()=>ao.sgd(.01)};if(t.adagrad=t.Adagrad,t.adadelta=t.Adadelta,t.adam=t.Adam,t.adamax=t.Adamax,t.rmsprop=t.RMSProp,t.sgd=t.SGD,e in t)return t[e]();throw new k(`Unknown Optimizer ${e}`)}const $A=1*1024*1024;function Qb(e,t,s=!1){if(e==null||typeof e!="object"||Object.getPrototypeOf(e)!==Object.prototype||!Zb(e))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(s){const n=JSON.stringify(e);n.length>$A&&console.warn(`User-defined metadata of model "${t}" is too large in size (length=${n.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= ${$A}.`)}}function Zb(e){if(e===null)return!0;if(typeof e=="object")if(Object.getPrototypeOf(e)===Object.prototype){const t=Object.keys(e);for(const s of t){if(typeof s!="string")return!1;if(!Zb(e[s]))return!1}return!0}else if(Array.isArray(e)){for(const t of e)if(!Zb(t))return!1;return!0}else return!1;else{const t=typeof e;return t==="string"||t==="number"||t==="boolean"}}function WA(e,t,s,n=console.log){const i=Lz(e),r=["Layer (type)","Output shape","Param #"];i?(t=t||65,s=s||[.45,.85,1]):(t=t||98,s=s||[.33,.55,.67,1]),s[s.length-1]<=1&&(s=s.map(p=>Math.floor(t*p)));let o;if(!i){r.push("Receives inputs"),o=[];for(const p in e.nodesByDepth)o.push(...e.nodesByDepth[p])}n("_".repeat(t)),hm(r,s,n),n("=".repeat(t));const a=e.layers;for(let p=0;p1||i.length===1&&i[0].inboundLayers.length>1){t=!1;break}n.push(...i)}if(t)for(const i of e.layers){let r=!1;for(const o of i.inboundNodes)if(n.indexOf(o)!==-1)if(r){t=!1;break}else r=!0;if(!t)break}return t}function hm(e,t,s=console.log){let n="";for(let i=0;i0&&(n=n.slice(0,n.length-1)+" "),n+=e[i],n=n.slice(0,t[i]),n+=" ".repeat(t[i]-n.length);s(n)}function Sz(e,t,s){let n;try{n=JSON.stringify(e.outputShape)}catch(a){n="multiple"}const i=e.name,r=e.getClassName(),o=[`${i} (${r})`,n,e.countParams().toString()];hm(o,t,s)}function Iz(e,t,s,n){let i;try{i=JSON.stringify(e.outputShape)}catch(p){i="multiple"}const r=[];for(const p of e.inboundNodes){if(s!=null&&s.length>0&&s.indexOf(p)===-1)continue;for(let u=0;um.name),l=[],c=t.names();for(const m of a)c.indexOf(m)!==-1?l.push(t.getValue(m)):l.push(null);n!=null&&(n.maxNumTensors=-Infinity,n.minNumTensors=Infinity);const p=a.join(",")+"|"+t.names().join(",");let u,h;if(ew[p]==null){const m=Tz(o,t);u=m.sorted,h=m.recipientCounts,ew[p]=u,PA[p]=h}u=ew[p],h={},i||Object.assign(h,PA[p]);const d=new Hi(t);for(let m=0;mn.maxNumTensors&&(n.maxNumTensors=D),D0,()=>"Expected at least one fetch, got none");let s=[],n={};if(e.length===1){const i=BA(e[0],t);s=i.sorted,n=i.recipientMap}else{const i=new Set;for(const r of e){const{sorted:o,recipientMap:a}=BA(r,t);for(const l of o)i.has(l.name)||(s.push(l),i.add(l.name));for(const l in a)n[l]==null&&(n[l]=new Set),a[l].forEach(c=>n[l].add(c))}}return{sorted:s,recipientCounts:Nz(n)}}function Nz(e){const t={};for(const s in e)t[s]=e[s].size;return t}function BA(e,t){const s=new Set,n=[],i={};for(const a of t.names())s.add(a);const r=[],o=[];for(r.push(e);r.length>0;){const a=r[r.length-1];if(s.has(a.name)){r.pop();continue}const l=o[o.length-1]===r.length-1;if(a.inputs.length===0||l)r.pop(),n.push(a),s.add(a.name),l&&o.pop();else{o.push(r.length-1);for(const c of a.inputs){if(i[c.name]==null&&(i[c.name]=new Set),i[c.name].add(a.name),s.has(c.name))continue;r.push(c)}}}return{sorted:n,recipientMap:i}}function Az(e){let t;if(e.sourceLayer.inboundNodes.length===1)t=e.sourceLayer.output;else{let s=null;for(let n=0;ny.name)}`);An(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map(y=>y.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(const y of this.outputs){const w=y.sourceLayer,x=y.nodeIndex,T=y.tensorIndex;this.outputLayers.push(w),this.outputLayersNodeIndices.push(x),this.outputLayersTensorIndices.push(T)}for(const y of this.inputs){const w=y.sourceLayer,x=y.nodeIndex,T=y.tensorIndex;tn(x===0,"input layer has >1 nodes"),tn(T===0,"input layer has >1 tensors"),this.inputLayers.push(w),this.inputLayersNodeIndices.push(x),this.inputLayersTensorIndices.push(T)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let y=0;yy.shape),this.internalOutputShapes=this.outputs.map(y=>y.shape);const t={},s={},n={},i={},r={},o=[],a=(y,w,x,T,A,_)=>{(T==null||A==null||_==null)&&(T=y.sourceLayer,A=y.nodeIndex,_=y.tensorIndex);const E=T.inboundNodes[A];if(x.indexOf(E)!==-1)throw new Ns(`The tensor ${y.name} at layer "${T.name}" is part of a cycle.`);if(w.indexOf(E)!==-1)return;this.containerNodes.add(Bn.nodeKey(T,A)),T.id in r||(r[T.id]=Object.keys(r).length),x.indexOf(E)===-1&&x.push(E);const F=E.inboundLayers.length;for(let D=0;D=0;)x.splice(x.indexOf(E),1);o.push(E)},l=[],c=[];for(const y of this.outputs)a(y,l,c);const p=o.slice().reverse();for(const y of p){s[y.id]=y,y.id in t||(t[y.id]=0);let w=t[y.id];const x=n[y.outboundLayer.id]==null?0:n[y.outboundLayer.id];w=Math.max(w,x),n[y.outboundLayer.id]=w,i[y.outboundLayer.id]=y.outboundLayer,t[y.id]=w;for(let T=0;TparseInt(y,10)).sort(Qp);this.layers=[];for(const y of d){const w=h[y];w.sort((x,T)=>{const A=r[x.id],_=r[T.id];return A<_?-1:A>_?1:0});for(const x of w)x instanceof Bn&&this.internalContainerRefs.push(x),this.layers.push(x)}this.layersByDepth=h,d=Object.keys(u).map(y=>parseInt(y,10)).sort(Qp);const m=this.inputs.slice(),f=[];for(const y of d)for(const w of u[y]){const x=w.outboundLayer;if(x!=null){for(const T of w.inputTensors)if(m.indexOf(T)===-1)throw new Ns(`Graph disconnected: cannot obtain value for tensor ${T} at layer "${x.name}". The following previous layers were accessed without issue: ${f}`);for(const T of w.outputTensors)m.push(T);f.push(x.name)}}this.nodesByDepth=u;const g=this.layers.map(y=>y.name);for(const y of g){const w=g.filter(x=>x===y).length;if(w!==1)throw new Ns(`The name "${y}" is used ${w} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(g))}this.outboundNodes=[],this.inboundNodes=[],new ya({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(y=>null),outputMasks:this.outputs.map(y=>null),inputShapes:this.inputs.map(y=>y.shape),outputShapes:this.outputs.map(y=>y.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();const e={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount===0){for(const t of this.layers)e.numDisposedVariables+=t.dispose().numDisposedVariables;for(const t of this.internalContainerRefs)e.numDisposedVariables+=t.dispose().numDisposedVariables}return e.refCountAfterDispose=this._refCount,e}get trainable(){return this.trainable_}set trainable(e){this.layers.forEach(t=>{t._trainableWeights.forEach(s=>s.trainable=e)}),this.trainable_=e}get trainableWeights(){if(this._trainableWeights.length>0)throw new k("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let e=[];for(const t of this.layers)e=e.concat(t.trainableWeights);return e}get nonTrainableWeights(){const e=[];for(const t of this.layers)e.push(...t.nonTrainableWeights);if(!this.trainable){const t=[];for(const s of this.layers)t.push(...s.trainableWeights);return t.concat(e)}return e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(e,t=!0){const s={};let n=0;for(const r of this.layers)for(const o of r.weights){if(s[o.originalName]!=null)throw new k(`Duplicate weight name: ${o.originalName}`);s[o.originalName]=o,n++}const i=[];for(const r in e){let o=r;if(s[r]==null){const a=r.split("/"),l=a.slice(0,-2).concat([a[a.length-1]]);o=l.join("/")}if(s[o]!=null)i.push([s[o],e[r]]);else if(t)throw new k(`Provided weight data has no target variable: ${r}`);delete s[o]}if(t){const r=[];for(const o in s)r.push(o);if(r.length>0)throw new k(`${r.length} of ${n} weights are not set: ${r}`)}jl(i)}updatedConfig(){const e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${uo}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){const s=dm(this.updatedConfig());return t?JSON.stringify(s):s}call(e,t){return C(()=>{e=He(e);const s=new Hi;for(let n=0;n{e=He(e);let s;return t==null?s=In(null,e.length):s=He(t),this.runInternalGraph(e,s)[1]})}computeOutputShape(e){const t=Pl(e);if(t.length!==this.inputLayers.length)throw new k(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);const s={};for(let o=0;oparseInt(o,10)).sort(Qp);if(n.length>1)for(const o of n){const a=this.nodesByDepth[o];for(const l of a){const c=l.outboundLayer;if(this.inputLayers.map(m=>m.id).indexOf(c.id)!==-1)continue;const p=[];for(let m=0;mparseInt(a,10)).sort(Qp);for(const a of n){const l=this.nodesByDepth[a];for(const c of l){const p=c.outboundLayer,u=c.inputTensors,h=c.outputTensors,d=new Array;for(const m of u)m.id in s&&d.push(s[m.id]);if(d.length===u.length){let m={},f,g,y,w;if(c.callArgs!=null&&(m=c.callArgs),d.length===1){const[x,T]=d[0];m.mask==null&&(m.mask=T),y=He(p.call(x,m)),w=He(p.computeMask(x,T)),f=[x],g=[T]}else f=d.map(x=>x[0]),g=d.map(x=>x[1]),m.mask==null&&(m.mask=g),y=He(p.call(f,m)),w=He(p.computeMask(f,g));if(p.activityRegularizer)throw new ae("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let x=0;x{const e=[];for(const t of this.layers)for(let s=0;s0){const m=[];for(let f=0;f0&&f.apply(jt(y),w)}function l(f){const g=f.name,y=Ls(f,t.customObjects!=null?t.customObjects:{});y.setFastWeightInitDuringBuild(n),i[g]=y;const w=f.inboundNodes;w.forEach(x=>{if(!(x instanceof Array))throw new k(`Corrupted configuration, expected array for nodeData: ${x}`);o(y,x)})}const c=t.name,p=t.layers;for(const f of p)l(f);for(;!cA(r);)for(const f of p){const g=i[f.name];if(g.name in r){const y=r[g.name];delete r[g.name];for(const w of y)a(g,w)}}const u=[],h=[],d=t.inputLayers;for(const f of d){const g=f[0],y=f[1],w=f[2];tn(g in i);const x=i[g],T=x.inboundNodes[y].outputTensors;u.push(T[w])}const m=t.outputLayers;for(const f of m){const g=f[0],y=f[1],w=f[2];tn(g in i);const x=i[g],T=x.inboundNodes[y].outputTensors;h.push(T[w])}return new e({inputs:u,outputs:h,name:c})}get stateful(){if(this._stateful)throw new k("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(const e of this.layers)if(e.stateful)return!0;return!1}resetStates(){C(()=>{this.layers.forEach(e=>{e.stateful&&e.resetStates()})})}}function Cz(e,t,s){const n=t.length;if(e==null||Array.isArray(e)&&e.length===0)return t.map(i=>null);if(n===1)return Array.isArray(e)&&e.length===1?e:typeof e=="object"&&t[0]in e?[e[t[0]]]:[e];if(Array.isArray(e)){if(e.length!==n)throw new Error(`Provided ${s} is an array of ${e.length} element(s), but the model has ${n} outputs. Make sure a set of weights is provided for each model output.`);return e}else if(typeof e=="object"&&Object.keys(e).length>0&&typeof e[Object.keys(e)[0]]=="object"){const i=[];return t.forEach(r=>{r in e?i.push(e[r]):i.push(null)}),i}else throw new Error(`The model has multiple (${n}) outputs, so ${s} must be either an array with ${n} elements or an object with ${t} keys. Provided ${s} not understood: ${JSON.stringify(e)}`)}function mm(e,t){return Cz(e,t,"classWeight")}async function fm(e,t,s,n){if(t!=null||n!=null)throw new Error("Support sampleWeight is not implemented yet");if(s!=null){const i=C(()=>{if(e.shape.length===1)return e.clone();if(e.shape.length===2)if(e.shape[1]>1){const a=1;return e.argMax(a)}else{if(e.shape[1]===1)return e.reshape([e.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${e.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${e.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),r=Array.from(await i.data());ce(i);const o=[];return r.forEach(a=>{if(s[a]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${a} exists in the data but not in classWeight`);o.push(s[a])}),Oe(o,"float32")}else return null}function jA(e,t){return R(e,t)}const Rz=32;function GA(e,t){let s,n;const i=t;s=i.xs,n=i.ys,N.assert(s!=null&&n!=null,()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${t}`);const r=VA("input",e.inputNames,s),o=VA("output",e.outputNames,n),a=r[0].shape[0];N.assert(r.length===e.inputs.length,()=>`LayersModel has ${e.inputs.length} inputs, but the dataset provides ${r.length} inputs. (Expected input keys: ${JSON.stringify(e.inputNames)})`),N.assert(o.length===e.outputs.length,()=>`LayersModel has ${e.outputs.length} outputs, but the dataset provides ${o.length} outputs. (Expected output keys: ${JSON.stringify(e.outputNames)})`);for(let l=0;l`Batch size mismatch: input ${e.inputNames[l]} has ${r[l].shape[0]}; expected ${a} based on input ${e.inputNames[0]}.`);for(let l=0;l`Batch size mismatch: output ${e.outputNames[l]} has ${o[l].shape[0]}; expected ${a} based on input ${e.inputNames[0]}.`);return{xs:r,ys:o}}function VA(e,t,s){if(s instanceof me)return[s];if(Array.isArray(s))return N.assert(s.length===t.length,()=>`Received an array of ${s.length} Tensors, but expected ${t.length} to match the ${e} keys ${t}.`),s;{const n=[];for(const i of t){if(s[i]==null)throw new k(`The feature data generated by the dataset lacks the required ${e} key '${i}'.`);n.push(s[i])}return n}}function Oz(e){if(e.length===3)throw new ae("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}async function HA(e,t,s){const n=s.batchesPerEpoch!=null;if(N.assert(e.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),N.assert(s!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),N.assert(s.epochs!=null&&s.epochs>0&&Number.isInteger(s.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${s.epochs}`),N.assert(!n||s.batchesPerEpoch>0&&Number.isInteger(s.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${s.batchesPerEpoch}`),N.assert(s.validationSplit==null,()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead."),e.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");e.isTraining=!0;try{const i=s.validationData!=null;let r,o;if(i)if(qA(s.validationData))N.assert(s.validationBatches==null||s.validationBatches>0&&Number.isInteger(s.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${s.validationBatches}`);else{const g=Oz(s.validationData);r=g.xs,o=g.ys}const a=e.makeTrainFunction(),l=e.getDedupedMetricsNames();let c;i?c=l.slice().concat(l.map(g=>"val_"+g)):c=l.slice();const p=om(s.callbacks,s.yieldEvery),u=s.verbose==null?1:s.verbose,{callbackList:h,history:d}=am(p,u,s.epochs,null,null,Ez(t,s),null,i,c);h.setModel(e),e.history=d,await h.onTrainBegin(),e.stopTraining_=!1;let m=s.initialEpoch==null?0:s.initialEpoch,f=await t.iterator();for(;m=s.batchesPerEpoch:x.done){if(i){let T;qA(s.validationData)?T=He(await e.evaluateDataset(s.validationData,{batches:s.validationBatches})):T=He(e.evaluate(r,o,{batchSize:s.validationBatchSize==null?Rz:s.validationBatchSize,verbose:0}));for(let A=0;A0)throw new ae("Verbose mode is not implemented yet.");N.assert(!n||s.batches>0&&Number.isInteger(s.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(s.batches)}`);const o=_z(t)?t:await t.iterator();let a=0,l=0;for(;n?l{if(c.value){const{xs:p,ys:u}=GA(e,c.value),h=p.concat(u),d=C(()=>i(h));if(ce(h),l===0)for(let f=0;f$(r[f],R(m,g))),l>0&&ce(y)}ce(d),a+=m,++l}return r}),c.done){n&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \`batches\` batches (in this case, ${s.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let c=0;c0&&Number.isInteger(e),()=>`batchSize is required to be a positive integer, but got ${e}`)}function Hl(e,t,s){return e==null?[null]:Array.isArray(e)?e.map(n=>Gi(n,t,s-t)):Gi(e,t,s-t)}function ym(e,t){return C(()=>e==null?null:Array.isArray(e)?e.map(s=>ym(s,t)):Gd(e,t.dtype==="int32"?t:t.toInt()))}function bm(e,t){const s=[];let n=0,i=null;for(;n=e&&(i=e),s.push([n,i]),n=i;return s}async function kz(e,t,s,n,i,r,o,a,l,c,p,u,h,d,m){i==null&&(i=32),r==null&&(r=1),p==null&&(p=!0),h==null&&(h=0);let f=!1;if(l!=null&&c!=null&&(f=!0),m!=null&&(f=!0,d==null))throw new k("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");const g=e.checkNumSamples(s,i,d,"steps_per_epoch");let y;g!=null&&(y=cs(0,g)),o==null&&(o=1);const{callbackList:w,history:x}=am(a,o,r,h,g,d,i,f,u);w.setModel(e),e.history=x,await w.onTrainBegin(),e.stopTraining_=!1;for(let T=h;T{const M=E[F][0],P=E[F][1],B=Gi(_,M,P-M);D.batch=F,D.size=P-M;const Y=ym(s,B),q=t(Y);for(let K=0;K0){if(m=!0,n.validationData.length===2)o=n.validationData[0],a=n.validationData[1];else throw n.validationData.length===3?new ae("validationData including sample weights is not supported yet."):new k(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${n.validationData} is invalid.`);const E=!0,F=await e.standardizeUserData(o,a,null,null,E,u);l=F[0],c=F[1],f=l.concat(c)}else if(n.validationSplit!=null&&n.validationSplit>0&&n.validationSplit<1){m=!0;const E=Math.floor(i[0].shape[0]*(1-n.validationSplit)),F=i[0].shape[0];l=Hl(i,E,F),i=Hl(i,0,E),c=Hl(r,E,F),r=Hl(r,0,E),f=l.concat(c)}else n.validationSteps!=null&&(m=!0);const g=i.concat(r).concat(p);e.checkTrainableWeightsConsistency();const y=e.makeTrainFunction(),w=e.getDedupedMetricsNames();let x,T;m?(e.makeTestFunction(),x=e.testFunction,T=w.slice().concat(w.map(E=>"val_"+E))):(x=null,f=[],T=w.slice());const A=om(n.callbacks,n.yieldEvery),_=await kz(e,y,g,w,u,n.epochs,n.verbose,A,x,f,n.shuffle,T,n.initialEpoch,null,null);return _}finally{e.isTraining=!1,ho(i,t),ho(r,s),ho(l,o),ho(c,a),p!=null&&ce(p)}}function tw(e){const t=[];e instanceof me&&(e=[e]);for(let s=0;ss.push(i.id));else if(t!=null)for(const i in t){const r=t[i];s.push(r.id)}const n=[];if(e instanceof me)s.indexOf(e.id)===-1&&n.push(e);else if(Array.isArray(e))e.forEach(i=>{s.indexOf(i.id)===-1&&n.push(i)});else if(e!=null)for(const i in e){const r=e[i];s.indexOf(r.id)===-1&&n.push(r)}n.forEach(i=>{i.isDisposed||i.dispose()})}function Dz(e){return e instanceof me}function sw(e){return Array.isArray(e)}function XA(e){return!Dz(e)&&!sw(e)}function JA(e,t,s,n=!0,i=""){if(t==null||t.length===0){if(e!=null){let o=!1;if(sw(e)&&e.length>0)o=!0;else if(XA(e)){for(const a in e)if(e.hasOwnProperty(a)){o=!0;break}}else o=!0;if(o)throw new k(`Error when checking model ${i} expected no data, but got ${e}`)}return[]}if(e==null)return t.map(o=>null);let r;if(XA(e)){e=e,r=[];for(const o of t){if(e[o]==null)throw new k(`No data provided for "${o}". Need data for each key in: ${t}`);r.push(e[o])}}else if(sw(e)){if(e=e,e.length!==t.length)throw new k(`Error when checking model ${i}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${t.length} Tensor(s), but instead got the following list of Tensor(s): ${e}`);r=e}else{if(e=e,t.length>1)throw new k(`The model ${i} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${e.shape}`);r=[e]}if(r=tw(r),s!=null)for(let o=0;o=0&&c!==p)throw new k(`Error when checking ${i}: expected ${t[o]} to have shape [${s[o]}], but got array with shape [${a.shape}].`)}}return r}function Fz(e,t,s){const n=An(e.map(r=>r.shape[0]));n.sort();const i=An(t.map(r=>r.shape[0]));if(i.sort(),n.length>1)throw new k(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(e.map(r=>r.shape))}`);if(i.length>1)throw new k(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(t.map(r=>r.shape))}`);if(n.length>0&&i.length>0&&!N.arraysEqual(n,i))throw new k(`Input Tensors should have the same number of samples as target Tensors. Found ${n[0]} input sample(s) and ${i[0]} target sample(s).`)}function Mz(e,t,s){const n=[yi,ql,wa];for(let i=0;i1)throw new k(`The model expects ${t.length} ${i} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(e.shape)}.`);r=[e]}if(s!=null)for(let o=0;o[]);let s;if(typeof e=="string"||typeof e=="function")s=[e];else if(Array.isArray(e)||typeof e=="object")s=e;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${e}`);if(Array.isArray(s))return t.map(n=>s);{const n=[];for(const i of t){let r=s.hasOwnProperty(i)?s[i]:[];Array.isArray(r)||(r=[r]),n.push(r)}return n}}const $z="layers-model";class nn extends Bn{constructor(e){super(e);this.isTraining=!1}summary(e,t,s=console.log){if(!this.built)throw new k("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");WA(this,e,t,s)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=UA(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof gs))throw new k("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=e.optimizer,this.isOptimizerOwned=!1}let t=[];if(!Array.isArray(e.loss)&&typeof e.loss!="string"&&typeof e.loss!="function"){e.loss=e.loss;for(const r in e.loss)if(this.outputNames.indexOf(r)===-1)throw new k(`Unknown entry in loss dictionary: "${r}". Only expected the following keys: ${this.outputNames}`);for(const r of this.outputNames)e.loss[r]==null&&console.warn(`Output "${r}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${r} during training`),t.push(lm(e.loss[r]))}else if(Array.isArray(e.loss)){if(e.loss.length!==this.outputs.length)throw new k(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${e.loss}.`);const r=e.loss;t=r.map(o=>lm(o))}else{const r=lm(e.loss);this.outputs.forEach(o=>{t.push(r)})}this.lossFunctions=t,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let r=0;r{for(let r=0;r1&&(this.metricsTensors.push([o,r]),this.metricsNames.push(this.outputNames[r]+"_loss"))}});const n=Uz(e.metrics,this.outputNames),i=(r,o,a)=>{this.outputNames.length>1&&(o=this.outputNames[r]+"_"+o),this.metricsNames.push(o),this.metricsTensors.push([a,r])};zn("metric",()=>{for(let r=0;r{const c="";let p,u,h;for(const d of l){if(typeof d=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(d)!==-1){const f=this.internalOutputShapes[r];f[f.length-1]===1||this.lossFunctions[r]===ql?["accuracy","acc"].indexOf(d)!==-1?u=du:["crossentropy","ce"].indexOf(d)!==-1&&(u=cm):this.lossFunctions[r]===Gl?["accuracy","acc"].indexOf(d)!==-1?u=pm:["crossentropy","ce"].indexOf(d)!==-1&&(u=Jb):["accuracy","acc"].indexOf(d)!==-1?u=mu:["crossentropy","ce"].indexOf(d)!==-1&&(u=fu);let g;["accuracy","acc"].indexOf(d)!==-1?g="acc":["crossentropy","ce"].indexOf(d)!==-1&&(g="ce"),h=u,p=c+g}else{const f=MA(d);h=f,p=c+gu(d)}let m;zn(p,()=>{m=h}),i(r,p,m)}};a(o)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){if(this.collectedTrainableWeights==null)return;this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")}evaluate(e,t,s={}){const n=s.batchSize==null?32:s.batchSize;gm(n);const i=!0,r=this.standardizeUserDataXY(e,t,i,n);try{const o=r[0].concat(r[1]);this.makeTestFunction();const a=this.testFunction,l=this.testLoop(a,o,n,s.verbose,s.steps);return jt(l)}finally{ho(r[0],e),ho(r[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),YA(this,e,t)}checkNumSamples(e,t,s,n="steps"){let i;if(s!=null){if(i=null,t!=null)throw new k(`If ${n} is set, batchSize must be null or undefined.Got batchSize = ${t}`)}else if(e!=null)Array.isArray(e)?i=e[0].shape[0]:i=e.shape[0];else throw new k(`Either the input data should have a defined shape, or ${n} shoud be specified.`);return i}execute(e,t){if(Array.isArray(t)&&t.length===0)throw new k("`outputs` is an empty Array, which is not allowed.");const s=Array.isArray(t),n=s?t:[t],i=this.retrieveSymbolicTensors(n),r=new Hi;if(e instanceof me&&(e=[e]),Array.isArray(e)){if(e.length!==this.inputs.length)throw new k(`The number of inputs provided (${e.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let a=0;ao.name);for(let o=0;o0){const n=[];throw t.forEach((i,r)=>{i==null&&n.push(e[r])}),new k(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(n)}`)}return t}predictLoop(e,t=32,s=!1){return C(()=>{const n=this.checkNumSamples(e);if(s)throw new ae("Verbose predictLoop() is not implemented yet.");const i=bm(n,t),r=this.outputs.map(o=>[]);for(let o=0;o{const l=i[o][0],c=i[o][1],p=Hl(e,l,c),u=[];if(Array.isArray(p))for(let d=0;dr[c].push(l))}return jt(r.map(o=>be(o,0)))})}predict(e,t={}){const s=tw(e);ZA(s,this.inputNames,this.feedInputShapes,!1);try{const n=t.batchSize==null?32:t.batchSize;return gm(n),this.predictLoop(s,n)}finally{ho(s,e)}}predictOnBatch(e){ZA(e,this.inputNames,this.feedInputShapes,!0);const t=(Array.isArray(e)?e[0]:e).shape[0];return this.predictLoop(e,t)}standardizeUserDataXY(e,t,s=!0,n){if(this.optimizer_==null)throw new Ns("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");const i=[];for(let r=0;r0&&e[0].shape[0]%n!==0)throw new k(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${n}. Found: ${e[0].shape[0]} sample(s).`);return[e,t]}async standardizeUserData(e,t,s,n,i=!0,r){const[o,a]=this.standardizeUserDataXY(e,t,i,r);if(s!=null)throw new Error("sample weight is not supported yet.");let l=null;if(n!=null){const c=mm(n,this.outputNames);l=[];for(let p=0;p{const r=this.checkNumSamples(t,s,i,"steps"),o=[];if(n>0)throw new ae("Verbose mode is not implemented yet.");if(i!=null)throw new ae("steps mode in testLoop() is not implemented yet");{const a=bm(r,s),l=Oe(cs(0,r));for(let c=0;c1){const r=Ub(e.slice(0,s),n);i+=`_${r}`}t.push(i)}return t}makeTrainFunction(){return e=>{const t=[],s=e.slice(0,this.inputs.length),n=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),i=e.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),r=[],o=()=>{const p=[];for(let m=0;m1&&m{d=$(d,m)}),d},a=this.collectedTrainableWeights.map(p=>p.read()),l=!0,c=this.optimizer_.minimize(o,l,a);return[c].concat(r)}}makeTestFunction(){this.testFunction=e=>C(()=>{const t=[];let s;const n=e.slice(0,this.inputs.length),i=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),r=[];for(let l=0;lvn(t))}else{const t=Object.keys(this.loss);e={};const s=this.loss;for(const n of t)if(typeof s[n]=="string")e[n]=vn(s[n]);else throw new Error("Serialization of non-string loss is not supported.")}return e}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[vn(gu(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>vn(gu(e)));{const e={};for(const t in this.metrics)e[t]=vn(gu(this.metrics[t]));return e}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(e){if(e.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(e.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(e.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");const t=xa(e.optimizer_config),s=Ls(t);let n;if(typeof e.loss=="string")n=Pi(e.loss);else if(Array.isArray(e.loss))n=e.loss.map(r=>Pi(r));else if(e.loss!=null){n={};for(const r in e.loss)n[r]=Pi(e.loss[r])}let i;if(Array.isArray(e.metrics))i=e.metrics.map(r=>Pi(r));else if(e.metrics!=null){i={};for(const r in e.metrics)i[r]=Pi(e.metrics[r])}this.compile({loss:n,metrics:i,optimizer:s})}async save(e,t){if(typeof e=="string"){const l=Rt.getSaveHandlers(e);if(l.length===0)throw new k(`Cannot find any save handlers for URL '${e}'`);if(l.length>1)throw new k(`Found more than one (${l.length}) save handlers for URL '${e}'`);e=l[0]}if(e.save==null)throw new k("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");const s=await Rt.encodeWeights(this.getNamedWeights(t)),n=!1,i=null,r=this.toJSON(i,n),o={modelTopology:r,format:$z,generatedBy:`TensorFlow.js tfjs-layers v${uo}`,convertedBy:null},a=t==null?!1:t.includeOptimizer;if(a&&this.optimizer!=null){o.trainingConfig=this.getTrainingConfig();const l="optimizer",{data:c,specs:p}=await Rt.encodeWeights(await this.optimizer.getWeights(),l);s.specs.push(...p),s.data=Rt.concatenateArrayBuffers([s.data,c])}if(this.userDefinedMetadata!=null){const l=!0;Qb(this.userDefinedMetadata,this.name,l),o.userDefinedMetadata=this.userDefinedMetadata}return o.weightData=s.data,o.weightSpecs=s.specs,e.save(o)}setUserDefinedMetadata(e){Qb(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}}nn.className="Model";V.registerClass(nn);class QA extends nn{}QA.className="Functional";V.registerClass(QA);async function eN(e,t){"modelTopology"in e||(e={modelTopology:e}),e=e;let s=e.modelTopology;s.model_config!=null&&(s=s.model_config);const n=xa(s),i=Ls(n,t);if(e.weightsManifest!=null){const r=await Rt.loadWeights(e.weightsManifest,e.pathPrefix,i.weights.map(a=>a.originalName)),o={};for(const a of i.weights)o[a.originalName]=r[a.originalName];i.loadWeights(o),ce(r)}return i}async function tN(e,t){if(t==null&&(t={}),typeof e=="string"){const s=Rt.getLoadHandlers(e,t);if(s.length===0)s.push(Rt.browserHTTPRequest(e,t));else if(s.length>1)throw new k(`Found more than one (${s.length}) load handlers for URL '${e}'`);e=s[0]}return Wz(e,void 0,t)}async function Wz(e,t,s){if(s==null&&(s={}),e.load==null)throw new k("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");const n=await e.load();let i=n.modelTopology;i.model_config!=null&&(i=i.model_config);const r=s.strict==null?!0:s.strict,o=n.weightData!=null&&n.weightSpecs!=null&&r,a=Ls(xa(i),t,o),l=n.trainingConfig;if(l!=null&&a.loadTrainingConfig(l),n.userDefinedMetadata!=null&&a.setUserDefinedMetadata(n.userDefinedMetadata),n.weightData!=null){if(n.weightSpecs==null)throw new k("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");const{modelWeights:c,optimizerWeights:p}=zz(n.weightData,n.weightSpecs);a.loadWeights(c,r),a.optimizer!=null&&p.length>0&&await a.optimizer.setWeights(p),ce(c),ce(p.map(u=>u.tensor))}return a}function zz(e,t){const s=Rt.decodeWeights(e,t),n={},i=[];return t.forEach(r=>{r.group==="optimizer"?i.push({name:r.name,tensor:s[r.name]}):n[r.name]=s[r.name]}),{modelWeights:n,optimizerWeights:i}}class mo extends nn{constructor(e){super({inputs:[],outputs:[]});if(e=e||{},this.trainable=!0,this.built=!1,this.name=e.name!=null?e.name:co("sequential_"),e.layers!=null)for(const t of e.layers)this.add(t)}checkShape(e){const t=e.inboundNodes[0].outputTensors[0].shape;if(t.some(s=>s<0))throw new k(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){const t=e instanceof mo||e instanceof nn;let s;if(t){if(s=e,s.outputs.length!==1)throw new k("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(s.inputs.length!==1)throw new k("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(e.inboundNodes.length===0){if(e.batchInputShape==null)throw new k("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");const n=im({batchShape:e.batchInputShape,dtype:e.dtype,name:e.name+"_input"});e.apply(n)}if(t)this.outputs=s.outputs,this.inputs=s.inputs;else{if(e.inboundNodes.length!==1)throw new k(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${e.name} which has ${e.inboundNodes.length} pre-existing inbound connections.`);if(e.inboundNodes[0].outputTensors.length!==1)throw new k("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[e.inboundNodes[0].outputTensors[0]],this.inputs=qb(this.outputs[0])}this.inboundNodes=[],new ya({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:In(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(n=>n.shape),outputShapes:this.outputs[0].shape})}else{const n=e.apply(this.outputs[0]);if(Array.isArray(n))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[n],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(e),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{const e=this.layers.length-1;this.layers[e].outboundNodes=[],this.outputs=[this.layers[e].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(e,t){return this.model==null&&this.build(),this.model.call(e,t)}build(e){if(Ue(e),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new nn({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(e,t,s=console.log){this.built||this.build(),super.summary(e,t,s)}setWeights(e){this.model==null&&this.build(),this.model.setWeights(e)}evaluate(e,t,s={}){if(!this.built)throw new Ns("The model needs to be compiled before being used.");return this.model.evaluate(e,t,s)}async evaluateDataset(e,t){if(!this.built)throw new Ns("The model needs to be compiled before being used.");return this.model.evaluateDataset(e,t)}predict(e,t={}){return this.model==null&&this.build(),this.model.predict(e,t)}predictOnBatch(e){return this.model==null&&this.build(),this.model.predictOnBatch(e)}compile(e){this.build(),this.model.compile(e),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return this.model==null?void 0:this.model.optimizer}set optimizer(e){this.model.optimizer=e}async fit(e,t,s={}){if(!this.built)throw new Ns("The model needs to be compiled before being used.");return this.model.fit(e,t,s)}async fitDataset(e,t){if(!this.built)throw new Ns("The model needs to be compiled before being used.");return this.model.fitDataset(e,t)}async trainOnBatch(e,t){return this.model.trainOnBatch(e,t)}static fromConfig(e,t,s={},n=!1){let i,r={};if(t instanceof Array){if(!(t[0].className!=null)||t[0].className==="Merge")throw new k("Legacy serialization format not supported yet.");i=t}else N.assert(t.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),i=t.layers,delete t.layers,r=t;const o=new e(r);if(!(o instanceof mo))throw new ae(`Sequential.fromConfig called on non-Sequential input: ${o}`);for(const a of i){const l=void 0,c=Ls(a,l,n);n&&c.setFastWeightInitDuringBuild(!0),o.add(c)}return o}set stopTraining(e){if(this.model==null)throw new k("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=e}get stopTraining(){if(this.model==null)throw new k("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){const e=[];for(const t of this.layers){const s={};s.className=t.getClassName(),s.config=t.getConfig(),e.push(s)}return{name:this.name,layers:e}}}mo.className="Sequential";V.registerClass(mo);function sN(e){return new nn(e)}function nN(e){return new mo(e)}function iN(e,t){return t==null&&(t={}),tN(e,t)}function wm(e){return im(e)}function rN(e,t){sn.registerCallbackConstructor(e,t)}class Ps extends V.Serializable{getConfig(){return{}}}class oN extends Ps{apply(e,t=1){return TA(e,t)}}oN.className="elu";V.registerClass(oN);class aN extends Ps{apply(e){return Rl(e)}}aN.className="selu";V.registerClass(aN);class lN extends Ps{apply(e){return Fe(e)}}lN.className="relu";V.registerClass(lN);class cN extends Ps{apply(e){return C(()=>bn(6,Fe(e)))}}cN.className="relu6";V.registerClass(cN);class pN extends Ps{apply(e){return e}}pN.className="linear";V.registerClass(pN);class uN extends Ps{apply(e){return os(e)}}uN.className="sigmoid";V.registerClass(uN);class hN extends Ps{apply(e){return NA(e)}}hN.className="hardSigmoid";V.registerClass(hN);class dN extends Ps{apply(e){return di(e)}}dN.className="softplus";V.registerClass(dN);class mN extends Ps{apply(e){return AA(e)}}mN.className="softsign";V.registerClass(mN);class fN extends Ps{apply(e){return Mi(e)}}fN.className="tanh";V.registerClass(fN);class xm extends Ps{apply(e,t=-1){return ts(e,t)}}xm.className="softmax";V.registerClass(xm);class gN extends Ps{apply(e,t=-1){return Il(e,t)}}gN.className="logSoftmax";V.registerClass(gN);class yN extends Ps{apply(e,t=1){return C(()=>os(e.mul(t)).mul(e))}}yN.className="swish";V.registerClass(yN);function jn(e){return e.getClassName()}function nw(e,t={}){return fi(e,V.SerializationMap.getMap().classNameMap,t,"activation")}function Vn(e){if(e==null){const t={};return t.className="linear",t.config={},nw(t)}if(typeof e=="string"){const t={};return t.className=e,t.config={},nw(t)}else return e instanceof Ps?e:nw(e)}function iw(e){if(e!=null&&typeof e!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${e}`)}class bN extends V.Serializable{}class Yl extends bN{constructor(e){super();iw(e),this.l1=e==null||e.l1==null?.01:e.l1,this.l2=e==null||e.l2==null?.01:e.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(e){return C(()=>{let t=ye([1]);return this.hasL1&&(t=$(t,te(R(this.l1,et(e))))),this.hasL2&&(t=$(t,te(R(this.l2,ga(e))))),t.asScalar()})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}}Yl.className="L1L2";V.registerClass(Yl);function wN(e){return iw(e),new Yl({l1:e!=null?e.l1:null,l2:0})}function xN(e){return iw(e),new Yl({l2:e!=null?e.l2:null,l1:0})}const LN={l1l2:"L1L2"};function Pe(e){return Ml(e)}function SN(e,t={}){return fi(e,V.SerializationMap.getMap().classNameMap,t,"regularizer")}function Ye(e){if(e==null)return null;if(typeof e=="string"){const t=e in LN?LN[e]:e,s={className:t,config:{}};return SN(s)}else return e instanceof bN?e:SN(e)}class Lm extends Le{constructor(e){super(e??{});this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=we(e);let s=Fe(e);return this.maxValue!=null&&(s=xt(s,0,this.maxValue)),s}computeOutputShape(e){return e}getConfig(){const e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}}Lm.className="ReLU";V.registerClass(Lm);class Sm extends Le{constructor(e){super(e??{});this.DEFAULT_ALPHA=.3,e==null&&(e={}),this.alpha=e.alpha==null?this.DEFAULT_ALPHA:e.alpha}call(e,t){const s=we(e);return Ll(s,this.alpha)}computeOutputShape(e){return e}getConfig(){const e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}}Sm.className="LeakyReLU";V.registerClass(Sm);class Im extends Le{constructor(e){super(e??{});if(this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=je(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=Ye(e.alphaRegularizer),this.alphaConstraint=at(e.alphaConstraint),e.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(e.sharedAxes))this.sharedAxes=e.sharedAxes;else if(typeof e.sharedAxes=="number")this.sharedAxes=[e.sharedAxes];else throw new k(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`)}build(e){e=Ue(e);const t=e.slice(1);if(this.sharedAxes!=null)for(const n of this.sharedAxes)t[n-1]=1;this.alpha=this.addWeight("alpha",t,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);const s={};if(this.sharedAxes!=null)for(let n=1;n(lt(t),t==="channelsFirst"?se(e,[0,2,3,1]):e))}function rw(e,t){return C(()=>(lt(t),t==="channelsFirst"?se(e,[0,2,3,4,1]):e))}function Pz(e,t,s,n=1,i="valid",r,o=1){return C(()=>{if(r==null&&(r=ys()),lt(r),e.shape.length!==3)throw new k(`The input of a conv1dWithBias operation should be 3, but is ${e.shape.length} instead.`);if(t.shape.length!==3)throw new k(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(s!=null&&s.shape.length!==1)throw new k(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(r==="channelsFirst"&&(e=se(e,[0,2,1])),i==="causal")throw new ae("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let a=fl(e,t,n,i==="same"?"same":"valid","NWC",o);return s!=null&&(a=Cs(a,s)),a})}function IN(e,t,s,n=[1,1],i="valid",r,o,a=null){return C(()=>{if(r==null&&(r=ys()),lt(r),e.rank!==3&&e.rank!==4)throw new k(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${e.rank}.`);if(t.rank!==3&&t.rank!==4)throw new k(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${e.rank}.`);let l=bu(e,r);if(i==="causal")throw new ae("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=xn.conv2d({x:l,filter:t,strides:n,pad:i==="same"?"same":"valid",dilations:o,dataFormat:"NHWC",bias:s,activation:a}),r==="channelsFirst"&&(l=se(l,[0,3,1,2])),l})}function Bz(e,t,s,n=[1,1,1],i="valid",r,o){return C(()=>{if(r==null&&(r=ys()),lt(r),e.rank!==4&&e.rank!==5)throw new k(`conv3dWithBias expects input to be of rank 4 or 5, but received ${e.rank}.`);if(t.rank!==4&&t.rank!==5)throw new k(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${e.rank}.`);let a=rw(e,r);if(i==="causal")throw new ae("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return a=bl(a,t,n,i==="same"?"same":"valid","NDHWC",o),s!=null&&(a=Cs(a,s)),r==="channelsFirst"&&(a=se(a,[0,4,1,2,3])),a})}class Nm extends Le{constructor(e,t){super(t);if(this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",Nm.verifyArgs(t),this.rank=e,yt(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new ae(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=fo(t.kernelSize,e,"kernelSize"),this.strides=fo(t.strides==null?1:t.strides,e,"strides"),this.padding=t.padding==null?"valid":t.padding,bs(this.padding),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,lt(this.dataFormat),this.activation=Vn(t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.biasInitializer=je(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=at(t.biasConstraint),this.biasRegularizer=Ye(t.biasRegularizer),this.activityRegularizer=Ye(t.activityRegularizer),this.dilationRate=fo(t.dilationRate==null?1:t.dilationRate,e,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new k(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new k(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new k(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(e){if(tn("kernelSize"in e,"required key 'kernelSize' not in config"),typeof e.kernelSize!="number"&&!Md(e.kernelSize,"number",1,3))throw new k(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(e.kernelSize)}.`)}getConfig(){const e={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:jn(this.activation),useBias:this.useBias,biasInitializer:Ze(this.biasInitializer),biasRegularizer:Pe(this.biasRegularizer),activityRegularizer:Pe(this.activityRegularizer),biasConstraint:ot(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}}class wu extends Nm{constructor(e,t){super(e,t);this.kernel=null,wu.verifyArgs(t),this.filters=t.filters,yt(this.filters,"filters"),this.kernelInitializer=je(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=at(t.kernelConstraint),this.kernelRegularizer=Ye(t.kernelRegularizer)}build(e){e=Ue(e);const t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new k(`The channel dimension of the input should be defined. Found ${e[t]}`);const s=e[t],n=this.kernelSize.concat([s,this.filters]);this.kernel=this.addWeight("kernel",n,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[t]:s}}],this.built=!0}call(e,t){return C(()=>{e=we(e);let s;const n=this.bias==null?null:this.bias.read(),i=Ud(this.activation.getClassName());if(i!=null&&this.rank===2)s=IN(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate,i);else{if(this.rank===1)s=Pz(e,this.kernel.read(),n,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)s=IN(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)s=Bz(e,this.kernel.read(),n,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new ae("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(s=this.activation.apply(s))}return s})}computeOutputShape(e){e=Ue(e);const t=[],s=this.dataFormat==="channelsLast"?e.slice(1,e.length-1):e.slice(2);for(let i=0;i 0 but got ${JSON.stringify(e.filters)}`)}}class Kl extends wu{constructor(e){super(2,e);Kl.verifyArgs(e)}getConfig(){const e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!Md(e.kernelSize,"number",1,2))throw new k(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}}Kl.className="Conv2D";V.registerClass(Kl);class xu extends wu{constructor(e){super(3,e);xu.verifyArgs(e)}getConfig(){const e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!(Array.isArray(e.kernelSize)&&(e.kernelSize.length===1||e.kernelSize.length===3)))throw new k(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}}xu.className="Conv3D";V.registerClass(xu);class Cm extends Kl{constructor(e){super(e);if(this.inputSpec=[new st({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new k(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=Ue(e),e.length!==4)throw new k("Input should have rank 4; Received input shape: "+JSON.stringify(e));const t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new k("The channel dimension of the inputs should be defined. Found `None`.");const s=e[t],n=this.kernelSize.concat([this.filters,s]);this.kernel=this.addWeight("kernel",n,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new st({ndim:4,axes:{[t]:s}})],this.built=!0}call(e,t){return C(()=>{let s=we(e);if(s.shape.length!==4)throw new k(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${s.shape.length}`);const n=s.shape,i=n[0];let r,o;this.dataFormat==="channelsFirst"?(r=2,o=3):(r=1,o=2);const a=n[r],l=n[o],c=this.kernelSize[0],p=this.kernelSize[1],u=this.strides[0],h=this.strides[1],d=yu(a,u,c,this.padding),m=yu(l,h,p,this.padding),f=[i,d,m,this.filters];this.dataFormat!=="channelsLast"&&(s=se(s,[0,2,3,1]));let g=yl(s,this.kernel.read(),f,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(g=se(g,[0,3,1,2])),this.bias!=null&&(g=Cs(g,this.bias.read(),this.dataFormat)),this.activation!=null&&(g=this.activation.apply(g)),g})}computeOutputShape(e){e=Ue(e);const t=e.slice();let s,n,i;this.dataFormat==="channelsFirst"?(s=1,n=2,i=3):(s=3,n=1,i=2);const r=this.kernelSize[0],o=this.kernelSize[1],a=this.strides[0],l=this.strides[1];return t[s]=this.filters,t[n]=yu(t[n],a,r,this.padding),t[i]=yu(t[i],l,o,this.padding),t}getConfig(){const e=super.getConfig();return delete e.dilationRate,e}}Cm.className="Conv2DTranspose";V.registerClass(Cm);class vN extends wu{constructor(e,t){super(e,t);if(this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,t.filters==null)throw new k("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(t.kernelInitializer!=null||t.kernelRegularizer!=null||t.kernelConstraint!=null)throw new k("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(t.padding!=null&&t.padding!=="same"&&t.padding!=="valid")throw new k(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(t.padding)}`);this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=je(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=Ye(t.depthwiseRegularizer),this.depthwiseConstraint=at(t.depthwiseConstraint),this.pointwiseInitializer=je(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=Ye(t.pointwiseRegularizer),this.pointwiseConstraint=at(t.pointwiseConstraint)}build(e){if(e=Ue(e),e.length{e=we(e);let s;if(this.rank===1)throw new ae("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=se(e,[0,2,3,1])),s=eo(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(s=Cs(s,this.bias.read(),this.dataFormat)),this.activation!=null&&(s=this.activation.apply(s)),this.dataFormat==="channelsFirst"&&(s=se(s,[0,3,1,2])),s})}getConfig(){const e=super.getConfig();return delete e.rank,delete e.kernelInitializer,delete e.kernelRegularizer,delete e.kernelConstraint,e.depthwiseInitializer=Ze(this.depthwiseInitializer),e.pointwiseInitializer=Ze(this.pointwiseInitializer),e.depthwiseRegularizer=Pe(this.depthwiseRegularizer),e.pointwiseRegularizer=Pe(this.pointwiseRegularizer),e.depthwiseConstraint=ot(this.depthwiseConstraint),e.pointwiseConstraint=ot(this.pointwiseConstraint),e}}vN.className="SeparableConv";class Rm extends vN{constructor(e){super(2,e)}}Rm.className="SeparableConv2D";V.registerClass(Rm);class Lu extends wu{constructor(e){super(1,e);Lu.verifyArgs(e),this.inputSpec=[{ndim:3}]}getConfig(){const e=super.getConfig();return delete e.rank,delete e.dataFormat,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!Md(e.kernelSize,"number",1,1))throw new k(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}}Lu.className="Conv1D";V.registerClass(Lu);class Om extends Le{constructor(e){super(e);typeof e.cropping=="number"?this.cropping=[[e.cropping,e.cropping],[e.cropping,e.cropping]]:typeof e.cropping[0]=="number"?this.cropping=[[e.cropping[0],e.cropping[0]],[e.cropping[1],e.cropping[1]]]:this.cropping=e.cropping,this.dataFormat=e.dataFormat===void 0?"channelsLast":e.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(e){return this.dataFormat==="channelsFirst"?[e[0],e[1],e[2]-this.cropping[0][0]-this.cropping[0][1],e[3]-this.cropping[1][0]-this.cropping[1][1]]:[e[0],e[1]-this.cropping[0][0]-this.cropping[0][1],e[2]-this.cropping[1][0]-this.cropping[1][1],e[3]]}call(e,t){return C(()=>{if(e=we(e),this.dataFormat==="channelsLast"){const s=su(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return su(s,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{const s=su(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return su(s,this.cropping[1][0],e.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){const e={cropping:this.cropping,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}Om.className="Cropping2D";V.registerClass(Om);class Em extends Le{constructor(e){super(e);this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=e.size==null?this.DEFAULT_SIZE:e.size,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat}computeOutputShape(e){if(this.dataFormat==="channelsFirst"){const t=e[2]==null?null:this.size[0]*e[2],s=e[3]==null?null:this.size[1]*e[3];return[e[0],e[1],t,s]}else{const t=e[1]==null?null:this.size[0]*e[1],s=e[2]==null?null:this.size[1]*e[2];return[e[0],t,s,e[3]]}}call(e,t){return C(()=>{let s=we(e);const n=s.shape;if(this.dataFormat==="channelsFirst"){s=se(s,[0,2,3,1]);const i=this.size[0]*n[2],r=this.size[1]*n[3],o=s.resizeNearestNeighbor([i,r]);return se(o,[0,3,1,2])}else{const i=this.size[0]*n[1],r=this.size[1]*n[2];return s.resizeNearestNeighbor([i,r])}})}getConfig(){const e={size:this.size,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}Em.className="UpSampling2D";V.registerClass(Em);function jz(e,t,s=[1,1],n="valid",i,r){return C(()=>{i==null&&(i=ys()),lt(i);let o=bu(e,i);if(e.rank!==4)throw new k(`Input for depthwiseConv2d is required to be 4-D, but is instead ${e.rank}-D`);if(t.rank!==4)throw new k(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return o=fn(o,t,s,n==="same"?"same":"valid","NHWC",r),i==="channelsFirst"&&(o=se(o,[0,3,1,2])),o})}class _m extends Nm{constructor(e){super(2,e);this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=je(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=at(e.depthwiseConstraint),this.depthwiseRegularizer=Ye(e.depthwiseRegularizer)}build(e){if(e=Ue(e),e.length<4)throw new k(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(e)}.`);const t=this.dataFormat==="channelsFirst"?1:3;if(e[t]==null||e[t]<0)throw new k(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${e[t]}).`);const s=e[t],n=[this.kernelSize[0],this.kernelSize[1],s,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",n,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[s*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return C(()=>{e=we(e);let s=jz(e,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(s=Cs(s,this.bias.read(),this.dataFormat)),this.activation!=null&&(s=this.activation.apply(s)),s})}computeOutputShape(e){e=Ue(e);const t=this.dataFormat==="channelsFirst"?e[2]:e[1],s=this.dataFormat==="channelsFirst"?e[3]:e[2],n=this.dataFormat==="channelsFirst"?e[1]*this.depthMultiplier:e[3]*this.depthMultiplier,i=Rs(t,this.kernelSize[0],this.padding,this.strides[0]),r=Rs(s,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[e[0],n,i,r]:[e[0],i,r,n]}getConfig(){const e=super.getConfig();return e.depthMultiplier=this.depthMultiplier,e.depthwiseInitializer=Ze(this.depthwiseInitializer),e.depthwiseRegularizer=Pe(this.depthwiseRegularizer),e.depthwiseConstraint=ot(this.depthwiseRegularizer),e}}_m.className="DepthwiseConv2D";V.registerClass(_m);function ow(e,t,s,n){if(Array.isArray(e)){if(t!=null||s!=null)throw new k("When inputs is an array, neither initialState or constants should be provided");n!=null&&(s=e.slice(e.length-n,e.length),e=e.slice(0,e.length-n)),e.length>1&&(t=e.slice(1,e.length)),e=e[0]}function i(r){return r==null||Array.isArray(r)?r:[r]}return t=i(t),s=i(s),{inputs:e,initialState:t,constants:s}}function aw(e,t,s,n=!1,i,r,o=!1,a=!1){return C(()=>{const l=t.shape.length;if(l<3)throw new k(`Input should be at least 3D, but is ${l}D.`);const c=[1,0].concat(cs(2,l));if(t=se(t,c),r!=null)throw new ae("The rnn() functoin of the deeplearn.js backend does not support constants yet.");o&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),i!=null&&(i=i.asType("bool").asType("float32"),i.rank===l-1&&(i=Mt(i,-1)),i=se(i,c)),n&&(t=Et(t,0),i!=null&&(i=Et(i,0)));const p=[];let u,h=s;const d=t.shape[0],m=qe(t);let f;i!=null&&(f=qe(i));for(let y=0;ye(w,h));if(i==null)u=x[0],h=x[1];else{const T=C(()=>{const A=f[y],_=Ot(A).sub(A),E=x[0].mul(A).add(h[0].mul(_)),F=h.map((D,M)=>x[1][M].mul(A).add(D.mul(_)));return{output:E,newStates:F}});u=T.output,h=T.newStates}a&&p.push(u)}let g;if(a){const y=1;g=Ge(p,y)}return[u,g,h]})}class rn extends Le{constructor(e){super(e);let t;if(e.cell==null)throw new k("cell property is missing for the constructor of RNN.");if(Array.isArray(e.cell)?t=new Su({cells:e.cell}):t=e.cell,t.stateSize==null)throw new k("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=t,this.returnSequences=e.returnSequences==null?!1:e.returnSequences,this.returnState=e.returnState==null?!1:e.returnState,this.goBackwards=e.goBackwards==null?!1:e.goBackwards,this._stateful=e.stateful==null?!1:e.stateful,this.unroll=e.unroll==null?!1:e.unroll,this.supportsMasking=!0,this.inputSpec=[new st({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){const e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return cs(0,e).map(t=>null)}else return this.states_}setStates(e){this.states_=e}computeOutputShape(e){sm(e)&&(e=e[0]),e=e;let t=this.cell.stateSize;Array.isArray(t)||(t=[t]);const s=t[0];let n;if(this.returnSequences?n=[e[0],e[1],s]:n=[e[0],s],this.returnState){const i=[];for(const r of t)i.push([e[0],r]);return[n].concat(i)}else return n}computeMask(e,t){return C(()=>{Array.isArray(t)&&(t=t[0]);const s=this.returnSequences?t:null;if(this.returnState){const n=this.states.map(i=>null);return[s].concat(n)}else return s})}get states(){if(this.states_==null){const e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,t=[];for(let s=0;so.shape[o.shape.length-1]),r))throw new k(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=r.map(o=>new st({shape:[null,o]}));this.stateful&&this.resetStates()}resetStates(e,t=!1){C(()=>{if(!this.stateful)throw new Sn("Cannot call resetStates() on an RNN Layer that is not stateful.");const s=this.inputSpec[0].shape[0];if(s==null)throw new k("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(n=>ye([s,n])):this.states_=[ye([s,this.cell.stateSize])];else if(e==null)ce(this.states_),this.keptStates!=null&&(ce(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(n=>ye([s,n])):this.states_[0]=ye([s,this.cell.stateSize]);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new k(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t===!0?this.keptStates.push(this.states_.slice()):ce(this.states_);for(let n=0;npt(n.clone()))})}apply(e,t){let s=t==null?null:t.initialState,n=t==null?null:t.constants;t==null&&(t={});const i=ow(e,s,n,this.numConstants);e=i.inputs,s=i.initialState,n=i.constants;let r=[],o=[];if(s!=null){t.initialState=s,r=r.concat(s),this.stateSpec=[];for(const l of s)this.stateSpec.push(new st({shape:l.shape}));o=o.concat(this.stateSpec)}n!=null&&(t.constants=n,r=r.concat(n),this.numConstants=n.length);const a=r[0]instanceof xs;if(a){const l=[e].concat(r),c=this.inputSpec.concat(o),p=this.inputSpec;this.inputSpec=c;const u=super.apply(l,t);return this.inputSpec=p,u}else return super.apply(e,t)}call(e,t){return C(()=>{const s=t==null?null:t.mask,n=t==null?null:t.training;let i=t==null?null:t.initialState;e=we(e),i==null&&(this.stateful?i=this.states_:i=this.getInitialState(e));const r=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(i.length!==r)throw new k(`RNN Layer has ${r} state(s) but was passed ${i.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");const o={training:n},a=(d,m)=>{const f=this.cell.call([d].concat(m),o);return[f[0],f.slice(1)]},l=aw(a,e,i,this.goBackwards,s,null,this.unroll,this.returnSequences),c=l[0],p=l[1],u=l[2];this.stateful&&this.resetStates(u,n);const h=this.returnSequences?p:c;return this.returnState?[h].concat(u):h})}getInitialState(e){return C(()=>{let t=ye(e.shape);return t=te(t,[1,2]),t=Vi(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(s=>s>1?Vd(t,[1,s]):t):this.cell.stateSize>1?[Vd(t,[1,this.cell.stateSize])]:[t]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(e)}getConfig(){const e=super.getConfig(),t={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(t.numConstants=this.numConstants);const s=this.cell.getConfig();return this.getClassName()===rn.className&&(t.cell={className:this.cell.getClassName(),config:s}),Object.assign({},s,e,t)}static fromConfig(e,t,s={}){const n=t.cell,i=Ls(n,s);return new e(Object.assign(t,{cell:i}))}}rn.className="RNN";V.registerClass(rn);class go extends Le{}class Iu extends go{constructor(e){super(e);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,yt(this.units,"units"),this.activation=Vn(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=je(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=je(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=je(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Ye(e.kernelRegularizer),this.recurrentRegularizer=Ye(e.recurrentRegularizer),this.biasRegularizer=Ye(e.biasRegularizer),this.kernelConstraint=at(e.kernelConstraint),this.recurrentConstraint=at(e.recurrentConstraint),this.biasConstraint=at(e.biasConstraint),this.dropout=fa([1,Pn([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=fa([1,Pn([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Ue(e),this.kernel=this.addWeight("kernel",[e[e.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return C(()=>{if(e=e,e.length!==2)throw new k(`SimpleRNNCell expects 2 input Tensors, got ${e.length}.`);let s=e[1];e=e[0];const n=t.training==null?!1:t.training;0Ot(e),rate:this.dropout,training:n})),0Ot(s),rate:this.recurrentDropout,training:n}));let i;const r=this.dropoutMask,o=this.recurrentDropoutMask;r!=null?i=Cn(R(e,r),this.kernel.read()):i=Cn(e,this.kernel.read()),this.bias!=null&&(i=Cs(i,this.bias.read())),o!=null&&(s=R(s,o));let a=$(i,Cn(s,this.recurrentKernel.read()));return this.activation!=null&&(a=this.activation.apply(a)),[a,a]})}getConfig(){const e=super.getConfig(),t={units:this.units,activation:jn(this.activation),useBias:this.useBias,kernelInitializer:Ze(this.kernelInitializer),recurrentInitializer:Ze(this.recurrentInitializer),biasInitializer:Ze(this.biasInitializer),kernelRegularizer:Pe(this.kernelRegularizer),recurrentRegularizer:Pe(this.recurrentRegularizer),biasRegularizer:Pe(this.biasRegularizer),activityRegularizer:Pe(this.activityRegularizer),kernelConstraint:ot(this.kernelConstraint),recurrentConstraint:ot(this.recurrentConstraint),biasConstraint:ot(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign({},e,t)}}Iu.className="SimpleRNNCell";V.registerClass(Iu);class km extends rn{constructor(e){e.cell=new Iu(e),super(e)}call(e,t){return C(()=>{this.cell.dropoutMask!=null&&(ce(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(ce(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);const s=t==null?null:t.mask,n=t==null?null:t.training,i=t==null?null:t.initialState;return super.call(e,{mask:s,training:n,initialState:i})})}static fromConfig(e,t){return new e(t)}}km.className="SimpleRNN";V.registerClass(km);class vu extends go{constructor(e){super(e);if(this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.resetAfter)throw new k("GRUCell does not support reset_after parameter set to true.");this.units=e.units,yt(this.units,"units"),this.activation=Vn(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=Vn(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=je(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=je(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=je(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Ye(e.kernelRegularizer),this.recurrentRegularizer=Ye(e.recurrentRegularizer),this.biasRegularizer=Ye(e.biasRegularizer),this.kernelConstraint=at(e.kernelConstraint),this.recurrentConstraint=at(e.recurrentConstraint),this.biasConstraint=at(e.biasConstraint),this.dropout=fa([1,Pn([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=fa([1,Pn([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Ue(e);const t=e[e.length-1];this.kernel=this.addWeight("kernel",[t,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return C(()=>{if(e=e,e.length!==2)throw new k(`GRUCell expects 2 input Tensors (inputs, h, c), got ${e.length}.`);const s=t.training==null?!1:t.training;let n=e[1];e=e[0],0Ot(e),rate:this.dropout,training:s,count:3})),0Ot(n),rate:this.recurrentDropout,training:s,count:3}));const i=this.dropoutMask,r=this.recurrentDropoutMask;let o,a,l;0{this.cell.dropoutMask!=null&&(ce(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(ce(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);const s=t==null?null:t.mask,n=t==null?null:t.training,i=t==null?null:t.initialState;return super.call(e,{mask:s,training:n,initialState:i})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}}Dm.className="GRU";V.registerClass(Dm);class Sa extends go{constructor(e){super(e);this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,yt(this.units,"units"),this.activation=Vn(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=Vn(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=je(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=je(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=je(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=Ye(e.kernelRegularizer),this.recurrentRegularizer=Ye(e.recurrentRegularizer),this.biasRegularizer=Ye(e.biasRegularizer),this.kernelConstraint=at(e.kernelConstraint),this.recurrentConstraint=at(e.recurrentConstraint),this.biasConstraint=at(e.biasConstraint),this.dropout=fa([1,Pn([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=fa([1,Pn([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;e=Ue(e);const s=e[e.length-1];this.kernel=this.addWeight("kernel",[s,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let n;if(this.useBias){if(this.unitForgetBias){const i=this.biasInitializer,r=this.units;n=new(t=class extends zs{apply(a,l){const c=i.apply([r]),p=new zl().apply([r]),u=i.apply([r*2]);return jb(jb(c,p),u)}},t.className="CustomInit",t)}else n=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,n,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(e,t){return C(()=>{const s=t.training==null?!1:t.training;if(e=e,e.length!==3)throw new k(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let n=e[1];const i=e[2];e=e[0],0Ot(e),rate:this.dropout,training:s,count:4})),0Ot(n),rate:this.recurrentDropout,training:s,count:4}));const r=this.dropoutMask,o=this.recurrentDropoutMask;let a,l,c,p;0{this.cell.dropoutMask!=null&&(ce(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(ce(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);const s=t==null?null:t.mask,n=t==null?null:t.training,i=t==null?null:t.initialState;return super.call(e,{mask:s,training:n,initialState:i})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}}Fm.className="LSTM";V.registerClass(Fm);class Su extends go{constructor(e){super(e);this.cells=e.cells}get stateSize(){const e=[];for(const t of this.cells.slice().reverse())Array.isArray(t.stateSize)?e.push(...t.stateSize):e.push(t.stateSize);return e}call(e,t){return C(()=>{e=e;let s=e.slice(1);const n=[];for(const o of this.cells.slice().reverse())Array.isArray(o.stateSize)?n.push(s.splice(0,o.stateSize.length)):n.push(s.splice(0,1));n.reverse();const i=[];let r;for(let o=0;o{zn(`RNNCell_${n}`,()=>{s.build(e),Array.isArray(s.stateSize)?t=s.stateSize[0]:t=s.stateSize,e=[e[0],t]})}),this.built=!0}getConfig(){const e=super.getConfig(),t=i=>({className:i.getClassName(),config:i.getConfig()}),s=this.cells.map(t),n={cells:s};return Object.assign({},e,n)}static fromConfig(e,t,s={}){const n=[];for(const i of t.cells)n.push(Ls(i,s));return new e({cells:n})}get trainableWeights(){if(!this.trainable)return[];const e=[];for(const t of this.cells)e.push(...t.trainableWeights);return e}get nonTrainableWeights(){const e=[];for(const t of this.cells)e.push(...t.nonTrainableWeights);if(!this.trainable){const t=[];for(const s of this.cells)t.push(...s.trainableWeights);return t.concat(e)}return e}getWeights(){const e=[];for(const t of this.cells)e.push(...t.weights);return cu(e)}setWeights(e){const t=[];for(const s of this.cells){const n=s.weights.length,i=e.splice(n);for(let r=0;rqd(t(),s),o=()=>lo(r,t,n);if(!i||i<=1)return pt(o().clone());const a=Array(i).fill(void 0).map(o);return a.map(l=>pt(l.clone()))}var Vz=function(e,t){var s={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(s[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,n=Object.getOwnPropertySymbols(e);i{if(this.cell.dropoutMask!=null&&(ce(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(ce(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),t&&t.constants)throw new k("ConvRNN2D cell does not support constants");const s=t==null?null:t.mask,n=t==null?null:t.training,i=t==null?null:t.initialState;return super.call(e,{mask:s,training:n,initialState:i})})}computeOutputShape(e){let t=this.computeSingleOutputShape(e);return this.returnSequences||(t=[t[0],...t.slice(2)]),this.returnState&&(t=[t,...Array(2).fill([e[0],...t.slice(-3)])]),t}getInitialState(e){return C(()=>{const{stateSize:t}=this.cell,s=e.shape,n=this.computeSingleOutputShape(s),i=[n[0],...n.slice(2)],r=ye(i);return Array.isArray(t)?Array(t.length).fill(r):[r]})}resetStates(e,t=!1){C(()=>{if(!this.stateful)throw new Sn("Cannot call resetStates() on an RNN Layer that is not stateful.");const s=this.inputSpec[0].shape,n=this.computeSingleOutputShape(s),i=[n[0],...n.slice(2)],r=s[0];if(r==null)throw new k("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>ye(i)):this.states_=[ye(i)];else if(e==null)ce(this.states_),this.keptStates!=null&&(ce(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>ye(i)):this.states_[0]=ye(i);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new k(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t?this.keptStates.push(this.states_.slice()):ce(this.states_);for(let o=0;opt(o.clone()))})}computeSingleOutputShape(e){const{dataFormat:t,filters:s,kernelSize:n,padding:i,strides:r,dilationRate:o}=this.cell,a=t==="channelsFirst",l=e[a?3:2],c=e[a?4:3],p=Rs(l,n[0],i,r[0],o[0]),u=Rs(c,n[1],i,r[1],o[1]),h=[...e.slice(0,2),...a?[s,p,u]:[p,u,s]];return h}}TN.className="ConvRNN2D";class Tu extends Sa{constructor(e){const{filters:t,kernelSize:s,strides:n,padding:i,dataFormat:r,dilationRate:o}=e;super(Object.assign({},e,{units:t}));this.filters=t,yt(this.filters,"filters"),this.kernelSize=fo(s,2,"kernelSize"),this.kernelSize.forEach(a=>yt(a,"kernelSize")),this.strides=fo(n||1,2,"strides"),this.strides.forEach(a=>yt(a,"strides")),this.padding=i||"valid",bs(this.padding),this.dataFormat=r||"channelsLast",lt(this.dataFormat),this.dilationRate=fo(o||1,2,"dilationRate"),this.dilationRate.forEach(a=>yt(a,"dilationRate"))}build(e){var t;e=Ue(e);const s=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[s]==null)throw new k(`The channel dimension of the input should be defined. Found ${e[s]}`);const n=e[s],i=4,r=this.kernelSize.concat([n,this.filters*i]);this.kernel=this.addWeight("kernel",r,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);const o=this.kernelSize.concat([this.filters,this.filters*i]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",o,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let a;if(this.unitForgetBias){const l=this.biasInitializer,c=this.filters;a=new(t=class extends zs{apply(u,h){const d=l.apply([c]),m=Kt([c]),f=l.apply([c*2]);return $l([d,m,f])}},t.className="CustomInit",t)}else a=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*i],null,a,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(e,t){return C(()=>{if(e.length!==3)throw new k(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);const s=t.training||!1,n=e[0],i=e[1],r=e[2],o=4;0Ot(n),rate:this.dropout,training:s,count:o}));const a=this.dropoutMask,l=(ie,ne,le)=>!ne||!ne[le]?ie:R(ne[le],ie);let c=l(n,a,0),p=l(n,a,1),u=l(n,a,2),h=l(n,a,3);0Ot(i),rate:this.recurrentDropout,training:s,count:o}));const d=this.recurrentDropoutMask;let m=l(i,d,0),f=l(i,d,1),g=l(i,d,2),y=l(i,d,3);const w=3,[x,T,A,_]=Bt(this.kernel.read(),o,w),[E,F,D,M]=this.useBias?Bt(this.bias.read(),o):[null,null,null,null];c=this.inputConv(c,x,E,this.padding),p=this.inputConv(p,T,F,this.padding),u=this.inputConv(u,A,D,this.padding),h=this.inputConv(h,_,M,this.padding);const[P,B,Y,q]=Bt(this.recurrentKernel.read(),o,w);m=this.recurrentConv(m,P),f=this.recurrentConv(f,B),g=this.recurrentConv(g,Y),y=this.recurrentConv(y,q);const K=this.recurrentActivation.apply($(c,m)),H=this.recurrentActivation.apply($(p,f)),Q=$(R(H,r),R(K,this.activation.apply($(u,g)))),J=R(this.recurrentActivation.apply($(h,y)),this.activation.apply(Q));return[J,J,Q]})}getConfig(){const e=super.getConfig(),{units:t}=e,s=Vz(e,["units"]),n={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign({},s,n)}inputConv(e,t,s,n){const i=rt(e,t,this.strides,n||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return s?Cs(i,s,this.dataFormat):i}recurrentConv(e,t){const s=1;return rt(e,t,s,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}}Tu.className="ConvLSTM2DCell";V.registerClass(Tu);class Mm extends TN{constructor(e){const t=new Tu(e);super(Object.assign({},e,{cell:t}))}static fromConfig(e,t){return new e(t)}}Mm.className="ConvLSTM2D";V.registerClass(Mm);class Au extends Le{constructor(e){super(e);this.rate=Math.max(Math.min(e.rate,1),0),this.noiseShape=e.noiseShape,this.seed=e.seed,this.supportsMasking=!0}getNoiseShape(e){if(this.noiseShape==null)return this.noiseShape;const t=e.shape,s=[];for(let n=0;n{this.invokeCallHook(e,t);const s=we(e);if(0qd(s,this.rate,i,this.seed),()=>s,n);return r}return e})}getConfig(){const e={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},t=super.getConfig();return Object.assign(e,t),e}dispose(){return super.dispose()}}Au.className="Dropout";V.registerClass(Au);class Um extends Au{constructor(e){super(e);this.inputSpec=[{ndim:3}]}getNoiseShape(e){const t=e.shape;return[t[0],1,t[2]]}}Um.className="SpatialDropout1D";V.registerClass(Um);class $m extends Le{constructor(e){super(e);if(this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.batchInputShape==null&&e.inputShape==null&&e.inputDim!=null){let t=null;e.batchSize!=null&&(t=e.batchSize),this.batchInputShape=[t,e.inputDim]}this.units=e.units,yt(this.units,"units"),this.activation=Vn(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=je(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=je(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=at(e.kernelConstraint),this.biasConstraint=at(e.biasConstraint),this.kernelRegularizer=Ye(e.kernelRegularizer),this.biasRegularizer=Ye(e.biasRegularizer),this.activityRegularizer=Ye(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){e=Ue(e);const t=e[e.length-1];this.kernel==null&&(this.kernel=this.addWeight("kernel",[t,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:t}}],this.built=!0}computeOutputShape(e){e=Ue(e);const t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return C(()=>{this.invokeCallHook(e,t);const s=we(e),n=Ud(this.activation.getClassName());let i;return n!=null?i=Cn(s,this.kernel.read(),n,this.bias?this.bias.read():null):(i=Cn(s,this.kernel.read()),this.bias!=null&&(i=Cs(i,this.bias.read())),this.activation!=null&&(i=this.activation.apply(i))),i})}getConfig(){const e={units:this.units,activation:jn(this.activation),useBias:this.useBias,kernelInitializer:Ze(this.kernelInitializer),biasInitializer:Ze(this.biasInitializer),kernelRegularizer:Pe(this.kernelRegularizer),biasRegularizer:Pe(this.biasRegularizer),activityRegularizer:Pe(this.activityRegularizer),kernelConstraint:ot(this.kernelConstraint),biasConstraint:ot(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}}$m.className="Dense";V.registerClass($m);class Wm extends Le{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=Ue(e);for(const t of e.slice(1))if(t==null)throw new k(`The shape of the input to "Flatten" is not fully defined (got ${e.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[e[0],Nn(e,1)]}call(e,t){return C(()=>{this.invokeCallHook(e,t);let s=we(e);if(this.dataFormat==="channelsFirst"&&s.rank>1){const n=[0];for(let i=2;i{this.invokeCallHook(e,t);const s=we(e);return this.activation.apply(s)})}getConfig(){const e={activation:jn(this.activation)},t=super.getConfig();return Object.assign(e,t),e}}zm.className="Activation";V.registerClass(zm);class Pm extends Le{constructor(e){super(e);this.n=e.n,this.inputSpec=[{ndim:2}]}computeOutputShape(e){return[e[0],this.n,e[1]]}call(e,t){return C(()=>(e=we(e),SA(e,this.n)))}getConfig(){const e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}}Pm.className="RepeatVector";V.registerClass(Pm);class Bm extends Le{constructor(e){super(e);this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);const s=we(e),n=s.shape,i=n.slice(0,1).concat(this.fixUnknownDimension(n.slice(1),this.targetShape));return s.reshape(i)})}getConfig(){const e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}}Bm.className="Reshape";V.registerClass(Bm);class jm extends Le{constructor(e){super(e);if(e.dims==null)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(e.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${e.dims} instead.`);const t=cs(1,e.dims.length+1);if(!N.arraysEqual(e.dims.slice().sort(),t))throw new Error("Invalid permutation `dims`: "+JSON.stringify(e.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=e.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new st({ndim:this.dims.length+1})]}computeOutputShape(e){e=Ue(e);const t=e.slice();return this.dims.forEach((s,n)=>{t[n+1]=e[s]}),t}call(e,t){return se(we(e),this.dimsIncludingBatch)}getConfig(){const e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}}jm.className="Permute";V.registerClass(jm);class Vm extends Le{constructor(e){super(e??{});this.supportsMasking=!0,e!=null?this.maskValue=e.maskValue==null?0:e.maskValue:this.maskValue=0}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={maskValue:this.maskValue};return Object.assign(t,e),t}computeMask(e,t){const s=we(e),n=-1;return Zo(Js(s,this.maskValue),n)}call(e,t){return C(()=>{this.invokeCallHook(e,t);const s=we(e),n=-1,i=!0,r=Zo(Js(s,this.maskValue),n,i),o=s.mul(r.asType(s.dtype));return o})}}Vm.className="Masking";V.registerClass(Vm);class Gm extends Le{constructor(e){super(e);if(this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",e.batchInputShape==null&&e.inputShape==null){let t=null;e.batchSize!=null&&(t=e.batchSize),e.inputLength==null?this.batchInputShape=[t,null]:this.batchInputShape=[t].concat(He(e.inputLength))}this.inputDim=e.inputDim,yt(this.inputDim,"inputDim"),this.outputDim=e.outputDim,yt(this.outputDim,"outputDim"),this.embeddingsInitializer=je(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=Ye(e.embeddingsRegularizer),this.activityRegularizer=Ye(e.activityRegularizer),this.embeddingsConstraint=at(e.embeddingsConstraint),this.maskZero=e.maskZero,this.supportsMasking=e.maskZero,this.inputLength=e.inputLength}build(e){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(e){}computeMask(e,t){return C(()=>this.maskZero?(e=we(e),Js(e,re(e))):null)}computeOutputShape(e){if(e=Ue(e),this.inputLength==null)return[...e,this.outputDim];const t=He(this.inputLength);if(t.length!==e.length-1)throw new k(`"inputLength" is ${this.inputLength}, but received input shape has shape ${e}`);{let s=0;for(let n=0;n{this.invokeCallHook(e,t);let s=we(e);s.dtype!=="int32"&&(s=ji(s,"int32"));const n=Gd(this.embeddings.read(),s.as1D());return n.reshape(Ue(this.computeOutputShape(s.shape)))})}getConfig(){const e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Ze(this.embeddingsInitializer),embeddingsRegularizer:Pe(this.embeddingsRegularizer),activityRegularizer:Pe(this.activityRegularizer),embeddingsConstraint:ot(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}}Gm.className="Embedding";V.registerClass(Gm);class Ia extends Le{constructor(e){super(e||{});this.supportsMasking=!0}mergeFunction(e){throw new ae}computeElementwiseOpOutputShape(e,t){if(e==null||t==null)return null;if(e.length1)throw new k(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(e)}.`);let s=e[0]==null?null:e[0].slice(1);for(let i=1;ii.length);e.indexOf(null)===-1&&An(n).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return C(()=>{if(e=e,this.reshapeRequired){const s=[],n=e.map(i=>i.rank);if(n.indexOf(null)===-1){const i=Pn(n);for(let r of e){const o=r.rank;for(let a=0;a1){const c=cs(1,l).concat([0]);s.push(se(a,c)),i=!0}else s.push(a)}let r=this.mergeFunction(s);const o=r.rank;if(i){if(o==null){const a=r.shape,l=a.length,c=a[l-1],p=[c].concat(a.slice(0,a.length-1));r=se(r.reshape([-1,c]),[1,0]).reshape(p)}else if(o>1){const a=[o-1].concat(cs(0,o-1));r=se(r,a)}}return r}}else return this.mergeFunction(e)})}computeOutputShape(e){e=e;let t;e[0]==null?t=null:t=e[0].slice(1);for(let n=1;n{if(t==null)return null;if(!Array.isArray(t))throw new k("`mask` should be an Array");if(!Array.isArray(e))throw new k("`inputs` should be an Array");if(t.length!==e.length)throw new k(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${e.length} vs ${t.length})`);if(t.every(n=>n==null))return null;t=t.map(n=>n==null?n:Mt(n,0));let s=t[0];for(let n=1;n{let t=e[0].clone();for(let s=1;s{let t=e[0].clone();for(let s=1;s{let t=e[0].clone();for(let s=1;s{let t=e[0];for(let s=1;s{let t=e[0];for(let s=1;s1)throw new k("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return C(()=>$l(e,this.axis))}computeOutputShape(e){if(!(Array.isArray(e)&&Array.isArray(e[0])))throw new k("A `Concatenate` layer should be called on a list of inputs.");const t=e,s=t[0].slice(),n=this.axis<0?s.length+this.axis:this.axis;for(const i of t.slice(1)){if(s[n]==null||i[n]==null){s[n]=null;break}s[n]+=i[n]}return s}computeMask(e,t){if(t==null)return null;if(!Array.isArray(t))throw new k("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new k("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new k(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return C(()=>{let s=!0;if(t.forEach(r=>{if(r!=null){s=!1;return}}),s)return null;const n=[];for(let r=0;r3||t.shape.length>3)throw new ae("batchDot is not implemented for tensors of 4D or higher rank yet");if(N.assert(e.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${e.shape.length}`),N.assert(e.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${t.shape.length}`),typeof s=="number"&&(s=[s,s]),e.dtype==="complex64"||t.dtype==="complex64")throw new ae("batchDot is not implemented for complex64-type Tensors yet.");const n=e.shape.length,i=t.shape.length;s==null&&(s=[n-1,i-2]);const r=s;return C(()=>{let o;if(n>i){o=n-i;const l=[];for(let c=0;cn){o=i-n;const l=[];for(let c=0;c0){let l;n>i?l=n+i-3:l=n-1;const c=[];for(let p=l;p"A `Dot` layer should be called on a list of exactly 2 inputs.");const t=e[0],s=e[1];if(t.length>3||s.length>3)throw new ae("Dot layer does not support tensors of 4D or higher rank yet.");const n=this.interpretAxes(t,s);if(t[n[0]]!==s[n[1]])throw new k(`Dimension incompatibility: ${t[n[0]]} !== ${s[n[1]]}`)}mergeFunction(e){if(e.length!==2)throw new k(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${e.length} input(s).`);let t=e[0],s=e[1],n;return Array.isArray(this.axes)?n=this.axes.map((i,r)=>Nu(i,e[r].shape.length)):n=[Nu(this.axes,t.shape.length),Nu(this.axes,s.shape.length)],this.normalize&&(t=pu(t,n[0]),s=pu(s,n[1])),Gz(t,s,n)}interpretAxes(e,t){let s;return Array.isArray(this.axes)?s=this.axes:s=[Nu(this.axes,e.length),Nu(this.axes,t.length)],s}computeOutputShape(e){N.assert(Array.isArray(e)&&e.length===2&&Array.isArray(e[0])&&Array.isArray(e[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");const t=e[0].slice(),s=e[1].slice();if(t.length>3||s.length>3)throw new ae("Dot layer does not support tensors of 4D or higher rank yet.");const n=this.interpretAxes(t,s);t.splice(n[0],1),s.splice(n[1],1),s.splice(0,1);const i=t.concat(s);return i.length===1&&i.push(1),i}computeMask(e,t){return null}getConfig(){const e={axes:this.axes,normalize:this.normalize},t=super.getConfig();return Object.assign(e,t),e}}Zm.className="Dot";V.registerClass(Zm);class Qm extends Le{constructor(e){super(e);this.supportsMasking=!0,this.stddev=e.stddev}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={stddev:this.stddev};return Object.assign(t,e),t}call(e,t){return C(()=>{this.invokeCallHook(e,t);const s=we(e),n=()=>Wl(s.shape,0,this.stddev).add(s),i=lo(n,()=>s,t.training||!1);return i})}}Qm.className="GaussianNoise";V.registerClass(Qm);class ef extends Le{constructor(e){super(e);this.supportsMasking=!0,this.rate=e.rate}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return C(()=>{this.invokeCallHook(e,t);const s=we(e);if(this.rate>0&&this.rate<1){const n=()=>{const i=Math.sqrt(this.rate/(1-this.rate));return s.mul(Wl(s.shape,1,i))};return lo(n,()=>s,t.training||!1)}return s})}}ef.className="GaussianDropout";V.registerClass(ef);class tf extends Le{constructor(e){super(e);this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||we(e).shape}computeOutputShape(e){return e}getConfig(){const e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return C(()=>{if(this.rate<1&&this.rate>0){const s=this._getNoiseShape(e),n=()=>{const i=we(e),r=1.6732632423543772,o=1.0507009873554805,a=-r*o;let l=ms(wn(s),this.rate);l=ji(l,"float32");const c=((1-this.rate)*(1+this.rate*a**2))**-.5,p=-c*a*this.rate,u=i.mul(l).add(l.add(-1).mul(a));return u.mul(c).add(p)};return lo(n,()=>we(e),t.training||!1)}return e})}}tf.className="AlphaDropout";V.registerClass(tf);function Cu(e,t,s,n,i,r=.001){let o;if(e.rank===2)o=Yh(e,t,s,n,i,r);else if(e.rank===3)o=Kh(e,t,s,n,i,r);else if(e.rank===4)o=Xh(e,t,s,n,i,r);else throw new ae(`batchNormalization is not implemented for array of rank ${e.rank} yet`);return o}function qz(e,t,s,n,i=.001){return C(()=>{const r=na(e,n),o=r.mean,a=r.variance,l=Cu(e,o,a,s,t,i);return[l,o,a]})}function Hz(e,t,s,n,i=.001){return C(()=>{const r=na(e,n),o=r.mean,a=r.variance,l=[];for(const m of cs(0,e.rank))n.indexOf(m)!==-1?l.push(1):l.push(e.shape[m]);const c=o.reshape(l),p=a.reshape(l),u=t==null?null:t.reshape(l),h=s==null?null:s.reshape(l),d=Cu(e,c,p,h,u,i);return[d,o,a]})}function Yz(e,t,s,n,i=.001){return N.arraysEqual(n.slice().sort(),cs(0,e.rank-1))?qz(e,t,s,n,i):Hz(e,t,s,n,i)}class sf extends Le{constructor(e){e==null&&(e={}),super(e),this.supportsMasking=!0,this.axis=e.axis==null?-1:e.axis,this.momentum=e.momentum==null?.99:e.momentum,this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=je(e.betaInitializer||"zeros"),this.gammaInitializer=je(e.gammaInitializer||"ones"),this.movingMeanInitializer=je(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=je(e.movingVarianceInitializer||"ones"),this.betaConstraint=at(e.betaConstraint),this.gammaConstraint=at(e.gammaConstraint),this.betaRegularizer=Ye(e.betaRegularizer),this.gammaRegularizer=Ye(e.gammaRegularizer)}build(e){e=Ue(e);const t=this.axis>=0?this.axis:this.axis+e.length,s=e[t];if(s==null)throw new k(`Axis ${t} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(e)}.`);this.inputSpec=[new st({ndim:e.length,axes:{[t]:s}})];const n=[s];this.scale&&(this.gamma=this.addWeight("gamma",n,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",n,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",n,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",n,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(e,t){return C(()=>{const s=t.training==null?!1:t.training,n=we(e),i=n.shape,r=i.length,o=cs(0,r),a=this.axis>=0?this.axis:this.axis+r;o.splice(a,1);const l=In(1,r);l[a]=i[a];const c=o.slice();c.sort();const p=!N.arraysEqual(c,cs(0,r).slice(0,r-1)),u=()=>{if(p){const y=this.movingMean.read().reshape(l),w=this.movingVariance.read().reshape(l),x=this.center?this.beta.read().reshape(l):null,T=this.scale?this.gamma.read().reshape(l):null;return Cu(n,y,w,x,T,this.epsilon)}else return Cu(n,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!s)return u();const[h,d,m]=Yz(n,this.gamma.read(),this.beta.read(),o,this.epsilon),f=(y,w,x)=>{C(()=>{const T=1-x,A=y.read(),_=A.sub(w).mul(T);y.write(A.sub(_))})},g=()=>{f(this.movingMean,d,this.momentum),f(this.movingVariance,m,this.momentum)};return g(),h})}getConfig(){const e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Ze(this.betaInitializer),gammaInitializer:Ze(this.gammaInitializer),movingMeanInitializer:Ze(this.movingMeanInitializer),movingVarianceInitializer:Ze(this.movingVarianceInitializer),betaRegularizer:Pe(this.betaRegularizer),gammaRegularizer:Pe(this.gammaRegularizer),betaConstraint:ot(this.betaConstraint),gammaConstraint:ot(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}}sf.className="BatchNormalization";V.registerClass(sf);class nf extends Le{constructor(e){if(e==null&&(e={}),super(e),this.axis=e.axis==null?-1:e.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(const t of this.axis)if(!Number.isInteger(t))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=je(e.betaInitializer||"zeros"),this.gammaInitializer=je(e.gammaInitializer||"ones"),this.betaRegularizer=Ye(e.betaRegularizer),this.gammaRegularizer=Ye(e.gammaRegularizer),this.supportsMasking=!0}build(e){e=Ue(e);const t=e.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let i=0;i=t)throw new Error(`Invalid axis: ${i}`);if(this.axis.length!==An(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);const s=this.axis.map(i=>e[i]),n=!0;this.scale?this.gamma=this.addWeight("gamma",s,"float32",this.gammaInitializer,this.gammaRegularizer,n):this.gamma=null,this.center?this.beta=this.addWeight("beta",s,"float32",this.betaInitializer,this.betaRegularizer,n):this.beta=null,this.built=!0}call(e,t){const s=we(e),n=s.shape,i=n.length;return C(()=>{const r=!0;let{mean:o,variance:a}=na(s,this.axis,r);const l=In(1,i);for(const m of this.axis)l[m]=n[m];const c=m=>m!=null&&m.shape.length!==i&&this.axis!==[i-1]?m.reshape(l):m;let p=c(this.gamma.read()),u=c(this.beta.read());const h=[],d=[];for(let m=0;m{if(e.rank!==4)throw new k(`temporalPadding expects input tensor to be 4-D, but received a ${e.rank}-D tensor.`);if(t==null&&(t=[[1,1],[1,1]]),t.length!==2||t[0].length!==2||t[1].length!==2)throw new k("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(s==null&&(s=ys()),s!=="channelsLast"&&s!=="channelsFirst")throw new k(`Unknown data format: ${s}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let n;return s==="channelsFirst"?n=[[0,0],[0,0],t[0],t[1]]:n=[[0,0],t[0],t[1],[0,0]],Pt(e,n)})}class rf extends Le{constructor(e){if(e==null&&(e={}),super(e),this.dataFormat=e.dataFormat==null?ys():e.dataFormat,e.padding==null)this.padding=[[1,1],[1,1]];else if(typeof e.padding=="number")this.padding=[[e.padding,e.padding],[e.padding,e.padding]];else{if(e.padding=e.padding,e.padding.length!==2)throw new k(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${e.padding.length} array.`);let t,s;if(typeof e.padding[0]=="number")t=[e.padding[0],e.padding[0]],s=[e.padding[1],e.padding[1]];else{if(e.padding=e.padding,e.padding[0].length!==2)throw new k(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${e.padding[0].length} array.`);if(t=e.padding[0],e.padding[1].length!==2)throw new k(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${e.padding[1].length} array.`);s=e.padding[1]}this.padding=[t,s]}this.inputSpec=[new st({ndim:4})]}computeOutputShape(e){e=Ue(e);let t,s;return this.dataFormat==="channelsFirst"?(e[2]!=null&&e[2]>=0?t=e[2]+this.padding[0][0]+this.padding[0][1]:t=null,e[3]!=null&&e[3]>=0?s=e[3]+this.padding[1][0]+this.padding[1][1]:s=null,[e[0],e[1],t,s]):(e[1]!=null&&e[1]>=0?t=e[1]+this.padding[0][0]+this.padding[0][1]:t=null,e[2]!=null&&e[2]>=0?s=e[2]+this.padding[1][0]+this.padding[1][1]:s=null,[e[0],t,s,e[3]])}call(e,t){return C(()=>Kz(we(e),this.padding,this.dataFormat))}getConfig(){const e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}rf.className="ZeroPadding2D";V.registerClass(rf);function of(e,t,s,n,i,r){return C(()=>{lt(i),Pb(r),bs(n),s==null&&(s=[1,1]),n==null&&(n="valid"),i==null&&(i=ys()),r==null&&(r="max"),e=bu(e,i);let o;const a=n==="same"?"same":"valid";return r==="max"?o=ft(e,t,s,a):o=ds(e,t,s,a),i==="channelsFirst"&&(o=se(o,[0,3,1,2])),o})}function AN(e,t,s,n,i,r){return C(()=>{lt(i),Pb(r),bs(n),s==null&&(s=[1,1,1]),n==null&&(n="valid"),i==null&&(i=ys()),r==null&&(r="max"),e=rw(e,i);let o;const a=n==="same"?"same":"valid";return r==="max"?o=Tl(e,t,s,a):o=ml(e,t,s,a),i==="channelsFirst"&&(o=se(o,[0,4,1,2,3])),o})}class NN extends Le{constructor(e){if(e.poolSize==null&&(e.poolSize=2),super(e),typeof e.poolSize=="number")this.poolSize=[e.poolSize];else if(Array.isArray(e.poolSize)&&e.poolSize.length===1&&typeof e.poolSize[0]=="number")this.poolSize=e.poolSize;else throw new k(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.poolSize)}`);if(yt(this.poolSize,"poolSize"),e.strides==null)this.strides=this.poolSize;else if(typeof e.strides=="number")this.strides=[e.strides];else if(Array.isArray(e.strides)&&e.strides.length===1&&typeof e.strides[0]=="number")this.strides=e.strides;else throw new k(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.strides)}`);yt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,bs(this.padding),this.inputSpec=[new st({ndim:3})]}computeOutputShape(e){e=Ue(e);const t=Rs(e[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return C(()=>{this.invokeCallHook(e,t),e=Vi(we(e),2);const s=this.poolingFunction(we(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return Qs(s,[2])})}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}}class af extends NN{constructor(e){super(e)}poolingFunction(e,t,s,n,i){return lt(i),bs(n),of(e,t,s,n,i,"max")}}af.className="MaxPooling1D";V.registerClass(af);class lf extends NN{constructor(e){super(e)}poolingFunction(e,t,s,n,i){return lt(i),bs(n),of(e,t,s,n,i,"avg")}}lf.className="AveragePooling1D";V.registerClass(lf);class CN extends Le{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==2)throw new k(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides];yt(this.poolSize,"poolSize"),yt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,lt(this.dataFormat),bs(this.padding),this.inputSpec=[new st({ndim:4})]}computeOutputShape(e){e=Ue(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],s=this.dataFormat==="channelsFirst"?e[3]:e[2];return t=Rs(t,this.poolSize[0],this.padding,this.strides[0]),s=Rs(s,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,s]:[e[0],t,s,e[3]]}call(e,t){return C(()=>(this.invokeCallHook(e,t),this.poolingFunction(we(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}class cf extends CN{constructor(e){super(e)}poolingFunction(e,t,s,n,i){return lt(i),bs(n),of(e,t,s,n,i,"max")}}cf.className="MaxPooling2D";V.registerClass(cf);class pf extends CN{constructor(e){super(e)}poolingFunction(e,t,s,n,i){return lt(i),bs(n),of(e,t,s,n,i,"avg")}}pf.className="AveragePooling2D";V.registerClass(pf);class RN extends Le{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==3)throw new k(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides,e.strides];yt(this.poolSize,"poolSize"),yt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,lt(this.dataFormat),bs(this.padding),this.inputSpec=[new st({ndim:5})]}computeOutputShape(e){e=Ue(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],s=this.dataFormat==="channelsFirst"?e[3]:e[2],n=this.dataFormat==="channelsFirst"?e[4]:e[3];return t=Rs(t,this.poolSize[0],this.padding,this.strides[0]),s=Rs(s,this.poolSize[1],this.padding,this.strides[1]),n=Rs(n,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,s,n]:[e[0],t,s,n,e[4]]}call(e,t){return C(()=>(this.invokeCallHook(e,t),this.poolingFunction(we(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){const e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}class uf extends RN{constructor(e){super(e)}poolingFunction(e,t,s,n,i){return lt(i),bs(n),AN(e,t,s,n,i,"max")}}uf.className="MaxPooling3D";V.registerClass(uf);class hf extends RN{constructor(e){super(e)}poolingFunction(e,t,s,n,i){return lt(i),bs(n),AN(e,t,s,n,i,"avg")}}hf.className="AveragePooling3D";V.registerClass(hf);class ON extends Le{constructor(e){super(e);this.inputSpec=[new st({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new ae}}class df extends ON{constructor(e){super(e||{})}call(e,t){return C(()=>{const s=we(e);return Xe(s,1)})}}df.className="GlobalAveragePooling1D";V.registerClass(df);class mf extends ON{constructor(e){super(e||{})}call(e,t){return C(()=>{const s=we(e);return Lt(s,1)})}}mf.className="GlobalMaxPooling1D";V.registerClass(mf);class EN extends Le{constructor(e){super(e);this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,lt(this.dataFormat),this.inputSpec=[new st({ndim:4})]}computeOutputShape(e){return e=e,this.dataFormat==="channelsLast"?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new ae}getConfig(){const e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}}class ff extends EN{call(e,t){return C(()=>{const s=we(e);return this.dataFormat==="channelsLast"?Xe(s,[1,2]):Xe(s,[2,3])})}}ff.className="GlobalAveragePooling2D";V.registerClass(ff);class gf extends EN{call(e,t){return C(()=>{const s=we(e);return this.dataFormat==="channelsLast"?Lt(s,[1,2]):Lt(s,[2,3])})}}gf.className="GlobalMaxPooling2D";V.registerClass(gf);class _N extends Le{constructor(e){super(e);this.layer=e.layer}build(e){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(e){this.layer!=null&&(this.layer.trainable=e)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(e){this.layer.setWeights(e)}getConfig(){const e={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},t=super.getConfig();return Object.assign(e,t),e}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(e)}static fromConfig(e,t,s={}){const n=t.layer,i=Ls(n,s);delete t.layer;const r={layer:i};return Object.assign(r,t),new e(r)}}class yf extends _N{constructor(e){super(e);this.supportsMasking=!0}build(e){if(e=Ue(e),e.length<3)throw new k(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(e)}`);this.inputSpec=[{shape:e}];const t=[e[0]].concat(e.slice(2));this.layer.built||(this.layer.build(t),this.layer.built=!0),super.build(e)}computeOutputShape(e){e=Ue(e);const t=[e[0]].concat(e.slice(2)),s=this.layer.computeOutputShape(t),n=e[1];return[s[0],n].concat(s.slice(1))}call(e,t){return C(()=>{e=we(e);const s=(r,o)=>{const a=we(this.layer.call(r,t));return[a,[]]},n=aw(s,e,[],!1,null,null,!1,!0),i=n[1];return i})}}yf.className="TimeDistributed";V.registerClass(yf);function Xz(e){Bi(yA,"BidirectionalMergeMode",e)}const Jz="concat";class bf extends _N{constructor(e){super(e);const t=e.layer.getConfig(),s={};s.className=e.layer.getClassName(),s.config=t,this.forwardLayer=Ls(s),t.goBackwards=!(t.goBackwards===!0);const n={};if(n.className=e.layer.getClassName(),n.config=t,this.backwardLayer=Ls(n),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=e.mergeMode===void 0?Jz:e.mergeMode,Xz(this.mergeMode),e.weights)throw new ae("weights support is not implemented for Bidirectional layer yet.");this._stateful=e.layer.stateful,this.returnSequences=e.layer.returnSequences,this.returnState=e.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=e.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(e){this._trainable=e,this.forwardLayer!=null&&(this.forwardLayer.trainable=e),this.backwardLayer!=null&&(this.backwardLayer.trainable=e)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(e){const t=e.length,s=Math.floor(t/2);this.forwardLayer.setWeights(e.slice(0,s)),this.backwardLayer.setWeights(e.slice(s))}computeOutputShape(e){let t=this.forwardLayer.computeOutputShape(e);Array.isArray(t)&&Array.isArray(t[0])||(t=[t]),t=t;let s,n,i;return this.returnState&&(i=t.slice(1)),s=t[0],s=s,this.mergeMode==="concat"?(s[s.length-1]*=2,n=[s]):this.mergeMode==null?n=[s,s.slice()]:n=[s],this.returnState?this.mergeMode==null?n.concat(i).concat(i.slice()):[s].concat(i).concat(i.slice()):jt(n)}apply(e,t){let s=t==null?null:t.initialState,n=t==null?null:t.constants;t==null&&(t={});const i=ow(e,s,n,this.numConstants);if(e=i.inputs,s=i.initialState,n=i.constants,Array.isArray(e)&&(s=e.slice(1),e=e[0]),(s==null||s.length===0)&&n==null)return super.apply(e,t);const r=[],o=[];if(s!=null){const l=s.length;if(l%2>0)throw new k("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");t.initialState=s,r.push(...s);const c=s.map(p=>new st({shape:p.shape}));this.forwardLayer.stateSpec=c.slice(0,l/2),this.backwardLayer.stateSpec=c.slice(l/2),o.push(...c)}if(n!=null)throw new ae("Support for constants in Bidirectional layers is not implemented yet.");const a=r[0]instanceof xs;for(const l of r)if(l instanceof xs!==a)throw new k("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(a){const l=[e].concat(r),c=this.inputSpec.concat(o),p=this.inputSpec;this.inputSpec=c;const u=super.apply(l,t);return this.inputSpec=p,u}else return super.apply(e,t)}call(e,t){return C(()=>{const s=t.initialState;let n,i;if(s==null)n=this.forwardLayer.call(e,t),i=this.backwardLayer.call(e,t);else{const a=s.slice(0,s.length/2),l=s.slice(s.length/2);n=this.forwardLayer.call(e,Object.assign(t,{initialState:a})),i=this.backwardLayer.call(e,Object.assign(t,{initialState:l}))}let r;this.returnState&&(Array.isArray(n)&&(r=n.slice(1).concat(i.slice(1))),n=n[0],i=i[0]),this.returnSequences&&(i=Et(i,1));let o;return this.mergeMode==="concat"?o=$l([n,i]):this.mergeMode==="sum"?o=$(n,i):this.mergeMode==="ave"?o=R(.5,$(n,i)):this.mergeMode==="mul"?o=R(n,i):this.mergeMode==null&&(o=[n,i]),this.returnState?this.mergeMode==null?o.concat(r):[o].concat(r):o})}resetStates(e){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(e){zn(this.forwardLayer.name,()=>{this.forwardLayer.build(e)}),zn(this.backwardLayer.name,()=>{this.backwardLayer.build(e)}),this.built=!0}computeMask(e,t){Array.isArray(t)&&(t=t[0]);let s;if(this.returnSequences?this.mergeMode==null?s=[t,t]:s=t:this.mergeMode==null?s=[null,null]:s=null,this.returnState){const n=this.forwardLayer.states,i=n.map(r=>null);return Array.isArray(s)?s.concat(i).concat(i):[s].concat(i).concat(i)}else return s}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(e),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(e)}getConfig(){const e={mergeMode:this.mergeMode},t=super.getConfig();return Object.assign(e,t),e}static fromConfig(e,t){const s=Ls(t.layer);if(delete t.layer,t.numConstants!=null)throw new ae("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");const n=t;return n.layer=s,new e(n)}}bf.className="Bidirectional";V.registerClass(bf);const lw={};Ee(lw,{Layer:()=>Le,RNN:()=>rn,RNNCell:()=>go,activation:()=>dP,add:()=>SP,alphaDropout:()=>rB,average:()=>IP,averagePooling1d:()=>cw,averagePooling2d:()=>pw,averagePooling3d:()=>uw,avgPool1d:()=>_P,avgPool2d:()=>DP,avgPool3d:()=>MP,avgPooling1d:()=>kP,avgPooling2d:()=>FP,avgPooling3d:()=>UP,batchNormalization:()=>RP,bidirectional:()=>JP,concatenate:()=>vP,conv1d:()=>rP,conv2d:()=>oP,conv2dTranspose:()=>aP,conv3d:()=>lP,convLstm2d:()=>HP,convLstm2dCell:()=>YP,cropping2D:()=>pP,dense:()=>mP,depthwiseConv2d:()=>hP,dot:()=>CP,dropout:()=>fP,elu:()=>Qz,embedding:()=>LP,flatten:()=>yP,gaussianDropout:()=>iB,gaussianNoise:()=>nB,globalAveragePooling1d:()=>$P,globalAveragePooling2d:()=>WP,globalMaxPool1d:()=>QP,globalMaxPool2d:()=>eB,globalMaxPooling1d:()=>kN,globalMaxPooling2d:()=>DN,gru:()=>PP,gruCell:()=>BP,input:()=>wm,inputLayer:()=>Zz,layerNormalization:()=>OP,leakyReLU:()=>tP,lstm:()=>jP,lstmCell:()=>VP,masking:()=>oB,maxPool1d:()=>tB,maxPool2d:()=>sB,maxPooling1d:()=>FN,maxPooling2d:()=>MN,maxPooling3d:()=>zP,maximum:()=>TP,minimum:()=>AP,multiply:()=>NP,permute:()=>xP,prelu:()=>sP,reLU:()=>eP,repeatVector:()=>bP,reshape:()=>wP,rnn:()=>KP,separableConv2d:()=>cP,simpleRNN:()=>GP,simpleRNNCell:()=>qP,softmax:()=>nP,spatialDropout1d:()=>gP,stackedRNNCells:()=>XP,thresholdedReLU:()=>iP,timeDistributed:()=>ZP,upSampling2d:()=>uP,zeroPadding2d:()=>EP});function Zz(e){return new qi(e)}function Qz(e){return new vm(e)}function eP(e){return new Lm(e)}function tP(e){return new Sm(e)}function sP(e){return new Im(e)}function nP(e){return new Am(e)}function iP(e){return new Tm(e)}function rP(e){return new Lu(e)}function oP(e){return new Kl(e)}function aP(e){return new Cm(e)}function lP(e){return new xu(e)}function cP(e){return new Rm(e)}function pP(e){return new Om(e)}function uP(e){return new Em(e)}function hP(e){return new _m(e)}function dP(e){return new zm(e)}function mP(e){return new $m(e)}function fP(e){return new Au(e)}function gP(e){return new Um(e)}function yP(e){return new Wm(e)}function bP(e){return new Pm(e)}function wP(e){return new Bm(e)}function xP(e){return new jm(e)}function LP(e){return new Gm(e)}function SP(e){return new qm(e)}function IP(e){return new Ym(e)}function vP(e){return new Jm(e)}function TP(e){return new Km(e)}function AP(e){return new Xm(e)}function NP(e){return new Hm(e)}function CP(e){return new Zm(e)}function RP(e){return new sf(e)}function OP(e){return new nf(e)}function EP(e){return new rf(e)}function cw(e){return new lf(e)}function _P(e){return cw(e)}function kP(e){return cw(e)}function pw(e){return new pf(e)}function DP(e){return pw(e)}function FP(e){return pw(e)}function uw(e){return new hf(e)}function MP(e){return uw(e)}function UP(e){return uw(e)}function $P(e){return new df(e)}function WP(e){return new ff(e)}function kN(e){return new mf(e)}function DN(e){return new gf(e)}function FN(e){return new af(e)}function MN(e){return new cf(e)}function zP(e){return new uf(e)}function PP(e){return new Dm(e)}function BP(e){return new vu(e)}function jP(e){return new Fm(e)}function VP(e){return new Sa(e)}function GP(e){return new km(e)}function qP(e){return new Iu(e)}function HP(e){return new Mm(e)}function YP(e){return new Tu(e)}function KP(e){return new rn(e)}function XP(e){return new Su(e)}function JP(e){return new bf(e)}function ZP(e){return new yf(e)}const QP=kN,eB=DN,tB=FN,sB=MN;function nB(e){return new Qm(e)}function iB(e){return new ef(e)}function rB(e){return new tf(e)}function oB(e){return new Vm(e)}const hw={};Ee(hw,{MAPE:()=>yB,MSE:()=>xB,binaryAccuracy:()=>aB,binaryCrossentropy:()=>lB,categoricalAccuracy:()=>pB,categoricalCrossentropy:()=>uB,cosineProximity:()=>mB,mape:()=>bB,meanAbsoluteError:()=>fB,meanAbsolutePercentageError:()=>gB,meanSquaredError:()=>wB,mse:()=>LB,precision:()=>hB,recall:()=>dB,sparseCategoricalAccuracy:()=>cB});function aB(e,t){return du(e,t)}function lB(e,t){return cm(e,t)}function cB(e,t){return pm(e,t)}function pB(e,t){return mu(e,t)}function uB(e,t){return fu(e,t)}function hB(e,t){return Xb(e,t)}function dB(e,t){return FA(e,t)}function mB(e,t){return uu(e,t)}function fB(e,t){return Vl(e,t)}function gB(e,t){return po(e,t)}function yB(e,t){return po(e,t)}function bB(e,t){return po(e,t)}function wB(e,t){return yi(e,t)}function xB(e,t){return yi(e,t)}function LB(e,t){return yi(e,t)}const dw={};Ee(dw,{modelFromJSON:()=>eN});const mw={};Ee(mw,{l1:()=>IB,l1l2:()=>SB,l2:()=>vB});function SB(e){return new Yl(e)}function IB(e){return wN(e)}function vB(e){return xN(e)}class fw extends ba{constructor(){super(...arguments);this.model=null}setModel(e){if(!(e instanceof nn))throw new Error("model must be a LayersModel, not some other Container");this.model=e}}function wf(e,t){return et}class gw extends fw{constructor(e){super();if(e==null&&(e={}),e.restoreBestWeights)throw new ae("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=e.monitor||"val_loss",this.minDelta=Math.abs(e.minDelta||0),this.patience=e.patience||0,this.verbose=e.verbose||0,this.mode=e.mode||"auto",this.baseline=e.baseline,["auto","min","max"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=wf:this.mode==="max"?this.monitorFunc=UN:this.monitor.indexOf("acc")!==-1?this.monitorFunc=UN:this.monitorFunc=wf,this.monitorFunc===wf&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===wf?Infinity:-Infinity}async onEpochEnd(e,t){await gi(t);const s=this.getMonitorValue(t);if(s==null)return;this.monitorFunc(s-this.minDelta,this.best)?(this.best=s,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=e,this.model.stopTraining=!0))}async onTrainEnd(e){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(e){e==null&&(e={});const t=e[this.monitor];return t==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(e)}`),t}}function TB(e){return new gw(e)}const $N={earlyStopping:TB};var Rn;(function(e){e[e.DT_INVALID=0]="DT_INVALID",e[e.DT_FLOAT=1]="DT_FLOAT",e[e.DT_DOUBLE=2]="DT_DOUBLE",e[e.DT_INT32=3]="DT_INT32",e[e.DT_UINT8=4]="DT_UINT8",e[e.DT_INT16=5]="DT_INT16",e[e.DT_INT8=6]="DT_INT8",e[e.DT_STRING=7]="DT_STRING",e[e.DT_COMPLEX64=8]="DT_COMPLEX64",e[e.DT_INT64=9]="DT_INT64",e[e.DT_BOOL=10]="DT_BOOL",e[e.DT_QINT8=11]="DT_QINT8",e[e.DT_QUINT8=12]="DT_QUINT8",e[e.DT_QINT32=13]="DT_QINT32",e[e.DT_BFLOAT16=14]="DT_BFLOAT16",e[e.DT_FLOAT_REF=101]="DT_FLOAT_REF",e[e.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",e[e.DT_INT32_REF=103]="DT_INT32_REF",e[e.DT_UINT8_REF=104]="DT_UINT8_REF",e[e.DT_INT16_REF=105]="DT_INT16_REF",e[e.DT_INT8_REF=106]="DT_INT8_REF",e[e.DT_STRING_REF=107]="DT_STRING_REF",e[e.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",e[e.DT_INT64_REF=109]="DT_INT64_REF",e[e.DT_BOOL_REF=110]="DT_BOOL_REF",e[e.DT_QINT8_REF=111]="DT_QINT8_REF",e[e.DT_QUINT8_REF=112]="DT_QUINT8_REF",e[e.DT_QINT32_REF=113]="DT_QINT32_REF",e[e.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF"})(Rn||(Rn={}));var WN;(function(e){let t;(function(s){s[s.LEGACY=0]="LEGACY",s[s.V1=1]="V1",s[s.V2=2]="V2"})(t=e.CheckpointFormatVersion||(e.CheckpointFormatVersion={}))})(WN||(WN={}));const yw={};function zN(e,t){const s={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};yw[e]=s}function xf(e){return yw[e]}function PN(e){delete yw[e]}function L(e,t,s,n){const i=t.inputParams[e];if(i&&i.inputIndexStart!==void 0){const o=i.inputIndexStart,a=i.inputIndexEnd===0?void 0:i.inputIndexEnd===void 0?o+1:i.inputIndexEnd;if(i.type==="tensor")return Vt(t.inputNames[i.inputIndexStart],s,n);if(i.type==="tensors"){const p=t.inputNames.slice(o,a);return p.map(u=>Vt(u,s,n))}const l=Vt(t.inputNames.slice(o)[0],s,n),c=l.dataSync();return i.type==="number"?c[0]:N.toNestedArray(l.shape,c)}const r=t.attrParams[e];return r&&r.value}function Vt(e,t,s){const[n,i]=Ss(e),r=s.currentContextIds.find(o=>!!t[Lf(n,o)]);return r!==void 0?t[Lf(n,r)][i]:void 0}function BN(e,t,s){return t[Lf(e,s.currentContextId)]}function Gn(e,t){const[s,n]=Ss(e);return[Lf(s,t&&t.currentContextId),n]}function Lf(e,t){return t?`${e}-${t}`:e}function Ss(e){const t=e.split(":");if(t.length===1)return[e,0];const s=t[0];return[s,Number(t[t.length-1])]}function Ru(e,t,s){let n=L("pad",e,t,s);if(n==="explicit"){n=L("explicitPaddings",e,t,s);const i=[[0,0],[0,0],[0,0],[0,0]];for(let r=0;r<4;r++)i[r][0]=n[r*2],i[r][1]=n[r*2+1];return i}return n}function qn(e){return e.kept?e:Fs(e)}const bw={};Ee(bw,{json:()=>AB});const AB=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];const ww={};Ee(ww,{json:()=>NB});const NB=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"clip_value_min",name:"clipValueMin",type:"number"},{tfName:"clip_value_max",name:"clipValueMax",type:"number"}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"clipValueMin",name:"clipValueMin",type:"number",defaultValue:0},{tfName:"clipValueMax",name:"clipValueMax",type:"number",defaultValue:6}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];const xw={};Ee(xw,{json:()=>CB});const CB=[{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]}];const Lw={};Ee(Lw,{json:()=>RB});const RB=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}];const Sw={};Ee(Sw,{json:()=>OB});const OB=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}];const Iw={};Ee(Iw,{json:()=>EB});const EB=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];const vw={};Ee(vw,{json:()=>_B});const _B=[{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}];const Tw={};Ee(Tw,{json:()=>kB});const kB=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}];const Aw={};Ee(Aw,{json:()=>DB});const DB=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]}];const Nw={};Ee(Nw,{json:()=>FB});const FB=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];const Cw={};Ee(Cw,{json:()=>MB});const MB=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];const Rw={};Ee(Rw,{json:()=>UB});const UB=[{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}];const Ow={};Ee(Ow,{json:()=>$B});const $B=[{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}];const Ew={};Ee(Ew,{json:()=>WB});const WB=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool",notSupported:!0}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}];const _w={};Ee(_w,{json:()=>zB});const zB=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}];const kw={};Ee(kw,{json:()=>PB});const PB=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]}];class Fw{static get Instance(){return this._instance||(this._instance=new this)}constructor(){const e=[bw,ww,xw,Lw,Sw,Iw,vw,Nw,Aw,Tw,Cw,Rw,Ow,Ew,_w,kw],t=[].concat(...e.map(s=>s.json));this.opMappers=t.reduce((s,n)=>(s[n.tfOpName]=n,s),{})}transformGraph(e,t={}){const s=e.node,n=[],i=[],r=[],o=s.reduce((m,f)=>(m[f.name]=this.mapNode(f),f.op.startsWith("Placeholder")?n.push(m[f.name]):f.op==="Const"?i.push(m[f.name]):(f.input==null||f.input.length===0)&&r.push(m[f.name]),m),{});let a=[];const l=[];let c={},p={};t!=null&&(c=this.mapSignatureEntries(t.inputs),p=this.mapSignatureEntries(t.outputs));const u=Object.keys(o);u.forEach(m=>{const f=o[m];f.inputNames.forEach(g=>{const[y]=Gn(g);f.inputs.push(o[y]),o[y].children.push(f)})}),Object.keys(p).length===0?u.forEach(m=>{const f=o[m];f.children.length===0&&l.push(f)}):Object.keys(p).forEach(m=>{const[f]=Gn(m),g=o[f];g!=null&&(g.signatureKey=p[m],l.push(g))}),Object.keys(c).length>0?Object.keys(c).forEach(m=>{const[f]=Gn(m),g=o[f];g&&(g.signatureKey=c[m],a.push(g))}):a=n;let h={};e.library!=null&&e.library.function!=null&&(h=e.library.function.reduce((m,f)=>(m[f.signature.name]=this.mapFunction(f),m),{}));const d={nodes:o,inputs:a,outputs:l,weights:i,placeholders:n,signature:t,functions:h};return r.length>0&&(d.initNodes=r),d}mapSignatureEntries(e){return Object.keys(e||{}).reduce((t,s)=>(t[e[s].name]=s,t),{})}mapNode(e){const t=xf(e.op)||this.opMappers[e.op]||{};e.attr==null&&(e.attr={});const s={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map(n=>n.startsWith("^")?n.substr(1):n),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr};return t.inputs!=null&&(s.inputParams=t.inputs.reduce((n,i)=>(n[i.name]={type:i.type,inputIndexStart:i.start,inputIndexEnd:i.end},n),{})),t.attrs!=null&&(s.attrParams=t.attrs.reduce((n,i)=>{const r=i.type;let o;switch(i.type){case"string":o=Sf(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=Sf(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"string[]":o=Rf(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=Rf(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"number":o=vf(e.attr,i.tfName,i.defaultValue||0),o===void 0&&!!i.tfDeprecatedName&&(o=vf(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"number[]":o=Cf(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=Cf(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"bool":o=If(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=If(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"bool[]":o=Ef(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=Ef(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"shape":o=Nf(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=Nf(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"shape[]":o=Of(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=Of(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"dtype":o=Tf(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=Tf(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"dtype[]":o=Af(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=Af(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"func":o=jN(e.attr,i.tfName,i.defaultValue),o===void 0&&!!i.tfDeprecatedName&&(o=jN(e.attr,i.tfDeprecatedName,i.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${i.type} for op: ${e.op}`)}return n[i.name]={value:o,type:r},n},{})),s}mapFunction(e){const t=e.nodeDef,s=[],n=[];let i={};t!=null&&(i=t.reduce((p,u)=>(p[u.name]=this.mapNode(u),u.op==="Const"&&n.push(p[u.name]),p),{}));const r=[],o=[];e.signature.inputArg.forEach(p=>{const[u]=Gn(p.name),h={name:u,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:Dw(p.type),type:"dtype"}},children:[]};h.signatureKey=p.name,r.push(h),i[u]=h});const a=Object.keys(i);a.forEach(p=>{const u=i[p];u.inputNames.forEach(h=>{const[d]=Gn(h);u.inputs.push(i[d]),i[d].children.push(u)})});const l=e.ret;e.signature.outputArg.forEach(p=>{const[u,h]=Gn(l[p.name]),d=i[u];d!=null&&(d.defaultOutput=h,o.push(d))});const c=this.mapArgsToSignature(e);return{nodes:i,inputs:r,outputs:o,weights:n,placeholders:s,signature:c}}mapArgsToSignature(e){return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce((t,s)=>(t[s.name]=this.mapArgToTensorInfo(s),t),{}),outputs:e.signature.outputArg.reduce((t,s)=>(t[s.name]=this.mapArgToTensorInfo(s,e.ret),t),{})}}mapArgToTensorInfo(e,t){let s=e.name;return t!=null&&(s=t[s]),{name:s,dtype:e.type}}}function BB(e){const t=W().global;if(typeof t.atob!="undefined")return t.atob(e);if(typeof Buffer!="undefined")return new Buffer(e,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function VN(e,t){const s=Array.isArray(e)?String.fromCharCode.apply(null,e):BB(e);return t?s:s.toLowerCase()}function Sf(e,t,s,n=!1){const i=e[t];return i!=null?VN(i.s,n):s}function If(e,t,s){const n=e[t];return n?n.b:s}function vf(e,t,s){const n=e[t]||{},i=n.i!=null?n.i:n.f!=null?n.f:s;return typeof i=="number"?i:parseInt(i,10)}function Dw(e){typeof e=="string"&&(e=Rn[e]);switch(e){case Rn.DT_FLOAT:return"float32";case Rn.DT_INT32:case Rn.DT_INT64:case Rn.DT_INT8:case Rn.DT_UINT8:return"int32";case Rn.DT_BOOL:return"bool";case Rn.DT_DOUBLE:return"float32";case Rn.DT_STRING:return"string";default:return null}}function jN(e,t,s){const n=e[t];return n&&n.func?n.func.name:s}function Tf(e,t,s){const n=e[t];return n&&n.type?Dw(n.type):s}function Af(e,t,s){const n=e[t];return n&&n.list&&n.list.type?n.list.type.map(i=>Dw(i)):s}function GN(e){return e.unknownRank?void 0:e.dim!=null?e.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function Nf(e,t,s){const n=e[t];return n&&n.shape?GN(n.shape):s}function Cf(e,t,s){const n=e[t];return n?((n.list.f&&n.list.f.length?n.list.f:n.list.i)||[]).map(i=>typeof i=="number"?i:parseInt(i,10)):s}function Rf(e,t,s,n=!1){const i=e[t];return i&&i.list&&i.list.s?i.list.s.map(r=>VN(r,n)):s}function Of(e,t,s){const n=e[t];return n&&n.list&&n.list.shape?n.list.shape.map(i=>GN(i)):s}function Ef(e,t,s){const n=e[t];return n&&n.list&&n.list.b?n.list.b:s}class qN{constructor(e,t,s){this.node=e,this.tensorMap=t,this.context=s,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map(n=>this.getInput(n)),e.rawAttrs!=null&&(this.attrs=Object.keys(e.rawAttrs).reduce((n,i)=>(n[i]=this.getAttr(i),n),{}))}getInput(e){return Vt(e,this.tensorMap,this.context)}getAttr(e,t){const s=this.node.rawAttrs[e];if(s.tensor!=null)return Vt(e,this.tensorMap,this.context);if(s.i!=null||s.f!=null)return vf(this.node.rawAttrs,e,t);if(s.s!=null)return Sf(this.node.rawAttrs,e,t);if(s.b!=null)return If(this.node.rawAttrs,e,t);if(s.shape!=null)return Nf(this.node.rawAttrs,e,t);if(s.type!=null)return Tf(this.node.rawAttrs,e,t);if(s.list!=null){if(s.list.i!=null||s.list.f!=null)return Cf(this.node.rawAttrs,e,t);if(s.list.s!=null)return Rf(this.node.rawAttrs,e,t);if(s.list.shape!=null)return Of(this.node.rawAttrs,e,t);if(s.list.b!=null)return Ef(this.node.rawAttrs,e,t);if(s.list.type!=null)return Af(this.node.rawAttrs,e,t)}return t}}const HN=(e,t,s)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[$(L("a",e,t,s),L("b",e,t,s))];case"AddN":return[Wh(L("tensors",e,t,s))];case"FloorMod":case"Mod":return[Al(L("a",e,t,s),L("b",e,t,s))];case"Mul":return[R(L("a",e,t,s),L("b",e,t,s))];case"RealDiv":case"Div":return[Z(L("a",e,t,s),L("b",e,t,s))];case"DivNoNan":return[rd(L("a",e,t,s),L("b",e,t,s))];case"FloorDiv":return[ul(L("a",e,t,s),L("b",e,t,s))];case"Sub":return[X(L("a",e,t,s),L("b",e,t,s))];case"Minimum":return[bn(L("a",e,t,s),L("b",e,t,s))];case"Maximum":return[Ht(L("a",e,t,s),L("b",e,t,s))];case"Pow":return[es(L("a",e,t,s),L("b",e,t,s))];case"SquaredDifference":return[io(L("a",e,t,s),L("b",e,t,s))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};const YN=(e,t,s)=>{switch(e.op){case"Abs":case"ComplexAbs":return[et(L("x",e,t,s))];case"Acos":return[Uh(L("x",e,t,s))];case"Acosh":return[$h(L("x",e,t,s))];case"Asin":return[Ph(L("x",e,t,s))];case"Asinh":return[Bh(L("x",e,t,s))];case"Atan":return[jh(L("x",e,t,s))];case"Atan2":return[Vh(L("x",e,t,s),L("y",e,t,s))];case"Atanh":return[Gh(L("x",e,t,s))];case"Ceil":return[Jh(L("x",e,t,s))];case"Complex":return[Gt(L("real",e,t,s),L("imag",e,t,s))];case"Cos":return[Kr(L("x",e,t,s))];case"Cosh":return[wl(L("x",e,t,s))];case"Elu":return[gn(L("x",e,t,s))];case"Erf":return[od(L("x",e,t,s))];case"Exp":return[ut(L("x",e,t,s))];case"Expm1":return[ad(L("x",e,t,s))];case"Floor":return[ui(L("x",e,t,s))];case"Log":return[zt(L("x",e,t,s))];case"Log1p":return[Sl(L("x",e,t,s))];case"Imag":return[yn(L("x",e,t,s))];case"Neg":return[ke(L("x",e,t,s))];case"Reciprocal":return[yd(L("x",e,t,s))];case"Real":return[Zs(L("x",e,t,s))];case"Relu":return[Fe(L("x",e,t,s))];case"Round":return[wd(L("x",e,t,s))];case"Selu":return[Rl(L("x",e,t,s))];case"Sigmoid":return[os(L("x",e,t,s))];case"Sin":return[Ol(L("x",e,t,s))];case"Sign":return[Ld(L("x",e,t,s))];case"Sinh":return[El(L("x",e,t,s))];case"Softplus":return[di(L("x",e,t,s))];case"Sqrt":return[Je(L("x",e,t,s))];case"Square":return[xe(L("x",e,t,s))];case"Tanh":return[Mi(L("x",e,t,s))];case"Tan":return[Id(L("x",e,t,s))];case"Relu6":case"ClipByValue":return[xt(L("x",e,t,s),L("clipValueMin",e,t,s),L("clipValueMax",e,t,s))];case"Rsqrt":return[Cl(Vt(e.inputNames[0],t,s))];case"Prod":return[Nl(L("x",e,t,s),L("axes",e,t,s))];case"LeakyRelu":return[Ll(L("x",e,t,s),L("alpha",e,t,s))];case"Prelu":return[Qr(L("x",e,t,s),L("alpha",e,t,s))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Bs(e,t,s=""){N.assert(jB(e,t),()=>s+` Shapes ${e} and ${t} must match`)}function jB(e,t){if(e.length!==t.length)return!1;for(let s=0;s{(e==null||!e.has(t.tensor.id))&&t.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||e>=this.size())throw new Error(`Tried to read from index ${e}, but array size is: ${this.size()}`);const t=this.tensors[e];if(t.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${e} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(t.cleared=!0),t.read=!0,t.tensor}readMany(e){return e.map(t=>this.read(t))}write(e,t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||!this.dynamicSize&&e>=this.maxSize)throw new Error(`Tried to write to index ${e}, but array is not resizeable and size is: ${this.maxSize}`);const s=this.tensors[e]||{};if(t.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because the value dtype is ${t.dtype}, but TensorArray dtype is ${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=t.shape),Bs(this.elementShape,t.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${e}.`),s.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been read.`);if(s.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been written.`);s.tensor=t,pt(t),s.written=!0,this.tensors[e]=s}writeMany(e,t){if(e.length!==t.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${e.length} is not the same as tensors size: ${t.length}.`);e.forEach((s,n)=>this.write(s,t[n]))}gather(e,t){if(!!t&&t!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${t}`);if(e)e=e.slice(0,this.size());else{e=[];for(let n=0;n=this.maxSize)throw new Error(`Max index must be < array size (${s} vs. ${this.maxSize})`);this.writeMany(e,qe(t,0))}split(e,t){if(t.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${t.dtype}`);let s=0;const n=e.map(a=>(s+=a,s));if(s!==t.shape[0])throw new Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is - ${s}, and tensor's shape is: ${t.shape}`);if(!this.dynamicSize&&e.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${e.length}), and the TensorArray is not marked as dynamically resizeable`);const i=s===0?0:t.size/s,r=[];C(()=>{t=O(t,[1,s,i]);for(let a=0;a{if(s!==i.dtype)throw new Error(`Invalid data types; op elements ${s}, but list elements ${i.dtype}`);Bs(t,i.shape,"TensorList shape mismatch: "),pt(i)}),this.idTensor=j(0),this.maxNumElements=n,pt(this.idTensor)}get id(){return this.idTensor.id}copy(){return new Ou([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!e.has(t.id))&&t.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(e,t,s=-1){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(s!==-1&&this.tensors.length!==s)throw new Error(`Operation expected a list with ${s} elements but got a list with ${this.tensors.length} elements.`);return Bs(e,this.elementShape,"TensorList shape mismatch: "),C(()=>{const n=this.tensors.map(i=>O(i,e));return Ge(n,0)})}popBack(e,t){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");const s=this.tensors.pop();return Bs(s.shape,e,"TensorList shape mismatch: "),O(s,e)}pushBack(e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(Bs(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");pt(e),this.tensors.push(e)}resize(e){if(e<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${e}`);if(this.maxNumElements!==-1&&e>this.maxNumElements)throw new Error(`TensorListResize input size ${e} is greater maxNumElement ${this.maxNumElements}.`);this.tensors.length=e}getItem(e,t,s){if(s!==this.elementDtype)throw new Error(`Invalid data types; op elements ${s}, but list elements ${this.elementDtype}`);if(e<0||e>this.tensors.length)throw new Error(`Trying to access element ${e} in a list with ${this.tensors.length} elements.`);if(this.tensors[e]==null)throw new Error(`element at index ${e} is null.`);return Bs(this.tensors[e].shape,t,"TensorList shape mismatch: "),this.tensors[e]}setItem(e,t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(e<0||this.maxNumElements!==-1&&e>=this.maxNumElements)throw new Error(`Trying to set element ${e} in a list with max ${this.maxNumElements} elements.`);Bs(this.elementShape,t.shape,"TensorList shape mismatch: "),pt(t),this.tensors[e]=t}gather(e,t,s){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);return Bs(this.elementShape,s,"TensorList shape mismatch: "),e=e.slice(0,this.size()),e.length===0?ze([],[0].concat(this.elementShape)):C(()=>{const n=e.map(i=>O(this.tensors[i],s));return Ge(n,0)})}concat(e,t){if(!!e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);return Bs(this.elementShape,t,"TensorList shape mismatch: "),this.size()===0?ze([],[0].concat(this.elementShape)):C(()=>{const s=this.tensors.map(n=>O(n,t));return be(s,0)})}}function JN(e,t,s){const n=e.dtype;if(e.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${e.shape}`);if(e.dtype!==s)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${s}`);const i=e.shape.slice(1);Bs(i,t,"TensorList shape mismatch: ");const r=qe(e);return new Ou(r,t,n)}function ZN(e,t,s){return new Ou([],e,t,s)}function QN(e,t,s,n){if(t.length!==e.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${e.shape[0]}`);const i=Math.max(...t);if(n!=null&&n!==-1&&i>=n)throw new Error(`Max index must be < array size (${i} vs. ${n})`);const r=new Ou([],s,e.dtype,n),o=qe(e,0);return t.forEach((a,l)=>{r.setItem(a,o[l])}),r}function eC(e,t,s){let n=0;const i=t.map(l=>(n+=l,n));if(n!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to + ${s}, and tensor's shape is: ${t.shape}`);if(!this.dynamicSize&&e.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${e.length}), and the TensorArray is not marked as dynamically resizeable`);const i=s===0?0:t.size/s,r=[];C(()=>{t=O(t,[1,s,i]);for(let a=0;a{if(s!==i.dtype)throw new Error(`Invalid data types; op elements ${s}, but list elements ${i.dtype}`);Bs(t,i.shape,"TensorList shape mismatch: "),pt(i)}),this.idTensor=j(0),this.maxNumElements=n,pt(this.idTensor)}get id(){return this.idTensor.id}copy(){return new Ou([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!e.has(t.id))&&t.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(e,t,s=-1){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(s!==-1&&this.tensors.length!==s)throw new Error(`Operation expected a list with ${s} elements but got a list with ${this.tensors.length} elements.`);return Bs(e,this.elementShape,"TensorList shape mismatch: "),C(()=>{const n=this.tensors.map(i=>O(i,e));return Ge(n,0)})}popBack(e,t){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");const s=this.tensors.pop();return Bs(s.shape,e,"TensorList shape mismatch: "),O(s,e)}pushBack(e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(Bs(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");pt(e),this.tensors.push(e)}resize(e){if(e<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${e}`);if(this.maxNumElements!==-1&&e>this.maxNumElements)throw new Error(`TensorListResize input size ${e} is greater maxNumElement ${this.maxNumElements}.`);this.tensors.length=e}getItem(e,t,s){if(s!==this.elementDtype)throw new Error(`Invalid data types; op elements ${s}, but list elements ${this.elementDtype}`);if(e<0||e>this.tensors.length)throw new Error(`Trying to access element ${e} in a list with ${this.tensors.length} elements.`);if(this.tensors[e]==null)throw new Error(`element at index ${e} is null.`);return Bs(this.tensors[e].shape,t,"TensorList shape mismatch: "),this.tensors[e]}setItem(e,t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(e<0||this.maxNumElements!==-1&&e>=this.maxNumElements)throw new Error(`Trying to set element ${e} in a list with max ${this.maxNumElements} elements.`);Bs(this.elementShape,t.shape,"TensorList shape mismatch: "),pt(t),this.tensors[e]=t}gather(e,t,s){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);return Bs(this.elementShape,s,"TensorList shape mismatch: "),e=e.slice(0,this.size()),e.length===0?ze([],[0].concat(this.elementShape)):C(()=>{const n=e.map(i=>O(this.tensors[i],s));return Ge(n,0)})}concat(e,t){if(!!e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);return Bs(this.elementShape,t,"TensorList shape mismatch: "),this.size()===0?ze([],[0].concat(this.elementShape)):C(()=>{const s=this.tensors.map(n=>O(n,t));return be(s,0)})}}function XN(e,t,s){const n=e.dtype;if(e.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${e.shape}`);if(e.dtype!==s)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${s}`);const i=e.shape.slice(1);Bs(i,t,"TensorList shape mismatch: ");const r=qe(e);return new Ou(r,t,n)}function JN(e,t,s){return new Ou([],e,t,s)}function ZN(e,t,s,n){if(t.length!==e.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${e.shape[0]}`);const i=Math.max(...t);if(n!=null&&n!==-1&&i>=n)throw new Error(`Max index must be < array size (${i} vs. ${n})`);const r=new Ou([],s,e.dtype,n),o=qe(e,0);return t.forEach((a,l)=>{r.setItem(a,o[l])}),r}function QN(e,t,s){let n=0;const i=t.map(l=>(n+=l,n));if(n!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is - ${n}, and tensor's shape is: ${e.shape}`);const r=n===0?0:e.size/n,o=C(()=>{const l=[];e=O(e,[1,n,r]);for(let c=0;c{switch(e.op){case"If":case"StatelessIf":{const n=L("thenBranch",e,t,s),i=L("elseBranch",e,t,s),r=L("cond",e,t,s),o=L("args",e,t,s),a=await r.data();return a[0]?s.functionMap[n].executeFunctionAsync(o,s.tensorArrayMap,s.tensorListMap):s.functionMap[i].executeFunctionAsync(o,s.tensorArrayMap,s.tensorListMap)}case"While":case"StatelessWhile":{const n=L("body",e,t,s),i=L("cond",e,t,s),r=L("args",e,t,s),o=await s.functionMap[i].executeFunctionAsync(r,s.tensorArrayMap,s.tensorListMap),a=r.map(p=>p.id);let l=await o[0].data();o.forEach(p=>{!p.kept&&a.indexOf(p.id)===-1&&p.dispose()});let c=r;for(;l[0];){const p=c;c=await s.functionMap[n].executeFunctionAsync(c,s.tensorArrayMap,s.tensorListMap);const u=c.map(d=>d.id);p.forEach(d=>{!d.kept&&a.indexOf(d.id)===-1&&u.indexOf(d.id)===-1&&d.dispose()});const h=await s.functionMap[i].executeFunctionAsync(c,s.tensorArrayMap,s.tensorListMap);l=await h[0].data(),h.forEach(d=>{!d.kept&&a.indexOf(d.id)===-1&&u.indexOf(d.id)===-1&&d.dispose()})}return c}case"LoopCond":{const n=L("pred",e,t,s);return[qn(n)]}case"Switch":{const n=L("pred",e,t,s);let i=L("data",e,t,s);return i.kept||(i=qn(i)),(await n.data())[0]?[void 0,i]:[i,void 0]}case"Merge":{const n=e.inputNames.find(i=>Vt(i,t,s)!==void 0);if(n){const i=Vt(n,t,s);return[qn(i)]}return}case"Enter":{const n=L("frameName",e,t,s),i=L("tensor",e,t,s);return s.enterFrame(n),[qn(i)]}case"Exit":{const n=L("tensor",e,t,s);return s.exitFrame(),[qn(n)]}case"NextIteration":{const n=L("tensor",e,t,s);return s.nextIteration(),[qn(n)]}case"TensorArrayV3":{const n=L("size",e,t,s),i=L("dtype",e,t,s),r=L("elementShape",e,t,s),o=L("dynamicSize",e,t,s),a=L("clearAfterRead",e,t,s),l=L("identicalElementShapes",e,t,s),c=L("name",e,t,s),p=new XN(c,i,n,r,l,o,a);return s.addTensorArray(p),[p.idTensor,j(1)]}case"TensorArrayWriteV3":{const n=L("tensorArrayId",e,t,s),i=L("index",e,t,s),r=L("tensor",e,t,s),o=s.getTensorArray(n.id);return o.write(i,r),[o.idTensor]}case"TensorArrayReadV3":{const n=L("tensorArrayId",e,t,s),i=L("index",e,t,s),r=s.getTensorArray(n.id);return[r.read(i)]}case"TensorArrayGatherV3":{const n=L("tensorArrayId",e,t,s),i=L("indices",e,t,s),r=L("dtype",e,t,s),o=s.getTensorArray(n.id);return[o.gather(i,r)]}case"TensorArrayScatterV3":{const n=L("tensorArrayId",e,t,s),i=L("indices",e,t,s),r=L("tensor",e,t,s),o=s.getTensorArray(n.id);return o.scatter(i,r),[o.idTensor]}case"TensorArrayConcatV3":{const n=L("tensorArrayId",e,t,s),i=s.getTensorArray(n.id),r=L("dtype",e,t,s);return[i.concat(r)]}case"TensorArraySplitV3":{const n=L("tensorArrayId",e,t,s),i=L("tensor",e,t,s),r=L("lengths",e,t,s),o=s.getTensorArray(n.id);return o.split(r,i),[o.idTensor]}case"TensorArraySizeV3":{const n=L("tensorArrayId",e,t,s),i=s.getTensorArray(n.id);return[j(i.size(),"int32")]}case"TensorArrayCloseV3":{const n=L("tensorArrayId",e,t,s),i=s.getTensorArray(n.id);return i.clearAndClose(),[i.idTensor]}case"TensorListSetItem":{const n=L("tensorListId",e,t,s),i=L("index",e,t,s),r=L("tensor",e,t,s),o=s.getTensorList(n.id);return o.setItem(i,r),[o.idTensor]}case"TensorListGetItem":{const n=L("tensorListId",e,t,s),i=L("index",e,t,s),r=L("elementShape",e,t,s),o=L("elementDType",e,t,s),a=s.getTensorList(n.id);return[a.getItem(i,r,o)]}case"TensorListScatterV2":case"TensorListScatter":{const n=L("indices",e,t,s),i=L("tensor",e,t,s),r=L("elementShape",e,t,s),o=L("numElements",e,t,s),a=QN(i,n,r,o);return s.addTensorList(a),[a.idTensor]}case"TensorListReserve":{const n=L("elementShape",e,t,s),i=L("elementDType",e,t,s),r=L("numElements",e,t,s),o=ZN(n,i,r);return s.addTensorList(o),[o.idTensor]}case"TensorListGather":{const n=L("tensorListId",e,t,s),i=L("indices",e,t,s),r=L("elementShape",e,t,s),o=L("elementDType",e,t,s),a=s.getTensorList(n.id);return[a.gather(i,o,r)]}case"TensorListStack":{const n=L("tensorListId",e,t,s),i=L("elementShape",e,t,s),r=L("elementDType",e,t,s),o=L("numElements",e,t,s),a=s.getTensorList(n.id);return[a.stack(i,r,o)]}case"TensorListFromTensor":{const n=L("tensor",e,t,s),i=L("elementShape",e,t,s),r=L("elementDType",e,t,s),o=JN(n,i,r);return s.addTensorList(o),[o.idTensor]}case"TensorListConcat":{const n=L("tensorListId",e,t,s),i=s.getTensorList(n.id),r=L("dtype",e,t,s),o=L("elementShape",e,t,s);return[i.concat(r,o)]}case"TensorListPushBack":{const n=L("tensorListId",e,t,s),i=L("tensor",e,t,s),r=s.getTensorList(n.id);return r.pushBack(i),[r.idTensor]}case"TensorListPopBack":{const n=L("tensorListId",e,t,s),i=L("elementShape",e,t,s),r=L("elementDType",e,t,s),o=s.getTensorList(n.id);return[o.popBack(i,r)]}case"TensorListSplit":{const n=L("tensor",e,t,s),i=L("elementShape",e,t,s),r=L("lengths",e,t,s),o=eC(n,r,i);return s.addTensorList(o),[o.idTensor]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};function sC(e,t,s){const[n,i]=L("fusedOps",e,t,s),r=n==="biasadd",o=i==="prelu",a=n==="fusedbatchnorm",l=L("numArgs",e,t,s);if(r){if(o&&l!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!o&&l!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(a)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported.");const c=L("strides",e,t,s),p=Ru(e,t,s),u=L("dataFormat",e,t,s).toUpperCase(),h=L("dilations",e,t,s),[d,m]=L("args",e,t,s);return{stride:c,pad:p,dataFormat:u,dilations:h,biasArg:d,preluArg:m,activationFunc:i}}const nC=(e,t,s)=>{switch(e.op){case"Conv1D":{const n=L("stride",e,t,s),i=L("pad",e,t,s),r=L("dataFormat",e,t,s).toUpperCase(),o=L("dilation",e,t,s);return[fl(L("x",e,t,s),L("filter",e,t,s),n,i,r,o)]}case"Conv2D":{const n=L("strides",e,t,s),i=Ru(e,t,s),r=L("dataFormat",e,t,s).toUpperCase(),o=L("dilations",e,t,s);return[rt(L("x",e,t,s),L("filter",e,t,s),[n[1],n[2]],i,r,[o[1],o[2]])]}case"_FusedConv2D":{const{stride:n,pad:i,dataFormat:r,dilations:o,biasArg:a,preluArg:l,activationFunc:c}=sC(e,t,s);return[xn.conv2d({x:L("x",e,t,s),filter:L("filter",e,t,s),strides:[n[1],n[2]],pad:i,dataFormat:r,dilations:[o[1],o[2]],bias:a,activation:c,preluActivationWeights:l})]}case"FusedDepthwiseConv2dNative":{const{stride:n,pad:i,dataFormat:r,dilations:o,biasArg:a,preluArg:l,activationFunc:c}=sC(e,t,s);return[xn.depthwiseConv2d({x:L("x",e,t,s),filter:L("filter",e,t,s),strides:[n[1],n[2]],pad:i,dataFormat:r,dilations:[o[1],o[2]],bias:a,activation:c,preluActivationWeights:l})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{const n=L("outputShape",e,t,s),i=L("strides",e,t,s),r=Ru(e,t,s);return[yl(L("x",e,t,s),L("filter",e,t,s),n,[i[1],i[2]],r)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{const n=L("strides",e,t,s),i=Ru(e,t,s),r=L("dilations",e,t,s),o=L("dataFormat",e,t,s).toUpperCase();return[fn(L("input",e,t,s),L("filter",e,t,s),[n[1],n[2]],i,o,[r[1],r[2]])]}case"Conv3D":{const n=L("strides",e,t,s),i=L("pad",e,t,s),r=L("dataFormat",e,t,s).toUpperCase(),o=L("dilations",e,t,s);return[bl(L("x",e,t,s),L("filter",e,t,s),[n[1],n[2],n[3]],i,r,[o[1],o[2],o[3]])]}case"AvgPool":{const n=L("strides",e,t,s),i=L("pad",e,t,s),r=L("kernelSize",e,t,s);return[ds(L("x",e,t,s),[r[1],r[2]],[n[1],n[2]],i)]}case"MaxPool":{const n=L("strides",e,t,s),i=L("pad",e,t,s),r=L("kernelSize",e,t,s);return[ft(L("x",e,t,s),[r[1],r[2]],[n[1],n[2]],i)]}case"MaxPoolWithArgmax":{const n=L("strides",e,t,s),i=L("pad",e,t,s),r=L("kernelSize",e,t,s),o=L("includeBatchInIndex",e,t,s),{result:a,indexes:l}=md(L("x",e,t,s),[r[1],r[2]],[n[1],n[2]],i,o);return[a,l]}case"AvgPool3D":{const n=L("strides",e,t,s),i=L("pad",e,t,s),r=L("kernelSize",e,t,s);return[ml(L("x",e,t,s),[r[1],r[2],r[3]],[n[1],n[2],n[3]],i)]}case"MaxPool3D":{const n=L("strides",e,t,s),i=L("pad",e,t,s),r=L("kernelSize",e,t,s);return[Tl(L("x",e,t,s),[r[1],r[2],r[3]],[n[1],n[2],n[3]],i)]}case"Dilation2D":{const n=L("strides",e,t,s),i=L("pad",e,t,s),r=L("dilations",e,t,s),o=n[1],a=n[2],l=r[1],c=r[2];return[id(L("x",e,t,s),L("filter",e,t,s),[o,a],i,[l,c],"NHWC")]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};const iC=(e,t,s)=>{switch(e.op){case"Fill":{const n=L("shape",e,t,s),i=L("dtype",e,t,s),r=L("value",e,t,s);return[Wt(n,r,i)]}case"LinSpace":{const n=L("start",e,t,s),i=L("stop",e,t,s),r=L("num",e,t,s);return[cd(n,i,r)]}case"Multinomial":{const n=L("logits",e,t,s),i=L("numSamples",e,t,s),r=L("seed",e,t,s);return[fd(n,i,r)]}case"OneHot":{const n=L("indices",e,t,s),i=L("depth",e,t,s),r=L("onValue",e,t,s),o=L("offValue",e,t,s);return[pi(n,i,r,o)]}case"Ones":return[Kt(L("shape",e,t,s),L("dtype",e,t,s))];case"OnesLike":return[Ot(L("x",e,t,s))];case"RandomUniform":return[wn(L("shape",e,t,s),L("minval",e,t,s),L("maxval",e,t,s),L("dtype",e,t,s))];case"Range":{const n=L("start",e,t,s),i=L("stop",e,t,s),r=L("step",e,t,s);return[$i(n,i,r,L("dtype",e,t,s))]}case"TruncatedNormal":{const n=L("shape",e,t,s),i=L("mean",e,t,s),r=L("stdDev",e,t,s),o=L("seed",e,t,s);return[ro(n,i,r,L("dtype",e,t,s),o)]}case"Zeros":return[ye(L("shape",e,t,s),L("dtype",e,t,s))];case"ZerosLike":return[re(L("x",e,t,s))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Mw(e,t,s){const n=L("boxes",e,t,s),i=L("scores",e,t,s),r=L("maxOutputSize",e,t,s),o=L("iouThreshold",e,t,s),a=L("scoreThreshold",e,t,s),l=L("softNmsSigma",e,t,s);return{boxes:n,scores:i,maxOutputSize:r,iouThreshold:o,scoreThreshold:a,softNmsSigma:l}}const rC=async(e,t,s)=>{switch(e.op){case"NonMaxSuppressionV5":{const{boxes:n,scores:i,maxOutputSize:r,iouThreshold:o,scoreThreshold:a,softNmsSigma:l}=Mw(e,t,s),c=await en.nonMaxSuppressionWithScoreAsync(n,i,r,o,a,l);return[c.selectedIndices,c.selectedScores]}case"NonMaxSuppressionV4":{const{boxes:n,scores:i,maxOutputSize:r,iouThreshold:o,scoreThreshold:a}=Mw(e,t,s),l=L("padToMaxOutputSize",e,t,s),c=await en.nonMaxSuppressionPaddedAsync(n,i,r,o,a,l);return[c.selectedIndices,c.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{const{boxes:n,scores:i,maxOutputSize:r,iouThreshold:o,scoreThreshold:a}=Mw(e,t,s);return[await en.nonMaxSuppressionAsync(n,i,r,o,a)]}case"Where":{const n=G(L("condition",e,t,s),"bool"),i=[await Dl(n)];return n.dispose(),i}case"ListDiff":return xd(L("x",e,t,s),L("y",e,t,s));default:throw TypeError(`Node type ${e.op} is not implemented`)}};const oC=(e,t,s)=>{switch(e.op){case"TopKV2":{const n=L("x",e,t,s),i=L("k",e,t,s),r=L("sorted",e,t,s),o=vd(n,i,r);return[o.values,o.indices]}case"Unique":{const n=L("x",e,t,s),i=Yp(n);return[i.values,i.indices]}case"UniqueV2":{const n=L("x",e,t,s),i=L("axis",e,t,s),r=Yp(n,i);return[r.values,r.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};const aC=(e,t,s)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":const n=L("default",e,t,s);return[Vt(e.name,t,s)||n];case"Placeholder":return[Vt(e.name,t,s)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{const c=L("x",e,t,s);return[qn(c)]}case"IdentityN":return L("x",e,t,s).map(c=>qn(c));case"Snapshot":const i=L("x",e,t,s);return[qn(i)];case"Shape":return[Oe(L("x",e,t,s).shape,"int32")];case"ShapeN":return L("x",e,t,s).map(c=>Oe(c.shape));case"Size":return[j(L("x",e,t,s).size,"int32")];case"Rank":return[j(L("x",e,t,s).rank,"int32")];case"NoOp":return[j(1)];case"Print":const r=L("x",e,t,s),o=L("data",e,t,s),a=L("message",e,t,s),l=L("summarize",e,t,s);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(a);for(let c=0;c{switch(e.op){case"ResizeBilinear":{const n=L("images",e,t,s),i=L("size",e,t,s),r=L("alignCorners",e,t,s);return[en.resizeBilinear(n,[i[0],i[1]],r)]}case"ResizeNearestNeighbor":{const n=L("images",e,t,s),i=L("size",e,t,s),r=L("alignCorners",e,t,s);return[en.resizeNearestNeighbor(n,[i[0],i[1]],r)]}case"CropAndResize":{const n=L("image",e,t,s),i=L("boxes",e,t,s),r=L("boxInd",e,t,s),o=L("cropSize",e,t,s),a=L("method",e,t,s),l=L("extrapolationValue",e,t,s);return[en.cropAndResize(n,i,r,o,a,l)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};const cC=(e,t,s)=>{switch(e.op){case"Equal":return[as(L("a",e,t,s),L("b",e,t,s))];case"NotEqual":return[Js(L("a",e,t,s),L("b",e,t,s))];case"Greater":return[Ut(L("a",e,t,s),L("b",e,t,s))];case"GreaterEqual":return[ms(L("a",e,t,s),L("b",e,t,s))];case"Less":return[Xr(L("a",e,t,s),L("b",e,t,s))];case"LessEqual":return[Ws(L("a",e,t,s),L("b",e,t,s))];case"LogicalAnd":return[Yt(L("a",e,t,s),L("b",e,t,s))];case"LogicalNot":return[Jr(L("a",e,t,s))];case"LogicalOr":return[vl(L("a",e,t,s),L("b",e,t,s))];case"Select":case"SelectV2":return[mt(L("condition",e,t,s),L("a",e,t,s),L("b",e,t,s))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};const pC=(e,t,s)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[Te(L("a",e,t,s),L("b",e,t,s),L("transposeA",e,t,s),L("transposeB",e,t,s))];case"Transpose":return[se(L("x",e,t,s),L("perm",e,t,s))];case"_FusedMatMul":const[n,i]=L("fusedOps",e,t,s),r=n==="biasadd",o=i==="prelu",a=L("numArgs",e,t,s);if(r){if(o&&a!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!o&&a!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}const[l,c]=L("args",e,t,s);return[xn.matMul({a:L("a",e,t,s),b:L("b",e,t,s),transposeA:L("transposeA",e,t,s),transposeB:L("transposeB",e,t,s),bias:l,activation:i,preluActivationWeights:c})];default:throw TypeError(`Node type ${e.op} is not implemented`)}};const uC=(e,t,s)=>{switch(e.op){case"FusedBatchNorm":case"FusedBatchNormV2":return[Xs(L("x",e,t,s),L("mean",e,t,s),L("variance",e,t,s),L("offset",e,t,s),L("scale",e,t,s),L("epsilon",e,t,s))];case"FusedBatchNormV3":return[Xs(L("x",e,t,s),L("mean",e,t,s),L("variance",e,t,s),L("offset",e,t,s),L("scale",e,t,s),L("epsilon",e,t,s))];case"LRN":return[pd(L("x",e,t,s),L("radius",e,t,s),L("bias",e,t,s),L("alpha",e,t,s),L("beta",e,t,s))];case"Softmax":return[ts(L("x",e,t,s))];case"LogSoftmax":return[Il(L("x",e,t,s))];case"SparseToDense":return[Xp(L("sparseIndices",e,t,s),L("outputShape",e,t,s),L("sparseValues",e,t,s),L("defaultValue",e,t,s))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};const hC=(e,t,s)=>{switch(e.op){case"Max":{const n=L("axis",e,t,s),i=L("keepDims",e,t,s);return[Lt(L("x",e,t,s),n,i)]}case"Mean":{const n=L("axis",e,t,s),i=L("keepDims",e,t,s);return[Xe(L("x",e,t,s),n,i)]}case"Min":{const n=L("axis",e,t,s),i=L("keepDims",e,t,s);return[Ui(L("x",e,t,s),n,i)]}case"Sum":{const n=L("axis",e,t,s),i=L("keepDims",e,t,s);return[te(L("x",e,t,s),n,i)]}case"All":{const n=L("axis",e,t,s),i=L("keepDims",e,t,s);return[hl(L("x",e,t,s),n,i)]}case"Any":{const n=L("axis",e,t,s),i=L("keepDims",e,t,s);return[Zo(L("x",e,t,s),n,i)]}case"ArgMax":{const n=L("axis",e,t,s);return[Qo(L("x",e,t,s),n)]}case"ArgMin":{const n=L("axis",e,t,s);return[zh(L("x",e,t,s),n)]}case"Prod":{const n=L("axis",e,t,s),i=L("keepDims",e,t,s);return[Nl(L("x",e,t,s),n,i)]}case"Cumsum":{const n=L("axis",e,t,s),i=L("exclusive",e,t,s),r=L("reverse",e,t,s);return[xl(L("x",e,t,s),n,i,r)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};const dC=(e,t,s)=>{switch(e.op){case"ConcatV2":case"Concat":{const n=L("n",e,t,s),i=L("axis",e,t,s);let r=L("tensors",e,t,s);return r=r.slice(0,n),[be(r,i)]}case"GatherV2":case"Gather":{const n=L("axis",e,t,s),i=L("x",e,t,s),r=L("indices",e,t,s);return[hi(i,G(r,"int32"),n)]}case"ReverseV2":case"Reverse":{const n=L("axis",e,t,s),i=L("x",e,t,s);return[Et(i,n)]}case"Slice":{const n=L("begin",e,t,s),i=L("size",e,t,s);return[he(L("x",e,t,s),n,i)]}case"StridedSlice":{const n=L("begin",e,t,s),i=L("end",e,t,s),r=L("strides",e,t,s),o=L("beginMask",e,t,s),a=L("endMask",e,t,s),l=L("ellipsisMask",e,t,s),c=L("newAxisMask",e,t,s),p=L("shrinkAxisMask",e,t,s),u=L("x",e,t,s);return[Sd(u,n,i,r,o,a,l,c,p)]}case"Pack":return C(()=>{const n=L("axis",e,t,s),i=L("tensors",e,t,s),r=i[0].shape,o=Qs(i[0]).shape,a=i.map(l=>{const c=N.arraysEqual(l.shape,r);if(!c&&!N.arraysEqual(Qs(l).shape,o))throw new Error("the input tensors shape does not match");return c?l:O(l,r)});return[Ge(a,n)]});case"Unpack":{const n=L("axis",e,t,s),i=L("tensor",e,t,s);return qe(i,n)}case"Tile":{const n=L("reps",e,t,s);return[$s(L("x",e,t,s),n)]}case"Split":case"SplitV":{const n=L("axis",e,t,s),i=L("numOrSizeSplits",e,t,s),r=L("x",e,t,s);return Bt(r,i,n)}case"ScatterNd":{const n=L("indices",e,t,s),i=L("values",e,t,s),r=L("shape",e,t,s);return[Ib(n,i,r)]}case"GatherNd":{const n=L("x",e,t,s),i=L("indices",e,t,s);return[vb(n,i)]}case"SparseToDense":{const n=L("sparseIndices",e,t,s),i=L("outputShape",e,t,s),r=L("sparseValues",e,t,s),o=L("defaultValue",e,t,s);return[Xp(n,r,i,r.dtype===o.dtype?o:G(o,r.dtype))]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};const mC=(e,t,s)=>{switch(e.op){case"FFT":return[so(L("x",e,t,s))];case"IFFT":return[Wi(L("x",e,t,s))];case"RFFT":return[no(L("x",e,t,s))];case"IRFFT":return[kl(L("x",e,t,s))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};const fC=(e,t,s)=>{switch(e.op){case"Cast":return[G(L("x",e,t,s),L("dtype",e,t,s))];case"ExpandDims":{const n=L("axis",e,t,s);return[Mt(L("x",e,t,s),n)]}case"Squeeze":{const n=L("axis",e,t,s);return[Qs(L("x",e,t,s),n)]}case"Reshape":return[O(L("x",e,t,s),L("shape",e,t,s))];case"PadV2":case"Pad":return[Pt(L("x",e,t,s),L("padding",e,t,s),L("constantValue",e,t,s))];case"SpaceToBatchND":{const n=L("blockShape",e,t,s),i=L("paddings",e,t,s);return[Zr(L("x",e,t,s),n,i)]}case"BatchToSpaceND":{const n=L("blockShape",e,t,s),i=L("crops",e,t,s);return[Yr(L("x",e,t,s),n,i)]}case"DepthToSpace":{const n=L("blockSize",e,t,s),i=L("dataFormat",e,t,s).toUpperCase();return[nd(L("x",e,t,s),n,i)]}case"BroadcastTo":return[ta(L("x",e,t,s),L("shape",e,t,s))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Uw(e,t,s){const n=((i,r,o)=>{switch(i.category){case"arithmetic":return C(()=>YN(i,r,o));case"basic_math":return C(()=>KN(i,r,o));case"control":return tC(i,r,o);case"convolution":return C(()=>nC(i,r,o));case"creation":return C(()=>iC(i,r,o));case"dynamic":return rC(i,r,o);case"evaluation":return C(()=>oC(i,r,o));case"image":return C(()=>lC(i,r,o));case"graph":return C(()=>aC(i,r,o));case"logical":return C(()=>cC(i,r,o));case"matrices":return C(()=>pC(i,r,o));case"normalization":return C(()=>uC(i,r,o));case"reduction":return C(()=>hC(i,r,o));case"slice_join":return C(()=>dC(i,r,o));case"spectral":return C(()=>mC(i,r,o));case"transformation":return C(()=>fC(i,r,o));case"custom":const a=xf(i.op);if(a&&a.customExecutor)return a.customExecutor(new HN(i,r,o));throw TypeError(`Custom op ${i.op} is not registered.`);default:throw TypeError(`Unknown op '${i.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(e,t,s);return n instanceof Promise?n.then(i=>[].concat(i)):[].concat(n)}class $w{constructor(e={},t={},s={},n={}){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=s,this.functionMap=n,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(e,t){return{id:e,frameName:t,iterationId:0}}set currentContext(e){this.contexts!==e&&(this.contexts=e,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){const e=[];for(let t=0;tt.id===0&&t.iterationId===0?"":`${t.frameName}-${t.iterationId}`).join("/"):""}enterFrame(e){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,e)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error("Cannot exit frame, the context is empty")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;const e=Object.assign({},this.contexts[this.contexts.length-1]);e.iterationId+=1,e.id=this.lastId,this.contexts.splice(-1,1,e),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error("Cannot increase frame iteration, the context is empty")}getWeight(e){return this.weightMap[e]}addTensorArray(e){this.tensorArrayMap[e.id]=e}getTensorArray(e){return this.tensorArrayMap[e]}addTensorList(e){this.tensorListMap[e.id]=e}getTensorList(e){return this.tensorListMap[e]}dispose(e){for(const t in this.tensorArrayMap)this.tensorArrayMap[t].clearAndClose(e);for(const t in this.tensorListMap)this.tensorListMap[t].clearAndClose(e)}}function zw(e,t,s,n){const i=new Set,r=[];let o=null,a=null;const l=new Set,c=Object.keys(e).map(h=>Ss(h)[0]);let p=[];n!=null&&(p=n.map(h=>Ss(h.name)[0]));const u=[...t];for(;u.length>0;){const h=u.pop();if((Ww(h)||GB(h))&&(o==null&&(o=h,a=o.children.map(d=>d.name).filter(d=>i.has(d)))),i.add(h.name),s[h.name]!=null)continue;if(c.indexOf(h.name)!==-1)continue;if(p.indexOf(h.name)!==-1)continue;if(h.inputs.length===0){r.push(h.name);continue}h.inputs.forEach(d=>{if(l.has(d.name))return;l.add(d.name),u.push(d)})}return{inputs:e,outputs:t,usedNodes:i,missingInputs:r,dynamicNode:o,syncInputs:a}}function gC(e,t,s){const{usedNodes:n,inputs:i}=s,r=[],o=Object.keys(i).map(p=>Ss(p)[0]).map(p=>e.nodes[p]),a=e.initNodes;o.forEach(p=>{n.has(p.name)&&r.push(p)}),e.weights.forEach(p=>{n.has(p.name)&&r.push(p)}),a!=null&&a.forEach(p=>{n.has(p.name)&&r.push(p)});const l=new Set,c=[];for(;r.length>0;){const p=r.pop();l.add(p.name),t[p.name]||c.push(p),p.children.forEach(u=>{!l.has(u.name)&&n.has(u.name)&&u.inputs.every(h=>l.has(h.name))&&r.push(u)})}return c}const qB=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],HB=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"];function Ww(e){return qB.indexOf(e.op)>=0}function GB(e){return HB.indexOf(e.op)>=0}class _f{constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this._outputs=e.outputs,this._inputs=e.inputs,this._initNodes=e.initNodes,this._signature=e.signature,this._functions=e.functions,e.functions!=null&&Object.keys(e.functions).forEach(s=>{this._functionExecutorMap[s]=new _f(e.functions[s],this)})}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(e){const t=Object.keys(e).map(s=>e[s].map(n=>n.id));this._weightIds=[].concat(...t),this._weightMap=e}get inputs(){return this._inputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(e=>e.signatureKey||e.name)}get outputNodes(){return this._outputs.map(e=>{const t=e.signatureKey||e.name;return e.defaultOutput?`${t}:${e.defaultOutput}`:t})}get functions(){return Object.keys(this._functions).reduce((e,t)=>(e[t]=this._functions[t].signature,e),{})}getCompilationKey(e,t){const s=e.map(i=>i.name).sort(),n=t.map(i=>i.name).sort();return s.join(this.SEPERATOR)+"--"+n.join(this.SEPERATOR)}compile(e,t){const s=zw(e,t,this.weightMap,this._initNodes),{missingInputs:n,dynamicNode:i,syncInputs:r}=s;if(i!=null)throw new Error(`This execution contains the node '${i.name}', which has the dynamic op '${i.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${r}]`);if(n.length>0){const o=t.map(l=>l.name),a=Object.keys(e);throw new Error(`Cannot compute the outputs [${o}] from the provided inputs [${a}]. Missing the following inputs: [${n}]`)}return gC(this.graph,this.weightMap,s)}execute(e,t){e=this.mapInputs(e);const s=Object.keys(e).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);const n=s.map(p=>this.graph.nodes[Ss(p)[0]]),i=t.map(p=>Ss(p)[0]);let r=i.map(p=>this.graph.nodes[p]);r.length===0&&(r=this._outputs);const o=this.getCompilationKey(n,r);let a=this.compiledMap.get(o);a==null&&(a=this.compile(e,r),this.compiledMap.set(o,a));const l={},c={};return C(()=>{const p=new $w(this.weightMap,l,c,this.functionExecutorMap),u=Object.assign({},this.weightMap);Object.keys(e).forEach(m=>{const[f,g]=Ss(m),y=[];y[g]=e[m],u[f]=y});const h=this.getFrozenTensorIds(u),d={};for(let m=0;mVt(m,u,p))})}getFrozenTensorIds(e){const t=[].concat.apply([],Object.keys(e).map(s=>e[s]).map(s=>s.map(n=>n.id)));return new Set(t)}checkTensorForDisposal(e,t,s,n,i,r,o){if(t.category==="control"||r.indexOf(e)!==-1)return;s[e].forEach(a=>{a!=null&&(o[a.id]=(o[a.id]||0)+t.children.length)}),t.inputs.forEach(a=>{if(a.category!=="control"){const l=jN(a.name,s,n);l!=null&&l.forEach(c=>{if(c&&!i.has(c.id)){const p=o[c.id];p===1?(c.dispose(),delete o[c.id]):p!=null&&o[c.id]--}})}})}async executeAsync(e,t){return this._executeAsync(e,t)}async _executeAsync(e,t,s=!1,n={},i={}){s||(e=this.mapInputs(e),this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t));const r=new $w(this.weightMap,n,i,this.functionExecutorMap),o=await this.executeWithControlFlow(e,r,t,s),a=t.map(u=>Vt(u,o,r)),l=a.map(u=>u.id),c=Object.keys(e).map(u=>e[u].id),p=new Set([...l,...c,...this.weightIds]);return Object.keys(o).forEach(u=>{const h=o[u];h.forEach(d=>{d&&!d.isDisposed&&!p.has(d.id)&&d.dispose()})}),this.parent==null&&r.dispose(p),a}async executeFunctionAsync(e,t,s){const n=e.reduce((i,r,o)=>(i[this.inputs[o].name]=r,i),{});return this._executeAsync(n,this.outputNodes,!0,t,s)}async executeWithControlFlow(e,t,s,n){const i=Object.keys(e),r=i.map(w=>this.graph.nodes[Ss(w)[0]]),o=s.map(w=>Ss(w)[0]),a=o.map(w=>this.graph.nodes[w]),{usedNodes:l,missingInputs:c,dynamicNode:p,syncInputs:u}=zw(e,a,this.weightMap),h=[...r,...this.graph.weights].map(w=>({node:w,contexts:t.currentContext})),d=Object.assign({},this.weightMap);Object.keys(e).forEach(w=>{const[x,T]=Ss(w),A=[];A[T]=e[w],d[x]=A});const m={},f=this.getFrozenTensorIds(d),g={};for(;h.length>0;){const w=this.processStack(r,h,t,d,g,f,o,m,l);await Promise.all(w)}p==null&&!n&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");const y=a.filter(w=>!Ww(w)&&!Vt(w.name,d,t)).map(w=>w.name);if(y.length>0){let w="";throw p!=null&&(w=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${u}]`),new Error(`Cannot compute the outputs [${y}] from the provided inputs [${i}]. Consider providing the following inputs: [${c}]. ${w}`)}return d}processStack(e,t,s,n,i,r,o,a,l){const c=[];for(;t.length>0;){const p=t.pop();s.currentContext=p.contexts;let u="";if(p.node.op==="Enter"&&L("isConstant",p.node,n,s)&&([u]=Gn(p.node.name,s)),e.indexOf(p.node)===-1){const h=Uw(p.node,n,s);u||([u]=Gn(p.node.name,s));const d=s.currentContext;h instanceof Promise?c.push(h.then(m=>(n[u]=m,s.currentContext=d,this.checkTensorForDisposal(u,p.node,n,s,r,o,a),this.processChildNodes(p.node,t,s,n,i,l),m))):(n[u]=h,this.checkTensorForDisposal(u,p.node,n,s,r,o,a),this.processChildNodes(p.node,t,s,n,i,l))}else this.processChildNodes(p.node,t,s,n,i,l)}return c}processChildNodes(e,t,s,n,i,r){e.children.forEach(o=>{const[a]=Gn(o.name,s);if(i[a]||!r.has(o.name))return;o.op==="Merge"?o.inputNames.some(l=>!!Vt(l,n,s))&&(i[a]=!0,t.push({contexts:s.currentContext,node:o})):o.inputNames.every(l=>!!Vt(l,n,s))&&(i[a]=!0,t.push({contexts:s.currentContext,node:o}))})}dispose(){Object.keys(this.weightMap).forEach(e=>this.weightMap[e].forEach(t=>t.dispose()))}checkInputShapeAndType(e){Object.keys(e).forEach(t=>{const s=e[t],[n]=Ss(t),i=this.graph.nodes[n];if(i.attrParams.shape&&i.attrParams.shape.value){const r=i.attrParams.shape.value,o=r.length===s.shape.length&&s.shape.every((a,l)=>r[l]===-1||r[l]===a);N.assert(o,()=>`The shape of dict['${i.name}'] provided in model.execute(dict) must be [${r}], but was [${s.shape}]`)}i.attrParams.dtype&&i.attrParams.dtype.value&&N.assert(s.dtype===i.attrParams.dtype.value,()=>`The dtype of dict['${i.name}'] provided in model.execute(dict) must be ${i.attrParams.dtype.value}, but was ${s.dtype}`)})}mapInputs(e){const t={};for(const s in e)if(this._signature!=null&&this._signature.inputs!=null&&this._signature.inputs[s]!=null){const n=this._signature.inputs[s];t[n.name]=e[s]}else t[s]=e[s];return t}checkInputs(e){const t=Object.keys(e).filter(s=>{const[n]=Ss(s);return this.graph.nodes[n]==null});if(t.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${t}] that are not part of graph`)}mapOutputs(e){return e.map(t=>{if(this._signature!=null&&this._signature.outputs!=null&&this._signature.outputs[t]!=null){const s=this._signature.outputs[t];return s.name}return t},{})}checkOutputs(e){e.forEach(t=>{const[s]=Ss(t);if(!this.graph.nodes[s])throw new Error(`The output '${t}' is not found in the graph`)})}}const YB="?tfjs-format=file",KB="model.json";class Pw{constructor(e,t={}){this.modelUrl=e,this.loadOptions=t,this.version="n/a",t==null&&(this.loadOptions={})}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}findIOHandler(){const e=this.modelUrl;if(e.load!=null)this.handler=e;else if(this.loadOptions.requestInit!=null)this.handler=Rt.browserHTTPRequest(e,this.loadOptions);else{const t=Rt.getLoadHandlers(e,this.loadOptions);if(t.length===0)t.push(Rt.browserHTTPRequest(e,this.loadOptions));else if(t.length>1)throw new Error(`Found more than one (${t.length}) load handlers for URL '${[e]}'`);this.handler=t[0]}}async load(){if(this.findIOHandler(),this.handler.load==null)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");const e=await this.handler.load();return this.loadSync(e)}loadSync(e){this.artifacts=e;const t=this.artifacts.modelTopology;let s={};this.artifacts.userDefinedMetadata!=null&&(s=this.artifacts.userDefinedMetadata.signature),this.version=`${t.versions.producer}.${t.versions.minConsumer}`;const n=Rt.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new _f(Fw.Instance.transformGraph(t,s)),this.executor.weightMap=this.convertTensorMapToTensorsMap(n),e.modelInitializer!=null){const i=Fw.Instance.transformGraph(e.modelInitializer);this.initializer=new _f(i),this.initializer.weightMap=this.executor.weightMap,this.initializer.execute({},[])}return!0}async save(e,t){if(typeof e=="string"){const s=Rt.getSaveHandlers(e);if(s.length===0)throw new Error(`Cannot find any save handlers for URL '${e}'`);if(s.length>1)throw new Error(`Found more than one (${s.length}) save handlers for URL '${e}'`);e=s[0]}if(e.save==null)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return e.save(this.artifacts)}predict(e,t){return this.execute(e,this.outputNodes)}normalizeInputs(e){if(!(e instanceof me)&&!Array.isArray(e))return e;if(e=Array.isArray(e)?e:[e],e.length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${e.length} input tensors.`);return this.inputNodes.reduce((t,s,n)=>(t[s]=e[n],t),{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}execute(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);const s=this.executor.execute(e,t);return s.length>1?s:s[0]}async executeAsync(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);const s=await this.executor.executeAsync(e,t);return s.length>1?s:s[0]}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce((t,s)=>(t[s]=[e[s]],t),{})}dispose(){this.executor.dispose(),this.initializer&&this.initializer.dispose()}}async function yC(e,t={}){if(e==null)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");t==null&&(t={}),t.fromTFHub&&(e.load==null&&(e.endsWith("/")||(e=e+"/"),e=`${e}${KB}${YB}`));const s=new Pw(e,t);return await s.load(),s}const kf="2.6.0";function bC(e,t){return Df(e,t)}function Df(e,t,s=new Map,n=new Set){if(e==null)return null;if(n.has(e))throw new Error("Circular references are not supported.");if(s.has(e))return s.get(e);const i=t(e);if(i.recurse&&i.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(i.recurse)if(yo(e)){const r=Array.isArray(e)?[]:{};n.add(e);for(const o in e){const a=e[o],l=Df(a,t,s,n);r[o]=l}return n.delete(e),r}else throw new Error(`Can't recurse into non-iterable type: ${e}`);else return s.set(e,i.value),i.value}function xC(e,t=Bw){return wC(e,t)}function wC(e,t,s=new Set){const n=e[0];if(s.has(n))throw new Error("Circular references are not supported.");const i=t(e);if(i.recurse&&i.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(i.recurse)if(yo(n)){const r=Array.isArray(n)?[]:{};s.add(n);for(const o in n){const a=e.map(c=>c[o]),l=wC(a,t,s);r[o]=l}return s.delete(n),r}else throw new Error(`Can't recurse into non-iterable type: ${n}`);else return i.value}function Bw(e){return e===null?null:yo(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function Ff(e,t){const s=new Map;Df(e,t,s);for(const i of Array.from(s.keys())){const r=s.get(i);if(r instanceof Promise){const o=await r;s.set(i,o)}}const n=Df(e,t,s);return n}function yo(e){return e!=null&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||typeof e=="object"&&!(e instanceof me))}function LC(e){return e==null||XB(e)||Array.isArray(e)||typeof e=="object"&&e instanceof me||N.isTypedArray(e)}function XB(e){return e===null||typeof e!="object"&&typeof e!="function"}function SC(e){return bC(e,JB)}function JB(e){return e instanceof me?{value:e.clone(),recurse:!1}:yo(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}class Mf{constructor(e){if(this.capacity=e,this.begin=0,this.end=0,e==null)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(e<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(e),this.doubledCapacity=2*e}wrap(e){for(;e<0;)e+=this.doubledCapacity;return e%this.doubledCapacity}get(e){if(e<0)throw new RangeError("Can't get item at a negative index.");return this.data[e%this.capacity]}set(e,t){if(e<0)throw new RangeError("Can't set item at a negative index.");this.data[e%this.capacity]=t}length(){let e=this.end-this.begin;return e<0&&(e=this.doubledCapacity+e),e}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,e),this.end=this.wrap(this.end+1)}pushAll(e){for(const t of e)this.push(t)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);const e=this.get(this.end);return this.set(this.end,void 0),e}unshift(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,e)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");const e=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),e}shuffleExcise(e){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");const t=this.wrap(this.begin+e),s=this.get(t);return this.set(t,this.pop()),s}}class Uf extends Mf{constructor(){super(Uf.INITIAL_CAPACITY)}isFull(){return!1}push(e){super.isFull()&&this.expand(),super.push(e)}unshift(e){super.isFull()&&this.expand(),super.unshift(e)}expand(){const e=this.capacity*2,t=new Array(e),s=this.length();for(let n=0;nt===!0)}rowMajorBatch(e,t=!0){return new ij(this,e,t)}columnMajorBatch(e,t=!0,s=Bw){const n=this.rowMajorBatch(e,t);return n.map(i=>xC(i,s))}concatenate(e,t){return new vC(jw([this,e]),t)}take(e){return e<0||e==null?this:new nj(this,e)}skip(e){return e<0||e==null?this:new sj(this,e)}prefetch(e){return new CC(this,e)}shuffle(e,t){return new cj(this,e,t)}serial(){return new tj(this)}}class ZB extends At{constructor(e){super();this.items=e,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};const e=this.items[this.trav];return this.trav++,{value:SC(e),done:!1}}}class QB extends At{constructor(e){super();this.nextFn=e}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(e){throw e.message=`Error thrown while iterating through a dataset: ${e.message}`,e}}}class tj extends At{constructor(e){super();this.upstream=e,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){return this.upstream.next()}}class sj extends At{constructor(e,t){super();this.upstream=e,this.maxCount=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}}class ij extends At{constructor(e,t,s=!0){super();this.upstream=e,this.batchSize=t,this.enableSmallLastBatch=s,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){const e=[];for(;e.length0?{value:e,done:!1}:{value:null,done:!0};e.push(t.value)}return{value:e,done:!1}}}class rj extends At{constructor(e,t){super();this.upstream=e,this.predicate=t,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;){const e=await this.upstream.next();if(e.done||this.predicate(e.value))return e;ce(e.value)}}}class oj extends At{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Map`}async next(){const e=await this.upstream.next();if(e.done)return{value:null,done:!0};const t=mn.getTensorsInContainer(e.value),s=this.transform(e.value),n=mn.getTensorsInContainer(s);for(const i of t)mn.isTensorInList(i,n)||i.dispose();return{value:s,done:!1}}}class aj extends At{constructor(e,t){super();this.upstream=e,this.handler=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(e){if(!this.handler(e))return{value:null,done:!0}}}}class NC extends At{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){const e=await this.upstream.next();if(e.done)return{value:null,done:!0};const t=mn.getTensorsInContainer(e.value),s=await this.transform(e.value),n=mn.getTensorsInContainer(s);for(const i of t)mn.isTensorInList(i,n)||i.dispose();return{value:s,done:!1}}}class _u extends At{constructor(){super();this.outputQueue=new Uf,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}}class lj extends _u{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){const e=await this.upstream.next();if(e.done)return!1;const t=mn.getTensorsInContainer(e.value),s=this.transform(e.value),n=mn.getTensorsInContainer(s);this.outputQueue.pushAll(s);for(const i of t)mn.isTensorInList(i,n)||i.dispose();return!0}}class vC extends At{constructor(e,t){super();this.baseErrorHandler=t,this.lastRead=null,this.iterator=null,this.moreIterators=e}summary(){const e="TODO: fill in upstream of chained summaries";return`${e} -> Chained`}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(e){if(await e,this.iterator==null){const s=await this.moreIterators.next();if(s.done)return{value:null,done:!0};this.iterator=s.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}const t=await this.iterator.next();return t.done?(this.iterator=null,this.readFromChain(e)):t}}var Ki;(function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"})(Ki||(Ki={}));class ej extends At{constructor(e,t=Ki.FAIL){super();this.iterators=e,this.mismatchMode=t,this.count=0,this.currentPromise=null}summary(){const e="TODO: fill in upstream of zip summaries";return`{${e}} -> Zip`}async nextState(e){await e;let t=0,s=0;function n(r){if(r instanceof At){const o=r.next();return{value:o.then(a=>(t++,a.done&&s++,a.value)),recurse:!1}}else return{value:null,recurse:!0}}const i=await Ff(this.iterators,n);if(t===s)return{value:null,done:!0};if(s>0)switch(this.mismatchMode){case Ki.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case Ki.SHORTEST:return{value:null,done:!0};case Ki.LONGEST:default:}return this.count++,{value:i,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}}class CC extends At{constructor(e,t){super();this.upstream=e,this.bufferSize=t,this.buffer=new Mf(t)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){const e=this.upstream.next();this.buffer.push(e)}}next(){return this.refill(),this.buffer.shift()}}class cj extends CC{constructor(e,t,s){super(e,t);this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=IC.alea(s||N.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(e){return Math.floor(this.random()*e)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){const e=this.chooseIndex(),t=await this.buffer.shuffleExcise(e);if(t.done)this.upstreamExhausted=!0;else return this.refill(),t}return{value:null,done:!0}}}const RC=vc(Tc());class Xi{constructor(){this.size=null}batch(e,t=!0){const s=this;N.assert(e>0,()=>`batchSize needs to be positive, but it is - ${e}`);let n;return this.size===Infinity||this.size==null?n=this.size:t?n=Math.ceil(this.size/e):n=Math.floor(this.size/e),Os(async()=>(await s.iterator()).columnMajorBatch(e,t,pj),n)}concatenate(e){const t=this;let s;return this.size===Infinity||e.size===Infinity?s=Infinity:this.size!=null&&e.size!=null?s=this.size+e.size:s=null,Os(async()=>(await t.iterator()).concatenate(await e.iterator()),s)}filter(e){const t=this;let s;return this.size===Infinity?s=Infinity:s=null,Os(async()=>(await t.iterator()).filter(n=>C(()=>e(n))),s)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){const t=this;return Os(async()=>(await t.iterator()).map(s=>C(()=>e(s))),this.size)}mapAsync(e){const t=this;return Os(async()=>(await t.iterator()).mapAsync(e),this.size)}prefetch(e){if(e==null)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");const t=this;return Os(async()=>(await t.iterator()).prefetch(e),this.size)}repeat(e){const t=this;let s;return this.size!=null&&e>0?s=this.size*e:e===0?s=0:this.size!=null&&(e===void 0||e<0)?s=Infinity:s=null,Os(async()=>{const n=Eu(async()=>({value:await t.iterator(),done:!1}));return TC(n.take(e))},s)}skip(e){const t=this;let s;return this.size!=null&&e>=0&&this.size>=e?s=this.size-e:this.size!=null&&(this.size(await t.iterator()).skip(e),s)}shuffle(e,t,s=!0){if(e==null||e<0)throw this.size==null?new RangeError("`Dataset.shuffle()` requires bufferSize to be specified."):new RangeError(`\`Dataset.shuffle()\` requires bufferSize to be specified. If your data fits in main memory (for regular JS objects), and/or GPU memory (for \`tf.Tensor\`s), consider setting bufferSize to the dataset size (${this.size} elements)`);const n=this,i=RC.alea(t||N.now().toString());return Os(async()=>{let r=i.int32();return s&&(r+=i.int32()),(await n.iterator()).shuffle(e,r.toString())},this.size)}take(e){const t=this;let s;return this.size!=null&&this.size>e?s=e:this.size!=null&&this.size<=e?s=this.size:s=null,Os(async()=>(await t.iterator()).take(e),s)}async toArray(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}}Xi.MAX_BUFFER_SIZE=1e4;function Os(e,t=null){return new class extends Xi{constructor(){super(...arguments);this.size=t}async iterator(){return e()}}}function OC(e){return Os(async()=>jw(e),e.length)}function EC(e){if(!yo(e))throw new Error("The argument to zip() must be an object or array.");let t;if(Array.isArray(e))for(let s=0;s{const s=await Ff(e,n=>{if(n instanceof Xi)return{value:n.iterator(),recurse:!1};if(yo(n))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return AC(s,Ki.SHORTEST)},t)}function pj(e){if(e===null)return null;const t=e[0];if(LC(t)){const s=uj(e);return{value:s,recurse:!1}}return{value:null,recurse:!0}}function uj(e){if(e.length===0)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof me?Ge(e):ze(e)}class $f extends Xi{constructor(e){super();this.input=e}async iterator(){const e=await this.input.iterator(),t=e.decodeUTF8(),s=t.split(` -`).map(n=>(n.endsWith("\r")&&(n=n.slice(0,-1)),n));return s}}const Wf='"',ku=Symbol("out"),_C=Symbol("field"),zf=Symbol("quote"),Vw=Symbol("quoteafterquote"),kC=Symbol("quoteinquote");class Pf extends Xi{constructor(e,t){super();this.input=e,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new $f(e),t||(t={}),this.hasHeader=!(t.hasHeader===!1),this.fullColumnNames=t.columnNames,this.columnConfigs=t.columnConfigs,this.configuredColumnsOnly=t.configuredColumnsOnly,t.delimWhitespace?(N.assert(t.delimiter==null,()=>"Delimiter should not be provided when delimWhitespace is true."),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=t.delimiter?t.delimiter:","}async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){const e=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!e)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&e&&N.assert(e.length===this.fullColumnNames.length,()=>"The length of provided columnNames ("+this.fullColumnNames.length.toString()+") does not match the length of the header line read from file ("+e.length.toString()+")."),this.fullColumnNames||(this.fullColumnNames=e);const t=this.fullColumnNames.reduce((n,i)=>(n[i]=n[i]+1||1,n),{}),s=Object.keys(t).filter(n=>t[n]>1);if(N.assert(s.length===0,()=>"Duplicate column names found: "+s.toString()),this.columnConfigs)for(const n of Object.keys(this.columnConfigs)){const i=this.fullColumnNames.indexOf(n);if(i===-1)throw new Error('The key "'+n+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){const e=await this.base.iterator(),t=await e.next();if(t.done)throw new Error("No data was found for CSV parsing.");const s=t.value,n=this.parseRow(s,!1);return n}else return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let e=await this.base.iterator();return this.hasHeader&&(e=e.skip(1)),e.map(t=>this.makeDataElement(t))}makeDataElement(e){const t=this.parseRow(e),s={},n={};for(let i=0;i14||!Number.isInteger(t))throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`);if(this.numFrames=e.numFramesPerSpectrogram||43,this.sampleRateHz=e.sampleRateHz,this.columnTruncateLength=e.columnTruncateLength||this.fftSize,this.audioTrackConstraints=e.audioTrackConstraints,this.smoothingTimeConstant=e.smoothingTimeConstant||0,this.includeSpectrogram=!(e.includeSpectrogram===!1),this.includeWaveform=e.includeWaveform===!0,!this.includeSpectrogram&&!this.includeWaveform)throw new Error("Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.")}summary(){return"microphone"}static async create(e={}){if(W().get("IS_NODE"))throw new Error("microphone API is only supported in browser environment.");const t=new Gw(e);return await t.start(),t}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(s){throw new Error(`Error thrown while initializing video stream: ${s.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");const e=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new e,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);const t=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,t.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize);return}async next(){if(this.isClosed)return{value:null,done:!0};let e,t;const s=await this.getAudioData();if(this.includeSpectrogram){const n=this.flattenQueue(s.freqDataQueue);e=this.getTensorFromAudioDataArray(n,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){const n=this.flattenQueue(s.timeDataQueue);t=this.getTensorFromAudioDataArray(n,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:e,waveform:t},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){const e=[],t=[];let s=0;return new Promise(n=>{const i=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-Infinity&&n({freqDataQueue:e,timeDataQueue:t}),e.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),t.push(this.timeData.slice())),++s===this.numFrames&&(clearInterval(i),n({freqDataQueue:e,timeDataQueue:t}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())}toArray(){throw new Error("Can not convert infinite audio stream to array.")}getSampleRate(){return this.sampleRateHz}flattenQueue(e){const t=e[0].length,s=new Float32Array(e.length*t);return e.forEach((n,i)=>s.set(n,i*t)),s}getTensorFromAudioDataArray(e,t){const s=new Float32Array(N.sizeFromShape(t));return s.set(e,s.length-e.length),ze(s,t)}}class qw extends At{constructor(e,t){super();if(this.webcamVideoElement=e,this.webcamConfig=t,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=Oe([0],"int32"),this.webcamConfig.centerCrop){const s=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,n=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,i=(1-s)/2,r=(1-n)/2,o=i+s,a=n+r;this.cropBox=ls([r,i,a,o],[1,4])}else this.cropBox=ls([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(e,t={}){if(W().get("IS_NODE"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!e){if(e=document.createElement("video"),!t.resizeWidth||!t.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");e.width=t.resizeWidth,e.height=t.resizeHeight}const s=new qw(e,t);return await s.start(),s}async start(){this.webcamConfig.facingMode&&N.assert(this.webcamConfig.facingMode==="user"||this.webcamConfig.facingMode==="environment",()=>`Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`);try{this.stream=await navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:"user",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}})}catch(e){throw e.message=`Error thrown while initializing video stream: ${e.message}`,e}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(e){console.log(e),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(e=>{this.webcamVideoElement.onloadedmetadata=()=>{e()}})}async next(){if(this.isClosed)return{value:null,done:!0};let e;try{e=Gr.fromPixels(this.webcamVideoElement)}catch(t){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(t)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(e),done:!1}}catch(t){throw new Error(`Error thrown cropping the video: ${t.message}`)}finally{e.dispose()}else return{value:e,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(e){return C(()=>{const t=e.toFloat().expandDims(0);let s;s=en.cropAndResize(t,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");const n=s.shape;return s.reshape(n.slice(1))})}async capture(){return(await this.next()).value}stop(){const e=this.stream.getTracks();e.forEach(t=>t.stop());try{this.webcamVideoElement.srcObject=null}catch(t){console.log(t),this.webcamVideoElement.src=null}this.isClosed=!0}toArray(){throw new Error("Can not convert infinite video stream to array.")}}class Bf{}class Hw extends At{split(e){return new hj(this,e)}}class hj extends Hw{constructor(e,t){super();this.upstream=e,this.impl=new dj(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}}class dj extends _u{constructor(e,t){super();this.upstream=e,this.separator=t,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){const e=await this.upstream.next();if(e.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);const t=e.value.split(this.separator);t[0]=this.carryover+t[0];for(const s of t.slice(0,-1))this.outputQueue.push(s);return this.carryover=t[t.length-1],!0}}class DC extends At{decodeUTF8(){return new mj(this)}}class mj extends Hw{constructor(e){super();this.upstream=e,this.impl=new fj(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}}class fj extends _u{constructor(e){super();if(this.upstream=e,W().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{const{StringDecoder:t}=kL();this.decoder=new t("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){const e=await this.upstream.next();let t;if(e.done)return!1;t=e.value;let s;return W().get("IS_BROWSER")?s=this.decoder.decode(t,{stream:!0}):s=this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(s),!0}}class jf extends DC{constructor(e,t={}){super();this.file=e,this.options=t,N.assert(e instanceof Uint8Array||(W().get("IS_BROWSER")?e instanceof File||e instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=t.offset||0,this.chunkSize=t.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){if(this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size))return{value:null,done:!0};const e=new Promise((t,s)=>{const n=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)t(new Uint8Array(this.file.slice(this.offset,n)));else{const i=new FileReader;i.onload=o=>{let a=i.result;if(a instanceof ArrayBuffer&&(a=new Uint8Array(a)),!(a instanceof Uint8Array))return s(new TypeError("FileReader returned unknown type."));t(a)},i.onabort=o=>s(new Error("Aborted")),i.onerror=o=>s(new Error(o.type));const r=this.file.slice(this.offset,n);i.readAsArrayBuffer(r)}this.offset=n});return{value:await e,done:!1}}}async function FC(e,t={}){let s,n;typeof e=="string"?s=e:(s=e.url,n=gj(e));const i=await N.fetch(s,n);if(i.ok){const r=new Uint8Array(await i.arrayBuffer());return new jf(r,t)}else throw new Error(i.statusText)}const gj=e=>{const t={method:e.method,headers:e.headers,body:e.body,mode:e.mode,credentials:e.credentials,cache:e.cache,redirect:e.redirect,referrer:e.referrer,integrity:e.integrity};return t};function Vf(e){return typeof e=="string"&&e.substr(0,7)==="file://"}class Gf extends Bf{constructor(e,t={}){super();this.input=e,this.options=t}async iterator(){if(Vf(this.input)&&W().get("IS_NODE")){const e=DL();this.input=e.readFileSync(this.input.substr(7))}return new jf(this.input,this.options)}}class qf extends Bf{constructor(e,t={}){super();this.url=e,this.fileOptions=t}async iterator(){return Vf(this.url)?new Gf(this.url,this.fileOptions).iterator():FC(this.url,this.fileOptions)}}function MC(e,t={}){return new Pf(new qf(e),t)}function UC(e){const t=Eu(e);return Os(async()=>t)}function $C(e){return Os(async()=>{const t=await e();return Eu(()=>t.next())})}async function WC(e,t){return qw.create(e,t)}async function zC(e){return Gw.create(e)}const Hf="2.6.0";const Yw={};Ee(Yw,{CSVDataset:()=>Pf,Dataset:()=>Xi,FileDataSource:()=>Gf,TextLineDataset:()=>$f,URLDataSource:()=>qf,array:()=>OC,csv:()=>MC,func:()=>UC,generator:()=>$C,microphone:()=>zC,version_data:()=>Hf,webcam:()=>WC,zip:()=>EC});function ee(e,t){Array.isArray(e)||(e=[e]),e.forEach(s=>{s!=null&&N.assert(s.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the CPU backend.`)})}const PC=vc(Tc());const yj=vt.nonMaxSuppressionV3Impl,bj=vt.split,wj=vt.tile,xj=vt.topkImpl,Lj=vt.whereImpl;function Kw(e,t,s,n){if(s==="linear")return e.linear(t);if(s==="relu")return e.relu(t);if(s==="elu")return gn(t);if(s==="relu6")return e.relu6(t);if(s==="prelu")return e.prelu(t,n);throw new Error(`Activation ${s} has not been implemented for the CPU backend.`)}class Xw extends Eo{constructor(){super();this.blockSize=48,this.firstUse=!0,this.data=new Fc(this,Us())}write(e,t,s){this.firstUse&&(this.firstUse=!1,W().get("IS_NODE")&&U.warn(` + ${n}, and tensor's shape is: ${e.shape}`);const r=n===0?0:e.size/n,o=C(()=>{const l=[];e=O(e,[1,n,r]);for(let c=0;c{switch(e.op){case"If":case"StatelessIf":{const n=L("thenBranch",e,t,s),i=L("elseBranch",e,t,s),r=L("cond",e,t,s),o=L("args",e,t,s),a=await r.data();return a[0]?s.functionMap[n].executeFunctionAsync(o,s.tensorArrayMap,s.tensorListMap):s.functionMap[i].executeFunctionAsync(o,s.tensorArrayMap,s.tensorListMap)}case"While":case"StatelessWhile":{const n=L("body",e,t,s),i=L("cond",e,t,s),r=L("args",e,t,s),o=await s.functionMap[i].executeFunctionAsync(r,s.tensorArrayMap,s.tensorListMap),a=r.map(p=>p.id);let l=await o[0].data();o.forEach(p=>{!p.kept&&a.indexOf(p.id)===-1&&p.dispose()});let c=r;for(;l[0];){const p=c;c=await s.functionMap[n].executeFunctionAsync(c,s.tensorArrayMap,s.tensorListMap);const u=c.map(d=>d.id);p.forEach(d=>{!d.kept&&a.indexOf(d.id)===-1&&u.indexOf(d.id)===-1&&d.dispose()});const h=await s.functionMap[i].executeFunctionAsync(c,s.tensorArrayMap,s.tensorListMap);l=await h[0].data(),h.forEach(d=>{!d.kept&&a.indexOf(d.id)===-1&&u.indexOf(d.id)===-1&&d.dispose()})}return c}case"LoopCond":{const n=L("pred",e,t,s);return[qn(n)]}case"Switch":{const n=L("pred",e,t,s);let i=L("data",e,t,s);return i.kept||(i=qn(i)),(await n.data())[0]?[void 0,i]:[i,void 0]}case"Merge":{const n=e.inputNames.find(i=>Vt(i,t,s)!==void 0);if(n){const i=Vt(n,t,s);return[qn(i)]}return}case"Enter":{const n=L("frameName",e,t,s),i=L("tensor",e,t,s);return s.enterFrame(n),[qn(i)]}case"Exit":{const n=L("tensor",e,t,s);return s.exitFrame(),[qn(n)]}case"NextIteration":{const n=L("tensor",e,t,s);return s.nextIteration(),[qn(n)]}case"TensorArrayV3":{const n=L("size",e,t,s),i=L("dtype",e,t,s),r=L("elementShape",e,t,s),o=L("dynamicSize",e,t,s),a=L("clearAfterRead",e,t,s),l=L("identicalElementShapes",e,t,s),c=L("name",e,t,s),p=new KN(c,i,n,r,l,o,a);return s.addTensorArray(p),[p.idTensor,j(1)]}case"TensorArrayWriteV3":{const n=L("tensorArrayId",e,t,s),i=L("index",e,t,s),r=L("tensor",e,t,s),o=s.getTensorArray(n.id);return o.write(i,r),[o.idTensor]}case"TensorArrayReadV3":{const n=L("tensorArrayId",e,t,s),i=L("index",e,t,s),r=s.getTensorArray(n.id);return[r.read(i)]}case"TensorArrayGatherV3":{const n=L("tensorArrayId",e,t,s),i=L("indices",e,t,s),r=L("dtype",e,t,s),o=s.getTensorArray(n.id);return[o.gather(i,r)]}case"TensorArrayScatterV3":{const n=L("tensorArrayId",e,t,s),i=L("indices",e,t,s),r=L("tensor",e,t,s),o=s.getTensorArray(n.id);return o.scatter(i,r),[o.idTensor]}case"TensorArrayConcatV3":{const n=L("tensorArrayId",e,t,s),i=s.getTensorArray(n.id),r=L("dtype",e,t,s);return[i.concat(r)]}case"TensorArraySplitV3":{const n=L("tensorArrayId",e,t,s),i=L("tensor",e,t,s),r=L("lengths",e,t,s),o=s.getTensorArray(n.id);return o.split(r,i),[o.idTensor]}case"TensorArraySizeV3":{const n=L("tensorArrayId",e,t,s),i=s.getTensorArray(n.id);return[j(i.size(),"int32")]}case"TensorArrayCloseV3":{const n=L("tensorArrayId",e,t,s),i=s.getTensorArray(n.id);return i.clearAndClose(),[i.idTensor]}case"TensorListSetItem":{const n=L("tensorListId",e,t,s),i=L("index",e,t,s),r=L("tensor",e,t,s),o=s.getTensorList(n.id);return o.setItem(i,r),[o.idTensor]}case"TensorListGetItem":{const n=L("tensorListId",e,t,s),i=L("index",e,t,s),r=L("elementShape",e,t,s),o=L("elementDType",e,t,s),a=s.getTensorList(n.id);return[a.getItem(i,r,o)]}case"TensorListScatterV2":case"TensorListScatter":{const n=L("indices",e,t,s),i=L("tensor",e,t,s),r=L("elementShape",e,t,s),o=L("numElements",e,t,s),a=ZN(i,n,r,o);return s.addTensorList(a),[a.idTensor]}case"TensorListReserve":{const n=L("elementShape",e,t,s),i=L("elementDType",e,t,s),r=L("numElements",e,t,s),o=JN(n,i,r);return s.addTensorList(o),[o.idTensor]}case"TensorListGather":{const n=L("tensorListId",e,t,s),i=L("indices",e,t,s),r=L("elementShape",e,t,s),o=L("elementDType",e,t,s),a=s.getTensorList(n.id);return[a.gather(i,o,r)]}case"TensorListStack":{const n=L("tensorListId",e,t,s),i=L("elementShape",e,t,s),r=L("elementDType",e,t,s),o=L("numElements",e,t,s),a=s.getTensorList(n.id);return[a.stack(i,r,o)]}case"TensorListFromTensor":{const n=L("tensor",e,t,s),i=L("elementShape",e,t,s),r=L("elementDType",e,t,s),o=XN(n,i,r);return s.addTensorList(o),[o.idTensor]}case"TensorListConcat":{const n=L("tensorListId",e,t,s),i=s.getTensorList(n.id),r=L("dtype",e,t,s),o=L("elementShape",e,t,s);return[i.concat(r,o)]}case"TensorListPushBack":{const n=L("tensorListId",e,t,s),i=L("tensor",e,t,s),r=s.getTensorList(n.id);return r.pushBack(i),[r.idTensor]}case"TensorListPopBack":{const n=L("tensorListId",e,t,s),i=L("elementShape",e,t,s),r=L("elementDType",e,t,s),o=s.getTensorList(n.id);return[o.popBack(i,r)]}case"TensorListSplit":{const n=L("tensor",e,t,s),i=L("elementShape",e,t,s),r=L("lengths",e,t,s),o=QN(n,r,i);return s.addTensorList(o),[o.idTensor]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};function tC(e,t,s){const[n,i]=L("fusedOps",e,t,s),r=n==="biasadd",o=i==="prelu",a=n==="fusedbatchnorm",l=L("numArgs",e,t,s);if(r){if(o&&l!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!o&&l!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(a)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported.");const c=L("strides",e,t,s),p=Ru(e,t,s),u=L("dataFormat",e,t,s).toUpperCase(),h=L("dilations",e,t,s),[d,m]=L("args",e,t,s);return{stride:c,pad:p,dataFormat:u,dilations:h,biasArg:d,preluArg:m,activationFunc:i}}const sC=(e,t,s)=>{switch(e.op){case"Conv1D":{const n=L("stride",e,t,s),i=L("pad",e,t,s),r=L("dataFormat",e,t,s).toUpperCase(),o=L("dilation",e,t,s);return[fl(L("x",e,t,s),L("filter",e,t,s),n,i,r,o)]}case"Conv2D":{const n=L("strides",e,t,s),i=Ru(e,t,s),r=L("dataFormat",e,t,s).toUpperCase(),o=L("dilations",e,t,s);return[rt(L("x",e,t,s),L("filter",e,t,s),[n[1],n[2]],i,r,[o[1],o[2]])]}case"_FusedConv2D":{const{stride:n,pad:i,dataFormat:r,dilations:o,biasArg:a,preluArg:l,activationFunc:c}=tC(e,t,s);return[xn.conv2d({x:L("x",e,t,s),filter:L("filter",e,t,s),strides:[n[1],n[2]],pad:i,dataFormat:r,dilations:[o[1],o[2]],bias:a,activation:c,preluActivationWeights:l})]}case"FusedDepthwiseConv2dNative":{const{stride:n,pad:i,dataFormat:r,dilations:o,biasArg:a,preluArg:l,activationFunc:c}=tC(e,t,s);return[xn.depthwiseConv2d({x:L("x",e,t,s),filter:L("filter",e,t,s),strides:[n[1],n[2]],pad:i,dataFormat:r,dilations:[o[1],o[2]],bias:a,activation:c,preluActivationWeights:l})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{const n=L("outputShape",e,t,s),i=L("strides",e,t,s),r=Ru(e,t,s);return[yl(L("x",e,t,s),L("filter",e,t,s),n,[i[1],i[2]],r)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{const n=L("strides",e,t,s),i=Ru(e,t,s),r=L("dilations",e,t,s),o=L("dataFormat",e,t,s).toUpperCase();return[fn(L("input",e,t,s),L("filter",e,t,s),[n[1],n[2]],i,o,[r[1],r[2]])]}case"Conv3D":{const n=L("strides",e,t,s),i=L("pad",e,t,s),r=L("dataFormat",e,t,s).toUpperCase(),o=L("dilations",e,t,s);return[bl(L("x",e,t,s),L("filter",e,t,s),[n[1],n[2],n[3]],i,r,[o[1],o[2],o[3]])]}case"AvgPool":{const n=L("strides",e,t,s),i=L("pad",e,t,s),r=L("kernelSize",e,t,s);return[ds(L("x",e,t,s),[r[1],r[2]],[n[1],n[2]],i)]}case"MaxPool":{const n=L("strides",e,t,s),i=L("pad",e,t,s),r=L("kernelSize",e,t,s);return[ft(L("x",e,t,s),[r[1],r[2]],[n[1],n[2]],i)]}case"MaxPoolWithArgmax":{const n=L("strides",e,t,s),i=L("pad",e,t,s),r=L("kernelSize",e,t,s),o=L("includeBatchInIndex",e,t,s),{result:a,indexes:l}=md(L("x",e,t,s),[r[1],r[2]],[n[1],n[2]],i,o);return[a,l]}case"AvgPool3D":{const n=L("strides",e,t,s),i=L("pad",e,t,s),r=L("kernelSize",e,t,s);return[ml(L("x",e,t,s),[r[1],r[2],r[3]],[n[1],n[2],n[3]],i)]}case"MaxPool3D":{const n=L("strides",e,t,s),i=L("pad",e,t,s),r=L("kernelSize",e,t,s);return[Tl(L("x",e,t,s),[r[1],r[2],r[3]],[n[1],n[2],n[3]],i)]}case"Dilation2D":{const n=L("strides",e,t,s),i=L("pad",e,t,s),r=L("dilations",e,t,s),o=n[1],a=n[2],l=r[1],c=r[2];return[id(L("x",e,t,s),L("filter",e,t,s),[o,a],i,[l,c],"NHWC")]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};const nC=(e,t,s)=>{switch(e.op){case"Fill":{const n=L("shape",e,t,s),i=L("dtype",e,t,s),r=L("value",e,t,s);return[Wt(n,r,i)]}case"LinSpace":{const n=L("start",e,t,s),i=L("stop",e,t,s),r=L("num",e,t,s);return[cd(n,i,r)]}case"Multinomial":{const n=L("logits",e,t,s),i=L("numSamples",e,t,s),r=L("seed",e,t,s);return[fd(n,i,r)]}case"OneHot":{const n=L("indices",e,t,s),i=L("depth",e,t,s),r=L("onValue",e,t,s),o=L("offValue",e,t,s);return[pi(n,i,r,o)]}case"Ones":return[Kt(L("shape",e,t,s),L("dtype",e,t,s))];case"OnesLike":return[Ot(L("x",e,t,s))];case"RandomUniform":return[wn(L("shape",e,t,s),L("minval",e,t,s),L("maxval",e,t,s),L("dtype",e,t,s))];case"Range":{const n=L("start",e,t,s),i=L("stop",e,t,s),r=L("step",e,t,s);return[$i(n,i,r,L("dtype",e,t,s))]}case"TruncatedNormal":{const n=L("shape",e,t,s),i=L("mean",e,t,s),r=L("stdDev",e,t,s),o=L("seed",e,t,s);return[ro(n,i,r,L("dtype",e,t,s),o)]}case"Zeros":return[ye(L("shape",e,t,s),L("dtype",e,t,s))];case"ZerosLike":return[re(L("x",e,t,s))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Mw(e,t,s){const n=L("boxes",e,t,s),i=L("scores",e,t,s),r=L("maxOutputSize",e,t,s),o=L("iouThreshold",e,t,s),a=L("scoreThreshold",e,t,s),l=L("softNmsSigma",e,t,s);return{boxes:n,scores:i,maxOutputSize:r,iouThreshold:o,scoreThreshold:a,softNmsSigma:l}}const iC=async(e,t,s)=>{switch(e.op){case"NonMaxSuppressionV5":{const{boxes:n,scores:i,maxOutputSize:r,iouThreshold:o,scoreThreshold:a,softNmsSigma:l}=Mw(e,t,s),c=await en.nonMaxSuppressionWithScoreAsync(n,i,r,o,a,l);return[c.selectedIndices,c.selectedScores]}case"NonMaxSuppressionV4":{const{boxes:n,scores:i,maxOutputSize:r,iouThreshold:o,scoreThreshold:a}=Mw(e,t,s),l=L("padToMaxOutputSize",e,t,s),c=await en.nonMaxSuppressionPaddedAsync(n,i,r,o,a,l);return[c.selectedIndices,c.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{const{boxes:n,scores:i,maxOutputSize:r,iouThreshold:o,scoreThreshold:a}=Mw(e,t,s);return[await en.nonMaxSuppressionAsync(n,i,r,o,a)]}case"Where":{const n=G(L("condition",e,t,s),"bool"),i=[await Dl(n)];return n.dispose(),i}case"ListDiff":return xd(L("x",e,t,s),L("y",e,t,s));default:throw TypeError(`Node type ${e.op} is not implemented`)}};const rC=(e,t,s)=>{switch(e.op){case"TopKV2":{const n=L("x",e,t,s),i=L("k",e,t,s),r=L("sorted",e,t,s),o=vd(n,i,r);return[o.values,o.indices]}case"Unique":{const n=L("x",e,t,s),i=Yp(n);return[i.values,i.indices]}case"UniqueV2":{const n=L("x",e,t,s),i=L("axis",e,t,s),r=Yp(n,i);return[r.values,r.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};const oC=(e,t,s)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":const n=L("default",e,t,s);return[Vt(e.name,t,s)||n];case"Placeholder":return[Vt(e.name,t,s)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{const c=L("x",e,t,s);return[qn(c)]}case"IdentityN":return L("x",e,t,s).map(c=>qn(c));case"Snapshot":const i=L("x",e,t,s);return[qn(i)];case"Shape":return[Oe(L("x",e,t,s).shape,"int32")];case"ShapeN":return L("x",e,t,s).map(c=>Oe(c.shape));case"Size":return[j(L("x",e,t,s).size,"int32")];case"Rank":return[j(L("x",e,t,s).rank,"int32")];case"NoOp":return[j(1)];case"Print":const r=L("x",e,t,s),o=L("data",e,t,s),a=L("message",e,t,s),l=L("summarize",e,t,s);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(a);for(let c=0;c{switch(e.op){case"ResizeBilinear":{const n=L("images",e,t,s),i=L("size",e,t,s),r=L("alignCorners",e,t,s);return[en.resizeBilinear(n,[i[0],i[1]],r)]}case"ResizeNearestNeighbor":{const n=L("images",e,t,s),i=L("size",e,t,s),r=L("alignCorners",e,t,s);return[en.resizeNearestNeighbor(n,[i[0],i[1]],r)]}case"CropAndResize":{const n=L("image",e,t,s),i=L("boxes",e,t,s),r=L("boxInd",e,t,s),o=L("cropSize",e,t,s),a=L("method",e,t,s),l=L("extrapolationValue",e,t,s);return[en.cropAndResize(n,i,r,o,a,l)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};const lC=(e,t,s)=>{switch(e.op){case"Equal":return[as(L("a",e,t,s),L("b",e,t,s))];case"NotEqual":return[Js(L("a",e,t,s),L("b",e,t,s))];case"Greater":return[Ut(L("a",e,t,s),L("b",e,t,s))];case"GreaterEqual":return[ms(L("a",e,t,s),L("b",e,t,s))];case"Less":return[Xr(L("a",e,t,s),L("b",e,t,s))];case"LessEqual":return[Ws(L("a",e,t,s),L("b",e,t,s))];case"LogicalAnd":return[Yt(L("a",e,t,s),L("b",e,t,s))];case"LogicalNot":return[Jr(L("a",e,t,s))];case"LogicalOr":return[vl(L("a",e,t,s),L("b",e,t,s))];case"Select":case"SelectV2":return[mt(L("condition",e,t,s),L("a",e,t,s),L("b",e,t,s))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};const cC=(e,t,s)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[Te(L("a",e,t,s),L("b",e,t,s),L("transposeA",e,t,s),L("transposeB",e,t,s))];case"Transpose":return[se(L("x",e,t,s),L("perm",e,t,s))];case"_FusedMatMul":const[n,i]=L("fusedOps",e,t,s),r=n==="biasadd",o=i==="prelu",a=L("numArgs",e,t,s);if(r){if(o&&a!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!o&&a!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}const[l,c]=L("args",e,t,s);return[xn.matMul({a:L("a",e,t,s),b:L("b",e,t,s),transposeA:L("transposeA",e,t,s),transposeB:L("transposeB",e,t,s),bias:l,activation:i,preluActivationWeights:c})];default:throw TypeError(`Node type ${e.op} is not implemented`)}};const pC=(e,t,s)=>{switch(e.op){case"FusedBatchNorm":case"FusedBatchNormV2":return[Xs(L("x",e,t,s),L("mean",e,t,s),L("variance",e,t,s),L("offset",e,t,s),L("scale",e,t,s),L("epsilon",e,t,s))];case"FusedBatchNormV3":return[Xs(L("x",e,t,s),L("mean",e,t,s),L("variance",e,t,s),L("offset",e,t,s),L("scale",e,t,s),L("epsilon",e,t,s))];case"LRN":return[pd(L("x",e,t,s),L("radius",e,t,s),L("bias",e,t,s),L("alpha",e,t,s),L("beta",e,t,s))];case"Softmax":return[ts(L("x",e,t,s))];case"LogSoftmax":return[Il(L("x",e,t,s))];case"SparseToDense":return[Xp(L("sparseIndices",e,t,s),L("outputShape",e,t,s),L("sparseValues",e,t,s),L("defaultValue",e,t,s))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};const uC=(e,t,s)=>{switch(e.op){case"Max":{const n=L("axis",e,t,s),i=L("keepDims",e,t,s);return[Lt(L("x",e,t,s),n,i)]}case"Mean":{const n=L("axis",e,t,s),i=L("keepDims",e,t,s);return[Xe(L("x",e,t,s),n,i)]}case"Min":{const n=L("axis",e,t,s),i=L("keepDims",e,t,s);return[Ui(L("x",e,t,s),n,i)]}case"Sum":{const n=L("axis",e,t,s),i=L("keepDims",e,t,s);return[te(L("x",e,t,s),n,i)]}case"All":{const n=L("axis",e,t,s),i=L("keepDims",e,t,s);return[hl(L("x",e,t,s),n,i)]}case"Any":{const n=L("axis",e,t,s),i=L("keepDims",e,t,s);return[Zo(L("x",e,t,s),n,i)]}case"ArgMax":{const n=L("axis",e,t,s);return[Qo(L("x",e,t,s),n)]}case"ArgMin":{const n=L("axis",e,t,s);return[zh(L("x",e,t,s),n)]}case"Prod":{const n=L("axis",e,t,s),i=L("keepDims",e,t,s);return[Nl(L("x",e,t,s),n,i)]}case"Cumsum":{const n=L("axis",e,t,s),i=L("exclusive",e,t,s),r=L("reverse",e,t,s);return[xl(L("x",e,t,s),n,i,r)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};const hC=(e,t,s)=>{switch(e.op){case"ConcatV2":case"Concat":{const n=L("n",e,t,s),i=L("axis",e,t,s);let r=L("tensors",e,t,s);return r=r.slice(0,n),[be(r,i)]}case"GatherV2":case"Gather":{const n=L("axis",e,t,s),i=L("x",e,t,s),r=L("indices",e,t,s);return[hi(i,G(r,"int32"),n)]}case"ReverseV2":case"Reverse":{const n=L("axis",e,t,s),i=L("x",e,t,s);return[Et(i,n)]}case"Slice":{const n=L("begin",e,t,s),i=L("size",e,t,s);return[he(L("x",e,t,s),n,i)]}case"StridedSlice":{const n=L("begin",e,t,s),i=L("end",e,t,s),r=L("strides",e,t,s),o=L("beginMask",e,t,s),a=L("endMask",e,t,s),l=L("ellipsisMask",e,t,s),c=L("newAxisMask",e,t,s),p=L("shrinkAxisMask",e,t,s),u=L("x",e,t,s);return[Sd(u,n,i,r,o,a,l,c,p)]}case"Pack":return C(()=>{const n=L("axis",e,t,s),i=L("tensors",e,t,s),r=i[0].shape,o=Qs(i[0]).shape,a=i.map(l=>{const c=N.arraysEqual(l.shape,r);if(!c&&!N.arraysEqual(Qs(l).shape,o))throw new Error("the input tensors shape does not match");return c?l:O(l,r)});return[Ge(a,n)]});case"Unpack":{const n=L("axis",e,t,s),i=L("tensor",e,t,s);return qe(i,n)}case"Tile":{const n=L("reps",e,t,s);return[$s(L("x",e,t,s),n)]}case"Split":case"SplitV":{const n=L("axis",e,t,s),i=L("numOrSizeSplits",e,t,s),r=L("x",e,t,s);return Bt(r,i,n)}case"ScatterNd":{const n=L("indices",e,t,s),i=L("values",e,t,s),r=L("shape",e,t,s);return[Ib(n,i,r)]}case"GatherNd":{const n=L("x",e,t,s),i=L("indices",e,t,s);return[vb(n,i)]}case"SparseToDense":{const n=L("sparseIndices",e,t,s),i=L("outputShape",e,t,s),r=L("sparseValues",e,t,s),o=L("defaultValue",e,t,s);return[Xp(n,r,i,r.dtype===o.dtype?o:G(o,r.dtype))]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};const dC=(e,t,s)=>{switch(e.op){case"FFT":return[so(L("x",e,t,s))];case"IFFT":return[Wi(L("x",e,t,s))];case"RFFT":return[no(L("x",e,t,s))];case"IRFFT":return[kl(L("x",e,t,s))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};const mC=(e,t,s)=>{switch(e.op){case"Cast":return[G(L("x",e,t,s),L("dtype",e,t,s))];case"ExpandDims":{const n=L("axis",e,t,s);return[Mt(L("x",e,t,s),n)]}case"Squeeze":{const n=L("axis",e,t,s);return[Qs(L("x",e,t,s),n)]}case"Reshape":return[O(L("x",e,t,s),L("shape",e,t,s))];case"PadV2":case"Pad":return[Pt(L("x",e,t,s),L("padding",e,t,s),L("constantValue",e,t,s))];case"SpaceToBatchND":{const n=L("blockShape",e,t,s),i=L("paddings",e,t,s);return[Zr(L("x",e,t,s),n,i)]}case"BatchToSpaceND":{const n=L("blockShape",e,t,s),i=L("crops",e,t,s);return[Yr(L("x",e,t,s),n,i)]}case"DepthToSpace":{const n=L("blockSize",e,t,s),i=L("dataFormat",e,t,s).toUpperCase();return[nd(L("x",e,t,s),n,i)]}case"BroadcastTo":return[ta(L("x",e,t,s),L("shape",e,t,s))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Uw(e,t,s){const n=((i,r,o)=>{switch(i.category){case"arithmetic":return C(()=>HN(i,r,o));case"basic_math":return C(()=>YN(i,r,o));case"control":return eC(i,r,o);case"convolution":return C(()=>sC(i,r,o));case"creation":return C(()=>nC(i,r,o));case"dynamic":return iC(i,r,o);case"evaluation":return C(()=>rC(i,r,o));case"image":return C(()=>aC(i,r,o));case"graph":return C(()=>oC(i,r,o));case"logical":return C(()=>lC(i,r,o));case"matrices":return C(()=>cC(i,r,o));case"normalization":return C(()=>pC(i,r,o));case"reduction":return C(()=>uC(i,r,o));case"slice_join":return C(()=>hC(i,r,o));case"spectral":return C(()=>dC(i,r,o));case"transformation":return C(()=>mC(i,r,o));case"custom":const a=xf(i.op);if(a&&a.customExecutor)return a.customExecutor(new qN(i,r,o));throw TypeError(`Custom op ${i.op} is not registered.`);default:throw TypeError(`Unknown op '${i.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(e,t,s);return n instanceof Promise?n.then(i=>[].concat(i)):[].concat(n)}class $w{constructor(e={},t={},s={},n={}){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=s,this.functionMap=n,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(e,t){return{id:e,frameName:t,iterationId:0}}set currentContext(e){this.contexts!==e&&(this.contexts=e,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){const e=[];for(let t=0;tt.id===0&&t.iterationId===0?"":`${t.frameName}-${t.iterationId}`).join("/"):""}enterFrame(e){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,e)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error("Cannot exit frame, the context is empty")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;const e=Object.assign({},this.contexts[this.contexts.length-1]);e.iterationId+=1,e.id=this.lastId,this.contexts.splice(-1,1,e),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error("Cannot increase frame iteration, the context is empty")}getWeight(e){return this.weightMap[e]}addTensorArray(e){this.tensorArrayMap[e.id]=e}getTensorArray(e){return this.tensorArrayMap[e]}addTensorList(e){this.tensorListMap[e.id]=e}getTensorList(e){return this.tensorListMap[e]}dispose(e){for(const t in this.tensorArrayMap)this.tensorArrayMap[t].clearAndClose(e);for(const t in this.tensorListMap)this.tensorListMap[t].clearAndClose(e)}}function zw(e,t,s,n){const i=new Set,r=[];let o=null,a=null;const l=new Set,c=Object.keys(e).map(h=>Ss(h)[0]);let p=[];n!=null&&(p=n.map(h=>Ss(h.name)[0]));const u=[...t];for(;u.length>0;){const h=u.pop();if((Ww(h)||VB(h))&&(o==null&&(o=h,a=o.children.map(d=>d.name).filter(d=>i.has(d)))),i.add(h.name),s[h.name]!=null)continue;if(c.indexOf(h.name)!==-1)continue;if(p.indexOf(h.name)!==-1)continue;if(h.inputs.length===0){r.push(h.name);continue}h.inputs.forEach(d=>{if(l.has(d.name))return;l.add(d.name),u.push(d)})}return{inputs:e,outputs:t,usedNodes:i,missingInputs:r,dynamicNode:o,syncInputs:a}}function fC(e,t,s){const{usedNodes:n,inputs:i}=s,r=[],o=Object.keys(i).map(p=>Ss(p)[0]).map(p=>e.nodes[p]),a=e.initNodes;o.forEach(p=>{n.has(p.name)&&r.push(p)}),e.weights.forEach(p=>{n.has(p.name)&&r.push(p)}),a!=null&&a.forEach(p=>{n.has(p.name)&&r.push(p)});const l=new Set,c=[];for(;r.length>0;){const p=r.pop();l.add(p.name),t[p.name]||c.push(p),p.children.forEach(u=>{!l.has(u.name)&&n.has(u.name)&&u.inputs.every(h=>l.has(h.name))&&r.push(u)})}return c}const GB=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],qB=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"];function Ww(e){return GB.indexOf(e.op)>=0}function VB(e){return qB.indexOf(e.op)>=0}class _f{constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this._outputs=e.outputs,this._inputs=e.inputs,this._initNodes=e.initNodes,this._signature=e.signature,this._functions=e.functions,e.functions!=null&&Object.keys(e.functions).forEach(s=>{this._functionExecutorMap[s]=new _f(e.functions[s],this)})}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(e){const t=Object.keys(e).map(s=>e[s].map(n=>n.id));this._weightIds=[].concat(...t),this._weightMap=e}get inputs(){return this._inputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(e=>e.signatureKey||e.name)}get outputNodes(){return this._outputs.map(e=>{const t=e.signatureKey||e.name;return e.defaultOutput?`${t}:${e.defaultOutput}`:t})}get functions(){return Object.keys(this._functions).reduce((e,t)=>(e[t]=this._functions[t].signature,e),{})}getCompilationKey(e,t){const s=e.map(i=>i.name).sort(),n=t.map(i=>i.name).sort();return s.join(this.SEPERATOR)+"--"+n.join(this.SEPERATOR)}compile(e,t){const s=zw(e,t,this.weightMap,this._initNodes),{missingInputs:n,dynamicNode:i,syncInputs:r}=s;if(i!=null)throw new Error(`This execution contains the node '${i.name}', which has the dynamic op '${i.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${r}]`);if(n.length>0){const o=t.map(l=>l.name),a=Object.keys(e);throw new Error(`Cannot compute the outputs [${o}] from the provided inputs [${a}]. Missing the following inputs: [${n}]`)}return fC(this.graph,this.weightMap,s)}execute(e,t){e=this.mapInputs(e);const s=Object.keys(e).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);const n=s.map(p=>this.graph.nodes[Ss(p)[0]]),i=t.map(p=>Ss(p)[0]);let r=i.map(p=>this.graph.nodes[p]);r.length===0&&(r=this._outputs);const o=this.getCompilationKey(n,r);let a=this.compiledMap.get(o);a==null&&(a=this.compile(e,r),this.compiledMap.set(o,a));const l={},c={};return C(()=>{const p=new $w(this.weightMap,l,c,this.functionExecutorMap),u=Object.assign({},this.weightMap);Object.keys(e).forEach(m=>{const[f,g]=Ss(m),y=[];y[g]=e[m],u[f]=y});const h=this.getFrozenTensorIds(u),d={};for(let m=0;mVt(m,u,p))})}getFrozenTensorIds(e){const t=[].concat.apply([],Object.keys(e).map(s=>e[s]).map(s=>s.map(n=>n.id)));return new Set(t)}checkTensorForDisposal(e,t,s,n,i,r,o){if(t.category==="control"||r.indexOf(e)!==-1)return;s[e].forEach(a=>{a!=null&&(o[a.id]=(o[a.id]||0)+t.children.length)}),t.inputs.forEach(a=>{if(a.category!=="control"){const l=BN(a.name,s,n);l!=null&&l.forEach(c=>{if(c&&!i.has(c.id)){const p=o[c.id];p===1?(c.dispose(),delete o[c.id]):p!=null&&o[c.id]--}})}})}async executeAsync(e,t){return this._executeAsync(e,t)}async _executeAsync(e,t,s=!1,n={},i={}){s||(e=this.mapInputs(e),this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t));const r=new $w(this.weightMap,n,i,this.functionExecutorMap),o=await this.executeWithControlFlow(e,r,t,s),a=t.map(u=>Vt(u,o,r)),l=a.map(u=>u.id),c=Object.keys(e).map(u=>e[u].id),p=new Set([...l,...c,...this.weightIds]);return Object.keys(o).forEach(u=>{const h=o[u];h.forEach(d=>{d&&!d.isDisposed&&!p.has(d.id)&&d.dispose()})}),this.parent==null&&r.dispose(p),a}async executeFunctionAsync(e,t,s){const n=e.reduce((i,r,o)=>(i[this.inputs[o].name]=r,i),{});return this._executeAsync(n,this.outputNodes,!0,t,s)}async executeWithControlFlow(e,t,s,n){const i=Object.keys(e),r=i.map(w=>this.graph.nodes[Ss(w)[0]]),o=s.map(w=>Ss(w)[0]),a=o.map(w=>this.graph.nodes[w]),{usedNodes:l,missingInputs:c,dynamicNode:p,syncInputs:u}=zw(e,a,this.weightMap),h=[...r,...this.graph.weights].map(w=>({node:w,contexts:t.currentContext})),d=Object.assign({},this.weightMap);Object.keys(e).forEach(w=>{const[x,T]=Ss(w),A=[];A[T]=e[w],d[x]=A});const m={},f=this.getFrozenTensorIds(d),g={};for(;h.length>0;){const w=this.processStack(r,h,t,d,g,f,o,m,l);await Promise.all(w)}p==null&&!n&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");const y=a.filter(w=>!Ww(w)&&!Vt(w.name,d,t)).map(w=>w.name);if(y.length>0){let w="";throw p!=null&&(w=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${u}]`),new Error(`Cannot compute the outputs [${y}] from the provided inputs [${i}]. Consider providing the following inputs: [${c}]. ${w}`)}return d}processStack(e,t,s,n,i,r,o,a,l){const c=[];for(;t.length>0;){const p=t.pop();s.currentContext=p.contexts;let u="";if(p.node.op==="Enter"&&L("isConstant",p.node,n,s)&&([u]=Gn(p.node.name,s)),e.indexOf(p.node)===-1){const h=Uw(p.node,n,s);u||([u]=Gn(p.node.name,s));const d=s.currentContext;h instanceof Promise?c.push(h.then(m=>(n[u]=m,s.currentContext=d,this.checkTensorForDisposal(u,p.node,n,s,r,o,a),this.processChildNodes(p.node,t,s,n,i,l),m))):(n[u]=h,this.checkTensorForDisposal(u,p.node,n,s,r,o,a),this.processChildNodes(p.node,t,s,n,i,l))}else this.processChildNodes(p.node,t,s,n,i,l)}return c}processChildNodes(e,t,s,n,i,r){e.children.forEach(o=>{const[a]=Gn(o.name,s);if(i[a]||!r.has(o.name))return;o.op==="Merge"?o.inputNames.some(l=>!!Vt(l,n,s))&&(i[a]=!0,t.push({contexts:s.currentContext,node:o})):o.inputNames.every(l=>!!Vt(l,n,s))&&(i[a]=!0,t.push({contexts:s.currentContext,node:o}))})}dispose(){Object.keys(this.weightMap).forEach(e=>this.weightMap[e].forEach(t=>t.dispose()))}checkInputShapeAndType(e){Object.keys(e).forEach(t=>{const s=e[t],[n]=Ss(t),i=this.graph.nodes[n];if(i.attrParams.shape&&i.attrParams.shape.value){const r=i.attrParams.shape.value,o=r.length===s.shape.length&&s.shape.every((a,l)=>r[l]===-1||r[l]===a);N.assert(o,()=>`The shape of dict['${i.name}'] provided in model.execute(dict) must be [${r}], but was [${s.shape}]`)}i.attrParams.dtype&&i.attrParams.dtype.value&&N.assert(s.dtype===i.attrParams.dtype.value,()=>`The dtype of dict['${i.name}'] provided in model.execute(dict) must be ${i.attrParams.dtype.value}, but was ${s.dtype}`)})}mapInputs(e){const t={};for(const s in e)if(this._signature!=null&&this._signature.inputs!=null&&this._signature.inputs[s]!=null){const n=this._signature.inputs[s];t[n.name]=e[s]}else t[s]=e[s];return t}checkInputs(e){const t=Object.keys(e).filter(s=>{const[n]=Ss(s);return this.graph.nodes[n]==null});if(t.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${t}] that are not part of graph`)}mapOutputs(e){return e.map(t=>{if(this._signature!=null&&this._signature.outputs!=null&&this._signature.outputs[t]!=null){const s=this._signature.outputs[t];return s.name}return t},{})}checkOutputs(e){e.forEach(t=>{const[s]=Ss(t);if(!this.graph.nodes[s])throw new Error(`The output '${t}' is not found in the graph`)})}}const HB="?tfjs-format=file",YB="model.json";class Pw{constructor(e,t={}){this.modelUrl=e,this.loadOptions=t,this.version="n/a",t==null&&(this.loadOptions={})}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}findIOHandler(){const e=this.modelUrl;if(e.load!=null)this.handler=e;else if(this.loadOptions.requestInit!=null)this.handler=Rt.browserHTTPRequest(e,this.loadOptions);else{const t=Rt.getLoadHandlers(e,this.loadOptions);if(t.length===0)t.push(Rt.browserHTTPRequest(e,this.loadOptions));else if(t.length>1)throw new Error(`Found more than one (${t.length}) load handlers for URL '${[e]}'`);this.handler=t[0]}}async load(){if(this.findIOHandler(),this.handler.load==null)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");const e=await this.handler.load();return this.loadSync(e)}loadSync(e){this.artifacts=e;const t=this.artifacts.modelTopology;let s={};this.artifacts.userDefinedMetadata!=null&&(s=this.artifacts.userDefinedMetadata.signature),this.version=`${t.versions.producer}.${t.versions.minConsumer}`;const n=Rt.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new _f(Fw.Instance.transformGraph(t,s)),this.executor.weightMap=this.convertTensorMapToTensorsMap(n),e.modelInitializer!=null){const i=Fw.Instance.transformGraph(e.modelInitializer);this.initializer=new _f(i),this.initializer.weightMap=this.executor.weightMap,this.initializer.execute({},[])}return!0}async save(e,t){if(typeof e=="string"){const s=Rt.getSaveHandlers(e);if(s.length===0)throw new Error(`Cannot find any save handlers for URL '${e}'`);if(s.length>1)throw new Error(`Found more than one (${s.length}) save handlers for URL '${e}'`);e=s[0]}if(e.save==null)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return e.save(this.artifacts)}predict(e,t){return this.execute(e,this.outputNodes)}normalizeInputs(e){if(!(e instanceof me)&&!Array.isArray(e))return e;if(e=Array.isArray(e)?e:[e],e.length!==this.inputNodes.length)throw new Error(`Input tensor count mismatch,the graph model has ${this.inputNodes.length} placeholders, while there are ${e.length} input tensors.`);return this.inputNodes.reduce((t,s,n)=>(t[s]=e[n],t),{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}execute(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);const s=this.executor.execute(e,t);return s.length>1?s:s[0]}async executeAsync(e,t){e=this.normalizeInputs(e),t=this.normalizeOutputs(t);const s=await this.executor.executeAsync(e,t);return s.length>1?s:s[0]}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce((t,s)=>(t[s]=[e[s]],t),{})}dispose(){this.executor.dispose(),this.initializer&&this.initializer.dispose()}}async function gC(e,t={}){if(e==null)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");t==null&&(t={}),t.fromTFHub&&(e.load==null&&(e.endsWith("/")||(e=e+"/"),e=`${e}${YB}${HB}`));const s=new Pw(e,t);return await s.load(),s}const kf="2.6.0";function yC(e,t){return Df(e,t)}function Df(e,t,s=new Map,n=new Set){if(e==null)return null;if(n.has(e))throw new Error("Circular references are not supported.");if(s.has(e))return s.get(e);const i=t(e);if(i.recurse&&i.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(i.recurse)if(yo(e)){const r=Array.isArray(e)?[]:{};n.add(e);for(const o in e){const a=e[o],l=Df(a,t,s,n);r[o]=l}return n.delete(e),r}else throw new Error(`Can't recurse into non-iterable type: ${e}`);else return s.set(e,i.value),i.value}function wC(e,t=Bw){return bC(e,t)}function bC(e,t,s=new Set){const n=e[0];if(s.has(n))throw new Error("Circular references are not supported.");const i=t(e);if(i.recurse&&i.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(i.recurse)if(yo(n)){const r=Array.isArray(n)?[]:{};s.add(n);for(const o in n){const a=e.map(c=>c[o]),l=bC(a,t,s);r[o]=l}return s.delete(n),r}else throw new Error(`Can't recurse into non-iterable type: ${n}`);else return i.value}function Bw(e){return e===null?null:yo(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function Ff(e,t){const s=new Map;Df(e,t,s);for(const i of Array.from(s.keys())){const r=s.get(i);if(r instanceof Promise){const o=await r;s.set(i,o)}}const n=Df(e,t,s);return n}function yo(e){return e!=null&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||typeof e=="object"&&!(e instanceof me))}function xC(e){return e==null||KB(e)||Array.isArray(e)||typeof e=="object"&&e instanceof me||N.isTypedArray(e)}function KB(e){return e===null||typeof e!="object"&&typeof e!="function"}function LC(e){return yC(e,XB)}function XB(e){return e instanceof me?{value:e.clone(),recurse:!1}:yo(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}class Mf{constructor(e){if(this.capacity=e,this.begin=0,this.end=0,e==null)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(e<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(e),this.doubledCapacity=2*e}wrap(e){for(;e<0;)e+=this.doubledCapacity;return e%this.doubledCapacity}get(e){if(e<0)throw new RangeError("Can't get item at a negative index.");return this.data[e%this.capacity]}set(e,t){if(e<0)throw new RangeError("Can't set item at a negative index.");this.data[e%this.capacity]=t}length(){let e=this.end-this.begin;return e<0&&(e=this.doubledCapacity+e),e}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,e),this.end=this.wrap(this.end+1)}pushAll(e){for(const t of e)this.push(t)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);const e=this.get(this.end);return this.set(this.end,void 0),e}unshift(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,e)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");const e=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),e}shuffleExcise(e){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");const t=this.wrap(this.begin+e),s=this.get(t);return this.set(t,this.pop()),s}}class Uf extends Mf{constructor(){super(Uf.INITIAL_CAPACITY)}isFull(){return!1}push(e){super.isFull()&&this.expand(),super.push(e)}unshift(e){super.isFull()&&this.expand(),super.unshift(e)}expand(){const e=this.capacity*2,t=new Array(e),s=this.length();for(let n=0;nt===!0)}rowMajorBatch(e,t=!0){return new nj(this,e,t)}columnMajorBatch(e,t=!0,s=Bw){const n=this.rowMajorBatch(e,t);return n.map(i=>wC(i,s))}concatenate(e,t){return new IC(jw([this,e]),t)}take(e){return e<0||e==null?this:new sj(this,e)}skip(e){return e<0||e==null?this:new tj(this,e)}prefetch(e){return new NC(this,e)}shuffle(e,t){return new lj(this,e,t)}serial(){return new ej(this)}}class JB extends At{constructor(e){super();this.items=e,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};const e=this.items[this.trav];return this.trav++,{value:LC(e),done:!1}}}class ZB extends At{constructor(e){super();this.nextFn=e}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(e){throw e.message=`Error thrown while iterating through a dataset: ${e.message}`,e}}}class ej extends At{constructor(e){super();this.upstream=e,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){return this.upstream.next()}}class tj extends At{constructor(e,t){super();this.upstream=e,this.maxCount=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}}class nj extends At{constructor(e,t,s=!0){super();this.upstream=e,this.batchSize=t,this.enableSmallLastBatch=s,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){const e=[];for(;e.length0?{value:e,done:!1}:{value:null,done:!0};e.push(t.value)}return{value:e,done:!1}}}class ij extends At{constructor(e,t){super();this.upstream=e,this.predicate=t,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;){const e=await this.upstream.next();if(e.done||this.predicate(e.value))return e;ce(e.value)}}}class rj extends At{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Map`}async next(){const e=await this.upstream.next();if(e.done)return{value:null,done:!0};const t=mn.getTensorsInContainer(e.value),s=this.transform(e.value),n=mn.getTensorsInContainer(s);for(const i of t)mn.isTensorInList(i,n)||i.dispose();return{value:s,done:!1}}}class oj extends At{constructor(e,t){super();this.upstream=e,this.handler=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(e){if(!this.handler(e))return{value:null,done:!0}}}}class AC extends At{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){const e=await this.upstream.next();if(e.done)return{value:null,done:!0};const t=mn.getTensorsInContainer(e.value),s=await this.transform(e.value),n=mn.getTensorsInContainer(s);for(const i of t)mn.isTensorInList(i,n)||i.dispose();return{value:s,done:!1}}}class _u extends At{constructor(){super();this.outputQueue=new Uf,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}}class aj extends _u{constructor(e,t){super();this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){const e=await this.upstream.next();if(e.done)return!1;const t=mn.getTensorsInContainer(e.value),s=this.transform(e.value),n=mn.getTensorsInContainer(s);this.outputQueue.pushAll(s);for(const i of t)mn.isTensorInList(i,n)||i.dispose();return!0}}class IC extends At{constructor(e,t){super();this.baseErrorHandler=t,this.lastRead=null,this.iterator=null,this.moreIterators=e}summary(){const e="TODO: fill in upstream of chained summaries";return`${e} -> Chained`}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(e){if(await e,this.iterator==null){const s=await this.moreIterators.next();if(s.done)return{value:null,done:!0};this.iterator=s.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}const t=await this.iterator.next();return t.done?(this.iterator=null,this.readFromChain(e)):t}}var Ki;(function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"})(Ki||(Ki={}));class QB extends At{constructor(e,t=Ki.FAIL){super();this.iterators=e,this.mismatchMode=t,this.count=0,this.currentPromise=null}summary(){const e="TODO: fill in upstream of zip summaries";return`{${e}} -> Zip`}async nextState(e){await e;let t=0,s=0;function n(r){if(r instanceof At){const o=r.next();return{value:o.then(a=>(t++,a.done&&s++,a.value)),recurse:!1}}else return{value:null,recurse:!0}}const i=await Ff(this.iterators,n);if(t===s)return{value:null,done:!0};if(s>0)switch(this.mismatchMode){case Ki.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case Ki.SHORTEST:return{value:null,done:!0};case Ki.LONGEST:default:}return this.count++,{value:i,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}}class NC extends At{constructor(e,t){super();this.upstream=e,this.bufferSize=t,this.buffer=new Mf(t)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){const e=this.upstream.next();this.buffer.push(e)}}next(){return this.refill(),this.buffer.shift()}}class lj extends NC{constructor(e,t,s){super(e,t);this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=SC.alea(s||N.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(e){return Math.floor(this.random()*e)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){const e=this.chooseIndex(),t=await this.buffer.shuffleExcise(e);if(t.done)this.upstreamExhausted=!0;else return this.refill(),t}return{value:null,done:!0}}}const CC=vc(Tc());class Xi{constructor(){this.size=null}batch(e,t=!0){const s=this;N.assert(e>0,()=>`batchSize needs to be positive, but it is + ${e}`);let n;return this.size===Infinity||this.size==null?n=this.size:t?n=Math.ceil(this.size/e):n=Math.floor(this.size/e),Os(async()=>(await s.iterator()).columnMajorBatch(e,t,cj),n)}concatenate(e){const t=this;let s;return this.size===Infinity||e.size===Infinity?s=Infinity:this.size!=null&&e.size!=null?s=this.size+e.size:s=null,Os(async()=>(await t.iterator()).concatenate(await e.iterator()),s)}filter(e){const t=this;let s;return this.size===Infinity?s=Infinity:s=null,Os(async()=>(await t.iterator()).filter(n=>C(()=>e(n))),s)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){const t=this;return Os(async()=>(await t.iterator()).map(s=>C(()=>e(s))),this.size)}mapAsync(e){const t=this;return Os(async()=>(await t.iterator()).mapAsync(e),this.size)}prefetch(e){if(e==null)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");const t=this;return Os(async()=>(await t.iterator()).prefetch(e),this.size)}repeat(e){const t=this;let s;return this.size!=null&&e>0?s=this.size*e:e===0?s=0:this.size!=null&&(e===void 0||e<0)?s=Infinity:s=null,Os(async()=>{const n=Eu(async()=>({value:await t.iterator(),done:!1}));return vC(n.take(e))},s)}skip(e){const t=this;let s;return this.size!=null&&e>=0&&this.size>=e?s=this.size-e:this.size!=null&&(this.size(await t.iterator()).skip(e),s)}shuffle(e,t,s=!0){if(e==null||e<0)throw this.size==null?new RangeError("`Dataset.shuffle()` requires bufferSize to be specified."):new RangeError(`\`Dataset.shuffle()\` requires bufferSize to be specified. If your data fits in main memory (for regular JS objects), and/or GPU memory (for \`tf.Tensor\`s), consider setting bufferSize to the dataset size (${this.size} elements)`);const n=this,i=CC.alea(t||N.now().toString());return Os(async()=>{let r=i.int32();return s&&(r+=i.int32()),(await n.iterator()).shuffle(e,r.toString())},this.size)}take(e){const t=this;let s;return this.size!=null&&this.size>e?s=e:this.size!=null&&this.size<=e?s=this.size:s=null,Os(async()=>(await t.iterator()).take(e),s)}async toArray(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===Infinity)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}}Xi.MAX_BUFFER_SIZE=1e4;function Os(e,t=null){return new class extends Xi{constructor(){super(...arguments);this.size=t}async iterator(){return e()}}}function RC(e){return Os(async()=>jw(e),e.length)}function OC(e){if(!yo(e))throw new Error("The argument to zip() must be an object or array.");let t;if(Array.isArray(e))for(let s=0;s{const s=await Ff(e,n=>{if(n instanceof Xi)return{value:n.iterator(),recurse:!1};if(yo(n))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return TC(s,Ki.SHORTEST)},t)}function cj(e){if(e===null)return null;const t=e[0];if(xC(t)){const s=pj(e);return{value:s,recurse:!1}}return{value:null,recurse:!0}}function pj(e){if(e.length===0)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof me?Ge(e):ze(e)}class $f extends Xi{constructor(e){super();this.input=e}async iterator(){const e=await this.input.iterator(),t=e.decodeUTF8(),s=t.split(` +`).map(n=>(n.endsWith("\r")&&(n=n.slice(0,-1)),n));return s}}const Wf='"',ku=Symbol("out"),EC=Symbol("field"),zf=Symbol("quote"),Vw=Symbol("quoteafterquote"),_C=Symbol("quoteinquote");class Pf extends Xi{constructor(e,t){super();this.input=e,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new $f(e),t||(t={}),this.hasHeader=!(t.hasHeader===!1),this.fullColumnNames=t.columnNames,this.columnConfigs=t.columnConfigs,this.configuredColumnsOnly=t.configuredColumnsOnly,t.delimWhitespace?(N.assert(t.delimiter==null,()=>"Delimiter should not be provided when delimWhitespace is true."),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=t.delimiter?t.delimiter:","}async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){const e=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!e)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&e&&N.assert(e.length===this.fullColumnNames.length,()=>"The length of provided columnNames ("+this.fullColumnNames.length.toString()+") does not match the length of the header line read from file ("+e.length.toString()+")."),this.fullColumnNames||(this.fullColumnNames=e);const t=this.fullColumnNames.reduce((n,i)=>(n[i]=n[i]+1||1,n),{}),s=Object.keys(t).filter(n=>t[n]>1);if(N.assert(s.length===0,()=>"Duplicate column names found: "+s.toString()),this.columnConfigs)for(const n of Object.keys(this.columnConfigs)){const i=this.fullColumnNames.indexOf(n);if(i===-1)throw new Error('The key "'+n+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){const e=await this.base.iterator(),t=await e.next();if(t.done)throw new Error("No data was found for CSV parsing.");const s=t.value,n=this.parseRow(s,!1);return n}else return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let e=await this.base.iterator();return this.hasHeader&&(e=e.skip(1)),e.map(t=>this.makeDataElement(t))}makeDataElement(e){const t=this.parseRow(e),s={},n={};for(let i=0;i14||!Number.isInteger(t))throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`);if(this.numFrames=e.numFramesPerSpectrogram||43,this.sampleRateHz=e.sampleRateHz,this.columnTruncateLength=e.columnTruncateLength||this.fftSize,this.audioTrackConstraints=e.audioTrackConstraints,this.smoothingTimeConstant=e.smoothingTimeConstant||0,this.includeSpectrogram=!(e.includeSpectrogram===!1),this.includeWaveform=e.includeWaveform===!0,!this.includeSpectrogram&&!this.includeWaveform)throw new Error("Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.")}summary(){return"microphone"}static async create(e={}){if(W().get("IS_NODE"))throw new Error("microphone API is only supported in browser environment.");const t=new Gw(e);return await t.start(),t}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(s){throw new Error(`Error thrown while initializing video stream: ${s.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");const e=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new e,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);const t=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,t.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize);return}async next(){if(this.isClosed)return{value:null,done:!0};let e,t;const s=await this.getAudioData();if(this.includeSpectrogram){const n=this.flattenQueue(s.freqDataQueue);e=this.getTensorFromAudioDataArray(n,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){const n=this.flattenQueue(s.timeDataQueue);t=this.getTensorFromAudioDataArray(n,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:e,waveform:t},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){const e=[],t=[];let s=0;return new Promise(n=>{const i=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-Infinity&&n({freqDataQueue:e,timeDataQueue:t}),e.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),t.push(this.timeData.slice())),++s===this.numFrames&&(clearInterval(i),n({freqDataQueue:e,timeDataQueue:t}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())}toArray(){throw new Error("Can not convert infinite audio stream to array.")}getSampleRate(){return this.sampleRateHz}flattenQueue(e){const t=e[0].length,s=new Float32Array(e.length*t);return e.forEach((n,i)=>s.set(n,i*t)),s}getTensorFromAudioDataArray(e,t){const s=new Float32Array(N.sizeFromShape(t));return s.set(e,s.length-e.length),ze(s,t)}}class qw extends At{constructor(e,t){super();if(this.webcamVideoElement=e,this.webcamConfig=t,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=Oe([0],"int32"),this.webcamConfig.centerCrop){const s=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,n=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,i=(1-s)/2,r=(1-n)/2,o=i+s,a=n+r;this.cropBox=ls([r,i,a,o],[1,4])}else this.cropBox=ls([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(e,t={}){if(W().get("IS_NODE"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!e){if(e=document.createElement("video"),!t.resizeWidth||!t.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");e.width=t.resizeWidth,e.height=t.resizeHeight}const s=new qw(e,t);return await s.start(),s}async start(){this.webcamConfig.facingMode&&N.assert(this.webcamConfig.facingMode==="user"||this.webcamConfig.facingMode==="environment",()=>`Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`);try{this.stream=await navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:"user",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}})}catch(e){throw e.message=`Error thrown while initializing video stream: ${e.message}`,e}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(e){console.log(e),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(e=>{this.webcamVideoElement.onloadedmetadata=()=>{e()}})}async next(){if(this.isClosed)return{value:null,done:!0};let e;try{e=Gr.fromPixels(this.webcamVideoElement)}catch(t){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(t)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(e),done:!1}}catch(t){throw new Error(`Error thrown cropping the video: ${t.message}`)}finally{e.dispose()}else return{value:e,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(e){return C(()=>{const t=e.toFloat().expandDims(0);let s;s=en.cropAndResize(t,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");const n=s.shape;return s.reshape(n.slice(1))})}async capture(){return(await this.next()).value}stop(){const e=this.stream.getTracks();e.forEach(t=>t.stop());try{this.webcamVideoElement.srcObject=null}catch(t){console.log(t),this.webcamVideoElement.src=null}this.isClosed=!0}toArray(){throw new Error("Can not convert infinite video stream to array.")}}class Bf{}class Hw extends At{split(e){return new uj(this,e)}}class uj extends Hw{constructor(e,t){super();this.upstream=e,this.impl=new hj(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}}class hj extends _u{constructor(e,t){super();this.upstream=e,this.separator=t,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){const e=await this.upstream.next();if(e.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);const t=e.value.split(this.separator);t[0]=this.carryover+t[0];for(const s of t.slice(0,-1))this.outputQueue.push(s);return this.carryover=t[t.length-1],!0}}class kC extends At{decodeUTF8(){return new dj(this)}}class dj extends Hw{constructor(e){super();this.upstream=e,this.impl=new mj(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}}class mj extends _u{constructor(e){super();if(this.upstream=e,W().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{const{StringDecoder:t}=kL();this.decoder=new t("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){const e=await this.upstream.next();let t;if(e.done)return!1;t=e.value;let s;return W().get("IS_BROWSER")?s=this.decoder.decode(t,{stream:!0}):s=this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(s),!0}}class jf extends kC{constructor(e,t={}){super();this.file=e,this.options=t,N.assert(e instanceof Uint8Array||(W().get("IS_BROWSER")?e instanceof File||e instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=t.offset||0,this.chunkSize=t.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){if(this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size))return{value:null,done:!0};const e=new Promise((t,s)=>{const n=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)t(new Uint8Array(this.file.slice(this.offset,n)));else{const i=new FileReader;i.onload=o=>{let a=i.result;if(a instanceof ArrayBuffer&&(a=new Uint8Array(a)),!(a instanceof Uint8Array))return s(new TypeError("FileReader returned unknown type."));t(a)},i.onabort=o=>s(new Error("Aborted")),i.onerror=o=>s(new Error(o.type));const r=this.file.slice(this.offset,n);i.readAsArrayBuffer(r)}this.offset=n});return{value:await e,done:!1}}}async function DC(e,t={}){let s,n;typeof e=="string"?s=e:(s=e.url,n=fj(e));const i=await N.fetch(s,n);if(i.ok){const r=new Uint8Array(await i.arrayBuffer());return new jf(r,t)}else throw new Error(i.statusText)}const fj=e=>{const t={method:e.method,headers:e.headers,body:e.body,mode:e.mode,credentials:e.credentials,cache:e.cache,redirect:e.redirect,referrer:e.referrer,integrity:e.integrity};return t};function Vf(e){return typeof e=="string"&&e.substr(0,7)==="file://"}class Gf extends Bf{constructor(e,t={}){super();this.input=e,this.options=t}async iterator(){if(Vf(this.input)&&W().get("IS_NODE")){const e=DL();this.input=e.readFileSync(this.input.substr(7))}return new jf(this.input,this.options)}}class qf extends Bf{constructor(e,t={}){super();this.url=e,this.fileOptions=t}async iterator(){return Vf(this.url)?new Gf(this.url,this.fileOptions).iterator():DC(this.url,this.fileOptions)}}function FC(e,t={}){return new Pf(new qf(e),t)}function MC(e){const t=Eu(e);return Os(async()=>t)}function UC(e){return Os(async()=>{const t=await e();return Eu(()=>t.next())})}async function $C(e,t){return qw.create(e,t)}async function WC(e){return Gw.create(e)}const Hf="2.6.0";const Yw={};Ee(Yw,{CSVDataset:()=>Pf,Dataset:()=>Xi,FileDataSource:()=>Gf,TextLineDataset:()=>$f,URLDataSource:()=>qf,array:()=>RC,csv:()=>FC,func:()=>MC,generator:()=>UC,microphone:()=>WC,version_data:()=>Hf,webcam:()=>$C,zip:()=>OC});function ee(e,t){Array.isArray(e)||(e=[e]),e.forEach(s=>{s!=null&&N.assert(s.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the CPU backend.`)})}const zC=vc(Tc());const gj=vt.nonMaxSuppressionV3Impl,yj=vt.split,bj=vt.tile,wj=vt.topkImpl,xj=vt.whereImpl;function Kw(e,t,s,n){if(s==="linear")return e.linear(t);if(s==="relu")return e.relu(t);if(s==="elu")return gn(t);if(s==="relu6")return e.relu6(t);if(s==="prelu")return e.prelu(t,n);throw new Error(`Activation ${s} has not been implemented for the CPU backend.`)}class Xw extends Eo{constructor(){super();this.blockSize=48,this.firstUse=!0,this.data=new Fc(this,Us())}write(e,t,s){this.firstUse&&(this.firstUse=!1,W().get("IS_NODE")&&U.warn(` ============================ Hi there 👋. Looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, which binds to TensorFlow C++, by running npm i @tensorflow/tfjs-node, or npm i @tensorflow/tfjs-node-gpu if you have CUDA. Then call require('@tensorflow/tfjs-node'); (-gpu suffix for CUDA) at the start of your program. Visit https://github.com/tensorflow/tfjs-node for more details. -============================`));const n={};return this.data.set(n,{values:e,dtype:s,refCount:1}),n}makeTensorInfo(e,t,s){const n=this.write(s,e,t);return{dataId:n,shape:e,dtype:t}}incRef(e){const t=this.data.get(e);t.refCount++}decRef(e){if(this.data.has(e)){const t=this.data.get(e);t.refCount--}}move(e,t,s,n){this.data.set(e,{values:t,dtype:n,refCount:1})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){const{dtype:t,complexTensorInfos:s}=this.data.get(e);if(t==="complex64"){const n=this.readSync(s.real.dataId),i=this.readSync(s.imag.dataId);return U.mergeRealAndImagArrays(n,i)}return this.data.get(e).values}bufferSync(e){const t=this.readSync(e.dataId);let s=t;if(e.dtype==="string")try{s=t.map(n=>N.decodeString(n))}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return ge(e.shape,e.dtype,s)}makeOutput(e,t,s){const n=this.write(e,t,s);return Us().makeTensorFromDataId(n,t,s,this)}disposeData(e){if(this.data.has(e)){const{complexTensorInfos:t}=this.data.get(e);t!=null&&(this.disposeData(t.real.dataId),this.disposeData(t.imag.dataId)),this.data.delete(e)}}disposeIntermediateTensorInfo(e){const t=e.dataId;if(this.data.has(t)){const s=this.data.get(t);s.refCount--,s.refCount<1&&this.disposeData(t)}}async time(e){const t=N.now();e();const s=N.now()-t;return{kernelMs:s}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}stridedSlice(e,t,s,n){ee(e,"stridedSlice");const i=Ms.computeOutShape(t,s,n);if(i.some(a=>a===0))return ze([],i);const r=ge(i,e.dtype),o=this.bufferSync(e);for(let a=0;ao[a]=e.shape[a]-1-o[a]),s.set(n.get(...o),...r)}return s.toTensor()}neg(e){return ee(e,"neg"),R(j(-1),e)}addN(e){ee(e,"addN");const t=e.map(i=>this.readSync(i.dataId)),s=ge(e[0].shape,e[0].dtype),n=s.values;for(let i=0;iMath.pow(s,n))}batchMatMul(e,t,s,n){ee([e,t],"matMul");const i=s?e.shape[1]:e.shape[2],r=s?e.shape[2]:e.shape[1],o=n?t.shape[1]:t.shape[2],a=e.shape[0],l=this.readSync(e.dataId),c=this.readSync(t.dataId),[p,u,h]=s?[e.strides[0],1,e.strides[1]]:[e.strides[0],e.strides[1],1],[d,m,f]=n?[1,t.strides[1],t.strides[0]]:[t.strides[1],1,t.strides[0]],g=r*o,y=ge([a,r,o],e.dtype),w=y.values,x=this.blockSize;for(let T=0;TMath.floor(i/r),n="int32";return this.broadcastedBinaryOp(e,t,n,s)}sum(e,t){ee(e,"sum"),U.assertAxesAreInnerMostDims("sum",t,e.rank);const[s,n]=U.computeOutAndReduceShapes(e.shape,t),i=Ft(e.dtype,"int32"),r=ye(s,i),o=N.sizeFromShape(n),a=this.readSync(r.dataId),l=this.readSync(e.dataId);for(let c=0;cu&&(u=m,h=d)}a[c]=h}return r}cumsum(e,t,s,n){if(ee(e,"cumsum"),t!==e.rank-1)throw new Error(`backend.cumsum in CPU expects an inner-most axis=${e.rank-1} but got axis=${t}`);const i=Ft(e.dtype,"int32"),r=ye(e.shape,i),o=this.readSync(r.dataId),a=this.readSync(e.dataId),l=e.shape[e.rank-1],c=n?(p,u)=>p+l-u-1:(p,u)=>p+u;for(let p=0;ps===n?1:0)}notEqual(e,t){return ee([e,t],"notEqual"),this.broadcastedBinaryOp(e,t,"bool",(s,n)=>s!==n?1:0)}less(e,t){return ee([e,t],"less"),this.broadcastedBinaryOp(e,t,"bool",(s,n)=>ss<=n?1:0)}greater(e,t){return ee([e,t],"greater"),this.broadcastedBinaryOp(e,t,"bool",(s,n)=>s>n?1:0)}greaterEqual(e,t){return ee([e,t],"greaterEqual"),this.broadcastedBinaryOp(e,t,"bool",(s,n)=>s>=n?1:0)}logicalAnd(e,t){return ee([e,t],"logicalAnd"),this.broadcastedBinaryOp(e,t,"bool",(s,n)=>s&&n)}logicalOr(e,t){return ee([e,t],"logicalOr"),this.broadcastedBinaryOp(e,t,"bool",(s,n)=>s||n)}select(e,t,s){ee([e,t,s],"select");const n=this.readSync(e.dataId),i=this.readSync(t.dataId),r=this.readSync(s.dataId),o=ye(t.shape,Ft(t.dtype,s.dtype)),a=this.readSync(o.dataId);let l=0;const c=e.rank===0||e.rank>1||t.rank===1?1:N.sizeFromShape(t.shape.slice(1));for(let p=0;pMath.min(s,n))}mod(e,t){return ee([e,t],"mod"),this.broadcastedBinaryOp(e,t,e.dtype,(s,n)=>{const i=s%n;return s<0&&n<0||s>=0&&n>=0?i:(i+n)%n})}maximum(e,t){return ee([e,t],"maximum"),this.broadcastedBinaryOp(e,t,e.dtype,(s,n)=>Math.max(s,n))}all(e,t){ee(e,"all"),U.assertAxesAreInnerMostDims("all",t,e.rank);const[s,n]=U.computeOutAndReduceShapes(e.shape,t),i=ye(s,e.dtype),r=N.sizeFromShape(n),o=this.readSync(i.dataId),a=this.readSync(e.dataId);for(let l=0;l{const i=s-n;return i*i})}linear(e){return e}relu(e){ee(e,"relu");const t=ye(e.shape,e.dtype),s=this.readSync(t.dataId),n=this.readSync(e.dataId);for(let i=0;is<0?n*s:s)}eluDer(e,t){ee([e,t],"eluDer");const s=new Float32Array(t.size),n=this.readSync(t.dataId),i=this.readSync(e.dataId);for(let r=0;r=1?s[r]=i[r]:s[r]=i[r]*(o+1)}return this.makeOutput(s,t.shape,"float32")}atan2(e,t){return ee([e,t],"atan2"),this.broadcastedBinaryOp(e,t,e.dtype,(s,n)=>Math.atan2(s,n))}fusedConv2d({input:e,filter:t,convInfo:s,bias:n,activation:i,preluActivationWeights:r}){let o=this.conv2d(e,t,s);return n&&(o=$(o,n)),i&&(o=Kw(this,o,i,r)),o}conv2d(e,t,s){ee([e,t],"conv2d");const n=s.filterHeight,i=s.filterWidth,r=s.dilationHeight,o=s.dilationWidth,a=s.padInfo.left,l=s.padInfo.top,c=s.dataFormat==="channelsLast",p=ge(s.outShape,e.dtype),u=e.strides[0],h=c?e.strides[1]:e.strides[2],d=c?e.strides[2]:1,m=c?1:e.strides[1],f=p.strides[0],g=c?p.strides[1]:p.strides[2],y=c?p.strides[2]:1,w=c?1:p.strides[1],x=this.readSync(e.dataId),T=this.readSync(t.dataId),A=p.values;for(let _=0;_=s.inHeight)continue;const q=B*t.strides[0],K=E+Y*h;for(let H=0;H=s.inWidth)continue;const le=q+ie*t.strides[1],ue=K+ne*d;let oe=le;for(let de=0;de=s.inDepth)continue;const F=_*t.strides[0],D=y+E*e.strides[1];for(let M=0;M=s.inHeight)continue;const K=F+Y*t.strides[1],H=D+q*e.strides[2];for(let Q=0;Q=s.inWidth)continue;const ue=K+ne*t.strides[2],oe=H+le*s.inChannels;let de=ue;for(let Ae=0;Ae=s.inHeight)continue;const _=T*t.strides[0],E=f+A*e.strides[1];for(let F=0;F=s.inWidth)continue;const Y=_+P*t.strides[1],q=E+B*s.inChannels;let K=D,H=Y;for(let Q=0;Qc*p),i=U.getReshaped(e.shape,t,n),r=U.getPermuted(i.length,t.length),o=U.getReshapedPermuted(e.shape,t,n),a=U.getSliceBeginCoords(s,t.length),l=U.getSliceSize(o,s,t.length);return se(e.reshape(i),r).reshape(o).slice(a,l)}pool3d(e,t,s){ee(e,"pool3d");const n=t.strideDepth,i=t.strideHeight,r=t.strideWidth,o=t.dilationDepth,a=t.dilationHeight,l=t.dilationWidth,c=t.effectiveFilterDepth,p=t.effectiveFilterHeight,u=t.effectiveFilterWidth,h=t.padInfo.front,d=t.padInfo.top,m=t.padInfo.left,f=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,g=this.readSync(e.dataId),y=ge(t.outShape,e.dtype),w=y.values,x=t.outShape[1]*t.outShape[2]*t.outShape[3]*t.outShape[4],T=t.outShape[2]*t.outShape[3]*t.outShape[4],A=t.outShape[3]*t.outShape[4],_=t.outShape[4];for(let E=0;EMe?Me=cn:s==="avg"&&(Qe+=cn,St++),isNaN(Me))break}if(isNaN(Me))break}if(isNaN(Me))break}const $t=Ae+M;w[$t]=s==="avg"?Qe/St:Me}}}}return y.toTensor()}avgPool3d(e,t){return ee(e,"avgPool3d"),this.pool3d(e,t,"avg").toFloat()}avgPool3dBackprop(e,t,s){ee([e,t],"avgPool3dBackprop");const n=s.strideDepth,i=s.strideHeight,r=s.strideWidth,o=s.filterDepth,a=s.filterHeight,l=s.filterWidth,c=s.dilationDepth,p=s.dilationHeight,u=s.dilationWidth,h=s.effectiveFilterDepth,d=s.effectiveFilterHeight,m=s.effectiveFilterWidth,f=h-1-s.padInfo.front,g=m-1-s.padInfo.left,y=d-1-s.padInfo.top,w=ge(t.shape,"float32"),x=1/(o*a*l),T=this.bufferSync(e);for(let A=0;A=s.outDepth||Math.floor(K)!==K)continue;for(let H=0;H=s.outHeight||Math.floor(Q)!==Q)continue;for(let J=0;J=s.outWidth||Math.floor(ie)!==ie)continue;const ne=T.get(A,K,Q,ie,_);Y+=ne}}}w.set(Y*x,A,E,F,D,_)}return w.toTensor()}maxPool3d(e,t){return ee(e,"maxPool3d"),this.pool3d(e,t,"max").toFloat()}maxPool3dPositions(e,t){const s=ge(t.outShape,"int32"),n=t.strideDepth,i=t.strideHeight,r=t.strideWidth,o=t.dilationDepth,a=t.dilationHeight,l=t.dilationWidth,c=t.effectiveFilterDepth,p=t.effectiveFilterHeight,u=t.effectiveFilterWidth,h=t.padInfo.front,d=t.padInfo.top,m=t.padInfo.left,f=this.bufferSync(e);for(let g=0;g=q&&(q=ue,K=Q*p*u+ie*p+le)}}}s.set(K,g,w,_,M,y)}}}return s.toTensor()}maxPool3dBackprop(e,t,s,n){ee([t,s],"maxPool3dBackprop");const i=this.maxPool3dPositions(t,n),r=n.strideDepth,o=n.strideHeight,a=n.strideWidth,l=n.dilationDepth,c=n.dilationHeight,p=n.dilationWidth,u=n.effectiveFilterDepth,h=n.effectiveFilterHeight,d=n.effectiveFilterWidth,m=u-1-n.padInfo.front,f=d-1-n.padInfo.left,g=h-1-n.padInfo.top,y=ge(t.shape,"float32"),w=this.bufferSync(i),x=this.bufferSync(e);for(let T=0;T=n.outDepth||Math.floor(q)!==q)continue;for(let K=0;K=n.outHeight||Math.floor(H)!==H)continue;for(let Q=0;Q=n.outWidth||Math.floor(J)!==J)continue;const ie=u*h*d-1-w.get(T,q,H,J,A),ne=Y*h*d+K*d+Q,le=ie===ne?1:0;if(le===0)continue;const ue=x.get(T,q,H,J,A);B+=ue*le}}}y.set(B,T,_,E,F,A)}return y.toTensor()}resizeBilinear(e,t,s,n){ee(e,"resizeBilinear");const[i,r,o,a]=e.shape,l=this.readSync(e.dataId),c=new Float32Array(N.sizeFromShape([i,t,s,a])),p=[n&&t>1?r-1:r,n&&s>1?o-1:o],u=[n&&t>1?t-1:t,n&&s>1?s-1:s];let h=0;const d=p[0]/u[0],m=p[1]/u[1];for(let f=0;f1?i-1:i,s&&l>1?r-1:r],u=[s&&a>1?a-1:a,s&&l>1?l-1:l],h=p[0]/u[0],d=p[1]/u[1],m=this.readSync(e.dataId);let f=0;for(let g=0;g1?r-1:r,n&&s>1?o-1:o],u=[n&&t>1?t-1:t,n&&s>1?s-1:s],h=p[0]/u[0],d=p[1]/u[1];let m=0;for(let f=0;f1?i-1:i,s&&l>1?r-1:r],h=[s&&a>1?a-1:a,s&&l>1?l-1:l],d=u[0]/h[0],m=u[1]/h[1],f=1/d,g=1/m,y=Math.ceil(f)*2+2,w=Math.ceil(g)*2+2;for(let x=0;x=a)continue;const Q=T+H*e.strides[1],J=H*d,ie=Math.min(i-1,s?Math.round(J):Math.floor(J));if(A!==ie)continue;for(let ne=0;ne=l)continue;const ue=Q+le*e.strides[2],oe=le*m,de=Math.min(r-1,s?Math.round(oe):Math.floor(oe));D===de&&(q+=p[ue+Y])}}c[M+Y]=q}}}}return ss(c,t.shape,t.dtype)}localResponseNormalization4D(e,t,s,n,i){ee(e,"localResponseNormalization4D");const r=e.shape[3],o=r-1,a=this.readSync(e.dataId),l=e.size,c=new Float32Array(l);function p(u){const h=u%r;let d=u-h+Math.max(0,h-t);const m=u-h+Math.min(h+t,o);let f=0;for(;d<=m;d++){const g=a[d];f+=g*g}return f}for(let u=0;u=0&&r[o]`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${s}`),N.assert(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`);const n=e.shape[0],i=e.shape[1],r=e.shape[2],o=e.shape[3],a=i*t,l=r*t,c=o/(t*t),p=this.readSync(e.dataId),u=new Float32Array(n*a*l*c);let h=0;for(let d=0;df[x]=0);const g=u.locToIndex(f),y=m.slice(-t.rank);c.forEach(x=>y[x]=0);const w=h.locToIndex(y);p[d]=n(o[g],a[w])}}return r.toTensor()}split(e,t,s){return bj(e,t,s)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}cropAndResize(e,t,s,n,i,r){const[o,a,l,c]=e.shape,p=t.shape[0],[u,h]=n,d=ge([p,u,h,c],"float32"),m=this.readSync(t.dataId),f=this.readSync(s.dataId),g=this.readSync(e.dataId),y=e.strides,w=d.strides;for(let x=0;x=o)continue;const M=u>1?(E-A)*(a-1)/(u-1):0,P=h>1?(F-_)*(l-1)/(h-1):0;for(let B=0;B1?A*(a-1)+B*M:.5*(A+E)*(a-1);if(Y<0||Y>a-1){for(let q=0;q1?_*(l-1)+Q*P:.5*(_+F)*(l-1);if(J<0||J>l-1){for(let ue=0;ue1?_*(l-1)+q*P:.5*(_+F)*(l-1);if(K<0||K>l-1){for(let J=0;J=e.size/o)throw new Error(`Invalid indices: ${h} does not index into ${e.shape}`);for(let m=0;m=n/i)throw new Error(`Invalid indices: ${f} does not index into ${s}`);for(let y=0;y{const{x:t}=e.inputs,s=e.backend;let n=new Float32Array(N.sizeFromShape(t.shape));if(t.dtype!=="complex64"){const i=s.data.get(t.dataId).values;n=Jw(i)}else{const i=s.data.get(t.dataId),r=i.complexTensorInfos.real,o=i.complexTensorInfos.imag,a=s.data.get(r.dataId).values,l=s.data.get(o.dataId).values;for(let c=0;c{const o=U.assertAndGetBroadcastShape(t,s),a=o.length,l=N.computeStrides(o),c=N.sizeFromShape(o),p=N.getTypedArrayFromDType(r,c),u=t.length,h=s.length,d=N.computeStrides(t),m=N.computeStrides(s),f=U.getBroadcastDims(t,o),g=U.getBroadcastDims(s,o);if(f.length+g.length===0)for(let y=0;yx[E]=0);const T=N.locToIndex(x,u,d),A=w.slice(-h);g.forEach(E=>A[E]=0);const _=N.locToIndex(A,h,m);p[y]=e(n[T],i[_])}return[p,o]}}function Es(e){const{inputs:t,backend:s}=e,{real:n,imag:i}=t,r=s.data.get(n.dataId).values,o=s.data.get(i.dataId).values,a=s.makeTensorInfo(n.shape,"complex64"),l=s.data.get(a.dataId);return l.complexTensorInfos={real:s.makeTensorInfo(n.shape,"float32",r),imag:s.makeTensorInfo(i.shape,"float32",o)},a}const jC={kernelName:jc,backendName:"cpu",kernelFunc:Es};function bi(e){const{inputs:t,backend:s}=e,{x:n}=t;return s.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}const VC={kernelName:Ci,backendName:"cpu",kernelFunc:bi};function bo(e){const{inputs:t,backend:s}=e,{input:n}=t,i=s.data.get(n.dataId).complexTensorInfos.real,r=s.data.get(i.dataId).values;return s.makeTensorInfo(i.shape,i.dtype,r)}const GC={kernelName:mp,backendName:"cpu",kernelFunc:bo};function Xl(e){const{inputs:t,backend:s,attrs:n}=e,{x:i}=t,{dtype:r}=n;if(r==="complex64"){if(i.dtype==="complex64")return bi({inputs:{x:i},backend:s});const o=ye(i.shape),a=Xl({inputs:{x:i},backend:s,attrs:{dtype:"float32"}}),l=Es({inputs:{real:a,imag:o},backend:s});return o.dispose(),s.disposeIntermediateTensorInfo(a),l}if(i.dtype==="complex64"){const o=bo({inputs:{input:i},backend:s}),a=Xl({inputs:{x:o},backend:s,attrs:{dtype:r}});return s.disposeIntermediateTensorInfo(o),a}if(!N.hasEncodingLoss(i.dtype,r)){const o=bi({inputs:{x:i},backend:s});return{dataId:o.dataId,shape:o.shape,dtype:r}}if(r==="int32"){const o=s.data.get(i.dataId).values,a=Int32Array.from(o);return s.makeTensorInfo(i.shape,"int32",a)}if(r==="bool"){const o=s.data.get(i.dataId).values,a=N.toTypedArray([0],i.dtype),[l,c]=js((p,u)=>p!==u?1:0)(i.shape,[],o,a,"bool");return s.makeTensorInfo(c,"bool",l)}throw new Error(`Error in Cast: failed to cast ${i.dtype} to ${r}`)}const qC={kernelName:Ai,backendName:"cpu",kernelFunc:Xl};function On(e,t,s,n){return s==null?({inputs:i,backend:r})=>{const{a:o,b:a}=i,l=r;ee([o,a],e);const c=l.data.get(o.dataId).values,p=l.data.get(a.dataId).values,u=n||o.dtype,[h,d]=t(o.shape,a.shape,c,p,u);return l.makeTensorInfo(d,u,h)}:({inputs:i,backend:r})=>{const{a:o,b:a}=i,l=r;if(o.dtype==="complex64"||a.dtype==="complex64"){const c=Xl({inputs:{x:o},backend:l,attrs:{dtype:"complex64"}}),p=l.data.get(c.dataId),u=p.complexTensorInfos.real,h=p.complexTensorInfos.imag,d=l.data.get(u.dataId).values,m=l.data.get(h.dataId).values,f=Xl({inputs:{x:a},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(f.dataId),y=g.complexTensorInfos.real,w=g.complexTensorInfos.imag,x=l.data.get(y.dataId).values,T=l.data.get(w.dataId).values,[A,_,E]=s(o.shape,a.shape,d,m,x,T),F=l.makeTensorInfo(E,"float32",A),D=l.makeTensorInfo(E,"float32",_),M=Es({inputs:{real:F,imag:D},backend:l});return l.disposeIntermediateTensorInfo(c),l.disposeIntermediateTensorInfo(f),l.disposeIntermediateTensorInfo(F),l.disposeIntermediateTensorInfo(D),M}else{const c=l.data.get(o.dataId).values,p=l.data.get(a.dataId).values,u=n||o.dtype,[h,d]=t(o.shape,a.shape,c,p,u);return l.makeTensorInfo(d,u,h)}}}function Jl(e){return(t,s,n,i,r,o)=>{const a=U.assertAndGetBroadcastShape(t,s),l=N.sizeFromShape(a),c=a.length,p=N.computeStrides(a),u=N.getTypedArrayFromDType("float32",l),h=N.getTypedArrayFromDType("float32",l),d=U.getBroadcastDims(t,a),m=U.getBroadcastDims(s,a),f=U.mergeRealAndImagArrays(n,i),g=U.mergeRealAndImagArrays(r,o),y=t.length,w=N.computeStrides(t),x=s.length,T=N.computeStrides(s);if(d.length+m.length===0)for(let A=0;AE[B]=0);const F=N.locToIndex(E,y,w),D=_.slice(-x);m.forEach(B=>D[B]=0);const M=N.locToIndex(D,x,T),P=e(f[F*2],f[F*2+1],g[M*2],g[M*2+1]);u[A]=P.real,h[A]=P.imag}return[u,h,a]}}const Zw=js((e,t)=>e+t),Ij=Jl((e,t,s,n)=>({real:e+s,imag:t+n})),Qw=On(Zn,Zw,Ij),HC={kernelName:Zn,backendName:"cpu",kernelFunc:Qw};function En(e){return(t,s,n)=>{const i=N.getTypedArrayFromDType(s,t.length);for(let r=0;r{const{x:o}=n;if(ee(o,e),o.dtype==="string"||s==="string")throw new Error("unaryKernelFunc does not support string input/output");const a=r,l=a.data.get(o.dataId).values,c=N.sizeFromShape(o.shape),p=s||o.dtype,u=N.getArrayFromDType(p,c);for(let h=0;h{const{x:o}=n;if(ee(o,e),o.dtype==="string"||s==="string")throw new Error("unaryKernelFunc does not support string input/output");const a=r,l=a.data.get(o.dataId).values,c=s||o.dtype,p=t(l,c,i);return a.makeTensorInfo(o.shape,c,p)}}const ex=En(e=>Math.ceil(e)),vj=_n(wr,ex),YC={kernelName:wr,backendName:"cpu",kernelFunc:vj};const tx=En(e=>Math.exp(e)),Tj=_n(vr,tx),KC={kernelName:vr,backendName:"cpu",kernelFunc:Tj};const sx=En(e=>Math.expm1(e)),Aj=_n(Tr,sx),XC={kernelName:Tr,backendName:"cpu",kernelFunc:Aj};const nx=En(e=>Math.floor(e)),Nj=_n(Ar,nx),JC={kernelName:Ar,backendName:"cpu",kernelFunc:Nj};const ix=En(e=>Math.log(e)),Cj=_n(Or,ix),ZC={kernelName:Or,backendName:"cpu",kernelFunc:Cj};function Yf(e,t,s,n){const i=N.getTypedArrayFromDType(n,N.sizeFromShape(s));for(let r=0;ra&&(a=c)}i[r]=a}return i}const rx=js((e,t)=>e*t),Rj=Jl((e,t,s,n)=>({real:e*s-t*n,imag:e*n+t*s})),ox=On(_r,rx,Rj),QC={kernelName:_r,backendName:"cpu",kernelFunc:ox};const ax=En(e=>1/Math.sqrt(e)),Oj=_n(Fr,ax),e0={kernelName:Fr,backendName:"cpu",kernelFunc:Oj};function lx(e,t,s,n,i){const r=Ms.isSliceContinous(n,t,s),o=N.sizeFromShape(s),a=N.computeStrides(n);if(r){const c=Ms.computeFlatOffset(t,a);return e.subarray(c,c+o)}const l=N.getTypedArrayFromDType(i,o);for(let c=0;cf+t[g]),m=N.locToIndex(d,n.length,a);l[c]=e[m]}return l}function Kf(e){const{inputs:t,backend:s,attrs:n}=e,{x:i}=t,{begin:r,size:o}=n;ee(i,"slice");const[a,l]=Ms.parseSliceParams(i,r,o);Ms.assertParamsValid(i,a,l);const c=s.data.get(i.dataId).values,p=lx(c,a,l,i.shape,i.dtype);return s.makeTensorInfo(l,i.dtype,p)}const t0={kernelName:jo,backendName:"cpu",kernelFunc:Kf};const cx=js((e,t)=>e-t),Ej=Jl((e,t,s,n)=>({real:e-s,imag:t-n})),px=On(Br,cx,Ej),s0={kernelName:Br,backendName:"cpu",kernelFunc:px};function Zl(e,t,s,n,i){const r=t.length,o=N.sizeFromShape(t),a=N.computeStrides(t),l=N.computeStrides(i),c=N.getTypedArrayFromDType(s,N.sizeFromShape(i));for(let p=0;p{for(let g=0;gZw,ceilImpl:()=>ex,expImpl:()=>tx,expm1Impl:()=>sx,floorImpl:()=>nx,logImpl:()=>ix,maxImpl:()=>Yf,multiplyImpl:()=>rx,rsqrtImpl:()=>ax,simpleAbsImpl:()=>Jw,sliceImpl:()=>lx,subImpl:()=>cx,transposeImpl:()=>Zl,uniqueImpl:()=>Xf});const hx="2.6.0";Vp("cpu",()=>new Xw,1);const _j=fe(dr,e=>Math.acos(e)),n0={kernelName:dr,backendName:"cpu",kernelFunc:_j};const kj=fe(mr,e=>Math.acosh(e)),i0={kernelName:mr,backendName:"cpu",kernelFunc:kj};const Dj=fe(fr,e=>Math.asin(e)),r0={kernelName:fr,backendName:"cpu",kernelFunc:Dj};const Fj=fe(gr,e=>Math.asinh(e)),o0={kernelName:gr,backendName:"cpu",kernelFunc:Fj};const Mj=fe(yr,e=>Math.atan(e)),a0={kernelName:yr,backendName:"cpu",kernelFunc:Mj};const Uj=fe(br,e=>Math.atanh(e)),l0={kernelName:br,backendName:"cpu",kernelFunc:Uj};function Ql(e,t,s,n,i,r){const o=i.strideHeight,a=i.strideWidth,l=i.dilationHeight,c=i.dilationWidth,p=i.effectiveFilterHeight,u=i.effectiveFilterWidth,h=i.padInfo.top,d=i.padInfo.left,m=r==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,f=ge(i.outShape,s),g=f.values,y=i.outShape[1]*i.outShape[2]*i.outShape[3],w=i.outShape[2]*i.outShape[3],x=i.outShape[3];for(let T=0;TQ?Q=Ae:r==="avg"&&(J+=Ae,ie++)}if(isNaN(Q))break}const ne=B+Y*x+E;g[ne]=r==="avg"?J/ie:Q}}}return f}function Jf(e,t,s,n,i=!1,r=!1){const o=ge(n.outShape,"int32"),a=n.strideHeight,l=n.strideWidth,c=n.dilationHeight,p=n.dilationWidth,u=n.effectiveFilterHeight,h=n.effectiveFilterWidth,d=n.padInfo.top,m=n.padInfo.left,f=ge(t,s,e);for(let g=0;gM&&(M=H,i?P=r?((g*n.inHeight+B)*n.inWidth+q)*n.inChannels+y:(B*n.inWidth+q)*n.inChannels+y:P=Y*h+K)}}o.set(P,g,w,_,y)}}return o}function $j(e){const{inputs:t,backend:s,attrs:n}=e,{x:i}=t;ee(i,"avgPool");const{filterSize:r,strides:o,pad:a,dimRoundingMode:l}=n,c=1;N.assert(U.eitherStridesOrDilationsAreOne(o,c),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${o} and dilations '${c}'`);const p=U.computePool2DInfo(i.shape,r,o,c,a,l);let u;if(p.filterWidth===1&&p.filterHeight===1&&N.arraysEqual(p.inShape,p.outShape))u=bi({inputs:{x:i},backend:s});else{const h=s.data.get(i.dataId).values,d=N.computeStrides(i.shape),m=Ql(h,i.shape,i.dtype,d,p,"avg");u=s.makeTensorInfo(p.outShape,i.dtype,m.values)}return u}const c0={kernelName:Ti,backendName:"cpu",kernelFunc:$j};function Wj(e){const{inputs:t,backend:s,attrs:n}=e,{dy:i,input:r}=t,o=r;ee([i,r],"avgPoolBackprop");const{filterSize:a,strides:l,pad:c}=n,p=U.computePool2DInfo(o.shape,a,l,1,c),u=p.strideHeight,h=p.strideWidth,d=p.filterHeight,m=p.filterWidth,f=p.dilationHeight,g=p.dilationWidth,y=p.effectiveFilterHeight,w=p.effectiveFilterWidth,x=w-1-p.padInfo.left,T=y-1-p.padInfo.top,A=ge(o.shape,"float32"),_=1/(d*m),E=s.data.get(i.dataId).values,F=ge(i.shape,"float32",E);for(let D=0;D=p.outHeight||Math.floor(Q)!==Q)continue;for(let J=0;J=p.outWidth||Math.floor(ie)!==ie)continue;const ne=F.get(D,Q,ie,M);K+=ne}}A.set(K*_,D,P,B,M)}return s.makeTensorInfo(A.shape,A.dtype,A.values)}const p0={kernelName:Do,backendName:"cpu",kernelFunc:Wj};function zj(e){const{inputs:t,backend:s,attrs:n}=e,{x:i,scale:r,offset:o,mean:a,variance:l}=t;N.assert(a.shape.length===l.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),N.assert(o==null||a.shape.length===o.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),N.assert(r==null||a.shape.length===r.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks."),ee([i,a,l,r,o],"batchNorm");let{varianceEpsilon:c}=n;c==null&&(c=.001);const p=s.data.get(i.dataId).values,u=s.data.get(a.dataId).values,h=s.data.get(l.dataId).values,d=r?s.data.get(r.dataId).values:new Float32Array([1]),m=o?s.data.get(o.dataId).values:new Float32Array([0]),f=new Float32Array(p.length),g=m.length,y=d.length,w=h.length,x=u.length;let T=0,A=0,_=0,E=0;for(let F=0;F=g&&(T=0),A>=x&&(A=0),_>=y&&(_=0),E>=w&&(E=0);return s.makeTensorInfo(i.shape,i.dtype,f)}const u0={kernelName:Ni,backendName:"cpu",kernelFunc:zj};const Pj=fe(xr,(e,t)=>{const s=t;return e>s.clipValueMax?s.clipValueMax:e`The new shape (${a}) has ${l} elements and the old shape (${i.shape}) has ${o} elements. The new shape and old shape must have the same number of elements.`),s.incRef(i.dataId);const c=s.data.get(i.dataId);if(c.complexTensorInfos!=null){const p=c.complexTensorInfos.real,u=c.complexTensorInfos.imag;p.shape=a,u.shape=a}return{dataId:i.dataId,shape:a,dtype:i.dtype}}const m0={kernelName:Ei,backendName:"cpu",kernelFunc:kn};function tc(e){const{inputs:t,backend:s,attrs:n}=e,{axis:i}=n,r=N.parseAxisParam(i,t[0].shape)[0];let o=U.computeOutShape(t.map(d=>d.shape),r);if(N.sizeFromShape(o)===0)return s.makeTensorInfo(o,t[0].dtype,[]);const a=t.filter(d=>N.sizeFromShape(d.shape)>0);if(a.length===1)return a[0];const l=a.map(d=>d.shape);if(U.assertParamsConsistent(l,r),a[0].dtype==="complex64"){const d=a.map(w=>bo({inputs:{input:w},backend:s})),m=a.map(w=>ec({inputs:{input:w},backend:s})),f=tc({inputs:d,backend:s,attrs:{axis:i}}),g=tc({inputs:m,backend:s,attrs:{axis:i}}),y=Es({inputs:{real:f,imag:g},backend:s});return d.forEach(w=>s.disposeIntermediateTensorInfo(w)),m.forEach(w=>s.disposeIntermediateTensorInfo(w)),s.disposeIntermediateTensorInfo(f),s.disposeIntermediateTensorInfo(g),y}const c=a.map(d=>{const m=N.sizeFromShape(d.shape.slice(r)),f=[-1,m];return kn({inputs:{x:d},backend:s,attrs:{shape:f}})});o=U.computeOutShape(c.map(d=>d.shape),1);const p=N.getTypedArrayFromDType(a[0].dtype,N.sizeFromShape(o));if(c[0].shape[0]===1){let d=0;c.forEach(m=>{const f=s.data.get(m.dataId).values,g=N.sizeFromShape(m.shape);p.set(f,d),d+=g})}else{let d=0;c.forEach(m=>{const f=s.data.get(m.dataId).values;let g=0;for(let y=0;yd.shape),r),h=s.makeTensorInfo(u,t[0].dtype,p);return c.forEach(d=>s.disposeIntermediateTensorInfo(d)),h}const f0={kernelName:Fo,backendName:"cpu",kernelFunc:tc};const Bj=fe(Qn,e=>Math.cos(e)),g0={kernelName:Qn,backendName:"cpu",kernelFunc:Bj};const jj=fe(Lr,e=>Math.cosh(e)),y0={kernelName:Lr,backendName:"cpu",kernelFunc:jj};const b0={kernelName:Mo,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:s})=>{const{x:n,filter:i}=e,{strides:r,pad:o,dilations:a}=s,l=t,c=l.data.get(n.dataId).values,p=n.shape.length,u=l.data.get(i.dataId).values,h=i.shape.length,{batchSize:d,inHeight:m,inWidth:f,inChannels:g,outHeight:y,outWidth:w,padInfo:x,strideHeight:T,strideWidth:A,filterHeight:_,filterWidth:E,dilationHeight:F,dilationWidth:D,outShape:M}=U.computeDilation2DInfo(n.shape,i.shape,r,o,"NHWC",a),P=N.sizeFromShape(M),B=M.length,Y=N.getArrayFromDType(n.dtype,P);for(let K=0;K=0&&de=0&&Mele&&(le=$t)}}}const ue=N.locToIndex([K,H,J,ne],B,N.computeStrides(M));Y[ue]=le}}}const q=l.write(N.toTypedArray(Y,n.dtype),M,n.dtype);return{dataId:q,shape:M,dtype:n.dtype}}};const w0={kernelName:Ha,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:s})=>{const{x:n,filter:i,dy:r}=e,{strides:o,pad:a,dilations:l}=s,c=t,p=N.toNestedArray(n.shape,c.data.get(n.dataId).values),u=N.toNestedArray(i.shape,c.data.get(i.dataId).values),{batchSize:h,inHeight:d,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:w,strideHeight:x,strideWidth:T,filterHeight:A,filterWidth:_,dilationHeight:E,dilationWidth:F,outShape:D}=U.computeDilation2DInfo(n.shape,i.shape,o,a,"NHWC",l);N.assert(r.rank===D.length,()=>`Error in ${Ha}, dy must have the same rank as output ${D.length}, but got ${r.rank}`);const M=N.toNestedArray(D,c.data.get(r.dataId).values),P=N.makeZerosNestedTypedArray(i.shape,i.dtype);for(let Y=0;Y=0&&oe=0&&Aeie&&(ie=Me,ne=ue,le=de)}}}P[ne][le][J]+=M[Y][q][H][J]}}}const B=c.write(N.toTypedArray(P,n.dtype),i.shape,i.dtype);return{dataId:B,shape:i.shape,dtype:i.dtype}}};const x0={kernelName:qa,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:s})=>{const{x:n,filter:i,dy:r}=e,{strides:o,pad:a,dilations:l}=s,c=t,p=N.toNestedArray(n.shape,c.data.get(n.dataId).values),u=N.toNestedArray(i.shape,c.data.get(i.dataId).values),{batchSize:h,inHeight:d,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:w,strideHeight:x,strideWidth:T,filterHeight:A,filterWidth:_,dilationHeight:E,dilationWidth:F,outShape:D}=U.computeDilation2DInfo(n.shape,i.shape,o,a,"NHWC",l);N.assert(r.rank===D.length,()=>`Error in ${qa}, dy must have the same rank as output ${D.length}, but got ${r.rank}`);const M=N.toNestedArray(D,c.data.get(r.dataId).values),P=N.makeZerosNestedTypedArray(n.shape,n.dtype);for(let Y=0;Y=0&&oe=0&&Aeie&&(ie=Me,ne=oe,le=Ae)}}}P[Y][ne][le][J]+=M[Y][q][H][J]}}}const B=c.write(N.toTypedArray(P,n.dtype),n.shape,n.dtype);return{dataId:B,shape:n.shape,dtype:n.dtype}}};const Vj=js((e,t)=>e/t),Gj=On(ei,Vj),Du={kernelName:ei,backendName:"cpu",kernelFunc:Gj};const qj=fe(Sr,e=>e>=0?e:Math.exp(e)-1),L0={kernelName:Sr,backendName:"cpu",kernelFunc:qj};const Hj=U.ERF_P,Yj=U.ERF_A1,Kj=U.ERF_A2,Xj=U.ERF_A3,Jj=U.ERF_A4,Zj=U.ERF_A5,Qj=fe(Ir,e=>{const t=Math.sign(e),s=Math.abs(e),n=1/(1+Hj*s);return t*(1-((((Zj*n+Jj)*n+Xj)*n+Kj)*n+Yj)*n*Math.exp(-s*s))}),S0={kernelName:Ir,backendName:"cpu",kernelFunc:Qj};function Zf(e,t,s){const n=e.shape,i=n[0],r=n[1],o=s.data.get(e.dataId),a=o.complexTensorInfos.real,l=o.complexTensorInfos.imag,c=[i,r],p=N.sizeFromShape(c),u=N.getTypedArrayFromDType("float32",p),h=N.getTypedArrayFromDType("float32",p);for(let g=0;g{const{image:n}=e,i=s,r=N.getTypedArrayFromDType(n.dtype,N.sizeFromShape(n.shape)),[o,a,l,c]=n.shape,p=i.data.get(n.dataId).values;for(let h=0;h=0&&ANumber.isFinite(e)?1:0,"bool"),A0={kernelName:Nr,backendName:"cpu",kernelFunc:r3};const o3=fe(Cr,e=>Math.abs(e)===Infinity?1:0,"bool"),N0={kernelName:Cr,backendName:"cpu",kernelFunc:o3};const a3=fe(Rr,e=>Number.isNaN(e)?1:0,"bool"),C0={kernelName:Rr,backendName:"cpu",kernelFunc:a3};const l3=fe(Er,e=>Math.log1p(e)),R0={kernelName:Er,backendName:"cpu",kernelFunc:l3};const c3=fe(Ya,e=>e?0:1,"bool"),O0={kernelName:Ya,backendName:"cpu",kernelFunc:c3};const E0={kernelName:Ri,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:s})=>{const{x:n}=e,{reductionIndices:i,keepDims:r}=t,o=s;let a=n.shape;const l=a.length,c=N.parseAxisParam(i,a);let p=c;const u=U.getAxesPermutation(p,l);let h=o.data.get(n.dataId).values;if(u!=null){const x=new Array(l);for(let T=0;T`Error in maxPool: Either strides or dilations must be 1. Got strides ${o} and dilations '${c}'`);const p=U.computePool2DInfo(i.shape,r,o,c,a,l);let u;if(p.filterWidth===1&&p.filterHeight===1&&N.arraysEqual(p.inShape,p.outShape))u=bi({inputs:{x:i},backend:s});else{const h=s.data.get(i.dataId).values,d=N.computeStrides(i.shape),m=Ql(h,i.shape,i.dtype,d,p,"max");u=s.makeTensorInfo(p.outShape,i.dtype,m.values)}return u}const _0={kernelName:Oi,backendName:"cpu",kernelFunc:p3};function u3(e){const{inputs:t,backend:s,attrs:n}=e,{dy:i,input:r,output:o}=t,a=r;ee([r,o],"maxPoolBackprop");const{filterSize:l,strides:c,pad:p,dimRoundingMode:u}=n,h=U.computePool2DInfo(a.shape,l,c,1,p,u),d=s.data.get(a.dataId).values,m=ge(h.outShape,a.dtype,Jf(d,a.shape,a.dtype,h).values),f=h.strideHeight,g=h.strideWidth,y=h.dilationHeight,w=h.dilationWidth,x=h.effectiveFilterHeight,T=h.effectiveFilterWidth,A=T-1-h.padInfo.left,_=x-1-h.padInfo.top,E=ge(a.shape,"float32"),F=s.data.get(i.dataId).values,D=ge(i.shape,"float32",F);for(let M=0;M=h.outHeight||Math.floor(J)!==J)continue;for(let ie=0;ie=h.outWidth||Math.floor(ne)!==ne)continue;const le=x*T-1-m.get(M,J,ne,P),ue=Q*T+ie,oe=le===ue?1:0;if(oe===0)continue;const de=D.get(M,J,ne,P);H+=de*oe}}E.set(H,M,B,Y,P)}return s.makeTensorInfo(E.shape,E.dtype,E.values)}const k0={kernelName:$o,backendName:"cpu",kernelFunc:u3};function D0(e,t,s,n,i){const r=N.computeStrides(t),o=Ql(e,t,s,r,i,"max"),a=Jf(e,t,s,i,!0,n);return[o.values,a.values]}const F0={kernelName:Wo,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:s})=>{const{x:n}=e,{filterSize:i,strides:r,pad:o,includeBatchInIndex:a}=t,l=s;ee(n,"MaxPoolWithArgmax");const c=l.data.get(n.dataId).values,p=U.computePool2DInfo(n.shape,i,r,[1,1],o),[u,h]=D0(c,n.shape,n.dtype,a,p),d=l.write(u,p.outShape,n.dtype),m=l.write(h,p.outShape,n.dtype);return[{dataId:d,shape:p.outShape,dtype:n.dtype},{dataId:m,shape:p.outShape,dtype:"int32"}]}};const h3=vt.nonMaxSuppressionV4Impl,M0={kernelName:zo,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:s})=>{const{boxes:n,scores:i}=e,{maxOutputSize:r,iouThreshold:o,scoreThreshold:a,padToMaxOutputSize:l}=s,c=t;ee(n,"NonMaxSuppressionPadded");const p=c.data.get(n.dataId).values,u=c.data.get(i.dataId).values,{selectedIndices:h,validOutputs:d}=h3(p,u,r,o,a,l);return[h,d]}};const d3=vt.nonMaxSuppressionV5Impl,U0={kernelName:Po,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:s})=>{const{boxes:n,scores:i}=e,{maxOutputSize:r,iouThreshold:o,scoreThreshold:a,softNmsSigma:l}=s,c=t;ee(n,"NonMaxSuppressionWithScore");const p=c.data.get(n.dataId).values,u=c.data.get(i.dataId).values,h=r,d=o,m=a,f=l,{selectedIndices:g,selectedScores:y}=d3(p,u,h,d,m,f);return[g,y]}};const m3=js((e,t)=>e!==t?1:0),f3=On(Ka,m3,null,"bool"),$0={kernelName:Ka,backendName:"cpu",kernelFunc:f3};function g3(e){const{inputs:t,backend:s,attrs:n}=e,{x:i}=t,{paddings:r,constantValue:o}=n;ee(i,"pad");const a=r.map((w,x)=>w[0]+i.shape[x]+w[1]),l=r.map(w=>w[0]),c=s.data.get(i.dataId).values,p=N.sizeFromShape(i.shape),u=i.shape.length,h=N.computeStrides(i.shape),d=N.sizeFromShape(a),m=a.length,f=N.computeStrides(a),g=N.getTypedArrayFromDType(i.dtype,d);o!==0&&g.fill(o);for(let w=0;w_+l[E]),A=N.locToIndex(T,m,f);g[A]=c[w]}const y=s.write(g,a,i.dtype);return{dataId:y,shape:a,dtype:i.dtype}}const Qf={kernelName:Bo,backendName:"cpu",kernelFunc:g3};const y3=fe(kr,e=>1/e),W0={kernelName:kr,backendName:"cpu",kernelFunc:y3};const z0={kernelName:Ho,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:s})=>{const{image:n}=e,{radians:i,fillValue:r,center:o}=t,a=s,l=N.getTypedArrayFromDType(n.dtype,N.sizeFromShape(n.shape)),[c,p,u,h]=n.shape,[d,m]=U.getImageCenter(o,p,u),f=255,g=Math.sin(i),y=Math.cos(i),w=a.data.get(n.dataId).values;for(let T=0;T=0&&q=0&&K{const t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2===0?t:t+1}),P0={kernelName:Dr,backendName:"cpu",kernelFunc:b3};const w3=U.SELU_SCALEALPHA,x3=U.SELU_SCALE,L3=fe(Mr,e=>e>=0?x3*e:w3*(Math.exp(e)-1)),B0={kernelName:Mr,backendName:"cpu",kernelFunc:L3};const S3=fe(Wr,e=>1/(1+Math.exp(-e))),j0={kernelName:Wr,backendName:"cpu",kernelFunc:S3};const I3=fe($r,e=>e<0?-1:e>0?1:0),V0={kernelName:$r,backendName:"cpu",kernelFunc:I3};const v3=fe(ti,e=>Math.sin(e)),G0={kernelName:ti,backendName:"cpu",kernelFunc:v3};const T3=fe(Ur,e=>Math.sinh(e)),q0={kernelName:Ur,backendName:"cpu",kernelFunc:T3};const A3=11920928955078125e-23,H0=Math.log(A3)+2,N3=fe(zr,e=>{const t=e>-H0,s=eMath.sqrt(e)),J0={kernelName:Pr,backendName:"cpu",kernelFunc:R3};const Z0={kernelName:Go,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{const{x:s}=e,n=t;ee(s,"square");const i=n.data.get(s.dataId).values,r=new Float32Array(i.length);for(let a=0;a{const s=e-t;return s*s}),E3=On(si,O3),Q0={kernelName:si,backendName:"cpu",kernelFunc:E3};const _3=fe(Vr,(e,t)=>{const s=t;return isNaN(e)?NaN:e>0?1:s.alpha}),eR={kernelName:Vr,backendName:"cpu",kernelFunc:_3};const k3=fe(ni,e=>Math.tan(e)),tR={kernelName:ni,backendName:"cpu",kernelFunc:k3};const D3=fe(jr,e=>Math.tanh(e)),sR={kernelName:jr,backendName:"cpu",kernelFunc:D3};function F3(e){const{inputs:t,attrs:s,backend:n}=e,{axis:i}=s,{x:r}=t;ee(r,"unique");const o=n.data.get(r.dataId).values,{outputValues:a,outputShape:l,indices:c}=Xf(o,i,r.shape,r.dtype);return[n.makeTensorInfo(l,r.dtype,a),n.makeTensorInfo([c.length],"int32",c)]}const nR={kernelName:qo,backendName:"cpu",kernelFunc:F3};const M3=[BC,n0,i0,HC,r0,o0,a0,l0,c0,p0,u0,qC,YC,h0,jC,f0,g0,y0,b0,x0,w0,Du,L0,S0,KC,XC,I0,v0,JC,VC,T0,d0,A0,N0,C0,ZC,R0,O0,_0,k0,F0,E0,QC,M0,U0,$0,Qf,GC,W0,m0,z0,P0,e0,B0,j0,V0,G0,q0,t0,Y0,X0,J0,Z0,Q0,eR,s0,tR,sR,K0,nR];for(const e of M3)Za(e);const va={},fx={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function gx(e,t){va[e]=t}function on(e){if(!(e in va)){const s=U3(e);if(s!==null)va[e]=s;else return console.log("Could not get context for WebGL version",e),null}const t=va[e];return t.isContextLost()?(delete va[e],on(e)):(t.disable(t.DEPTH_TEST),t.disable(t.STENCIL_TEST),t.disable(t.BLEND),t.disable(t.DITHER),t.disable(t.POLYGON_OFFSET_FILL),t.disable(t.SAMPLE_COVERAGE),t.enable(t.SCISSOR_TEST),t.enable(t.CULL_FACE),t.cullFace(t.BACK),va[e])}function $3(e){if(typeof OffscreenCanvas!="undefined"&&e===2)return new OffscreenCanvas(300,150);if(typeof document!="undefined")return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}function U3(e){if(e!==1&&e!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");const t=$3(e);return t.addEventListener("webglcontextlost",s=>{s.preventDefault(),delete va[e]},!1),e===1?t.getContext("webgl",fx)||t.getContext("experimental-webgl",fx):t.getContext("webgl2",fx)}var wo;(function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"})(wo||(wo={}));var is;(function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"})(is||(is={}));var Xt;(function(e){e[e.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",e[e.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",e[e.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",e[e.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",e[e.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"})(Xt||(Xt={}));function Ta(e,t){return[t,e]}function iR(e,t){return e*t}function xo(e){const t=N.sizeFromShape(e),s=Math.ceil(t/4);return N.sizeToSquarishShape(s)}function wi(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function rR(e,t){const[s,n]=wi(e,t);return s*n*4}function Fu(e,t){const s=e;let n,i,r,o,a,l,c,p,u,h;return W().getNumber("WEBGL_VERSION")===2?(n=s.R32F,i=s.R16F,r=s.RGBA16F,o=s.RGBA32F,a=s.RED,c=4,p=1,u=s.HALF_FLOAT,h=s.FLOAT):(n=e.RGBA,i=e.RGBA,r=e.RGBA,o=s.RGBA,a=e.RGBA,c=4,p=4,u=t!=null?t.HALF_FLOAT_OES:null,h=e.FLOAT),l=e.RGBA,{internalFormatFloat:n,internalFormatHalfFloat:i,internalFormatPackedHalfFloat:r,internalFormatPackedFloat:o,textureFormatFloat:a,downloadTextureFormat:l,downloadUnpackNumChannels:c,defaultNumChannels:p,textureTypeHalfFloat:u,textureTypeFloat:h}}function pe(e,t){const s=t();return W().getBool("DEBUG")&&W3(e),s}function W3(e){const t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+z3(e,t))}const P3=596e-10,B3=65504;function oR(e){return!!(W().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||e===0||P3e.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function aR(e,t){const s=Ji(e,()=>e.createShader(e.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(pe(e,()=>e.shaderSource(s,t)),pe(e,()=>e.compileShader(s)),e.getShaderParameter(s,e.COMPILE_STATUS)===!1)throw console.log(e.getShaderInfoLog(s)),new Error("Failed to compile vertex shader.");return s}function lR(e,t){const s=Ji(e,()=>e.createShader(e.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(pe(e,()=>e.shaderSource(s,t)),pe(e,()=>e.compileShader(s)),e.getShaderParameter(s,e.COMPILE_STATUS)===!1)throw j3(t,e.getShaderInfoLog(s)),new Error("Failed to compile fragment shader.");return s}const V3=/ERROR: [0-9]+:([0-9]+):/g;function j3(e,t){const s=V3.exec(t);if(s==null){console.log(`Couldn't parse line number in error: ${t}`),console.log(e);return}const n=+s[1],i=e.split(` +============================`));const n={};return this.data.set(n,{values:e,dtype:s,refCount:1}),n}makeTensorInfo(e,t,s){const n=this.write(s,e,t);return{dataId:n,shape:e,dtype:t}}incRef(e){const t=this.data.get(e);t.refCount++}decRef(e){if(this.data.has(e)){const t=this.data.get(e);t.refCount--}}move(e,t,s,n){this.data.set(e,{values:t,dtype:n,refCount:1})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){const{dtype:t,complexTensorInfos:s}=this.data.get(e);if(t==="complex64"){const n=this.readSync(s.real.dataId),i=this.readSync(s.imag.dataId);return U.mergeRealAndImagArrays(n,i)}return this.data.get(e).values}bufferSync(e){const t=this.readSync(e.dataId);let s=t;if(e.dtype==="string")try{s=t.map(n=>N.decodeString(n))}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return ge(e.shape,e.dtype,s)}makeOutput(e,t,s){const n=this.write(e,t,s);return Us().makeTensorFromDataId(n,t,s,this)}disposeData(e){if(this.data.has(e)){const{complexTensorInfos:t}=this.data.get(e);t!=null&&(this.disposeData(t.real.dataId),this.disposeData(t.imag.dataId)),this.data.delete(e)}}disposeIntermediateTensorInfo(e){const t=e.dataId;if(this.data.has(t)){const s=this.data.get(t);s.refCount--,s.refCount<1&&this.disposeData(t)}}async time(e){const t=N.now();e();const s=N.now()-t;return{kernelMs:s}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}stridedSlice(e,t,s,n){ee(e,"stridedSlice");const i=Ms.computeOutShape(t,s,n);if(i.some(a=>a===0))return ze([],i);const r=ge(i,e.dtype),o=this.bufferSync(e);for(let a=0;ao[a]=e.shape[a]-1-o[a]),s.set(n.get(...o),...r)}return s.toTensor()}neg(e){return ee(e,"neg"),R(j(-1),e)}addN(e){ee(e,"addN");const t=e.map(i=>this.readSync(i.dataId)),s=ge(e[0].shape,e[0].dtype),n=s.values;for(let i=0;iMath.pow(s,n))}batchMatMul(e,t,s,n){ee([e,t],"matMul");const i=s?e.shape[1]:e.shape[2],r=s?e.shape[2]:e.shape[1],o=n?t.shape[1]:t.shape[2],a=e.shape[0],l=this.readSync(e.dataId),c=this.readSync(t.dataId),[p,u,h]=s?[e.strides[0],1,e.strides[1]]:[e.strides[0],e.strides[1],1],[d,m,f]=n?[1,t.strides[1],t.strides[0]]:[t.strides[1],1,t.strides[0]],g=r*o,y=ge([a,r,o],e.dtype),w=y.values,x=this.blockSize;for(let T=0;TMath.floor(i/r),n="int32";return this.broadcastedBinaryOp(e,t,n,s)}sum(e,t){ee(e,"sum"),U.assertAxesAreInnerMostDims("sum",t,e.rank);const[s,n]=U.computeOutAndReduceShapes(e.shape,t),i=Ft(e.dtype,"int32"),r=ye(s,i),o=N.sizeFromShape(n),a=this.readSync(r.dataId),l=this.readSync(e.dataId);for(let c=0;cu&&(u=m,h=d)}a[c]=h}return r}cumsum(e,t,s,n){if(ee(e,"cumsum"),t!==e.rank-1)throw new Error(`backend.cumsum in CPU expects an inner-most axis=${e.rank-1} but got axis=${t}`);const i=Ft(e.dtype,"int32"),r=ye(e.shape,i),o=this.readSync(r.dataId),a=this.readSync(e.dataId),l=e.shape[e.rank-1],c=n?(p,u)=>p+l-u-1:(p,u)=>p+u;for(let p=0;ps===n?1:0)}notEqual(e,t){return ee([e,t],"notEqual"),this.broadcastedBinaryOp(e,t,"bool",(s,n)=>s!==n?1:0)}less(e,t){return ee([e,t],"less"),this.broadcastedBinaryOp(e,t,"bool",(s,n)=>ss<=n?1:0)}greater(e,t){return ee([e,t],"greater"),this.broadcastedBinaryOp(e,t,"bool",(s,n)=>s>n?1:0)}greaterEqual(e,t){return ee([e,t],"greaterEqual"),this.broadcastedBinaryOp(e,t,"bool",(s,n)=>s>=n?1:0)}logicalAnd(e,t){return ee([e,t],"logicalAnd"),this.broadcastedBinaryOp(e,t,"bool",(s,n)=>s&&n)}logicalOr(e,t){return ee([e,t],"logicalOr"),this.broadcastedBinaryOp(e,t,"bool",(s,n)=>s||n)}select(e,t,s){ee([e,t,s],"select");const n=this.readSync(e.dataId),i=this.readSync(t.dataId),r=this.readSync(s.dataId),o=ye(t.shape,Ft(t.dtype,s.dtype)),a=this.readSync(o.dataId);let l=0;const c=e.rank===0||e.rank>1||t.rank===1?1:N.sizeFromShape(t.shape.slice(1));for(let p=0;pMath.min(s,n))}mod(e,t){return ee([e,t],"mod"),this.broadcastedBinaryOp(e,t,e.dtype,(s,n)=>{const i=s%n;return s<0&&n<0||s>=0&&n>=0?i:(i+n)%n})}maximum(e,t){return ee([e,t],"maximum"),this.broadcastedBinaryOp(e,t,e.dtype,(s,n)=>Math.max(s,n))}all(e,t){ee(e,"all"),U.assertAxesAreInnerMostDims("all",t,e.rank);const[s,n]=U.computeOutAndReduceShapes(e.shape,t),i=ye(s,e.dtype),r=N.sizeFromShape(n),o=this.readSync(i.dataId),a=this.readSync(e.dataId);for(let l=0;l{const i=s-n;return i*i})}linear(e){return e}relu(e){ee(e,"relu");const t=ye(e.shape,e.dtype),s=this.readSync(t.dataId),n=this.readSync(e.dataId);for(let i=0;is<0?n*s:s)}eluDer(e,t){ee([e,t],"eluDer");const s=new Float32Array(t.size),n=this.readSync(t.dataId),i=this.readSync(e.dataId);for(let r=0;r=1?s[r]=i[r]:s[r]=i[r]*(o+1)}return this.makeOutput(s,t.shape,"float32")}atan2(e,t){return ee([e,t],"atan2"),this.broadcastedBinaryOp(e,t,e.dtype,(s,n)=>Math.atan2(s,n))}fusedConv2d({input:e,filter:t,convInfo:s,bias:n,activation:i,preluActivationWeights:r}){let o=this.conv2d(e,t,s);return n&&(o=$(o,n)),i&&(o=Kw(this,o,i,r)),o}conv2d(e,t,s){ee([e,t],"conv2d");const n=s.filterHeight,i=s.filterWidth,r=s.dilationHeight,o=s.dilationWidth,a=s.padInfo.left,l=s.padInfo.top,c=s.dataFormat==="channelsLast",p=ge(s.outShape,e.dtype),u=e.strides[0],h=c?e.strides[1]:e.strides[2],d=c?e.strides[2]:1,m=c?1:e.strides[1],f=p.strides[0],g=c?p.strides[1]:p.strides[2],y=c?p.strides[2]:1,w=c?1:p.strides[1],x=this.readSync(e.dataId),T=this.readSync(t.dataId),A=p.values;for(let _=0;_=s.inHeight)continue;const q=B*t.strides[0],K=E+Y*h;for(let H=0;H=s.inWidth)continue;const le=q+ie*t.strides[1],ue=K+ne*d;let oe=le;for(let de=0;de=s.inDepth)continue;const F=_*t.strides[0],D=y+E*e.strides[1];for(let M=0;M=s.inHeight)continue;const K=F+Y*t.strides[1],H=D+q*e.strides[2];for(let Q=0;Q=s.inWidth)continue;const ue=K+ne*t.strides[2],oe=H+le*s.inChannels;let de=ue;for(let Ae=0;Ae=s.inHeight)continue;const _=T*t.strides[0],E=f+A*e.strides[1];for(let F=0;F=s.inWidth)continue;const Y=_+P*t.strides[1],q=E+B*s.inChannels;let K=D,H=Y;for(let Q=0;Qc*p),i=U.getReshaped(e.shape,t,n),r=U.getPermuted(i.length,t.length),o=U.getReshapedPermuted(e.shape,t,n),a=U.getSliceBeginCoords(s,t.length),l=U.getSliceSize(o,s,t.length);return se(e.reshape(i),r).reshape(o).slice(a,l)}pool3d(e,t,s){ee(e,"pool3d");const n=t.strideDepth,i=t.strideHeight,r=t.strideWidth,o=t.dilationDepth,a=t.dilationHeight,l=t.dilationWidth,c=t.effectiveFilterDepth,p=t.effectiveFilterHeight,u=t.effectiveFilterWidth,h=t.padInfo.front,d=t.padInfo.top,m=t.padInfo.left,f=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,g=this.readSync(e.dataId),y=ge(t.outShape,e.dtype),w=y.values,x=t.outShape[1]*t.outShape[2]*t.outShape[3]*t.outShape[4],T=t.outShape[2]*t.outShape[3]*t.outShape[4],A=t.outShape[3]*t.outShape[4],_=t.outShape[4];for(let E=0;EMe?Me=cn:s==="avg"&&(Qe+=cn,St++),isNaN(Me))break}if(isNaN(Me))break}if(isNaN(Me))break}const $t=Ae+M;w[$t]=s==="avg"?Qe/St:Me}}}}return y.toTensor()}avgPool3d(e,t){return ee(e,"avgPool3d"),this.pool3d(e,t,"avg").toFloat()}avgPool3dBackprop(e,t,s){ee([e,t],"avgPool3dBackprop");const n=s.strideDepth,i=s.strideHeight,r=s.strideWidth,o=s.filterDepth,a=s.filterHeight,l=s.filterWidth,c=s.dilationDepth,p=s.dilationHeight,u=s.dilationWidth,h=s.effectiveFilterDepth,d=s.effectiveFilterHeight,m=s.effectiveFilterWidth,f=h-1-s.padInfo.front,g=m-1-s.padInfo.left,y=d-1-s.padInfo.top,w=ge(t.shape,"float32"),x=1/(o*a*l),T=this.bufferSync(e);for(let A=0;A=s.outDepth||Math.floor(K)!==K)continue;for(let H=0;H=s.outHeight||Math.floor(Q)!==Q)continue;for(let J=0;J=s.outWidth||Math.floor(ie)!==ie)continue;const ne=T.get(A,K,Q,ie,_);Y+=ne}}}w.set(Y*x,A,E,F,D,_)}return w.toTensor()}maxPool3d(e,t){return ee(e,"maxPool3d"),this.pool3d(e,t,"max").toFloat()}maxPool3dPositions(e,t){const s=ge(t.outShape,"int32"),n=t.strideDepth,i=t.strideHeight,r=t.strideWidth,o=t.dilationDepth,a=t.dilationHeight,l=t.dilationWidth,c=t.effectiveFilterDepth,p=t.effectiveFilterHeight,u=t.effectiveFilterWidth,h=t.padInfo.front,d=t.padInfo.top,m=t.padInfo.left,f=this.bufferSync(e);for(let g=0;g=q&&(q=ue,K=Q*p*u+ie*p+le)}}}s.set(K,g,w,_,M,y)}}}return s.toTensor()}maxPool3dBackprop(e,t,s,n){ee([t,s],"maxPool3dBackprop");const i=this.maxPool3dPositions(t,n),r=n.strideDepth,o=n.strideHeight,a=n.strideWidth,l=n.dilationDepth,c=n.dilationHeight,p=n.dilationWidth,u=n.effectiveFilterDepth,h=n.effectiveFilterHeight,d=n.effectiveFilterWidth,m=u-1-n.padInfo.front,f=d-1-n.padInfo.left,g=h-1-n.padInfo.top,y=ge(t.shape,"float32"),w=this.bufferSync(i),x=this.bufferSync(e);for(let T=0;T=n.outDepth||Math.floor(q)!==q)continue;for(let K=0;K=n.outHeight||Math.floor(H)!==H)continue;for(let Q=0;Q=n.outWidth||Math.floor(J)!==J)continue;const ie=u*h*d-1-w.get(T,q,H,J,A),ne=Y*h*d+K*d+Q,le=ie===ne?1:0;if(le===0)continue;const ue=x.get(T,q,H,J,A);B+=ue*le}}}y.set(B,T,_,E,F,A)}return y.toTensor()}resizeBilinear(e,t,s,n){ee(e,"resizeBilinear");const[i,r,o,a]=e.shape,l=this.readSync(e.dataId),c=new Float32Array(N.sizeFromShape([i,t,s,a])),p=[n&&t>1?r-1:r,n&&s>1?o-1:o],u=[n&&t>1?t-1:t,n&&s>1?s-1:s];let h=0;const d=p[0]/u[0],m=p[1]/u[1];for(let f=0;f1?i-1:i,s&&l>1?r-1:r],u=[s&&a>1?a-1:a,s&&l>1?l-1:l],h=p[0]/u[0],d=p[1]/u[1],m=this.readSync(e.dataId);let f=0;for(let g=0;g1?r-1:r,n&&s>1?o-1:o],u=[n&&t>1?t-1:t,n&&s>1?s-1:s],h=p[0]/u[0],d=p[1]/u[1];let m=0;for(let f=0;f1?i-1:i,s&&l>1?r-1:r],h=[s&&a>1?a-1:a,s&&l>1?l-1:l],d=u[0]/h[0],m=u[1]/h[1],f=1/d,g=1/m,y=Math.ceil(f)*2+2,w=Math.ceil(g)*2+2;for(let x=0;x=a)continue;const Q=T+H*e.strides[1],J=H*d,ie=Math.min(i-1,s?Math.round(J):Math.floor(J));if(A!==ie)continue;for(let ne=0;ne=l)continue;const ue=Q+le*e.strides[2],oe=le*m,de=Math.min(r-1,s?Math.round(oe):Math.floor(oe));D===de&&(q+=p[ue+Y])}}c[M+Y]=q}}}}return ss(c,t.shape,t.dtype)}localResponseNormalization4D(e,t,s,n,i){ee(e,"localResponseNormalization4D");const r=e.shape[3],o=r-1,a=this.readSync(e.dataId),l=e.size,c=new Float32Array(l);function p(u){const h=u%r;let d=u-h+Math.max(0,h-t);const m=u-h+Math.min(h+t,o);let f=0;for(;d<=m;d++){const g=a[d];f+=g*g}return f}for(let u=0;u=0&&r[o]`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${s}`),N.assert(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`);const n=e.shape[0],i=e.shape[1],r=e.shape[2],o=e.shape[3],a=i*t,l=r*t,c=o/(t*t),p=this.readSync(e.dataId),u=new Float32Array(n*a*l*c);let h=0;for(let d=0;df[x]=0);const g=u.locToIndex(f),y=m.slice(-t.rank);c.forEach(x=>y[x]=0);const w=h.locToIndex(y);p[d]=n(o[g],a[w])}}return r.toTensor()}split(e,t,s){return yj(e,t,s)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}cropAndResize(e,t,s,n,i,r){const[o,a,l,c]=e.shape,p=t.shape[0],[u,h]=n,d=ge([p,u,h,c],"float32"),m=this.readSync(t.dataId),f=this.readSync(s.dataId),g=this.readSync(e.dataId),y=e.strides,w=d.strides;for(let x=0;x=o)continue;const M=u>1?(E-A)*(a-1)/(u-1):0,P=h>1?(F-_)*(l-1)/(h-1):0;for(let B=0;B1?A*(a-1)+B*M:.5*(A+E)*(a-1);if(Y<0||Y>a-1){for(let q=0;q1?_*(l-1)+Q*P:.5*(_+F)*(l-1);if(J<0||J>l-1){for(let ue=0;ue1?_*(l-1)+q*P:.5*(_+F)*(l-1);if(K<0||K>l-1){for(let J=0;J=e.size/o)throw new Error(`Invalid indices: ${h} does not index into ${e.shape}`);for(let m=0;m=n/i)throw new Error(`Invalid indices: ${f} does not index into ${s}`);for(let y=0;y{const{x:t}=e.inputs,s=e.backend;let n=new Float32Array(N.sizeFromShape(t.shape));if(t.dtype!=="complex64"){const i=s.data.get(t.dataId).values;n=Jw(i)}else{const i=s.data.get(t.dataId),r=i.complexTensorInfos.real,o=i.complexTensorInfos.imag,a=s.data.get(r.dataId).values,l=s.data.get(o.dataId).values;for(let c=0;c{const o=U.assertAndGetBroadcastShape(t,s),a=o.length,l=N.computeStrides(o),c=N.sizeFromShape(o),p=N.getTypedArrayFromDType(r,c),u=t.length,h=s.length,d=N.computeStrides(t),m=N.computeStrides(s),f=U.getBroadcastDims(t,o),g=U.getBroadcastDims(s,o);if(f.length+g.length===0)for(let y=0;yx[E]=0);const T=N.locToIndex(x,u,d),A=w.slice(-h);g.forEach(E=>A[E]=0);const _=N.locToIndex(A,h,m);p[y]=e(n[T],i[_])}return[p,o]}}function Es(e){const{inputs:t,backend:s}=e,{real:n,imag:i}=t,r=s.data.get(n.dataId).values,o=s.data.get(i.dataId).values,a=s.makeTensorInfo(n.shape,"complex64"),l=s.data.get(a.dataId);return l.complexTensorInfos={real:s.makeTensorInfo(n.shape,"float32",r),imag:s.makeTensorInfo(i.shape,"float32",o)},a}const BC={kernelName:jc,backendName:"cpu",kernelFunc:Es};function bi(e){const{inputs:t,backend:s}=e,{x:n}=t;return s.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}const jC={kernelName:Ci,backendName:"cpu",kernelFunc:bi};function bo(e){const{inputs:t,backend:s}=e,{input:n}=t,i=s.data.get(n.dataId).complexTensorInfos.real,r=s.data.get(i.dataId).values;return s.makeTensorInfo(i.shape,i.dtype,r)}const VC={kernelName:mp,backendName:"cpu",kernelFunc:bo};function Xl(e){const{inputs:t,backend:s,attrs:n}=e,{x:i}=t,{dtype:r}=n;if(r==="complex64"){if(i.dtype==="complex64")return bi({inputs:{x:i},backend:s});const o=ye(i.shape),a=Xl({inputs:{x:i},backend:s,attrs:{dtype:"float32"}}),l=Es({inputs:{real:a,imag:o},backend:s});return o.dispose(),s.disposeIntermediateTensorInfo(a),l}if(i.dtype==="complex64"){const o=bo({inputs:{input:i},backend:s}),a=Xl({inputs:{x:o},backend:s,attrs:{dtype:r}});return s.disposeIntermediateTensorInfo(o),a}if(!N.hasEncodingLoss(i.dtype,r)){const o=bi({inputs:{x:i},backend:s});return{dataId:o.dataId,shape:o.shape,dtype:r}}if(r==="int32"){const o=s.data.get(i.dataId).values,a=Int32Array.from(o);return s.makeTensorInfo(i.shape,"int32",a)}if(r==="bool"){const o=s.data.get(i.dataId).values,a=N.toTypedArray([0],i.dtype),[l,c]=js((p,u)=>p!==u?1:0)(i.shape,[],o,a,"bool");return s.makeTensorInfo(c,"bool",l)}throw new Error(`Error in Cast: failed to cast ${i.dtype} to ${r}`)}const GC={kernelName:Ai,backendName:"cpu",kernelFunc:Xl};function On(e,t,s,n){return s==null?({inputs:i,backend:r})=>{const{a:o,b:a}=i,l=r;ee([o,a],e);const c=l.data.get(o.dataId).values,p=l.data.get(a.dataId).values,u=n||o.dtype,[h,d]=t(o.shape,a.shape,c,p,u);return l.makeTensorInfo(d,u,h)}:({inputs:i,backend:r})=>{const{a:o,b:a}=i,l=r;if(o.dtype==="complex64"||a.dtype==="complex64"){const c=Xl({inputs:{x:o},backend:l,attrs:{dtype:"complex64"}}),p=l.data.get(c.dataId),u=p.complexTensorInfos.real,h=p.complexTensorInfos.imag,d=l.data.get(u.dataId).values,m=l.data.get(h.dataId).values,f=Xl({inputs:{x:a},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(f.dataId),y=g.complexTensorInfos.real,w=g.complexTensorInfos.imag,x=l.data.get(y.dataId).values,T=l.data.get(w.dataId).values,[A,_,E]=s(o.shape,a.shape,d,m,x,T),F=l.makeTensorInfo(E,"float32",A),D=l.makeTensorInfo(E,"float32",_),M=Es({inputs:{real:F,imag:D},backend:l});return l.disposeIntermediateTensorInfo(c),l.disposeIntermediateTensorInfo(f),l.disposeIntermediateTensorInfo(F),l.disposeIntermediateTensorInfo(D),M}else{const c=l.data.get(o.dataId).values,p=l.data.get(a.dataId).values,u=n||o.dtype,[h,d]=t(o.shape,a.shape,c,p,u);return l.makeTensorInfo(d,u,h)}}}function Jl(e){return(t,s,n,i,r,o)=>{const a=U.assertAndGetBroadcastShape(t,s),l=N.sizeFromShape(a),c=a.length,p=N.computeStrides(a),u=N.getTypedArrayFromDType("float32",l),h=N.getTypedArrayFromDType("float32",l),d=U.getBroadcastDims(t,a),m=U.getBroadcastDims(s,a),f=U.mergeRealAndImagArrays(n,i),g=U.mergeRealAndImagArrays(r,o),y=t.length,w=N.computeStrides(t),x=s.length,T=N.computeStrides(s);if(d.length+m.length===0)for(let A=0;AE[B]=0);const F=N.locToIndex(E,y,w),D=_.slice(-x);m.forEach(B=>D[B]=0);const M=N.locToIndex(D,x,T),P=e(f[F*2],f[F*2+1],g[M*2],g[M*2+1]);u[A]=P.real,h[A]=P.imag}return[u,h,a]}}const Zw=js((e,t)=>e+t),Sj=Jl((e,t,s,n)=>({real:e+s,imag:t+n})),Qw=On(Zn,Zw,Sj),qC={kernelName:Zn,backendName:"cpu",kernelFunc:Qw};function En(e){return(t,s,n)=>{const i=N.getTypedArrayFromDType(s,t.length);for(let r=0;r{const{x:o}=n;if(ee(o,e),o.dtype==="string"||s==="string")throw new Error("unaryKernelFunc does not support string input/output");const a=r,l=a.data.get(o.dataId).values,c=N.sizeFromShape(o.shape),p=s||o.dtype,u=N.getArrayFromDType(p,c);for(let h=0;h{const{x:o}=n;if(ee(o,e),o.dtype==="string"||s==="string")throw new Error("unaryKernelFunc does not support string input/output");const a=r,l=a.data.get(o.dataId).values,c=s||o.dtype,p=t(l,c,i);return a.makeTensorInfo(o.shape,c,p)}}const ex=En(e=>Math.ceil(e)),Ij=_n(wr,ex),HC={kernelName:wr,backendName:"cpu",kernelFunc:Ij};const tx=En(e=>Math.exp(e)),vj=_n(vr,tx),YC={kernelName:vr,backendName:"cpu",kernelFunc:vj};const sx=En(e=>Math.expm1(e)),Tj=_n(Tr,sx),KC={kernelName:Tr,backendName:"cpu",kernelFunc:Tj};const nx=En(e=>Math.floor(e)),Aj=_n(Ar,nx),XC={kernelName:Ar,backendName:"cpu",kernelFunc:Aj};const ix=En(e=>Math.log(e)),Nj=_n(Or,ix),JC={kernelName:Or,backendName:"cpu",kernelFunc:Nj};function Yf(e,t,s,n){const i=N.getTypedArrayFromDType(n,N.sizeFromShape(s));for(let r=0;ra&&(a=c)}i[r]=a}return i}const rx=js((e,t)=>e*t),Cj=Jl((e,t,s,n)=>({real:e*s-t*n,imag:e*n+t*s})),ox=On(_r,rx,Cj),ZC={kernelName:_r,backendName:"cpu",kernelFunc:ox};const ax=En(e=>1/Math.sqrt(e)),Rj=_n(Fr,ax),QC={kernelName:Fr,backendName:"cpu",kernelFunc:Rj};function lx(e,t,s,n,i){const r=Ms.isSliceContinous(n,t,s),o=N.sizeFromShape(s),a=N.computeStrides(n);if(r){const c=Ms.computeFlatOffset(t,a);return e.subarray(c,c+o)}const l=N.getTypedArrayFromDType(i,o);for(let c=0;cf+t[g]),m=N.locToIndex(d,n.length,a);l[c]=e[m]}return l}function Kf(e){const{inputs:t,backend:s,attrs:n}=e,{x:i}=t,{begin:r,size:o}=n;ee(i,"slice");const[a,l]=Ms.parseSliceParams(i,r,o);Ms.assertParamsValid(i,a,l);const c=s.data.get(i.dataId).values,p=lx(c,a,l,i.shape,i.dtype);return s.makeTensorInfo(l,i.dtype,p)}const e0={kernelName:jo,backendName:"cpu",kernelFunc:Kf};const cx=js((e,t)=>e-t),Oj=Jl((e,t,s,n)=>({real:e-s,imag:t-n})),px=On(Br,cx,Oj),t0={kernelName:Br,backendName:"cpu",kernelFunc:px};function Zl(e,t,s,n,i){const r=t.length,o=N.sizeFromShape(t),a=N.computeStrides(t),l=N.computeStrides(i),c=N.getTypedArrayFromDType(s,N.sizeFromShape(i));for(let p=0;p{for(let g=0;gZw,ceilImpl:()=>ex,expImpl:()=>tx,expm1Impl:()=>sx,floorImpl:()=>nx,logImpl:()=>ix,maxImpl:()=>Yf,multiplyImpl:()=>rx,rsqrtImpl:()=>ax,simpleAbsImpl:()=>Jw,sliceImpl:()=>lx,subImpl:()=>cx,transposeImpl:()=>Zl,uniqueImpl:()=>Xf});const hx="2.6.0";Vp("cpu",()=>new Xw,1);const Ej=fe(dr,e=>Math.acos(e)),s0={kernelName:dr,backendName:"cpu",kernelFunc:Ej};const _j=fe(mr,e=>Math.acosh(e)),n0={kernelName:mr,backendName:"cpu",kernelFunc:_j};const kj=fe(fr,e=>Math.asin(e)),i0={kernelName:fr,backendName:"cpu",kernelFunc:kj};const Dj=fe(gr,e=>Math.asinh(e)),r0={kernelName:gr,backendName:"cpu",kernelFunc:Dj};const Fj=fe(yr,e=>Math.atan(e)),o0={kernelName:yr,backendName:"cpu",kernelFunc:Fj};const Mj=fe(br,e=>Math.atanh(e)),a0={kernelName:br,backendName:"cpu",kernelFunc:Mj};function Ql(e,t,s,n,i,r){const o=i.strideHeight,a=i.strideWidth,l=i.dilationHeight,c=i.dilationWidth,p=i.effectiveFilterHeight,u=i.effectiveFilterWidth,h=i.padInfo.top,d=i.padInfo.left,m=r==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,f=ge(i.outShape,s),g=f.values,y=i.outShape[1]*i.outShape[2]*i.outShape[3],w=i.outShape[2]*i.outShape[3],x=i.outShape[3];for(let T=0;TQ?Q=Ae:r==="avg"&&(J+=Ae,ie++)}if(isNaN(Q))break}const ne=B+Y*x+E;g[ne]=r==="avg"?J/ie:Q}}}return f}function Jf(e,t,s,n,i=!1,r=!1){const o=ge(n.outShape,"int32"),a=n.strideHeight,l=n.strideWidth,c=n.dilationHeight,p=n.dilationWidth,u=n.effectiveFilterHeight,h=n.effectiveFilterWidth,d=n.padInfo.top,m=n.padInfo.left,f=ge(t,s,e);for(let g=0;gM&&(M=H,i?P=r?((g*n.inHeight+B)*n.inWidth+q)*n.inChannels+y:(B*n.inWidth+q)*n.inChannels+y:P=Y*h+K)}}o.set(P,g,w,_,y)}}return o}function Uj(e){const{inputs:t,backend:s,attrs:n}=e,{x:i}=t;ee(i,"avgPool");const{filterSize:r,strides:o,pad:a,dimRoundingMode:l}=n,c=1;N.assert(U.eitherStridesOrDilationsAreOne(o,c),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${o} and dilations '${c}'`);const p=U.computePool2DInfo(i.shape,r,o,c,a,l);let u;if(p.filterWidth===1&&p.filterHeight===1&&N.arraysEqual(p.inShape,p.outShape))u=bi({inputs:{x:i},backend:s});else{const h=s.data.get(i.dataId).values,d=N.computeStrides(i.shape),m=Ql(h,i.shape,i.dtype,d,p,"avg");u=s.makeTensorInfo(p.outShape,i.dtype,m.values)}return u}const l0={kernelName:Ti,backendName:"cpu",kernelFunc:Uj};function $j(e){const{inputs:t,backend:s,attrs:n}=e,{dy:i,input:r}=t,o=r;ee([i,r],"avgPoolBackprop");const{filterSize:a,strides:l,pad:c}=n,p=U.computePool2DInfo(o.shape,a,l,1,c),u=p.strideHeight,h=p.strideWidth,d=p.filterHeight,m=p.filterWidth,f=p.dilationHeight,g=p.dilationWidth,y=p.effectiveFilterHeight,w=p.effectiveFilterWidth,x=w-1-p.padInfo.left,T=y-1-p.padInfo.top,A=ge(o.shape,"float32"),_=1/(d*m),E=s.data.get(i.dataId).values,F=ge(i.shape,"float32",E);for(let D=0;D=p.outHeight||Math.floor(Q)!==Q)continue;for(let J=0;J=p.outWidth||Math.floor(ie)!==ie)continue;const ne=F.get(D,Q,ie,M);K+=ne}}A.set(K*_,D,P,B,M)}return s.makeTensorInfo(A.shape,A.dtype,A.values)}const c0={kernelName:Do,backendName:"cpu",kernelFunc:$j};function Wj(e){const{inputs:t,backend:s,attrs:n}=e,{x:i,scale:r,offset:o,mean:a,variance:l}=t;N.assert(a.shape.length===l.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),N.assert(o==null||a.shape.length===o.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),N.assert(r==null||a.shape.length===r.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks."),ee([i,a,l,r,o],"batchNorm");let{varianceEpsilon:c}=n;c==null&&(c=.001);const p=s.data.get(i.dataId).values,u=s.data.get(a.dataId).values,h=s.data.get(l.dataId).values,d=r?s.data.get(r.dataId).values:new Float32Array([1]),m=o?s.data.get(o.dataId).values:new Float32Array([0]),f=new Float32Array(p.length),g=m.length,y=d.length,w=h.length,x=u.length;let T=0,A=0,_=0,E=0;for(let F=0;F=g&&(T=0),A>=x&&(A=0),_>=y&&(_=0),E>=w&&(E=0);return s.makeTensorInfo(i.shape,i.dtype,f)}const p0={kernelName:Ni,backendName:"cpu",kernelFunc:Wj};const zj=fe(xr,(e,t)=>{const s=t;return e>s.clipValueMax?s.clipValueMax:e`The new shape (${a}) has ${l} elements and the old shape (${i.shape}) has ${o} elements. The new shape and old shape must have the same number of elements.`),s.incRef(i.dataId);const c=s.data.get(i.dataId);if(c.complexTensorInfos!=null){const p=c.complexTensorInfos.real,u=c.complexTensorInfos.imag;p.shape=a,u.shape=a}return{dataId:i.dataId,shape:a,dtype:i.dtype}}const d0={kernelName:Ei,backendName:"cpu",kernelFunc:kn};function tc(e){const{inputs:t,backend:s,attrs:n}=e,{axis:i}=n,r=N.parseAxisParam(i,t[0].shape)[0];let o=U.computeOutShape(t.map(d=>d.shape),r);if(N.sizeFromShape(o)===0)return s.makeTensorInfo(o,t[0].dtype,[]);const a=t.filter(d=>N.sizeFromShape(d.shape)>0);if(a.length===1)return a[0];const l=a.map(d=>d.shape);if(U.assertParamsConsistent(l,r),a[0].dtype==="complex64"){const d=a.map(w=>bo({inputs:{input:w},backend:s})),m=a.map(w=>ec({inputs:{input:w},backend:s})),f=tc({inputs:d,backend:s,attrs:{axis:i}}),g=tc({inputs:m,backend:s,attrs:{axis:i}}),y=Es({inputs:{real:f,imag:g},backend:s});return d.forEach(w=>s.disposeIntermediateTensorInfo(w)),m.forEach(w=>s.disposeIntermediateTensorInfo(w)),s.disposeIntermediateTensorInfo(f),s.disposeIntermediateTensorInfo(g),y}const c=a.map(d=>{const m=N.sizeFromShape(d.shape.slice(r)),f=[-1,m];return kn({inputs:{x:d},backend:s,attrs:{shape:f}})});o=U.computeOutShape(c.map(d=>d.shape),1);const p=N.getTypedArrayFromDType(a[0].dtype,N.sizeFromShape(o));if(c[0].shape[0]===1){let d=0;c.forEach(m=>{const f=s.data.get(m.dataId).values,g=N.sizeFromShape(m.shape);p.set(f,d),d+=g})}else{let d=0;c.forEach(m=>{const f=s.data.get(m.dataId).values;let g=0;for(let y=0;yd.shape),r),h=s.makeTensorInfo(u,t[0].dtype,p);return c.forEach(d=>s.disposeIntermediateTensorInfo(d)),h}const m0={kernelName:Fo,backendName:"cpu",kernelFunc:tc};const Pj=fe(Qn,e=>Math.cos(e)),f0={kernelName:Qn,backendName:"cpu",kernelFunc:Pj};const Bj=fe(Lr,e=>Math.cosh(e)),g0={kernelName:Lr,backendName:"cpu",kernelFunc:Bj};const y0={kernelName:Mo,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:s})=>{const{x:n,filter:i}=e,{strides:r,pad:o,dilations:a}=s,l=t,c=l.data.get(n.dataId).values,p=n.shape.length,u=l.data.get(i.dataId).values,h=i.shape.length,{batchSize:d,inHeight:m,inWidth:f,inChannels:g,outHeight:y,outWidth:w,padInfo:x,strideHeight:T,strideWidth:A,filterHeight:_,filterWidth:E,dilationHeight:F,dilationWidth:D,outShape:M}=U.computeDilation2DInfo(n.shape,i.shape,r,o,"NHWC",a),P=N.sizeFromShape(M),B=M.length,Y=N.getArrayFromDType(n.dtype,P);for(let K=0;K=0&&de=0&&Mele&&(le=$t)}}}const ue=N.locToIndex([K,H,J,ne],B,N.computeStrides(M));Y[ue]=le}}}const q=l.write(N.toTypedArray(Y,n.dtype),M,n.dtype);return{dataId:q,shape:M,dtype:n.dtype}}};const b0={kernelName:Ha,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:s})=>{const{x:n,filter:i,dy:r}=e,{strides:o,pad:a,dilations:l}=s,c=t,p=N.toNestedArray(n.shape,c.data.get(n.dataId).values),u=N.toNestedArray(i.shape,c.data.get(i.dataId).values),{batchSize:h,inHeight:d,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:w,strideHeight:x,strideWidth:T,filterHeight:A,filterWidth:_,dilationHeight:E,dilationWidth:F,outShape:D}=U.computeDilation2DInfo(n.shape,i.shape,o,a,"NHWC",l);N.assert(r.rank===D.length,()=>`Error in ${Ha}, dy must have the same rank as output ${D.length}, but got ${r.rank}`);const M=N.toNestedArray(D,c.data.get(r.dataId).values),P=N.makeZerosNestedTypedArray(i.shape,i.dtype);for(let Y=0;Y=0&&oe=0&&Aeie&&(ie=Me,ne=ue,le=de)}}}P[ne][le][J]+=M[Y][q][H][J]}}}const B=c.write(N.toTypedArray(P,n.dtype),i.shape,i.dtype);return{dataId:B,shape:i.shape,dtype:i.dtype}}};const w0={kernelName:qa,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:s})=>{const{x:n,filter:i,dy:r}=e,{strides:o,pad:a,dilations:l}=s,c=t,p=N.toNestedArray(n.shape,c.data.get(n.dataId).values),u=N.toNestedArray(i.shape,c.data.get(i.dataId).values),{batchSize:h,inHeight:d,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:w,strideHeight:x,strideWidth:T,filterHeight:A,filterWidth:_,dilationHeight:E,dilationWidth:F,outShape:D}=U.computeDilation2DInfo(n.shape,i.shape,o,a,"NHWC",l);N.assert(r.rank===D.length,()=>`Error in ${qa}, dy must have the same rank as output ${D.length}, but got ${r.rank}`);const M=N.toNestedArray(D,c.data.get(r.dataId).values),P=N.makeZerosNestedTypedArray(n.shape,n.dtype);for(let Y=0;Y=0&&oe=0&&Aeie&&(ie=Me,ne=oe,le=Ae)}}}P[Y][ne][le][J]+=M[Y][q][H][J]}}}const B=c.write(N.toTypedArray(P,n.dtype),n.shape,n.dtype);return{dataId:B,shape:n.shape,dtype:n.dtype}}};const jj=js((e,t)=>e/t),Vj=On(ei,jj),Du={kernelName:ei,backendName:"cpu",kernelFunc:Vj};const Gj=fe(Sr,e=>e>=0?e:Math.exp(e)-1),x0={kernelName:Sr,backendName:"cpu",kernelFunc:Gj};const qj=U.ERF_P,Hj=U.ERF_A1,Yj=U.ERF_A2,Kj=U.ERF_A3,Xj=U.ERF_A4,Jj=U.ERF_A5,Zj=fe(Ir,e=>{const t=Math.sign(e),s=Math.abs(e),n=1/(1+qj*s);return t*(1-((((Jj*n+Xj)*n+Kj)*n+Yj)*n+Hj)*n*Math.exp(-s*s))}),L0={kernelName:Ir,backendName:"cpu",kernelFunc:Zj};function Zf(e,t,s){const n=e.shape,i=n[0],r=n[1],o=s.data.get(e.dataId),a=o.complexTensorInfos.real,l=o.complexTensorInfos.imag,c=[i,r],p=N.sizeFromShape(c),u=N.getTypedArrayFromDType("float32",p),h=N.getTypedArrayFromDType("float32",p);for(let g=0;g{const{image:n}=e,i=s,r=N.getTypedArrayFromDType(n.dtype,N.sizeFromShape(n.shape)),[o,a,l,c]=n.shape,p=i.data.get(n.dataId).values;for(let h=0;h=0&&ANumber.isFinite(e)?1:0,"bool"),T0={kernelName:Nr,backendName:"cpu",kernelFunc:i3};const r3=fe(Cr,e=>Math.abs(e)===Infinity?1:0,"bool"),A0={kernelName:Cr,backendName:"cpu",kernelFunc:r3};const o3=fe(Rr,e=>Number.isNaN(e)?1:0,"bool"),N0={kernelName:Rr,backendName:"cpu",kernelFunc:o3};const a3=fe(Er,e=>Math.log1p(e)),C0={kernelName:Er,backendName:"cpu",kernelFunc:a3};const l3=fe(Ya,e=>e?0:1,"bool"),R0={kernelName:Ya,backendName:"cpu",kernelFunc:l3};const O0={kernelName:Ri,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:s})=>{const{x:n}=e,{reductionIndices:i,keepDims:r}=t,o=s;let a=n.shape;const l=a.length,c=N.parseAxisParam(i,a);let p=c;const u=U.getAxesPermutation(p,l);let h=o.data.get(n.dataId).values;if(u!=null){const x=new Array(l);for(let T=0;T`Error in maxPool: Either strides or dilations must be 1. Got strides ${o} and dilations '${c}'`);const p=U.computePool2DInfo(i.shape,r,o,c,a,l);let u;if(p.filterWidth===1&&p.filterHeight===1&&N.arraysEqual(p.inShape,p.outShape))u=bi({inputs:{x:i},backend:s});else{const h=s.data.get(i.dataId).values,d=N.computeStrides(i.shape),m=Ql(h,i.shape,i.dtype,d,p,"max");u=s.makeTensorInfo(p.outShape,i.dtype,m.values)}return u}const E0={kernelName:Oi,backendName:"cpu",kernelFunc:c3};function p3(e){const{inputs:t,backend:s,attrs:n}=e,{dy:i,input:r,output:o}=t,a=r;ee([r,o],"maxPoolBackprop");const{filterSize:l,strides:c,pad:p,dimRoundingMode:u}=n,h=U.computePool2DInfo(a.shape,l,c,1,p,u),d=s.data.get(a.dataId).values,m=ge(h.outShape,a.dtype,Jf(d,a.shape,a.dtype,h).values),f=h.strideHeight,g=h.strideWidth,y=h.dilationHeight,w=h.dilationWidth,x=h.effectiveFilterHeight,T=h.effectiveFilterWidth,A=T-1-h.padInfo.left,_=x-1-h.padInfo.top,E=ge(a.shape,"float32"),F=s.data.get(i.dataId).values,D=ge(i.shape,"float32",F);for(let M=0;M=h.outHeight||Math.floor(J)!==J)continue;for(let ie=0;ie=h.outWidth||Math.floor(ne)!==ne)continue;const le=x*T-1-m.get(M,J,ne,P),ue=Q*T+ie,oe=le===ue?1:0;if(oe===0)continue;const de=D.get(M,J,ne,P);H+=de*oe}}E.set(H,M,B,Y,P)}return s.makeTensorInfo(E.shape,E.dtype,E.values)}const _0={kernelName:$o,backendName:"cpu",kernelFunc:p3};function k0(e,t,s,n,i){const r=N.computeStrides(t),o=Ql(e,t,s,r,i,"max"),a=Jf(e,t,s,i,!0,n);return[o.values,a.values]}const D0={kernelName:Wo,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:s})=>{const{x:n}=e,{filterSize:i,strides:r,pad:o,includeBatchInIndex:a}=t,l=s;ee(n,"MaxPoolWithArgmax");const c=l.data.get(n.dataId).values,p=U.computePool2DInfo(n.shape,i,r,[1,1],o),[u,h]=k0(c,n.shape,n.dtype,a,p),d=l.write(u,p.outShape,n.dtype),m=l.write(h,p.outShape,n.dtype);return[{dataId:d,shape:p.outShape,dtype:n.dtype},{dataId:m,shape:p.outShape,dtype:"int32"}]}};const u3=vt.nonMaxSuppressionV4Impl,F0={kernelName:zo,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:s})=>{const{boxes:n,scores:i}=e,{maxOutputSize:r,iouThreshold:o,scoreThreshold:a,padToMaxOutputSize:l}=s,c=t;ee(n,"NonMaxSuppressionPadded");const p=c.data.get(n.dataId).values,u=c.data.get(i.dataId).values,{selectedIndices:h,validOutputs:d}=u3(p,u,r,o,a,l);return[h,d]}};const h3=vt.nonMaxSuppressionV5Impl,M0={kernelName:Po,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:s})=>{const{boxes:n,scores:i}=e,{maxOutputSize:r,iouThreshold:o,scoreThreshold:a,softNmsSigma:l}=s,c=t;ee(n,"NonMaxSuppressionWithScore");const p=c.data.get(n.dataId).values,u=c.data.get(i.dataId).values,h=r,d=o,m=a,f=l,{selectedIndices:g,selectedScores:y}=h3(p,u,h,d,m,f);return[g,y]}};const d3=js((e,t)=>e!==t?1:0),m3=On(Ka,d3,null,"bool"),U0={kernelName:Ka,backendName:"cpu",kernelFunc:m3};function f3(e){const{inputs:t,backend:s,attrs:n}=e,{x:i}=t,{paddings:r,constantValue:o}=n;ee(i,"pad");const a=r.map((w,x)=>w[0]+i.shape[x]+w[1]),l=r.map(w=>w[0]),c=s.data.get(i.dataId).values,p=N.sizeFromShape(i.shape),u=i.shape.length,h=N.computeStrides(i.shape),d=N.sizeFromShape(a),m=a.length,f=N.computeStrides(a),g=N.getTypedArrayFromDType(i.dtype,d);o!==0&&g.fill(o);for(let w=0;w_+l[E]),A=N.locToIndex(T,m,f);g[A]=c[w]}const y=s.write(g,a,i.dtype);return{dataId:y,shape:a,dtype:i.dtype}}const Qf={kernelName:Bo,backendName:"cpu",kernelFunc:f3};const g3=fe(kr,e=>1/e),$0={kernelName:kr,backendName:"cpu",kernelFunc:g3};const W0={kernelName:Ho,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:s})=>{const{image:n}=e,{radians:i,fillValue:r,center:o}=t,a=s,l=N.getTypedArrayFromDType(n.dtype,N.sizeFromShape(n.shape)),[c,p,u,h]=n.shape,[d,m]=U.getImageCenter(o,p,u),f=255,g=Math.sin(i),y=Math.cos(i),w=a.data.get(n.dataId).values;for(let T=0;T=0&&q=0&&K{const t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2===0?t:t+1}),z0={kernelName:Dr,backendName:"cpu",kernelFunc:y3};const b3=U.SELU_SCALEALPHA,w3=U.SELU_SCALE,x3=fe(Mr,e=>e>=0?w3*e:b3*(Math.exp(e)-1)),P0={kernelName:Mr,backendName:"cpu",kernelFunc:x3};const L3=fe(Wr,e=>1/(1+Math.exp(-e))),B0={kernelName:Wr,backendName:"cpu",kernelFunc:L3};const S3=fe($r,e=>e<0?-1:e>0?1:0),j0={kernelName:$r,backendName:"cpu",kernelFunc:S3};const I3=fe(ti,e=>Math.sin(e)),V0={kernelName:ti,backendName:"cpu",kernelFunc:I3};const v3=fe(Ur,e=>Math.sinh(e)),G0={kernelName:Ur,backendName:"cpu",kernelFunc:v3};const T3=11920928955078125e-23,q0=Math.log(T3)+2,A3=fe(zr,e=>{const t=e>-q0,s=eMath.sqrt(e)),X0={kernelName:Pr,backendName:"cpu",kernelFunc:C3};const J0={kernelName:Go,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{const{x:s}=e,n=t;ee(s,"square");const i=n.data.get(s.dataId).values,r=new Float32Array(i.length);for(let a=0;a{const s=e-t;return s*s}),O3=On(si,R3),Z0={kernelName:si,backendName:"cpu",kernelFunc:O3};const E3=fe(Vr,(e,t)=>{const s=t;return isNaN(e)?NaN:e>0?1:s.alpha}),Q0={kernelName:Vr,backendName:"cpu",kernelFunc:E3};const _3=fe(ni,e=>Math.tan(e)),eR={kernelName:ni,backendName:"cpu",kernelFunc:_3};const k3=fe(jr,e=>Math.tanh(e)),tR={kernelName:jr,backendName:"cpu",kernelFunc:k3};function D3(e){const{inputs:t,attrs:s,backend:n}=e,{axis:i}=s,{x:r}=t;ee(r,"unique");const o=n.data.get(r.dataId).values,{outputValues:a,outputShape:l,indices:c}=Xf(o,i,r.shape,r.dtype);return[n.makeTensorInfo(l,r.dtype,a),n.makeTensorInfo([c.length],"int32",c)]}const sR={kernelName:qo,backendName:"cpu",kernelFunc:D3};const F3=[PC,s0,n0,qC,i0,r0,o0,a0,l0,c0,p0,GC,HC,u0,BC,m0,f0,g0,y0,w0,b0,Du,x0,L0,YC,KC,S0,I0,XC,jC,v0,h0,T0,A0,N0,JC,C0,R0,E0,_0,D0,O0,ZC,F0,M0,U0,Qf,VC,$0,d0,W0,z0,QC,P0,B0,j0,V0,G0,e0,H0,K0,X0,J0,Z0,Q0,t0,eR,tR,Y0,sR];for(const e of F3)Za(e);const va={},fx={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function gx(e,t){va[e]=t}function on(e){if(!(e in va)){const s=M3(e);if(s!==null)va[e]=s;else return console.log("Could not get context for WebGL version",e),null}const t=va[e];return t.isContextLost()?(delete va[e],on(e)):(t.disable(t.DEPTH_TEST),t.disable(t.STENCIL_TEST),t.disable(t.BLEND),t.disable(t.DITHER),t.disable(t.POLYGON_OFFSET_FILL),t.disable(t.SAMPLE_COVERAGE),t.enable(t.SCISSOR_TEST),t.enable(t.CULL_FACE),t.cullFace(t.BACK),va[e])}function U3(e){if(typeof OffscreenCanvas!="undefined"&&e===2)return new OffscreenCanvas(300,150);if(typeof document!="undefined")return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}function M3(e){if(e!==1&&e!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");const t=U3(e);return t.addEventListener("webglcontextlost",s=>{s.preventDefault(),delete va[e]},!1),e===1?t.getContext("webgl",fx)||t.getContext("experimental-webgl",fx):t.getContext("webgl2",fx)}var wo;(function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"})(wo||(wo={}));var is;(function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"})(is||(is={}));var Xt;(function(e){e[e.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",e[e.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",e[e.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",e[e.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",e[e.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"})(Xt||(Xt={}));function Ta(e,t){return[t,e]}function nR(e,t){return e*t}function xo(e){const t=N.sizeFromShape(e),s=Math.ceil(t/4);return N.sizeToSquarishShape(s)}function wi(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function iR(e,t){const[s,n]=wi(e,t);return s*n*4}function Fu(e,t){const s=e;let n,i,r,o,a,l,c,p,u,h;return W().getNumber("WEBGL_VERSION")===2?(n=s.R32F,i=s.R16F,r=s.RGBA16F,o=s.RGBA32F,a=s.RED,c=4,p=1,u=s.HALF_FLOAT,h=s.FLOAT):(n=e.RGBA,i=e.RGBA,r=e.RGBA,o=s.RGBA,a=e.RGBA,c=4,p=4,u=t!=null?t.HALF_FLOAT_OES:null,h=e.FLOAT),l=e.RGBA,{internalFormatFloat:n,internalFormatHalfFloat:i,internalFormatPackedHalfFloat:r,internalFormatPackedFloat:o,textureFormatFloat:a,downloadTextureFormat:l,downloadUnpackNumChannels:c,defaultNumChannels:p,textureTypeHalfFloat:u,textureTypeFloat:h}}function pe(e,t){const s=t();return W().getBool("DEBUG")&&$3(e),s}function $3(e){const t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+W3(e,t))}const z3=596e-10,P3=65504;function rR(e){return!!(W().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||e===0||z3e.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function oR(e,t){const s=Ji(e,()=>e.createShader(e.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(pe(e,()=>e.shaderSource(s,t)),pe(e,()=>e.compileShader(s)),e.getShaderParameter(s,e.COMPILE_STATUS)===!1)throw console.log(e.getShaderInfoLog(s)),new Error("Failed to compile vertex shader.");return s}function aR(e,t){const s=Ji(e,()=>e.createShader(e.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(pe(e,()=>e.shaderSource(s,t)),pe(e,()=>e.compileShader(s)),e.getShaderParameter(s,e.COMPILE_STATUS)===!1)throw B3(t,e.getShaderInfoLog(s)),new Error("Failed to compile fragment shader.");return s}const j3=/ERROR: [0-9]+:([0-9]+):/g;function B3(e,t){const s=j3.exec(t);if(s==null){console.log(`Couldn't parse line number in error: ${t}`),console.log(e);return}const n=+s[1],i=e.split(` `),r=i.length.toString().length+2,o=i.map((u,h)=>N.rightPad((h+1).toString(),r)+u);let a=0;for(let u=0;ue.createProgram(),"Unable to create WebGLProgram.")}function pR(e,t){if(pe(e,()=>e.linkProgram(t)),e.getProgramParameter(t,e.LINK_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Failed to link vertex and fragment shaders.")}function eg(e,t){if(pe(e,()=>e.validateProgram(t)),e.getProgramParameter(t,e.VALIDATE_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function uR(e,t){const s=Ji(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return pe(e,()=>e.bindBuffer(e.ARRAY_BUFFER,s)),pe(e,()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)),s}function hR(e,t){const s=Ji(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return pe(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,s)),pe(e,()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW)),s}function dR(e){return Ji(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function mR(e,t){const s=W().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(e<=0||t<=0){const n=`[${e}x${t}]`;throw new Error("Requested texture size "+n+" is invalid.")}if(e>s||t>s){const n=`[${e}x${t}]`,i=`[${s}x${s}]`;throw new Error("Requested texture size "+n+" greater than WebGL maximum on this browser / GPU "+i+".")}}function fR(e){return Ji(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function yx(e,t,s,n,i,r,o){const a=e.getAttribLocation(t,s);return a===-1?!1:(pe(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),pe(e,()=>e.vertexAttribPointer(a,i,e.FLOAT,!1,r,o)),pe(e,()=>e.enableVertexAttribArray(a)),!0)}function q3(e,t,s){G3(e,s),pe(e,()=>e.activeTexture(e.TEXTURE0+s)),pe(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function gR(e,t,s){return Ji(e,()=>e.getUniformLocation(t,s),'uniform "'+s+'" not present in program.')}function yR(e,t,s){return e.getUniformLocation(t,s)}function bR(e,t,s,n){pe(e,()=>q3(e,t,n)),pe(e,()=>e.uniform1i(s,n))}function tg(e,t,s){pe(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,s)),pe(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0))}function bx(e,t){pe(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),pe(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function Uu(e){const t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+H3(e,t))}function H3(e,t){switch(t){case e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case e.FRAMEBUFFER_UNSUPPORTED:return"FRAMEBUFFER_UNSUPPORTED";default:return`unknown error ${t}`}}function Ji(e,t,s){const n=pe(e,()=>t());if(n==null)throw new Error(s);return n}function G3(e,t){const s=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,n=t+e.TEXTURE0;if(ns){const i=`[gl.TEXTURE0, gl.TEXTURE${s}]`;throw new Error(`textureUnit must be in ${i}.`)}}function Lo(e,t=2){return N.sizeFromShape(e.slice(0,e.length-t))}function So(e){if(e.length===0)throw Error("Cannot get rows and columns of an empty shape array.");return[e.length>1?e[e.length-2]:1,e[e.length-1]]}function sg(e){let t=[1,1,1];const s=e.length===0||e.length===1&&e[0]===1;return s||(t=[Lo(e),...So(e)]),t}function wR(e,t=!1){let s=W().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(t&&(s=s*2,e=e.map((i,r)=>r>=e.length-2?N.nearestLargerEven(e[r]):e[r]),e.length===1&&(e=[2,e[0]])),e.length!==2){const i=N.squeezeShape(e);e=i.newShape}let n=N.sizeFromShape(e);if(e.length<=1&&n<=s)return[1,n];if(e.length===2&&e[0]<=s&&e[1]<=s)return e;if(e.length===3&&e[0]*e[1]<=s&&e[2]<=s)return[e[0]*e[1],e[2]];if(e.length===3&&e[0]<=s&&e[1]*e[2]<=s)return[e[0],e[1]*e[2]];if(e.length===4&&e[0]*e[1]*e[2]<=s&&e[3]<=s)return[e[0]*e[1]*e[2],e[3]];if(e.length===4&&e[0]<=s&&e[1]*e[2]*e[3]<=s)return[e[0],e[1]*e[2]*e[3]];if(t){const i=Lo(e);let r=2,o=2;return e.length&&([r,o]=So(e)),n=i*(r/2)*(o/2),N.sizeToSquarishShape(n).map(a=>a*2)}return N.sizeToSquarishShape(n)}function ng(e){return e%2===0}function sc(e,t){if(e=e.slice(-2),t=t.slice(-2),N.arraysEqual(e,t))return!0;if(!e.length||!t.length)return!0;if(e[0]===0||e[1]===0||t[0]===0||t[1]===0)return!0;if(e.length!==t.length){const s=e.slice(-1)[0],n=t.slice(-1)[0];if(s===n)return!0;if(ng(s)&&ng(n)&&(e[0]===1||t[0]===1))return!0}return e[1]===t[1]&&ng(e[0])&&ng(t[0])}let wx,xx;function xR(e){if(wx==null){const t=on(e);wx=t.getParameter(t.MAX_TEXTURE_SIZE)}return wx}function LR(e){if(xx==null){const t=on(e);xx=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,xx)}function SR(e){if(e===0)return 0;let t;const s=on(e);return an(s,"EXT_disjoint_timer_query_webgl2")&&e===2?t=2:an(s,"EXT_disjoint_timer_query")?t=1:t=0,t}function an(e,t){const s=e.getExtension(t);return s!=null}function Lx(e){try{const t=on(e);if(t!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function IR(e){if(e===0)return!1;const t=on(e);if(e===1){if(!an(t,"OES_texture_float"))return!1}else if(!an(t,"EXT_color_buffer_float"))return!1;const s=Sx(t);return s}function vR(e){if(e===0)return!1;const t=on(e);if(e===1){if(!an(t,"OES_texture_float"))return!1;if(!an(t,"WEBGL_color_buffer_float"))return!1}else{if(an(t,"EXT_color_buffer_float"))return Sx(t);const n="EXT_color_buffer_half_float";if(an(t,n)){const i=t.getExtension(n);return Y3(t,i)}return!1}const s=Sx(t);return s}function Sx(e){const t=Fu(e),s=e.createTexture();e.bindTexture(e.TEXTURE_2D,s);const n=1,i=1;e.texImage2D(e.TEXTURE_2D,0,t.internalFormatFloat,n,i,0,t.textureFormatFloat,t.textureTypeFloat,null);const r=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,r),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,s,0);const o=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(s),e.deleteFramebuffer(r),o}function Y3(e,t){const s=Fu(e,t),n=e.createTexture();e.bindTexture(e.TEXTURE_2D,n);const i=1,r=1;e.texImage2D(e.TEXTURE_2D,0,s.internalFormatHalfFloat,i,r,0,s.textureFormatFloat,s.textureTypeHalfFloat,null);const o=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,o),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0);const a=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(n),e.deleteFramebuffer(o),a}function TR(e){if(e!==2)return!1;const t=on(e),s=t.fenceSync!=null;return s}function xi(e,t){Array.isArray(e)||(e=[e]),e.forEach(s=>{s!=null&&N.assert(s.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the WebGL backend.`)})}const ve=W();ve.registerFlag("HAS_WEBGL",()=>ve.getNumber("WEBGL_VERSION")>0);ve.registerFlag("WEBGL_VERSION",()=>Lx(2)?2:Lx(1)?1:0);ve.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);ve.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>ve.get("WEBGL_VERSION")===2);ve.registerFlag("WEBGL_CPU_FORWARD",()=>!0);ve.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);ve.registerFlag("WEBGL_PACK",()=>ve.getBool("HAS_WEBGL"));ve.registerFlag("WEBGL_PACK_NORMALIZATION",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_CLIP",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>!1);ve.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_REDUCE",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_LAZILY_UNPACK",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_CONV_IM2COL",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>xR(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>LR(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{const e=ve.getNumber("WEBGL_VERSION");return e===0?0:SR(e)});ve.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>ve.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!rl.isMobile());ve.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>IR(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>ve.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:ve.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));ve.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>vR(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_FENCE_API_ENABLED",()=>TR(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>{const e=ve.getBool("WEBGL_RENDER_FLOAT32_ENABLED");return e?4:0});ve.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,e=>{if(e<0&&e!==-1)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${e}.`)});const{simpleAbsImpl:AR,addImpl:NR,ceilImpl:CR,expImpl:RR,expm1Impl:OR,floorImpl:ER,logImpl:_R,maxImpl:kR,multiplyImpl:DR,rsqrtImpl:FR,sliceImpl:MR,subImpl:UR,transposeImpl:ig,uniqueImpl:$R}=ux;class WR{constructor(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map((i,r)=>`T${r}`);const s=[];this.variableNames.forEach(i=>{s.push(`float v${i} = get${i}AtOutCoords();`)});const n=this.variableNames.map(i=>`v${i}`).join(" + ");this.userCode=` +`))}function lR(e){return Ji(e,()=>e.createProgram(),"Unable to create WebGLProgram.")}function cR(e,t){if(pe(e,()=>e.linkProgram(t)),e.getProgramParameter(t,e.LINK_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Failed to link vertex and fragment shaders.")}function eg(e,t){if(pe(e,()=>e.validateProgram(t)),e.getProgramParameter(t,e.VALIDATE_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function pR(e,t){const s=Ji(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return pe(e,()=>e.bindBuffer(e.ARRAY_BUFFER,s)),pe(e,()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)),s}function uR(e,t){const s=Ji(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return pe(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,s)),pe(e,()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW)),s}function hR(e){return Ji(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function dR(e,t){const s=W().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(e<=0||t<=0){const n=`[${e}x${t}]`;throw new Error("Requested texture size "+n+" is invalid.")}if(e>s||t>s){const n=`[${e}x${t}]`,i=`[${s}x${s}]`;throw new Error("Requested texture size "+n+" greater than WebGL maximum on this browser / GPU "+i+".")}}function mR(e){return Ji(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function yx(e,t,s,n,i,r,o){const a=e.getAttribLocation(t,s);return a===-1?!1:(pe(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),pe(e,()=>e.vertexAttribPointer(a,i,e.FLOAT,!1,r,o)),pe(e,()=>e.enableVertexAttribArray(a)),!0)}function G3(e,t,s){V3(e,s),pe(e,()=>e.activeTexture(e.TEXTURE0+s)),pe(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function fR(e,t,s){return Ji(e,()=>e.getUniformLocation(t,s),'uniform "'+s+'" not present in program.')}function gR(e,t,s){return e.getUniformLocation(t,s)}function yR(e,t,s,n){pe(e,()=>G3(e,t,n)),pe(e,()=>e.uniform1i(s,n))}function tg(e,t,s){pe(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,s)),pe(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0))}function bx(e,t){pe(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),pe(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function Uu(e){const t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+q3(e,t))}function q3(e,t){switch(t){case e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case e.FRAMEBUFFER_UNSUPPORTED:return"FRAMEBUFFER_UNSUPPORTED";default:return`unknown error ${t}`}}function Ji(e,t,s){const n=pe(e,()=>t());if(n==null)throw new Error(s);return n}function V3(e,t){const s=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,n=t+e.TEXTURE0;if(ns){const i=`[gl.TEXTURE0, gl.TEXTURE${s}]`;throw new Error(`textureUnit must be in ${i}.`)}}function Lo(e,t=2){return N.sizeFromShape(e.slice(0,e.length-t))}function So(e){if(e.length===0)throw Error("Cannot get rows and columns of an empty shape array.");return[e.length>1?e[e.length-2]:1,e[e.length-1]]}function sg(e){let t=[1,1,1];const s=e.length===0||e.length===1&&e[0]===1;return s||(t=[Lo(e),...So(e)]),t}function bR(e,t=!1){let s=W().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(t&&(s=s*2,e=e.map((i,r)=>r>=e.length-2?N.nearestLargerEven(e[r]):e[r]),e.length===1&&(e=[2,e[0]])),e.length!==2){const i=N.squeezeShape(e);e=i.newShape}let n=N.sizeFromShape(e);if(e.length<=1&&n<=s)return[1,n];if(e.length===2&&e[0]<=s&&e[1]<=s)return e;if(e.length===3&&e[0]*e[1]<=s&&e[2]<=s)return[e[0]*e[1],e[2]];if(e.length===3&&e[0]<=s&&e[1]*e[2]<=s)return[e[0],e[1]*e[2]];if(e.length===4&&e[0]*e[1]*e[2]<=s&&e[3]<=s)return[e[0]*e[1]*e[2],e[3]];if(e.length===4&&e[0]<=s&&e[1]*e[2]*e[3]<=s)return[e[0],e[1]*e[2]*e[3]];if(t){const i=Lo(e);let r=2,o=2;return e.length&&([r,o]=So(e)),n=i*(r/2)*(o/2),N.sizeToSquarishShape(n).map(a=>a*2)}return N.sizeToSquarishShape(n)}function ng(e){return e%2===0}function sc(e,t){if(e=e.slice(-2),t=t.slice(-2),N.arraysEqual(e,t))return!0;if(!e.length||!t.length)return!0;if(e[0]===0||e[1]===0||t[0]===0||t[1]===0)return!0;if(e.length!==t.length){const s=e.slice(-1)[0],n=t.slice(-1)[0];if(s===n)return!0;if(ng(s)&&ng(n)&&(e[0]===1||t[0]===1))return!0}return e[1]===t[1]&&ng(e[0])&&ng(t[0])}let wx,xx;function wR(e){if(wx==null){const t=on(e);wx=t.getParameter(t.MAX_TEXTURE_SIZE)}return wx}function xR(e){if(xx==null){const t=on(e);xx=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,xx)}function LR(e){if(e===0)return 0;let t;const s=on(e);return an(s,"EXT_disjoint_timer_query_webgl2")&&e===2?t=2:an(s,"EXT_disjoint_timer_query")?t=1:t=0,t}function an(e,t){const s=e.getExtension(t);return s!=null}function Lx(e){try{const t=on(e);if(t!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function SR(e){if(e===0)return!1;const t=on(e);if(e===1){if(!an(t,"OES_texture_float"))return!1}else if(!an(t,"EXT_color_buffer_float"))return!1;const s=Sx(t);return s}function IR(e){if(e===0)return!1;const t=on(e);if(e===1){if(!an(t,"OES_texture_float"))return!1;if(!an(t,"WEBGL_color_buffer_float"))return!1}else{if(an(t,"EXT_color_buffer_float"))return Sx(t);const n="EXT_color_buffer_half_float";if(an(t,n)){const i=t.getExtension(n);return H3(t,i)}return!1}const s=Sx(t);return s}function Sx(e){const t=Fu(e),s=e.createTexture();e.bindTexture(e.TEXTURE_2D,s);const n=1,i=1;e.texImage2D(e.TEXTURE_2D,0,t.internalFormatFloat,n,i,0,t.textureFormatFloat,t.textureTypeFloat,null);const r=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,r),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,s,0);const o=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(s),e.deleteFramebuffer(r),o}function H3(e,t){const s=Fu(e,t),n=e.createTexture();e.bindTexture(e.TEXTURE_2D,n);const i=1,r=1;e.texImage2D(e.TEXTURE_2D,0,s.internalFormatHalfFloat,i,r,0,s.textureFormatFloat,s.textureTypeHalfFloat,null);const o=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,o),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0);const a=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(n),e.deleteFramebuffer(o),a}function vR(e){if(e!==2)return!1;const t=on(e),s=t.fenceSync!=null;return s}function xi(e,t){Array.isArray(e)||(e=[e]),e.forEach(s=>{s!=null&&N.assert(s.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the WebGL backend.`)})}const ve=W();ve.registerFlag("HAS_WEBGL",()=>ve.getNumber("WEBGL_VERSION")>0);ve.registerFlag("WEBGL_VERSION",()=>Lx(2)?2:Lx(1)?1:0);ve.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);ve.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>ve.get("WEBGL_VERSION")===2);ve.registerFlag("WEBGL_CPU_FORWARD",()=>!0);ve.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);ve.registerFlag("WEBGL_PACK",()=>ve.getBool("HAS_WEBGL"));ve.registerFlag("WEBGL_PACK_NORMALIZATION",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_CLIP",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>!1);ve.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_REDUCE",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_LAZILY_UNPACK",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_CONV_IM2COL",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>wR(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>xR(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{const e=ve.getNumber("WEBGL_VERSION");return e===0?0:LR(e)});ve.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>ve.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!rl.isMobile());ve.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>SR(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>ve.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:ve.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));ve.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>IR(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_FENCE_API_ENABLED",()=>vR(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>{const e=ve.getBool("WEBGL_RENDER_FLOAT32_ENABLED");return e?4:0});ve.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,e=>{if(e<0&&e!==-1)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${e}.`)});const{simpleAbsImpl:TR,addImpl:AR,ceilImpl:NR,expImpl:CR,expm1Impl:RR,floorImpl:OR,logImpl:ER,maxImpl:_R,multiplyImpl:kR,rsqrtImpl:DR,sliceImpl:FR,subImpl:MR,transposeImpl:ig,uniqueImpl:UR}=ux;class $R{constructor(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map((i,r)=>`T${r}`);const s=[];this.variableNames.forEach(i=>{s.push(`float v${i} = get${i}AtOutCoords();`)});const n=this.variableNames.map(i=>`v${i}`).join(" + ");this.userCode=` void main() { ${s.join(` `)} @@ -41,7 +41,7 @@ Hi there 👋. Looks like you are running TensorFlow.js in Node.js. To speed thi float result = ${n}; setOutput(result); } - `}}class zR{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map((i,r)=>`T${r}`);const s=[];this.variableNames.forEach(i=>{s.push(`vec4 v${i} = get${i}AtOutCoords();`)});const n=this.variableNames.map(i=>`v${i}`).join(" + ");this.userCode=` + `}}class WR{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map((i,r)=>`T${r}`);const s=[];this.variableNames.forEach(i=>{s.push(`vec4 v${i} = get${i}AtOutCoords();`)});const n=this.variableNames.map(i=>`v${i}`).join(" + ");this.userCode=` void main() { ${s.join(` `)} @@ -49,7 +49,7 @@ Hi there 👋. Looks like you are running TensorFlow.js in Node.js. To speed thi vec4 result = ${n}; setOutput(result); } - `}}class PR{constructor(e,t,s){this.variableNames=["A"];const{windowSize:n,batchSize:i,outSize:r}=e;s||this.variableNames.push("bestIndicesA"),this.outputShape=[i,r];const o=t==="max"?">":"<",a=s?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=` + `}}class zR{constructor(e,t,s){this.variableNames=["A"];const{windowSize:n,batchSize:i,outSize:r}=e;s||this.variableNames.push("bestIndicesA"),this.outputShape=[i,r];const o=t==="max"?">":"<",a=s?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; @@ -69,7 +69,7 @@ Hi there 👋. Looks like you are running TensorFlow.js in Node.js. To speed thi } setOutput(float(bestIndex)); } - `}}function Ix(e,t){return["x","y","z","w","u","v"].slice(0,t).map(s=>`${e}.${s}`)}function _t(e,t){return t===1?[e]:Ix(e,t)}function BR(e,t){if(e===1)return"rc";let s="";for(let n=0;n`${e}.${s}`)}function _t(e,t){return t===1?[e]:Ix(e,t)}function PR(e,t){if(e===1)return"rc";let s="";for(let n=0;n 0.0 || val < 0.0) ? false : val != 0.0; } @@ -157,22 +157,22 @@ Hi there 👋. Looks like you are running TensorFlow.js in Node.js. To speed thi return c / 255.0; } -`;const{getBroadcastDims:jR}=U;function VR(e,t,s,n){const i=[];e.forEach(m=>{const f=N.sizeFromShape(m.shapeInfo.logicalShape);m.shapeInfo.isUniform?i.push(`uniform float ${m.name}${f>1?`[${f}]`:""};`):(i.push(`uniform sampler2D ${m.name};`),i.push(`uniform int offset${m.name};`))});const r=i.join(` -`),o=e.map(m=>K3(m,t,n)).join(` -`),a=t.texShape,l=ct(),c=Z3(l);let p,u,h=tV(l);t.isPacked?(p=X3(t.logicalShape,a),u=eV(l)):(p=J3(t.logicalShape,a),u=Q3(l)),n&&(h+=sV);const d=[h,c,u,r,p,o,s].join(` -`);return d}function ic(e){const t=e.shapeInfo.logicalShape;switch(t.length){case 0:return nV(e);case 1:return iV(e);case 2:return rV(e);case 3:return oV(e);case 4:return aV(e);case 5:return lV(e);case 6:return cV(e);default:throw new Error(`${t.length}-D input sampling is not yet supported`)}}function GR(e){const t=e.shapeInfo.logicalShape;switch(t.length){case 0:return pV(e);case 1:return uV(e);case 2:return hV(e);case 3:return dV(e);default:return mV(e)}}function K3(e,t,s=!1){let n="";s?n+=GR(e):n+=ic(e);const i=e.shapeInfo.logicalShape,r=t.logicalShape;return i.length<=r.length&&(s?n+=fV(e,t):n+=gV(e,t)),n}function X3(e,t){switch(e.length){case 0:return qR();case 1:return yV(e,t);case 2:return xV(e,t);case 3:return bV(e,t);default:return wV(e,t)}}function J3(e,t){switch(e.length){case 0:return qR();case 1:return LV(e,t);case 2:return AV(e,t);case 3:return SV(e,t);case 4:return IV(e,t);case 5:return vV(e,t);case 6:return TV(e,t);default:throw new Error(`${e.length}-D output sampling is not yet supported`)}}function Z3(e){return` +`;const{getBroadcastDims:BR}=U;function jR(e,t,s,n){const i=[];e.forEach(m=>{const f=N.sizeFromShape(m.shapeInfo.logicalShape);m.shapeInfo.isUniform?i.push(`uniform float ${m.name}${f>1?`[${f}]`:""};`):(i.push(`uniform sampler2D ${m.name};`),i.push(`uniform int offset${m.name};`))});const r=i.join(` +`),o=e.map(m=>Y3(m,t,n)).join(` +`),a=t.texShape,l=ct(),c=J3(l);let p,u,h=eV(l);t.isPacked?(p=K3(t.logicalShape,a),u=Q3(l)):(p=X3(t.logicalShape,a),u=Z3(l)),n&&(h+=tV);const d=[h,c,u,r,p,o,s].join(` +`);return d}function ic(e){const t=e.shapeInfo.logicalShape;switch(t.length){case 0:return sV(e);case 1:return nV(e);case 2:return iV(e);case 3:return rV(e);case 4:return oV(e);case 5:return aV(e);case 6:return lV(e);default:throw new Error(`${t.length}-D input sampling is not yet supported`)}}function VR(e){const t=e.shapeInfo.logicalShape;switch(t.length){case 0:return cV(e);case 1:return pV(e);case 2:return uV(e);case 3:return hV(e);default:return dV(e)}}function Y3(e,t,s=!1){let n="";s?n+=VR(e):n+=ic(e);const i=e.shapeInfo.logicalShape,r=t.logicalShape;return i.length<=r.length&&(s?n+=mV(e,t):n+=fV(e,t)),n}function K3(e,t){switch(e.length){case 0:return GR();case 1:return gV(e,t);case 2:return wV(e,t);case 3:return yV(e,t);default:return bV(e,t)}}function X3(e,t){switch(e.length){case 0:return GR();case 1:return xV(e,t);case 2:return TV(e,t);case 3:return LV(e,t);case 4:return SV(e,t);case 5:return IV(e,t);case 6:return vV(e,t);default:throw new Error(`${e.length}-D output sampling is not yet supported`)}}function J3(e){return` float sampleTexture(sampler2D textureSampler, vec2 uv) { return ${e.texture2D}(textureSampler, uv).r; } - `}function Q3(e){return` + `}function Z3(e){return` void setOutput(float val) { ${e.output} = vec4(val, 0, 0, 0); } - `}function eV(e){return` + `}function Q3(e){return` void setOutput(vec4 val) { ${e.output} = val; } - `}function tV(e){const t=`${e.version} + `}function eV(e){const t=`${e.version} precision highp float; precision highp int; precision highp sampler2D; @@ -227,10 +227,10 @@ Hi there 👋. Looks like you are running TensorFlow.js in Node.js. To speed thi return fract((p3.x + p3.y) * p3.z); } + ${AV} ${NV} ${CV} - ${RV} - `;return t}const NV=` + `;return t}const AV=` vec2 uvFromFlat(int texNumR, int texNumC, int index) { int texR = index / texNumC; int texC = index - texR * texNumC; @@ -242,7 +242,7 @@ vec2 packedUVfrom1D(int texNumR, int texNumC, int index) { int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,CV=` +`,NV=` vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texNumC, int row, int col) { int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2); @@ -250,7 +250,7 @@ vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,RV=` +`,CV=` vec2 packedUVfrom3D(int texNumR, int texNumC, int texelsInBatch, int texelsInLogicalRow, int b, int row, int col) { @@ -259,7 +259,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, int texC = index - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,sV=` +`,tV=` float getChannel(vec4 frag, vec2 innerDims) { vec2 modCoord = mod(innerDims, 2.); return modCoord.x == 0. ? @@ -270,11 +270,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float modCoord = mod(float(dim), 2.); return modCoord == 0. ? frag.r : frag.g; } -`;function qR(){return` +`;function GR(){return` int getOutputCoords() { return 0; } - `}function yV(e,t){const s=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return s[0]===1?` + `}function gV(e,t){const s=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return s[0]===1?` int getOutputCoords() { return 2 * int(resultUV.x * ${s[1]}.0); } @@ -288,7 +288,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${s[0]}, ${s[1]})); return 2 * (resTexRC.x * ${s[1]} + resTexRC.y); } - `}function LV(e,t){return t[0]===1?` + `}function xV(e,t){return t[0]===1?` int getOutputCoords() { return int(resultUV.x * ${t[1]}.0); } @@ -302,7 +302,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${t[0]}, ${t[1]})); return resTexRC.x * ${t[1]} + resTexRC.y; } - `}function bV(e,t){const s=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],n=Math.ceil(e[2]/2),i=n*Math.ceil(e[1]/2);return` + `}function yV(e,t){const s=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],n=Math.ceil(e[2]/2),i=n*Math.ceil(e[1]/2);return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${s[0]}, ${s[1]})); @@ -316,7 +316,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec3(b, r, c); } - `}function SV(e,t){const s=Hn(["r","c","d"],e);return` + `}function LV(e,t){const s=Hn(["r","c","d"],e);return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -324,7 +324,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${s} return ivec3(r, c, d); } - `}function wV(e,t){const s=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],n=Math.ceil(e[e.length-1]/2),i=n*Math.ceil(e[e.length-2]/2);let r=i,o="",a="b, r, c";for(let l=2;l=1?p="coords = 0;":p=a.map(w=>`coords.${u[w+c]} = 0;`).join(` + `}function mV(e,t){const s=e.name,n=s.charAt(0).toUpperCase()+s.slice(1),i="get"+n+"AtOutCoords",r=e.shapeInfo.logicalShape.length,o=t.logicalShape.length,a=BR(e.shapeInfo.logicalShape,t.logicalShape),l=Re(o),c=o-r;let p;const u=["x","y","z","w","u","v"];r===0?p="":o<2&&a.length>=1?p="coords = 0;":p=a.map(w=>`coords.${u[w+c]} = 0;`).join(` `);let h="";o<2&&r>0?h="coords":h=e.shapeInfo.logicalShape.map((w,x)=>`coords.${u[x+c]}`).join(", ");let d="return outputValue;";const m=N.sizeFromShape(e.shapeInfo.logicalShape),f=m===1,g=N.sizeFromShape(t.logicalShape),y=g===1;if(r===1&&!f&&!y)d=` return vec4(outputValue.xy, outputValue.xy); `;else if(f&&!y)o===1?d=` @@ -704,18 +704,18 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec4 outputValue = get${n}(${h}); ${d} } - `}function gV(e,t){const s=e.name,n=s.charAt(0).toUpperCase()+s.slice(1),i="get"+n+"AtOutCoords",r=t.texShape,o=e.shapeInfo.texShape,a=e.shapeInfo.logicalShape.length,l=t.logicalShape.length;if(!e.shapeInfo.isUniform&&a===l&&e.shapeInfo.flatOffset==null&&N.arraysEqual(o,r))return` + `}function fV(e,t){const s=e.name,n=s.charAt(0).toUpperCase()+s.slice(1),i="get"+n+"AtOutCoords",r=t.texShape,o=e.shapeInfo.texShape,a=e.shapeInfo.logicalShape.length,l=t.logicalShape.length;if(!e.shapeInfo.isUniform&&a===l&&e.shapeInfo.flatOffset==null&&N.arraysEqual(o,r))return` float ${i}() { return sampleTexture(${s}, resultUV); } - `;const c=Re(l),p=jR(e.shapeInfo.logicalShape,t.logicalShape),u=l-a;let h;const d=["x","y","z","w","u","v"];a===0?h="":l<2&&p.length>=1?h="coords = 0;":h=p.map(f=>`coords.${d[f+u]} = 0;`).join(` + `;const c=Re(l),p=BR(e.shapeInfo.logicalShape,t.logicalShape),u=l-a;let h;const d=["x","y","z","w","u","v"];a===0?h="":l<2&&p.length>=1?h="coords = 0;":h=p.map(f=>`coords.${d[f+u]} = 0;`).join(` `);let m="";return l<2&&a>0?m="coords":m=e.shapeInfo.logicalShape.map((f,g)=>`coords.${d[g+u]}`).join(", "),` float ${i}() { ${c} coords = getOutputCoords(); ${h} return get${n}(${m}); } - `}function Re(e){if(e<=1)return"int";if(e===2)return"ivec2";if(e===3)return"ivec3";if(e===4)return"ivec4";if(e===5)return"ivec5";if(e===6)return"ivec6";throw Error(`GPU for rank ${e} is not yet supported`)}function oc(e,t){const s=JSON.parse(JSON.stringify(e));return s.shapeInfo.logicalShape=t,s}function ac(e,t){return t.map(s=>e[s]).join(", ")}class HR{constructor(e,t,s,n){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,N.assert(e.length>2,()=>`Packed arg${s.charAt(0).toUpperCase()+s.slice(1)} supports only inputs with rank above 2.`);const i=e[e.length-1],r=Math.ceil(i/t);this.outputShape=e.slice(0,-1),r>1&&this.outputShape.push(r),n||this.variableNames.push("bestIndicesA");const o=this.outputShape,a=o.length,l=Re(a),c=_t("coords",a);let p,u;if(r===1){u=a+1;const E=Re(u);p=` + `}function Re(e){if(e<=1)return"int";if(e===2)return"ivec2";if(e===3)return"ivec3";if(e===4)return"ivec4";if(e===5)return"ivec5";if(e===6)return"ivec6";throw Error(`GPU for rank ${e} is not yet supported`)}function oc(e,t){const s=JSON.parse(JSON.stringify(e));return s.shapeInfo.logicalShape=t,s}function ac(e,t){return t.map(s=>e[s]).join(", ")}class qR{constructor(e,t,s,n){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,N.assert(e.length>2,()=>`Packed arg${s.charAt(0).toUpperCase()+s.slice(1)} supports only inputs with rank above 2.`);const i=e[e.length-1],r=Math.ceil(i/t);this.outputShape=e.slice(0,-1),r>1&&this.outputShape.push(r),n||this.variableNames.push("bestIndicesA");const o=this.outputShape,a=o.length,l=Re(a),c=_t("coords",a);let p,u;if(r===1){u=a+1;const E=Re(u);p=` ${E} sourceLocR = ${E}(${c.join()}, 0); ++${c[a-1]}; ${E} sourceLocG = ${E}(${c.join()}, 0); @@ -777,7 +777,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(bestIndex); } - `}}class YR{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;const t=e.filterHeight,s=e.filterWidth,n=e.strideHeight,i=e.strideWidth,r=e.dilationHeight,o=e.dilationWidth,a=e.effectiveFilterHeight,l=e.effectiveFilterWidth,c=a-1-e.padInfo.top,p=l-1-e.padInfo.left,u=1/(t*s);this.userCode=` + `}}class HR{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;const t=e.filterHeight,s=e.filterWidth,n=e.strideHeight,i=e.strideWidth,r=e.dilationHeight,o=e.dilationWidth,a=e.effectiveFilterHeight,l=e.effectiveFilterWidth,c=a-1-e.padInfo.top,p=l-1-e.padInfo.left,u=1/(t*s);this.userCode=` const ivec2 pads = ivec2(${c}, ${p}); const float avgMultiplier = float(${u}); @@ -819,7 +819,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(dotProd); } - `}}class KR{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;const t=e.filterDepth,s=e.filterHeight,n=e.filterWidth,i=e.strideDepth,r=e.strideHeight,o=e.strideWidth,a=e.dilationDepth,l=e.dilationHeight,c=e.dilationWidth,p=e.effectiveFilterDepth,u=e.effectiveFilterHeight,h=e.effectiveFilterWidth,d=p-1-e.padInfo.front,m=u-1-e.padInfo.top,f=h-1-e.padInfo.left,g=1/(t*s*n);this.userCode=` + `}}class YR{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;const t=e.filterDepth,s=e.filterHeight,n=e.filterWidth,i=e.strideDepth,r=e.strideHeight,o=e.strideWidth,a=e.dilationDepth,l=e.dilationHeight,c=e.dilationWidth,p=e.effectiveFilterDepth,u=e.effectiveFilterHeight,h=e.effectiveFilterWidth,d=p-1-e.padInfo.front,m=u-1-e.padInfo.top,f=h-1-e.padInfo.left,g=1/(t*s*n);this.userCode=` const ivec3 pads = ivec3(${d}, ${m}, ${f}); const float avgMultiplier = float(${g}); @@ -888,10 +888,10 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float bimag = getBImagAtOutCoords(); setOutput(binaryOpComplex(areal, aimag, breal, bimag)); } - `}}const XR=` + `}}const KR=` if (isnan(a)) return a; if (isnan(b)) return b; -`,og="return a + b;",ag="return a - b;",Ax="return a * b;",JR=` +`,og="return a + b;",ag="return a - b;",Ax="return a * b;",XR=` float s = sign(a) * sign(b); int ia = round(a); int ib = round(b); @@ -901,7 +901,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } else { return NAN; } -`,ZR=` +`,JR=` if(a < 0.0 && floor(b) < b){ return NAN; } @@ -910,12 +910,12 @@ if (b == 0.0) { } return (round(mod(b, 2.0)) != 1) ? pow(abs(a), b) : sign(a) * pow(abs(a), b); -`,QR="return float(a == b);",e2="return float(a != b);",t2="return float(a < b);",s2="return float(a <= b);",n2="return float(a > b);",i2="return float(a >= b);",r2="return float(a >= 1.0 && b >= 1.0);",o2="return float(a >= 1.0 || b >= 1.0);",a2=XR+` +`,ZR="return float(a == b);",QR="return float(a != b);",e2="return float(a < b);",t2="return float(a <= b);",s2="return float(a > b);",n2="return float(a >= b);",i2="return float(a >= 1.0 && b >= 1.0);",r2="return float(a >= 1.0 || b >= 1.0);",o2=KR+` return max(a, b); -`,l2=XR+` +`,a2=KR+` return min(a, b); -`,c2=`if (b == 0.0) return NAN; - return mod(a, b);`,p2="return (b >= 1.0) ? a : a * (b + 1.0);",Nx="return (a < 0.) ? b * a : a;";class kt{constructor(e,t,s){this.variableNames=["A","B"],this.outputShape=U.assertAndGetBroadcastShape(t,s),this.userCode=` +`,l2=`if (b == 0.0) return NAN; + return mod(a, b);`,c2="return (b >= 1.0) ? a : a * (b + 1.0);",Nx="return (a < 0.) ? b * a : a;";class kt{constructor(e,t,s){this.variableNames=["A","B"],this.outputShape=U.assertAndGetBroadcastShape(t,s),this.userCode=` float binaryOperation(float a, float b) { ${e} } @@ -930,7 +930,7 @@ return (round(mod(b, 2.0)) != 1) ? result.g = isNaN.g > 0. ? NAN : result.g; result.b = isNaN.b > 0. ? NAN : result.b; result.a = isNaN.a > 0. ? NAN : result.a; -`,u2=` +`,p2=` ivec4 ia = round(a); ivec4 ib = round(b); bvec4 cond = notEqual(ib, ivec4(0)); @@ -951,7 +951,7 @@ return (round(mod(b, 2.0)) != 1) ? result[3] = idiv(ia[3], ib[3], s[3]); } return vec4(result); -`,h2=` +`,u2=` // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise. vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1))); vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1); @@ -970,41 +970,41 @@ return (round(mod(b, 2.0)) != 1) ? `,Cx=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`,d2=` +`,h2=` vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.))); return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0)))); -`,m2=` +`,d2=` return vec4(equal(a, b)); -`,f2=` +`,m2=` return vec4(notEqual(a, b)); -`,g2=` +`,f2=` return vec4(lessThan(a, b)); -`,y2=` +`,g2=` return vec4(lessThanEqual(a, b)); -`,b2=` +`,y2=` return vec4(greaterThan(a, b)); -`,w2=` +`,b2=` return vec4(greaterThanEqual(a, b)); -`,x2=` +`,w2=` return vec4( vec4(greaterThanEqual(a, vec4(1.0))) * vec4(greaterThanEqual(b, vec4(1.0)))); -`,L2=` +`,x2=` return min( vec4(greaterThanEqual(a, vec4(1.0))) + vec4(greaterThanEqual(b, vec4(1.0))), vec4(1.0)); -`,S2=` +`,L2=` vec4 result = vec4(max(a, b)); vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0)); `+lg+` return result; -`,I2=` +`,S2=` vec4 result = vec4(min(a, b)); vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0)); `+lg+` return result; -`,v2=` +`,I2=` vec4 result = mod(a, b); vec4 isNaN = vec4(equal(b, vec4(0.0))); `+lg+` @@ -1041,7 +1041,7 @@ return (round(mod(b, 2.0)) != 1) ? setOutput(result); } - `}}class T2{constructor(e){this.variableNames=["A"],this.outputShape=e,this.userCode=` + `}}class v2{constructor(e){this.variableNames=["A"],this.outputShape=e,this.userCode=` uniform float minVal; uniform float maxVal; @@ -1054,7 +1054,7 @@ return (round(mod(b, 2.0)) != 1) ? setOutput(clamp(value, minVal, maxVal)); } - `}getCustomSetupFunc(e,t){return(s,n)=>{this.minLoc==null&&(this.minLoc=s.getUniformLocationNoThrow(n,"minVal"),this.maxLoc=s.getUniformLocationNoThrow(n,"maxVal")),s.gl.uniform1f(this.minLoc,e),s.gl.uniform1f(this.maxLoc,t)}}}class A2{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode=` + `}getCustomSetupFunc(e,t){return(s,n)=>{this.minLoc==null&&(this.minLoc=s.getUniformLocationNoThrow(n,"minVal"),this.maxLoc=s.getUniformLocationNoThrow(n,"maxVal")),s.gl.uniform1f(this.minLoc,e),s.gl.uniform1f(this.maxLoc,t)}}}class T2{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.userCode=` uniform float minVal; uniform float maxVal; @@ -1068,7 +1068,7 @@ return (round(mod(b, 2.0)) != 1) ? setOutput(clamp(value, vec4(minVal), vec4(maxVal))); } - `}getCustomSetupFunc(e,t){return(s,n)=>{this.minLoc==null&&(this.minLoc=s.getUniformLocationNoThrow(n,"minVal"),this.maxLoc=s.getUniformLocationNoThrow(n,"maxVal")),s.gl.uniform1f(this.minLoc,e),s.gl.uniform1f(this.maxLoc,t)}}}class N2{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` + `}getCustomSetupFunc(e,t){return(s,n)=>{this.minLoc==null&&(this.minLoc=s.getUniformLocationNoThrow(n,"minVal"),this.maxLoc=s.getUniformLocationNoThrow(n,"maxVal")),s.gl.uniform1f(this.minLoc,e),s.gl.uniform1f(this.maxLoc,t)}}}class A2{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` void main() { float re = abs(getRealAtOutCoords()); float im = abs(getImagAtOutCoords()); @@ -1081,7 +1081,7 @@ return (round(mod(b, 2.0)) != 1) ? mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx)) ); } - `}}class C2{constructor(e){this.outputShape=[],this.outputShape=U.computeOutShape(e,1),this.variableNames=e.map((r,o)=>`T${o}`);const t=new Array(e.length-1);t[0]=e[0][1];for(let r=1;r`T${o}`);const t=new Array(e.length-1);t[0]=e[0][1];for(let r=1;r`T${f}`);const a=new Array(e.length-1);a[0]=e[0][t];for(let m=1;m`T${f}`);const a=new Array(e.length-1);a[0]=e[0][t];for(let m=1;mo===n?`${r} - ${s}`:r);return i.join()}class O2{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideHeight,s=e.strideWidth,n=e.padInfo.top,i=e.padInfo.left,r=e.dataFormat==="channelsLast";this.userCode=` + `}}function cg(e,t,s){const n=e.indexOf(t),i=e.map((r,o)=>o===n?`${r} - ${s}`:r);return i.join()}class R2{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideHeight,s=e.strideWidth,n=e.padInfo.top,i=e.padInfo.left,r=e.dataFormat==="channelsLast";this.userCode=` void main() { ivec4 coords = getOutputCoords(); int wR = coords.x; @@ -1169,7 +1169,7 @@ return (round(mod(b, 2.0)) != 1) ? } setOutput(dotProd); } - `}}class E2{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterHeight,s=e.filterWidth,n=e.strideHeight,i=e.strideWidth,r=e.dataFormat==="channelsLast",o=t-1-e.padInfo.top,a=s-1-e.padInfo.left,l=r?1:2,c=r?2:3,p=r?3:1;this.userCode=` + `}}class O2{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterHeight,s=e.filterWidth,n=e.strideHeight,i=e.strideWidth,r=e.dataFormat==="channelsLast",o=t-1-e.padInfo.top,a=s-1-e.padInfo.left,l=r?1:2,c=r?2:3,p=r?3:1;this.userCode=` const ivec2 pads = ivec2(${o}, ${a}); void main() { @@ -1222,7 +1222,7 @@ return (round(mod(b, 2.0)) != 1) ? } setOutput(dotProd); } - `}}class _2{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideDepth,s=e.strideHeight,n=e.strideWidth,i=e.padInfo.front,r=e.padInfo.top,o=e.padInfo.left;this.userCode=` + `}}class E2{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideDepth,s=e.strideHeight,n=e.strideWidth,i=e.padInfo.front,r=e.padInfo.top,o=e.padInfo.left;this.userCode=` void main() { ivec5 coords = getOutputCoords(); int wF = coords.x; @@ -1264,7 +1264,7 @@ return (round(mod(b, 2.0)) != 1) ? } setOutput(dotProd); } - `}}class k2{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterDepth,s=e.filterHeight,n=e.filterWidth,i=e.strideDepth,r=e.strideHeight,o=e.strideWidth,a=t-1-e.padInfo.front,l=s-1-e.padInfo.top,c=n-1-e.padInfo.left;this.userCode=` + `}}class _2{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterDepth,s=e.filterHeight,n=e.filterWidth,i=e.strideDepth,r=e.strideHeight,o=e.strideWidth,a=t-1-e.padInfo.front,l=s-1-e.padInfo.top,c=n-1-e.padInfo.left;this.userCode=` const ivec3 pads = ivec3(${a}, ${l}, ${c}); void main() { @@ -1321,7 +1321,7 @@ return (round(mod(b, 2.0)) != 1) ? } setOutput(dotProd); } - `}}class D2{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideHeight,s=e.strideWidth,n=e.padInfo.top,i=e.padInfo.left,r=e.outChannels/e.inChannels;this.userCode=` + `}}class k2{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;const t=e.strideHeight,s=e.strideWidth,n=e.padInfo.top,i=e.padInfo.left,r=e.outChannels/e.inChannels;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int wR = coords.x; @@ -1356,7 +1356,7 @@ return (round(mod(b, 2.0)) != 1) ? } setOutput(dotProd); } - `}}class F2{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterHeight,s=e.filterWidth,n=e.strideHeight,i=e.strideWidth,r=t-1-e.padInfo.top,o=s-1-e.padInfo.left,a=e.outChannels/e.inChannels;this.userCode=` + `}}class D2{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;const t=e.filterHeight,s=e.filterWidth,n=e.strideHeight,i=e.strideWidth,r=t-1-e.padInfo.top,o=s-1-e.padInfo.left,a=e.outChannels/e.inChannels;this.userCode=` const ivec2 pads = ivec2(${r}, ${o}); void main() { @@ -1532,7 +1532,7 @@ return (round(mod(b, 2.0)) != 1) ? ${x} setOutput(result); } - `}}class M2{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;const t=e.padInfo.front,s=e.padInfo.top,n=e.padInfo.left,i=e.strideDepth,r=e.strideHeight,o=e.strideWidth,a=e.dilationDepth,l=e.dilationHeight,c=e.dilationWidth,p=e.filterDepth,u=e.filterHeight,h=e.filterWidth,d=Math.floor(e.inChannels/4)*4,m=e.inChannels%4;this.userCode=` + `}}class F2{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;const t=e.padInfo.front,s=e.padInfo.top,n=e.padInfo.left,i=e.strideDepth,r=e.strideHeight,o=e.strideWidth,a=e.dilationDepth,l=e.dilationHeight,c=e.dilationWidth,p=e.filterDepth,u=e.filterHeight,h=e.filterWidth,d=Math.floor(e.inChannels/4)*4,m=e.inChannels%4;this.userCode=` const ivec3 strides = ivec3(${i}, ${r}, ${o}); const ivec3 pads = ivec3(${t}, ${s}, ${n}); @@ -1823,7 +1823,7 @@ return (round(mod(b, 2.0)) != 1) ? ${y} setOutput(result); } - `}}class U2{constructor(e,t,s,n,i){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];const[r,o,a,l]=e,[c]=t,[p,u]=s;this.outputShape=[c,p,u,l];const h=n==="bilinear"?1:0,[d,m]=[`${o-1}.0`,`${a-1}.0`],[f,g,y]=p>1?[`${(o-1)/(p-1)}`,"(y2-y1) * height_ratio",`y1*${d} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${d}`],[w,x,T]=u>1?[`${(a-1)/(u-1)}`,"(x2-x1) * width_ratio",`x1*${m} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${m}`];this.userCode=` + `}}class M2{constructor(e,t,s,n,i){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];const[r,o,a,l]=e,[c]=t,[p,u]=s;this.outputShape=[c,p,u,l];const h=n==="bilinear"?1:0,[d,m]=[`${o-1}.0`,`${a-1}.0`],[f,g,y]=p>1?[`${(o-1)/(p-1)}`,"(y2-y1) * height_ratio",`y1*${d} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${d}`],[w,x,T]=u>1?[`${(a-1)/(u-1)}`,"(x2-x1) * width_ratio",`x1*${m} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${m}`];this.userCode=` const float height_ratio = float(${f}); const float width_ratio = float(${w}); void main() { @@ -1884,21 +1884,21 @@ return (round(mod(b, 2.0)) != 1) ? setOutput(newValue); } } - `}}class _x{constructor(e,t,s){this.variableNames=["x"],this.outputShape=e;const n=e.length,i=t?"0.0":`getX(${$2(n,"coords")})`,r=e[e.length-1];let o="",a="";t?(o=s?`end != ${r-1}`:"end != 0",a=s?"end + 1":"end - 1"):(o=s?`end + pow2 < ${r}`:"end >= pow2",a=s?"end + pow2":"end - pow2"),this.userCode=` + `}}class _x{constructor(e,t,s){this.variableNames=["x"],this.outputShape=e;const n=e.length,i=t?"0.0":`getX(${U2(n,"coords")})`,r=e[e.length-1];let o="",a="";t?(o=s?`end != ${r-1}`:"end != 0",a=s?"end + 1":"end - 1"):(o=s?`end + pow2 < ${r}`:"end >= pow2",a=s?"end + pow2":"end - pow2"),this.userCode=` uniform float index; void main() { ${Re(n)} coords = getOutputCoords(); - int end = ${W2(n,"coords")}; + int end = ${$2(n,"coords")}; float val = ${i}; int pow2 = int(pow(2.0, index)); if (${o}) { int idx = ${a}; - ${W2(n,"coords")} = idx; - val += getX(${$2(n,"coords")}); + ${$2(n,"coords")} = idx; + val += getX(${U2(n,"coords")}); } setOutput(val); } - `}getCustomSetupFunc(e){return(t,s)=>{this.index==null&&(this.index=t.getUniformLocation(s,"index")),t.gl.uniform1f(this.index,e)}}}function $2(e,t){if(e===1)return`${t}`;if(e===2)return`${t}.x, ${t}.y`;if(e===3)return`${t}.x, ${t}.y, ${t}.z`;if(e===4)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw Error(`Cumulative sum for rank ${e} is not yet supported`)}function W2(e,t){if(e===1)return`${t}`;if(e===2)return`${t}.y`;if(e===3)return`${t}.z`;if(e===4)return`${t}.w`;throw Error(`Cumulative sum for rank ${e} is not yet supported`)}class z2{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=wo.DENSE;const t=xo(e),s=ct();this.outputShape=e,this.userCode=` + `}getCustomSetupFunc(e){return(t,s)=>{this.index==null&&(this.index=t.getUniformLocation(s,"index")),t.gl.uniform1f(this.index,e)}}}function U2(e,t){if(e===1)return`${t}`;if(e===2)return`${t}.x, ${t}.y`;if(e===3)return`${t}.x, ${t}.y, ${t}.z`;if(e===4)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw Error(`Cumulative sum for rank ${e} is not yet supported`)}function $2(e,t){if(e===1)return`${t}`;if(e===2)return`${t}.y`;if(e===3)return`${t}.z`;if(e===4)return`${t}.w`;throw Error(`Cumulative sum for rank ${e} is not yet supported`)}class W2{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=wo.DENSE;const t=xo(e),s=ct();this.outputShape=e,this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { ${Hn(["r","c","d"],e)} return ivec3(r, c, d); @@ -1919,7 +1919,7 @@ return (round(mod(b, 2.0)) != 1) ? ${s.output} = result; } - `}}class P2{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=wo.DENSE;const t=xo(e),s=ct();this.outputShape=e,this.userCode=` + `}}class z2{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=wo.DENSE;const t=xo(e),s=ct();this.outputShape=e,this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { ${Hn(["r","c","d"],e)} return ivec3(r, c, d); @@ -1940,7 +1940,7 @@ return (round(mod(b, 2.0)) != 1) ? ${s.output} = result; } - `}}class B2{constructor(e,t,s){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=s,this.userCode=` + `}}class P2{constructor(e,t,s){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=s,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -1959,20 +1959,20 @@ return (round(mod(b, 2.0)) != 1) ? float result = ${this.getInputSamplingString()}; setOutput(result); } - `}getHeightCoordString(){return this.dataFormat==="NHWC"?"coords[1]":"coords[2]"}getWidthCoordString(){return this.dataFormat==="NHWC"?"coords[2]":"coords[3]"}getDepthCoordString(){return this.dataFormat==="NHWC"?"coords[3]":"coords[1]"}getOutputDepthSize(){return this.dataFormat==="NHWC"?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return this.dataFormat==="NHWC"?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"}}class j2{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode=` + `}getHeightCoordString(){return this.dataFormat==="NHWC"?"coords[1]":"coords[2]"}getWidthCoordString(){return this.dataFormat==="NHWC"?"coords[2]":"coords[3]"}getDepthCoordString(){return this.dataFormat==="NHWC"?"coords[3]":"coords[1]"}getOutputDepthSize(){return this.dataFormat==="NHWC"?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return this.dataFormat==="NHWC"?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"}}class B2{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode=` void main() { ivec2 coords = getOutputCoords(); float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0; setOutput(val); } - `}}class V2{constructor(e){this.variableNames=["A"],this.outTexUsage=is.DOWNLOAD;const t=ct();this.outputShape=e,this.userCode=` + `}}class j2{constructor(e){this.variableNames=["A"],this.outTexUsage=is.DOWNLOAD;const t=ct();this.outputShape=e,this.userCode=` ${rg} void main() { float x = getAAtOutCoords(); ${t.output} = encode_float(x); } - `}}class G2{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=is.DOWNLOAD;const t=ct();this.outputShape=e,this.userCode=` + `}}class V2{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=is.DOWNLOAD;const t=ct();this.outputShape=e,this.userCode=` ${rg} void main() { @@ -1980,7 +1980,7 @@ return (round(mod(b, 2.0)) != 1) ? float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z)); ${t.output} = encode_float(x); } - `}}class q2{constructor(e,t,s=!1){this.variableNames=["A"];const n=ct(),[i,r]=t;this.outputShape=e;let o="result";s&&(o="floor(result * 255. + 0.5)"),this.userCode=` + `}}class G2{constructor(e,t,s=!1){this.variableNames=["A"];const n=ct(),[i,r]=t;this.outputShape=e;let o="result";s&&(o="floor(result * 255. + 0.5)"),this.userCode=` ${nc(e)} void main() { @@ -2010,7 +2010,7 @@ return (round(mod(b, 2.0)) != 1) ? ${n.output} = vec4(${o}, 0., 0., 0.); } - `}}class H2{constructor(e,t,s=!1){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;const n=ct(),[i,r]=t;this.outputShape=e;let o="",a="result";s&&(a="floor(result * 255. + 0.5)");for(let l=0;l<=1;l++)for(let c=0;c<=1;c++){const p=l*2+c;o+=` + `}}class q2{constructor(e,t,s=!1){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;const n=ct(),[i,r]=t;this.outputShape=e;let o="",a="result";s&&(a="floor(result * 255. + 0.5)");for(let l=0;l<=1;l++)for(let c=0;c<=1;c++){const p=l*2+c;o+=` localCoords = coords; if(localCoords[2] + ${c} < ${e[2]}) { localCoords[2] += ${c}; @@ -2087,18 +2087,18 @@ return (round(mod(b, 2.0)) != 1) ? ivec2 coords = getOutputCoords(); setOutput(mulMatDFT(coords[0], coords[1])); } - `}}class Y2{constructor(e,t){this.outputShape=[],this.variableNames=["x"],this.outputShape=e,this.userCode=` + `}}class H2{constructor(e,t){this.outputShape=[],this.variableNames=["x"],this.outputShape=e,this.userCode=` uniform float value; void main() { // Input can be obtained from uniform value. setOutput(value); } - `}getCustomSetupFunc(e){return(t,s)=>{this.valueLoc==null&&(this.valueLoc=t.getUniformLocationNoThrow(s,"value")),t.gl.uniform1f(this.valueLoc,e)}}}class K2{constructor(e,t,s){this.variableNames=["A","indices"];const n=e.slice();n[s]=t,this.outputShape=n,this.rank=n.length;const i=Re(this.rank),r=OV(e,s);this.userCode=` + `}getCustomSetupFunc(e){return(t,s)=>{this.valueLoc==null&&(this.valueLoc=t.getUniformLocationNoThrow(s,"value")),t.gl.uniform1f(this.valueLoc,e)}}}class Y2{constructor(e,t,s){this.variableNames=["A","indices"];const n=e.slice();n[s]=t,this.outputShape=n,this.rank=n.length;const i=Re(this.rank),r=RV(e,s);this.userCode=` void main() { ${i} resRC = getOutputCoords(); setOutput(getA(${r})); } - `}}function OV(e,t){const s=e.length;if(s>4)throw Error(`Gather for rank ${s} is not yet supported`);if(s===1)return"int(getIndices(resRC))";const n=["resRC.x","resRC.y","resRC.z","resRC.w"],i=[];for(let r=0;r1?"strides[j]":"strides";this.userCode=` + `}}function RV(e,t){const s=e.length;if(s>4)throw Error(`Gather for rank ${s} is not yet supported`);if(s===1)return"int(getIndices(resRC))";const n=["resRC.x","resRC.y","resRC.z","resRC.w"],i=[];for(let r=0;r1?"strides[j]":"strides";this.userCode=` ${n} strides = ${n}(${this.strides}); void main() { ${i} coords = getOutputCoords(); @@ -2109,7 +2109,7 @@ return (round(mod(b, 2.0)) != 1) ? } setOutput(getX(flattenIndex, coords[1])); } - `}}function J2(e){const t=ct(),s=`${t.version} + `}}function X2(e){const t=ct(),s=`${t.version} precision highp float; ${t.attribute} vec3 clipSpacePos; ${t.attribute} vec2 uv; @@ -2118,7 +2118,7 @@ return (round(mod(b, 2.0)) != 1) ? void main() { gl_Position = vec4(clipSpacePos, 1); resultUV = uv; - }`;return aR(e,s)}function Z2(e){const t=new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]);return uR(e,t)}function Q2(e){const t=new Uint16Array([0,1,2,2,1,3]);return hR(e,t)}function $u(e,t,s,n,i,r){mR(t,s);const o=dR(e),a=e.TEXTURE_2D;return pe(e,()=>e.bindTexture(a,o)),pe(e,()=>e.texParameteri(a,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)),pe(e,()=>e.texParameteri(a,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),pe(e,()=>e.texParameteri(a,e.TEXTURE_MIN_FILTER,e.NEAREST)),pe(e,()=>e.texParameteri(a,e.TEXTURE_MAG_FILTER,e.NEAREST)),pe(e,()=>e.texImage2D(a,0,n,t,s,0,i,r,null)),pe(e,()=>e.bindTexture(e.TEXTURE_2D,null)),o}function Fx(e){return e.internalFormatFloat}function eO(e,t,s,n){const[i,r]=Ta(t,s);return $u(e,i,r,Fx(n),n.textureFormatFloat,e.FLOAT)}function Mx(e){return e.internalFormatHalfFloat}function tO(e,t,s,n){const[i,r]=Ta(t,s);return $u(e,i,r,Mx(n),n.textureFormatFloat,n.textureTypeHalfFloat)}function Ux(e){return e.downloadTextureFormat}function sO(e,t,s,n){const[i,r]=Ta(t,s);return $u(e,i,r,Ux(n),e.RGBA,e.UNSIGNED_BYTE)}function $x(e){return e.internalFormatPackedFloat}function nO(e,t,s,n){const[i,r]=wi(t,s);return $u(e,i,r,$x(n),e.RGBA,e.FLOAT)}function Wx(e){return e.internalFormatPackedHalfFloat}function iO(e,t,s,n){const[i,r]=wi(t,s);return $u(e,i,r,Wx(n),e.RGBA,n.textureTypeHalfFloat)}function rO(e,t,s){const n=0,i=3*4,r=3*4+2*4;pe(e,()=>e.bindBuffer(e.ARRAY_BUFFER,s));const o=yx(e,t,"clipSpacePos",s,3,r,n);return o&&yx(e,t,"uv",s,2,r,i)}function oO(e,t,s,n,i,r){pe(e,()=>e.bindTexture(e.TEXTURE_2D,t));let o,a,l;i instanceof Uint8Array?(o=new Uint8Array(s*n*4),a=e.UNSIGNED_BYTE,l=e.RGBA):(o=new Float32Array(s*n*4),a=e.FLOAT,l=r.internalFormatPackedFloat),o.set(i),pe(e,()=>e.texImage2D(e.TEXTURE_2D,0,l,s,n,0,e.RGBA,a,o)),pe(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function aO(e,t,s){pe(e,()=>e.bindTexture(e.TEXTURE_2D,t)),s.data instanceof Uint8Array?pe(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,s.width,s.height,0,e.RGBA,e.UNSIGNED_BYTE,s.data)):pe(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,s)),pe(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function lO(e,t,s,n){const i=e.createBuffer();pe(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,i));const r=4,o=4,a=r*o*t*s;return pe(e,()=>e.bufferData(e.PIXEL_PACK_BUFFER,a,e.STREAM_READ)),pe(e,()=>e.readPixels(0,0,s,t,e.RGBA,e.FLOAT,0)),pe(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null)),i}function cO(e,t,s){const n=e,i=new Float32Array(s);return n.bindBuffer(n.PIXEL_PACK_BUFFER,t),n.getBufferSubData(n.PIXEL_PACK_BUFFER,0,i),n.bindBuffer(n.PIXEL_PACK_BUFFER,null),i}function pO(e,t,s,n){const[i,r]=Ta(t,s),o=4,a=new Uint8Array(iR(t*s,o));return pe(e,()=>e.readPixels(0,0,i,r,n.downloadTextureFormat,e.UNSIGNED_BYTE,a)),new Float32Array(a.buffer)}function uO(e,t,s,n,i,r,o,a){const l=e,c=new Float32Array(rR(r,o));return l.bindBuffer(l.PIXEL_PACK_BUFFER,t),l.getBufferSubData(l.PIXEL_PACK_BUFFER,0,c),l.bindBuffer(l.PIXEL_PACK_BUFFER,null),c}function hO(e,t,s){const n=new Float32Array(t*s*4);return pe(e,()=>e.readPixels(0,0,s,t,e.RGBA,e.FLOAT,n)),n}class zx{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];const t=W().getNumber("WEBGL_VERSION");e!=null?(this.gl=e,gx(t,e)):this.gl=on(t);let s="WEBGL_color_buffer_float";const n="EXT_color_buffer_half_float";if(W().getNumber("WEBGL_VERSION")===1){const i="OES_texture_float",r="OES_texture_half_float";if(this.textureFloatExtension=Mu(this.gl,i),an(this.gl,r))this.textureHalfFloatExtension=Mu(this.gl,r);else if(W().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.");if(this.colorBufferFloatExtension=this.gl.getExtension(s),an(this.gl,n))this.colorBufferHalfFloatExtension=Mu(this.gl,n);else if(W().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(s="EXT_color_buffer_float",an(this.gl,s))this.colorBufferFloatExtension=this.gl.getExtension(s);else if(an(this.gl,n))this.colorBufferHalfFloatExtension=this.gl.getExtension(n);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=Z2(this.gl),this.indexBuffer=Q2(this.gl),this.framebuffer=fR(this.gl),this.textureConfig=Fu(this.gl,this.textureHalfFloatExtension)}get debug(){return W().getBool("DEBUG")}dispose(){if(this.disposed)return;this.program!=null&&console.warn("Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing."),this.outputTexture!=null&&console.warn("Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.");const e=this.gl;pe(e,()=>e.finish()),pe(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),pe(e,()=>e.deleteFramebuffer(this.framebuffer)),pe(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),pe(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),pe(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),eO(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),tO(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),sO(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),aO(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,s,n){this.throwIfDisposed(),oO(this.gl,e,t,s,n,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),iO(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),nO(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(bx(this.gl,this.framebuffer),this.outputTexture=null),pe(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,s){return this.downloadMatrixDriver(e,()=>pO(this.gl,t,s,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,s,n,i,r){return uO(this.gl,e,t,s,n,i,r,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return cO(this.gl,e,t)}createBufferFromTexture(e,t,s){this.bindTextureToFrameBuffer(e);const n=lO(this.gl,t,s,this.textureConfig);return this.unbindTextureToFrameBuffer(),n}createAndWaitForFence(){const e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,s;if(W().getBool("WEBGL_FENCE_API_ENABLED")){const n=e,i=n.fenceSync(n.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),s=()=>{const r=n.clientWaitSync(i,0,0);return r===n.ALREADY_SIGNALED||r===n.CONDITION_SATISFIED},t=i}else W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),s=()=>this.isQueryAvailable(t,W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):s=()=>!0;return{query:t,isFencePassed:s}}downloadMatrixFromPackedTexture(e,t,s){return this.downloadMatrixDriver(e,()=>hO(this.gl,t,s))}createProgram(e){this.throwIfDisposed();const t=this.gl,s=lR(t,e),n=J2(t),i=cR(t);return pe(t,()=>t.attachShader(i,n)),pe(t,()=>t.attachShader(i,s)),pR(t,i),this.debug&&eg(t,i),this.vertexAttrsAreBound||(this.setProgram(i),this.vertexAttrsAreBound=rO(t,this.program,this.vertexBuffer)),i}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&pe(this.gl,()=>this.gl.deleteProgram(e))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&this.debug&&eg(this.gl,this.program),pe(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,s=!0){return this.throwIfDisposed(),s?gR(this.gl,e,t):yR(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),pe(this.gl,()=>this.gl.getAttribLocation(e,t))}getUniformLocationNoThrow(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)}setInputMatrixTexture(e,t,s){this.throwIfDisposed(),this.throwIfNoProgram(),bR(this.gl,e,t,s)}setOutputMatrixTexture(e,t,s){this.setOutputMatrixTextureDriver(e,s,t)}setOutputPackedMatrixTexture(e,t,s){this.throwIfDisposed();const[n,i]=wi(t,s);this.setOutputMatrixTextureDriver(e,n,i)}setOutputMatrixWriteRegion(e,t,s,n){this.setOutputMatrixWriteRegionDriver(s,e,n,t)}setOutputPackedMatrixWriteRegion(e,t,s,n){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){this.program!=null&&eg(this.gl,this.program),Uu(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();const e=this.gl;this.debug&&this.debugValidate(),pe(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),pe(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=Mu(this.gl,W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){const s=this.gl,n=this.getQueryTimerExtensionWebGL2(),i=s.createQuery();return s.beginQuery(n.TIME_ELAPSED_EXT,i),i}const e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if(W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){const t=this.gl,s=this.getQueryTimerExtensionWebGL2();t.endQuery(s.TIME_ELAPSED_EXT);return}const e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await N.repeatedTry(()=>this.disposed||this.isQueryAvailable(e,W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(t===0)return null;if(t===2){const s=this.gl,n=s.getQueryParameter(e,s.QUERY_RESULT);return n/1e6}else{const s=this.getQueryTimerExtensionWebGL1(),n=s.getQueryObjectEXT(e,s.QUERY_RESULT_EXT);return n/1e6}}isQueryAvailable(e,t){if(t===0)return!0;if(t===2){const s=this.gl,n=this.getQueryTimerExtensionWebGL2(),i=s.getQueryParameter(e,s.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),i&&!this.disjoint}else{const s=this.getQueryTimerExtensionWebGL1(),n=s.getQueryObjectEXT(e,s.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(s.GPU_DISJOINT_EXT)),n&&!this.disjoint}}pollFence(e){return new Promise(t=>{this.addItemToPoll(()=>e.isFencePassed(),()=>t())})}pollItems(){const e=EV(this.itemsToPoll.map(t=>t.isDoneFn));for(let t=0;t<=e;++t){const{resolveFn:s}=this.itemsToPoll[t];s()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){if(this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),this.itemsToPoll.length>1)return;N.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0))}bindTextureToFrameBuffer(e){this.throwIfDisposed(),tg(this.gl,e,this.framebuffer),this.debug&&Uu(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(tg(this.gl,this.outputTexture,this.framebuffer),this.debug&&Uu(this.gl)):bx(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);const s=t();return this.unbindTextureToFrameBuffer(),s}setOutputMatrixTextureDriver(e,t,s){this.throwIfDisposed();const n=this.gl;tg(n,e,this.framebuffer),this.debug&&Uu(n),this.outputTexture=e,pe(n,()=>n.viewport(0,0,t,s)),pe(n,()=>n.scissor(0,0,t,s))}setOutputMatrixWriteRegionDriver(e,t,s,n){this.throwIfDisposed(),pe(this.gl,()=>this.gl.scissor(e,t,s,n))}throwIfDisposed(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(this.program==null)throw new Error("No GPU program is currently set.")}}function EV(e){let t=0;for(;t{const f={logicalShape:d.shape,texShape:d.isUniform?null:d.texData.texShape,isUniform:d.isUniform,isPacked:d.isUniform?!1:d.texData.isPacked,flatOffset:null};return d.texData!=null&&d.texData.slice!=null&&d.texData.slice.flatOffset>0&&(f.flatOffset=d.texData.slice.flatOffset),{name:t.variableNames[m],shapeInfo:f}}),o=r.map(d=>d.shapeInfo),a={logicalShape:n.shape,texShape:n.texData.texShape,isUniform:!1,isPacked:n.texData.isPacked,flatOffset:null},l=VR(r,a,i,t.packedInputs),c=e.createProgram(l);let p=null;const u=e.getUniformLocation(c,"NAN",!1);W().getNumber("WEBGL_VERSION")===1&&(p=e.getUniformLocation(c,"INFINITY",!1));const h={};for(let d=0;d{const i=s.logicalShape,r=t[n],o=r.shape;if(!N.arraysEqual(i,o))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${i} and ${o} must match`);if(s.isUniform&&r.isUniform)return;const a=s.texShape,l=r.isUniform?null:r.texData.texShape;if(!N.arraysEqual(a,l))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${a} and ${l} must match`)})}function fO(e,t,s,n,i){mO(t.inShapeInfos,s),mO([t.outShapeInfo],[n]);const r=n.texData.texture,o=n.texData.texShape;n.texData.isPacked?e.setOutputPackedMatrixTexture(r,o[0],o[1]):e.setOutputMatrixTexture(r,o[0],o[1]),e.setProgram(t.webGLProgram),W().getNumber("WEBGL_VERSION")===1&&(t.infLoc!==null&&e.gl.uniform1f(t.infLoc,Infinity)),t.nanLoc!==null&&e.gl.uniform1f(t.nanLoc,NaN),s.forEach((a,l)=>{const c=t.program.variableNames[l],p=t.uniformLocations[c],u=t.uniformLocations[`offset${c}`];if(p==null)return;if(a.isUniform){if(N.sizeFromShape(a.shape)<2)e.gl.uniform1f(p,a.uniformValues[0]);else{let h=a.uniformValues;h instanceof Float32Array||(h=new Float32Array(h)),e.gl.uniform1fv(p,h)}return}a.texData.slice!=null&&u!=null&&e.gl.uniform1i(u,a.texData.slice.flatOffset),e.setInputMatrixTexture(a.texData.texture,p,l)}),i!=null&&i(e,t.webGLProgram),e.executeProgram()}function gO(e,t,s){let n="";t.concat(s).forEach(o=>{const a=o.texData!=null&&o.texData.slice!=null&&o.texData.slice.flatOffset>0,l=o.isUniform?"uniform":o.texData.texShape;n+=`${o.shape}_${l}_${a}`});const i=e.userCode;let r=e.constructor.name;return r+="_"+n+"_"+i,r}class yO{constructor(e,t,s){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;const{filterWidth:n,inChannels:i,strideWidth:r,strideHeight:o,padInfo:a,outWidth:l,dilationWidth:c,dilationHeight:p,dataFormat:u}=s,{left:h,top:d}=a,m=i*n,f=ct(),g=u==="channelsLast",y=g?0:1,w=g?1:2;let x="";for(let T=0;T<=1;T++)for(let A=0;A<=1;A++)x+=` + }`;return oR(e,s)}function J2(e){const t=new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]);return pR(e,t)}function Z2(e){const t=new Uint16Array([0,1,2,2,1,3]);return uR(e,t)}function $u(e,t,s,n,i,r){dR(t,s);const o=hR(e),a=e.TEXTURE_2D;return pe(e,()=>e.bindTexture(a,o)),pe(e,()=>e.texParameteri(a,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)),pe(e,()=>e.texParameteri(a,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),pe(e,()=>e.texParameteri(a,e.TEXTURE_MIN_FILTER,e.NEAREST)),pe(e,()=>e.texParameteri(a,e.TEXTURE_MAG_FILTER,e.NEAREST)),pe(e,()=>e.texImage2D(a,0,n,t,s,0,i,r,null)),pe(e,()=>e.bindTexture(e.TEXTURE_2D,null)),o}function Fx(e){return e.internalFormatFloat}function Q2(e,t,s,n){const[i,r]=Ta(t,s);return $u(e,i,r,Fx(n),n.textureFormatFloat,e.FLOAT)}function Mx(e){return e.internalFormatHalfFloat}function eO(e,t,s,n){const[i,r]=Ta(t,s);return $u(e,i,r,Mx(n),n.textureFormatFloat,n.textureTypeHalfFloat)}function Ux(e){return e.downloadTextureFormat}function tO(e,t,s,n){const[i,r]=Ta(t,s);return $u(e,i,r,Ux(n),e.RGBA,e.UNSIGNED_BYTE)}function $x(e){return e.internalFormatPackedFloat}function sO(e,t,s,n){const[i,r]=wi(t,s);return $u(e,i,r,$x(n),e.RGBA,e.FLOAT)}function Wx(e){return e.internalFormatPackedHalfFloat}function nO(e,t,s,n){const[i,r]=wi(t,s);return $u(e,i,r,Wx(n),e.RGBA,n.textureTypeHalfFloat)}function iO(e,t,s){const n=0,i=3*4,r=3*4+2*4;pe(e,()=>e.bindBuffer(e.ARRAY_BUFFER,s));const o=yx(e,t,"clipSpacePos",s,3,r,n);return o&&yx(e,t,"uv",s,2,r,i)}function rO(e,t,s,n,i,r){pe(e,()=>e.bindTexture(e.TEXTURE_2D,t));let o,a,l;i instanceof Uint8Array?(o=new Uint8Array(s*n*4),a=e.UNSIGNED_BYTE,l=e.RGBA):(o=new Float32Array(s*n*4),a=e.FLOAT,l=r.internalFormatPackedFloat),o.set(i),pe(e,()=>e.texImage2D(e.TEXTURE_2D,0,l,s,n,0,e.RGBA,a,o)),pe(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function oO(e,t,s){pe(e,()=>e.bindTexture(e.TEXTURE_2D,t)),s.data instanceof Uint8Array?pe(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,s.width,s.height,0,e.RGBA,e.UNSIGNED_BYTE,s.data)):pe(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,s)),pe(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function aO(e,t,s,n){const i=e.createBuffer();pe(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,i));const r=4,o=4,a=r*o*t*s;return pe(e,()=>e.bufferData(e.PIXEL_PACK_BUFFER,a,e.STREAM_READ)),pe(e,()=>e.readPixels(0,0,s,t,e.RGBA,e.FLOAT,0)),pe(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null)),i}function lO(e,t,s){const n=e,i=new Float32Array(s);return n.bindBuffer(n.PIXEL_PACK_BUFFER,t),n.getBufferSubData(n.PIXEL_PACK_BUFFER,0,i),n.bindBuffer(n.PIXEL_PACK_BUFFER,null),i}function cO(e,t,s,n){const[i,r]=Ta(t,s),o=4,a=new Uint8Array(nR(t*s,o));return pe(e,()=>e.readPixels(0,0,i,r,n.downloadTextureFormat,e.UNSIGNED_BYTE,a)),new Float32Array(a.buffer)}function pO(e,t,s,n,i,r,o,a){const l=e,c=new Float32Array(iR(r,o));return l.bindBuffer(l.PIXEL_PACK_BUFFER,t),l.getBufferSubData(l.PIXEL_PACK_BUFFER,0,c),l.bindBuffer(l.PIXEL_PACK_BUFFER,null),c}function uO(e,t,s){const n=new Float32Array(t*s*4);return pe(e,()=>e.readPixels(0,0,s,t,e.RGBA,e.FLOAT,n)),n}class zx{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];const t=W().getNumber("WEBGL_VERSION");e!=null?(this.gl=e,gx(t,e)):this.gl=on(t);let s="WEBGL_color_buffer_float";const n="EXT_color_buffer_half_float";if(W().getNumber("WEBGL_VERSION")===1){const i="OES_texture_float",r="OES_texture_half_float";if(this.textureFloatExtension=Mu(this.gl,i),an(this.gl,r))this.textureHalfFloatExtension=Mu(this.gl,r);else if(W().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.");if(this.colorBufferFloatExtension=this.gl.getExtension(s),an(this.gl,n))this.colorBufferHalfFloatExtension=Mu(this.gl,n);else if(W().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(s="EXT_color_buffer_float",an(this.gl,s))this.colorBufferFloatExtension=this.gl.getExtension(s);else if(an(this.gl,n))this.colorBufferHalfFloatExtension=this.gl.getExtension(n);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=J2(this.gl),this.indexBuffer=Z2(this.gl),this.framebuffer=mR(this.gl),this.textureConfig=Fu(this.gl,this.textureHalfFloatExtension)}get debug(){return W().getBool("DEBUG")}dispose(){if(this.disposed)return;this.program!=null&&console.warn("Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing."),this.outputTexture!=null&&console.warn("Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.");const e=this.gl;pe(e,()=>e.finish()),pe(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),pe(e,()=>e.deleteFramebuffer(this.framebuffer)),pe(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),pe(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),pe(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),Q2(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),eO(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),tO(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),oO(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,s,n){this.throwIfDisposed(),rO(this.gl,e,t,s,n,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),nO(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),sO(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(bx(this.gl,this.framebuffer),this.outputTexture=null),pe(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,s){return this.downloadMatrixDriver(e,()=>cO(this.gl,t,s,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,s,n,i,r){return pO(this.gl,e,t,s,n,i,r,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return lO(this.gl,e,t)}createBufferFromTexture(e,t,s){this.bindTextureToFrameBuffer(e);const n=aO(this.gl,t,s,this.textureConfig);return this.unbindTextureToFrameBuffer(),n}createAndWaitForFence(){const e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,s;if(W().getBool("WEBGL_FENCE_API_ENABLED")){const n=e,i=n.fenceSync(n.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),s=()=>{const r=n.clientWaitSync(i,0,0);return r===n.ALREADY_SIGNALED||r===n.CONDITION_SATISFIED},t=i}else W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),s=()=>this.isQueryAvailable(t,W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):s=()=>!0;return{query:t,isFencePassed:s}}downloadMatrixFromPackedTexture(e,t,s){return this.downloadMatrixDriver(e,()=>uO(this.gl,t,s))}createProgram(e){this.throwIfDisposed();const t=this.gl,s=aR(t,e),n=X2(t),i=lR(t);return pe(t,()=>t.attachShader(i,n)),pe(t,()=>t.attachShader(i,s)),cR(t,i),this.debug&&eg(t,i),this.vertexAttrsAreBound||(this.setProgram(i),this.vertexAttrsAreBound=iO(t,this.program,this.vertexBuffer)),i}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&pe(this.gl,()=>this.gl.deleteProgram(e))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&this.debug&&eg(this.gl,this.program),pe(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,s=!0){return this.throwIfDisposed(),s?fR(this.gl,e,t):gR(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),pe(this.gl,()=>this.gl.getAttribLocation(e,t))}getUniformLocationNoThrow(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)}setInputMatrixTexture(e,t,s){this.throwIfDisposed(),this.throwIfNoProgram(),yR(this.gl,e,t,s)}setOutputMatrixTexture(e,t,s){this.setOutputMatrixTextureDriver(e,s,t)}setOutputPackedMatrixTexture(e,t,s){this.throwIfDisposed();const[n,i]=wi(t,s);this.setOutputMatrixTextureDriver(e,n,i)}setOutputMatrixWriteRegion(e,t,s,n){this.setOutputMatrixWriteRegionDriver(s,e,n,t)}setOutputPackedMatrixWriteRegion(e,t,s,n){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){this.program!=null&&eg(this.gl,this.program),Uu(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();const e=this.gl;this.debug&&this.debugValidate(),pe(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),pe(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=Mu(this.gl,W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){const s=this.gl,n=this.getQueryTimerExtensionWebGL2(),i=s.createQuery();return s.beginQuery(n.TIME_ELAPSED_EXT,i),i}const e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if(W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){const t=this.gl,s=this.getQueryTimerExtensionWebGL2();t.endQuery(s.TIME_ELAPSED_EXT);return}const e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await N.repeatedTry(()=>this.disposed||this.isQueryAvailable(e,W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(t===0)return null;if(t===2){const s=this.gl,n=s.getQueryParameter(e,s.QUERY_RESULT);return n/1e6}else{const s=this.getQueryTimerExtensionWebGL1(),n=s.getQueryObjectEXT(e,s.QUERY_RESULT_EXT);return n/1e6}}isQueryAvailable(e,t){if(t===0)return!0;if(t===2){const s=this.gl,n=this.getQueryTimerExtensionWebGL2(),i=s.getQueryParameter(e,s.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),i&&!this.disjoint}else{const s=this.getQueryTimerExtensionWebGL1(),n=s.getQueryObjectEXT(e,s.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(s.GPU_DISJOINT_EXT)),n&&!this.disjoint}}pollFence(e){return new Promise(t=>{this.addItemToPoll(()=>e.isFencePassed(),()=>t())})}pollItems(){const e=OV(this.itemsToPoll.map(t=>t.isDoneFn));for(let t=0;t<=e;++t){const{resolveFn:s}=this.itemsToPoll[t];s()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){if(this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),this.itemsToPoll.length>1)return;N.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0))}bindTextureToFrameBuffer(e){this.throwIfDisposed(),tg(this.gl,e,this.framebuffer),this.debug&&Uu(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(tg(this.gl,this.outputTexture,this.framebuffer),this.debug&&Uu(this.gl)):bx(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);const s=t();return this.unbindTextureToFrameBuffer(),s}setOutputMatrixTextureDriver(e,t,s){this.throwIfDisposed();const n=this.gl;tg(n,e,this.framebuffer),this.debug&&Uu(n),this.outputTexture=e,pe(n,()=>n.viewport(0,0,t,s)),pe(n,()=>n.scissor(0,0,t,s))}setOutputMatrixWriteRegionDriver(e,t,s,n){this.throwIfDisposed(),pe(this.gl,()=>this.gl.scissor(e,t,s,n))}throwIfDisposed(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(this.program==null)throw new Error("No GPU program is currently set.")}}function OV(e){let t=0;for(;t{const f={logicalShape:d.shape,texShape:d.isUniform?null:d.texData.texShape,isUniform:d.isUniform,isPacked:d.isUniform?!1:d.texData.isPacked,flatOffset:null};return d.texData!=null&&d.texData.slice!=null&&d.texData.slice.flatOffset>0&&(f.flatOffset=d.texData.slice.flatOffset),{name:t.variableNames[m],shapeInfo:f}}),o=r.map(d=>d.shapeInfo),a={logicalShape:n.shape,texShape:n.texData.texShape,isUniform:!1,isPacked:n.texData.isPacked,flatOffset:null},l=jR(r,a,i,t.packedInputs),c=e.createProgram(l);let p=null;const u=e.getUniformLocation(c,"NAN",!1);W().getNumber("WEBGL_VERSION")===1&&(p=e.getUniformLocation(c,"INFINITY",!1));const h={};for(let d=0;d{const i=s.logicalShape,r=t[n],o=r.shape;if(!N.arraysEqual(i,o))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${i} and ${o} must match`);if(s.isUniform&&r.isUniform)return;const a=s.texShape,l=r.isUniform?null:r.texData.texShape;if(!N.arraysEqual(a,l))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${a} and ${l} must match`)})}function mO(e,t,s,n,i){dO(t.inShapeInfos,s),dO([t.outShapeInfo],[n]);const r=n.texData.texture,o=n.texData.texShape;n.texData.isPacked?e.setOutputPackedMatrixTexture(r,o[0],o[1]):e.setOutputMatrixTexture(r,o[0],o[1]),e.setProgram(t.webGLProgram),W().getNumber("WEBGL_VERSION")===1&&(t.infLoc!==null&&e.gl.uniform1f(t.infLoc,Infinity)),t.nanLoc!==null&&e.gl.uniform1f(t.nanLoc,NaN),s.forEach((a,l)=>{const c=t.program.variableNames[l],p=t.uniformLocations[c],u=t.uniformLocations[`offset${c}`];if(p==null)return;if(a.isUniform){if(N.sizeFromShape(a.shape)<2)e.gl.uniform1f(p,a.uniformValues[0]);else{let h=a.uniformValues;h instanceof Float32Array||(h=new Float32Array(h)),e.gl.uniform1fv(p,h)}return}a.texData.slice!=null&&u!=null&&e.gl.uniform1i(u,a.texData.slice.flatOffset),e.setInputMatrixTexture(a.texData.texture,p,l)}),i!=null&&i(e,t.webGLProgram),e.executeProgram()}function fO(e,t,s){let n="";t.concat(s).forEach(o=>{const a=o.texData!=null&&o.texData.slice!=null&&o.texData.slice.flatOffset>0,l=o.isUniform?"uniform":o.texData.texShape;n+=`${o.shape}_${l}_${a}`});const i=e.userCode;let r=e.constructor.name;return r+="_"+n+"_"+i,r}class gO{constructor(e,t,s){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e;const{filterWidth:n,inChannels:i,strideWidth:r,strideHeight:o,padInfo:a,outWidth:l,dilationWidth:c,dilationHeight:p,dataFormat:u}=s,{left:h,top:d}=a,m=i*n,f=ct(),g=u==="channelsLast",y=g?0:1,w=g?1:2;let x="";for(let T=0;T<=1;T++)for(let A=0;A<=1;A++)x+=` blockIndex = rc.y + ${A}; pos = rc.x + ${T}; @@ -2162,7 +2162,7 @@ return (round(mod(b, 2.0)) != 1) ? ${f.output} = result; } - `}}class bO{constructor(e,t,s,n,i){this.variableNames=["x"],this.outputShape=[];const r=t,o=e[3]-1;this.outputShape=e;let a;const l=`float(${s}) + float(${n}) * sum`;i===.5?a=`inversesqrt(${l})`:i===1?a=`1.0/(${l})`:a=`exp(log(${l}) * float(-${i}));`,this.userCode=` + `}}class yO{constructor(e,t,s,n,i){this.variableNames=["x"],this.outputShape=[];const r=t,o=e[3]-1;this.outputShape=e;let a;const l=`float(${s}) + float(${n}) * sum`;i===.5?a=`inversesqrt(${l})`:i===1?a=`1.0/(${l})`:a=`exp(log(${l}) * float(-${i}));`,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -2181,7 +2181,7 @@ return (round(mod(b, 2.0)) != 1) ? float val = x * ${a}; setOutput(val); } - `}}class wO{constructor(e,t,s,n,i){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=s,this.alpha=n,this.beta=i,this.userCode=` + `}}class bO{constructor(e,t,s,n,i){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=s,this.alpha=n,this.beta=i,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -2236,7 +2236,7 @@ return (round(mod(b, 2.0)) != 1) ? } setOutput(result); } - `}}class xO{constructor(e,t,s,n,i){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;const r=t,o=e[3]-1;this.outputShape=e;let a;const l=`float(${s}) + float(${n}) * sum`;i===.5?a=`inversesqrt(${l})`:i===1?a=`1.0/(${l})`:a=`exp(log(${l}) * float(-${i}));`,this.userCode=` + `}}class wO{constructor(e,t,s,n,i){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;const r=t,o=e[3]-1;this.outputShape=e;let a;const l=`float(${s}) + float(${n}) * sum`;i===.5?a=`inversesqrt(${l})`:i===1?a=`1.0/(${l})`:a=`exp(log(${l}) * float(-${i}));`,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords.x; @@ -2298,7 +2298,7 @@ return (round(mod(b, 2.0)) != 1) ? vec4 result = xAtOutputCoords * ${a}; setOutput(result); } - `}}class LO{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;const t=e.strideHeight,s=e.strideWidth,n=e.dilationHeight,i=e.effectiveFilterHeight,r=e.effectiveFilterWidth,o=i-1-e.padInfo.top,a=r-1-e.padInfo.left,l=i*r-1;this.userCode=` + `}}class xO{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;const t=e.strideHeight,s=e.strideWidth,n=e.dilationHeight,i=e.effectiveFilterHeight,r=e.effectiveFilterWidth,o=i-1-e.padInfo.top,a=r-1-e.padInfo.left,l=i*r-1;this.userCode=` const ivec2 pads = ivec2(${o}, ${a}); void main() { @@ -2344,7 +2344,7 @@ return (round(mod(b, 2.0)) != 1) ? } setOutput(dotProd); } - `}}class SO{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;const t=e.strideDepth,s=e.strideHeight,n=e.strideWidth,i=e.dilationDepth,r=e.dilationHeight,o=e.dilationWidth,a=e.effectiveFilterDepth,l=e.effectiveFilterHeight,c=e.effectiveFilterWidth,p=a-1-e.padInfo.front,u=l-1-e.padInfo.top,h=c-1-e.padInfo.left,d=a*l*c-1;this.userCode=` + `}}class LO{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;const t=e.strideDepth,s=e.strideHeight,n=e.strideWidth,i=e.dilationDepth,r=e.dilationHeight,o=e.dilationWidth,a=e.effectiveFilterDepth,l=e.effectiveFilterHeight,c=e.effectiveFilterWidth,p=a-1-e.padInfo.front,u=l-1-e.padInfo.top,h=c-1-e.padInfo.left,d=a*l*c-1;this.userCode=` const ivec3 pads = ivec3(${p}, ${u}, ${h}); void main() { @@ -2442,7 +2442,7 @@ return (round(mod(b, 2.0)) != 1) ? setOutput(result); } - `}}class IO{constructor(e,t,s){this.variableNames=["probs"],this.outputShape=[e,s],this.userCode=` + `}}class SO{constructor(e,t,s){this.variableNames=["probs"],this.outputShape=[e,s],this.userCode=` uniform float seed; void main() { @@ -2464,18 +2464,18 @@ return (round(mod(b, 2.0)) != 1) ? // If no other event happened, last event happened. setOutput(float(${t-1})); } - `}getCustomSetupFunc(e){return(t,s)=>{this.seedLoc==null&&(this.seedLoc=t.getUniformLocation(s,"seed")),t.gl.uniform1f(this.seedLoc,e)}}}class vO{constructor(e,t,s,n){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=` + `}getCustomSetupFunc(e){return(t,s)=>{this.seedLoc==null&&(this.seedLoc=t.getUniformLocation(s,"seed")),t.gl.uniform1f(this.seedLoc,e)}}}class IO{constructor(e,t,s,n){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=` void main() { ivec2 coords = getOutputCoords(); int index = round(getIndices(coords.x)); setOutput(mix(float(${n}), float(${s}), float(index == coords.y))); } - `}}class TO{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outputShape=e;const t=e.length;if(t===0)this.userCode=` + `}}class vO{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outputShape=e;const t=e.length;if(t===0)this.userCode=` void main() { setOutput(vec4(getA(), 0., 0., 0.)); } - `;else{const s=_t("rc",t),n=Re(t),i=_V(t,e,s),r=kV(t,e[e.length-1],e[e.length-2],s),o=DV(e,s);this.userCode=` + `;else{const s=_t("rc",t),n=Re(t),i=EV(t,e,s),r=_V(t,e[e.length-1],e[e.length-2],s),o=kV(e,s);this.userCode=` void main() { ${n} rc = getOutputCoords(); @@ -2487,7 +2487,7 @@ return (round(mod(b, 2.0)) != 1) ? setOutput(vec4(${o})); } } - `}}}function FV(e,t){const s=[];for(let n=0;n<=1;n++)for(let i=0;i<=1;i++){let r=`${n===0?"r":"rp1"}, ${i===0?"c":"cp1"}`;for(let o=2;o ${t[0]}`;let n="";for(let i=e-2;i= ${t[i]}`,i ${t[0]}`;let n="";for(let i=e-2;i= ${t[i]}`,i= ${t}; bool rEdge = rp1 >= ${s}; - `}function DV(e,t){const s=e.length,n=FV(s,t);return s===1?`getA(rc), + `}function kV(e,t){const s=e.length,n=DV(s,t);return s===1?`getA(rc), rc + 1 >= ${e[0]} ? 0. : getA(rc + 1), 0, 0`:`getA(${n[0]}), cEdge ? 0. : getA(${n[1]}), rEdge ? 0. : getA(${n[2]}), - rEdge || cEdge ? 0. : getA(${n[3]})`}class AO{constructor(e,t,s){this.variableNames=["x"],this.outputShape=t.map((l,c)=>l[0]+e[c]+l[1]);const n=e.length,i=Re(n),r=t.map(l=>l[0]).join(","),o=t.map((l,c)=>l[0]+e[c]).join(","),a=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,n);if(n===1){this.userCode=` + rEdge || cEdge ? 0. : getA(${n[3]})`}class TO{constructor(e,t,s){this.variableNames=["x"],this.outputShape=t.map((l,c)=>l[0]+e[c]+l[1]);const n=e.length,i=Re(n),r=t.map(l=>l[0]).join(","),o=t.map((l,c)=>l[0]+e[c]).join(","),a=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,n);if(n===1){this.userCode=` int start = ${r}; int end = ${o}; @@ -2525,7 +2525,7 @@ return (round(mod(b, 2.0)) != 1) ? setOutput(getX(${a})); } } - `}}class NO{constructor(e,t,s){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((m,f)=>m[0]+e[f]+m[1]);const n=e.length,i=Re(n),r=t.map(m=>m[0]).join(","),o=t.map((m,f)=>m[0]+e[f]).join(","),a=_t("rc",n),l=_t("source",n),c=`${a[n-1]} < ${this.outputShape[n-1]}`,p=n===1?"source":`vec2(${l.slice(-2).join()})`,u=[`${i} rc = outputLoc;`,`${a[n-1]} += 1; + `}}class AO{constructor(e,t,s){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((m,f)=>m[0]+e[f]+m[1]);const n=e.length,i=Re(n),r=t.map(m=>m[0]).join(","),o=t.map((m,f)=>m[0]+e[f]).join(","),a=_t("rc",n),l=_t("source",n),c=`${a[n-1]} < ${this.outputShape[n-1]}`,p=n===1?"source":`vec2(${l.slice(-2).join()})`,u=[`${i} rc = outputLoc;`,`${a[n-1]} += 1; if(${c}) { `,n===1?"":`} rc = outputLoc; @@ -2950,7 +2950,7 @@ return (round(mod(b, 2.0)) != 1) ? getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims); ${n>0?"}":""} `}this.userCode=` - ${MV(t)} + ${FV(t)} ${nc(e)} void main() { @@ -2966,12 +2966,12 @@ return (round(mod(b, 2.0)) != 1) ? setOutput(result); } - `}}function MV(e){const t=Hn(["r","c","d"],e);return` + `}}function FV(e){const t=Hn(["r","c","d"],e);return` ivec3 inputCoordsFromReshapedOutCoords(int index) { ${t} return ivec3(r, c, d); } - `}class CO{constructor(e,t,s){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t.shape;const[,n,i]=t.shape,[,r,o]=e.shape,a=[s&&r>1?n-1:n,s&&o>1?i-1:i],l=[s&&r>1?r-1:r,s&&o>1?o-1:o],c=a[0]/l[0],p=a[1]/l[1],u=1/c,h=1/p,d=Math.ceil(u)*2+2,m=Math.ceil(h)*2+2;this.userCode=` + `}class NO{constructor(e,t,s){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t.shape;const[,n,i]=t.shape,[,r,o]=e.shape,a=[s&&r>1?n-1:n,s&&o>1?i-1:i],l=[s&&r>1?r-1:r,s&&o>1?o-1:o],c=a[0]/l[0],p=a[1]/l[1],u=1/c,h=1/p,d=Math.ceil(u)*2+2,m=Math.ceil(h)*2+2;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3052,7 +3052,7 @@ return (round(mod(b, 2.0)) != 1) ? setOutput(accumulator); } - `}}class RO{constructor(e,t,s,n){this.variableNames=["A"],this.outputShape=[];const[i,r,o,a]=e;this.outputShape=[i,t,s,a];const l=[n&&t>1?r-1:r,n&&s>1?o-1:o],c=[n&&t>1?t-1:t,n&&s>1?s-1:s];this.userCode=` + `}}class CO{constructor(e,t,s,n){this.variableNames=["A"],this.outputShape=[];const[i,r,o,a]=e;this.outputShape=[i,t,s,a];const l=[n&&t>1?r-1:r,n&&s>1?o-1:o],c=[n&&t>1?t-1:t,n&&s>1?s-1:s];this.userCode=` const vec2 effectiveInputOverOutputRatioRC = vec2( ${l[0]/c[0]}, ${l[1]/c[1]}); @@ -3085,7 +3085,7 @@ return (round(mod(b, 2.0)) != 1) ? setOutput(newValue); } - `}}class OO{constructor(e,t,s,n){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];const[i,r,o,a]=e;this.outputShape=[i,t,s,a];const l=[n&&t>1?r-1:r,n&&s>1?o-1:o],c=[n&&t>1?t-1:t,n&&s>1?s-1:s];this.userCode=` + `}}class RO{constructor(e,t,s,n){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];const[i,r,o,a]=e;this.outputShape=[i,t,s,a];const l=[n&&t>1?r-1:r,n&&s>1?o-1:o],c=[n&&t>1?t-1:t,n&&s>1?s-1:s];this.userCode=` const vec3 effectiveInputOverOutputRatioRC = vec3( ${l[0]/c[0]}, ${l[1]/c[1]}, @@ -3162,7 +3162,7 @@ return (round(mod(b, 2.0)) != 1) ? setOutput(newValue); } - `}}class EO{constructor(e,t,s){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t.shape;const[,n,i]=t.shape,[,r,o]=e.shape,a=[s&&r>1?n-1:n,s&&o>1?i-1:i],l=[s&&r>1?r-1:r,s&&o>1?o-1:o],c=a[0]/l[0],p=a[1]/l[1],u=1/c,h=1/p,d=Math.ceil(u)*2+2,m=Math.ceil(h)*2+2;this.userCode=` + `}}class OO{constructor(e,t,s){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t.shape;const[,n,i]=t.shape,[,r,o]=e.shape,a=[s&&r>1?n-1:n,s&&o>1?i-1:i],l=[s&&r>1?r-1:r,s&&o>1?o-1:o],c=a[0]/l[0],p=a[1]/l[1],u=1/c,h=1/p,d=Math.ceil(u)*2+2,m=Math.ceil(h)*2+2;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3232,7 +3232,7 @@ return (round(mod(b, 2.0)) != 1) ? setOutput(accumulator); } - `}}class _O{constructor(e,t,s,n){this.variableNames=["A"],this.outputShape=[];const[i,r,o,a]=e;this.outputShape=[i,t,s,a];const l=[n&&t>1?r-1:r,n&&s>1?o-1:o],c=[n&&t>1?t-1:t,n&&s>1?s-1:s],p=n?"0.5":"0.0";this.userCode=` + `}}class EO{constructor(e,t,s,n){this.variableNames=["A"],this.outputShape=[];const[i,r,o,a]=e;this.outputShape=[i,t,s,a];const l=[n&&t>1?r-1:r,n&&s>1?o-1:o],c=[n&&t>1?t-1:t,n&&s>1?s-1:s],p=n?"0.5":"0.0";this.userCode=` const vec2 effectiveInputOverOutputRatioRC = vec2( ${l[0]/c[0]}, ${l[1]/c[1]}); @@ -3255,7 +3255,7 @@ return (round(mod(b, 2.0)) != 1) ? setOutput(newValue); } - `}}class kO{constructor(e,t){this.variableNames=["x"];const s=e.length;if(s>4)throw new Error(`WebGL backend: Reverse of rank-${s} tensor is not yet supported`);if(this.outputShape=e,s===1){this.userCode=` + `}}class _O{constructor(e,t){this.variableNames=["x"];const s=e.length;if(s>4)throw new Error(`WebGL backend: Reverse of rank-${s} tensor is not yet supported`);if(this.outputShape=e,s===1){this.userCode=` void main() { int coord = getOutputCoords(); setOutput(getX(${e[0]} - coord - 1)); @@ -3265,7 +3265,7 @@ return (round(mod(b, 2.0)) != 1) ? ${r} coords = getOutputCoords(); setOutput(getX(${i})); } - `}}class DO{constructor(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;const s=e.length;if(s>4)throw new Error(`WebGL backend: Reverse of rank-${s} tensor is not yet supported`);this.outputShape=e;const n=_t("rc",s),i=`${n[s-1]} + 1 < ${this.outputShape[s-1]}`,r=`${n[s-2]} + 1 < ${this.outputShape[s-2]}`,o=Re(s);s===1?this.userCode=` + `}}class kO{constructor(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;const s=e.length;if(s>4)throw new Error(`WebGL backend: Reverse of rank-${s} tensor is not yet supported`);this.outputShape=e;const n=_t("rc",s),i=`${n[s-1]} + 1 < ${this.outputShape[s-1]}`,r=`${n[s-2]} + 1 < ${this.outputShape[s-2]}`,o=Re(s);s===1?this.userCode=` void main(){ int rc = getOutputCoords(); vec4 result = vec4(0.); @@ -3313,7 +3313,7 @@ return (round(mod(b, 2.0)) != 1) ? } setOutput(mix(getDefaultValue(), sum, float(found))); } - `}}class FO{constructor(e,t){this.variableNames=["x","segmentIds"];const s=e.windowSize,n=e.batchSize,i=e.inSize,r=e.numSegments,o=r*Math.ceil(i/s);this.outputShape=[n,o];const a="0.0",l="sumValue",c=Math.floor(s/4)*4,p=s%4,u=` + `}}class DO{constructor(e,t){this.variableNames=["x","segmentIds"];const s=e.windowSize,n=e.batchSize,i=e.inSize,r=e.numSegments,o=r*Math.ceil(i/s);this.outputShape=[n,o];const a="0.0",l="sumValue",c=Math.floor(s/4)*4,p=s%4,u=` sumValue += dot(values, segFilter); `;let h="";i%s>0&&(h=` if (inIdx < 0 || inIdx >= ${i}) { @@ -3419,7 +3419,7 @@ return (round(mod(b, 2.0)) != 1) ? } setOutput(${l}); } - `}}class MO{constructor(e,t,s){this.variableNames=["c","a","b"],this.outputShape=t;let n,i;if(s>4)throw Error(`Where for rank ${s} is not yet supported`);if(s===1)i="resRC",n="resRC";else{const o=["resRC.x","resRC.y","resRC.z","resRC.w"],a=[],l=[];for(let c=0;c4)throw Error(`Where for rank ${s} is not yet supported`);if(s===1)i="resRC",n="resRC";else{const o=["resRC.x","resRC.y","resRC.z","resRC.w"],a=[],l=[];for(let c=0;c`sourceLoc.${Bx[a]} = start[${a}] + coords.${Bx[a]};`);i=` + `}}class MO{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;const t=Re(this.rank),s=`uniform int start[${this.rank}];`,n=MV(this.rank);let i;const r=e.map((o,a)=>`sourceLoc.${Bx[a]} = start[${a}] + coords.${Bx[a]};`);i=` ${t} sourceLoc; ${t} coords = getOutputCoords(); ${r.join(` @@ -3440,7 +3440,7 @@ return (round(mod(b, 2.0)) != 1) ? ${i} setOutput(getSource(${n})); } - `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,s)=>{if(this.startLoc==null&&(this.startLoc=t.getUniformLocationNoThrow(s,"start"),this.startLoc==null))return;t.gl.uniform1iv(this.startLoc,e)}}}const Bx=["x","y","z","w","u","v"];function UV(e){if(e===1)return"sourceLoc";if(e<=6)return Bx.slice(0,e).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}class $O{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length;const t=Re(this.rank),s=_t("coords",this.rank),n=_t("sourceLoc",this.rank),i=this.rank===1?"sourceLoc":`vec2(${n.slice(-2).join()})`,r=`getChannel(getSource(${n.join()}), ${i})`,o=` + `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,s)=>{if(this.startLoc==null&&(this.startLoc=t.getUniformLocationNoThrow(s,"start"),this.startLoc==null))return;t.gl.uniform1iv(this.startLoc,e)}}}const Bx=["x","y","z","w","u","v"];function MV(e){if(e===1)return"sourceLoc";if(e<=6)return Bx.slice(0,e).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}class UO{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length;const t=Re(this.rank),s=_t("coords",this.rank),n=_t("sourceLoc",this.rank),i=this.rank===1?"sourceLoc":`vec2(${n.slice(-2).join()})`,r=`getChannel(getSource(${n.join()}), ${i})`,o=` result.x = ${r}; if (++${s[this.rank-1]} < ${e[this.rank-1]}) { ++${n[this.rank-1]}; @@ -3470,7 +3470,7 @@ return (round(mod(b, 2.0)) != 1) ? ${a} setOutput(result); } - `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,s)=>{if(this.startLoc==null&&(this.startLoc=t.getUniformLocationNoThrow(s,"start"),this.startLoc==null))return;t.gl.uniform1iv(this.startLoc,e)}}}class WO{constructor(e,t,s){this.variableNames=["x"],this.outputShape=s;const n=s.length,i=Re(s.length),r=Re(s.length);let o="";if(n===1)o="coords * strides + begin";else{let a=0;o=s.map((l,c)=>(a++,s.length===1?`coords * strides[${c}] + begin[${c}]`:`coords[${a-1}] * strides[${c}] + begin[${c}]`)).join(",")}this.userCode=` + `}getCustomSetupFunc(e){if(e.length!==this.rank)throw Error(`The rank (${this.rank}) of the program must match the length of start (${e.length})`);return(t,s)=>{if(this.startLoc==null&&(this.startLoc=t.getUniformLocationNoThrow(s,"start"),this.startLoc==null))return;t.gl.uniform1iv(this.startLoc,e)}}}class $O{constructor(e,t,s){this.variableNames=["x"],this.outputShape=s;const n=s.length,i=Re(s.length),r=Re(s.length);let o="";if(n===1)o="coords * strides + begin";else{let a=0;o=s.map((l,c)=>(a++,s.length===1?`coords * strides[${c}] + begin[${c}]`:`coords[${a-1}] * strides[${c}] + begin[${c}]`)).join(",")}this.userCode=` ${i} begin = ${i}(${e}); ${i} strides = ${i}(${t}); @@ -3478,12 +3478,12 @@ return (round(mod(b, 2.0)) != 1) ? ${r} coords = getOutputCoords(); setOutput(getX(${o})); } - `}}class jO{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}acquireTexture(e,t,s){const n=PO(t,s),i=BO(e,n,s);i in this.freeTextures||(this.freeTextures[i]=[]),i in this.usedTextures||(this.usedTextures[i]=[]);const r=zO(e,n,this.gpgpu.gl,this.gpgpu.textureConfig,s);if(this.freeTextures[i].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=r,this.log();const a=this.freeTextures[i].shift();return this.usedTextures[i].push(a),a}let o;return n===Xt.PACKED_2X2_FLOAT32?o=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):n===Xt.PACKED_2X2_FLOAT16?o=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):n===Xt.UNPACKED_FLOAT32?o=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):n===Xt.UNPACKED_FLOAT16?o=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):n===Xt.PACKED_4X1_UNSIGNED_BYTE&&(o=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[i].push(o),this.numUsedTextures++,this._numBytesAllocated+=r,this.log(),o}releaseTexture(e,t,s,n){if(this.freeTextures==null)return;const i=PO(s,n),r=BO(t,i,n);r in this.freeTextures||(this.freeTextures[r]=[]);const o=zO(t,i,this.gpgpu.gl,this.gpgpu.textureConfig,n),a=W().get("WEBGL_DELETE_TEXTURE_THRESHOLD");a!==-1&&this._numBytesAllocated>a?(this.gpgpu.deleteMatrixTexture(e),this._numBytesAllocated-=o):(this.freeTextures[r].push(e),this.numFreeTextures++,this._numBytesFree+=o),this.numUsedTextures--;const l=this.usedTextures[r],c=l.indexOf(e);if(c<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l.splice(c,1),this.log()}log(){if(!this.logEnabled)return;const e=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${e})`);const t=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*t)}%)`)}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(this.freeTextures==null)return;for(const e in this.freeTextures)this.freeTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t)});for(const e in this.usedTextures)this.usedTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}function $V(e,t){const s=e;if(t===s.R32F)return 4;if(t===s.R16F)return 2;if(t===s.RGBA32F)return 16;if(t===e.RGBA)return 16;if(t===s.RGBA16F)return 8;throw new Error(`Unknown internal format ${t}`)}function zO(e,t,s,n,i){const r=WV(t,n);let o;if(i){const[l,c]=wi(e[0],e[1]);o=l*c}else{const[l,c]=Ta(e[0],e[1]);o=l*c}const a=$V(s,r);return o*a}function WV(e,t){switch(e){case Xt.PACKED_2X2_FLOAT32:return $x(t);case Xt.PACKED_2X2_FLOAT16:return Wx(t);case Xt.UNPACKED_FLOAT32:return Fx(t);case Xt.UNPACKED_FLOAT16:return Mx(t);case Xt.PACKED_4X1_UNSIGNED_BYTE:return Ux(t);default:throw new Error(`Unknown physical texture type ${e}`)}}function zV(e){return W().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?Xt.PACKED_2X2_FLOAT32:Xt.UNPACKED_FLOAT32:e?Xt.PACKED_2X2_FLOAT16:Xt.UNPACKED_FLOAT16}function PO(e,t){if(e===is.UPLOAD)return Xt.PACKED_2X2_FLOAT32;if(e===is.RENDER||e==null)return zV(t);if(e===is.DOWNLOAD||e===is.PIXELS)return Xt.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function BO(e,t,s){return`${e[0]}_${e[1]}_${t}_${s}`}class VO{constructor(e,t){this.variableNames=["A"];const s=new Array(e.length);for(let r=0;r0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=r,this.log();const a=this.freeTextures[i].shift();return this.usedTextures[i].push(a),a}let o;return n===Xt.PACKED_2X2_FLOAT32?o=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):n===Xt.PACKED_2X2_FLOAT16?o=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):n===Xt.UNPACKED_FLOAT32?o=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):n===Xt.UNPACKED_FLOAT16?o=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):n===Xt.PACKED_4X1_UNSIGNED_BYTE&&(o=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[i].push(o),this.numUsedTextures++,this._numBytesAllocated+=r,this.log(),o}releaseTexture(e,t,s,n){if(this.freeTextures==null)return;const i=zO(s,n),r=PO(t,i,n);r in this.freeTextures||(this.freeTextures[r]=[]);const o=WO(t,i,this.gpgpu.gl,this.gpgpu.textureConfig,n),a=W().get("WEBGL_DELETE_TEXTURE_THRESHOLD");a!==-1&&this._numBytesAllocated>a?(this.gpgpu.deleteMatrixTexture(e),this._numBytesAllocated-=o):(this.freeTextures[r].push(e),this.numFreeTextures++,this._numBytesFree+=o),this.numUsedTextures--;const l=this.usedTextures[r],c=l.indexOf(e);if(c<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l.splice(c,1),this.log()}log(){if(!this.logEnabled)return;const e=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${e})`);const t=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*t)}%)`)}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(this.freeTextures==null)return;for(const e in this.freeTextures)this.freeTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t)});for(const e in this.usedTextures)this.usedTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}function UV(e,t){const s=e;if(t===s.R32F)return 4;if(t===s.R16F)return 2;if(t===s.RGBA32F)return 16;if(t===e.RGBA)return 16;if(t===s.RGBA16F)return 8;throw new Error(`Unknown internal format ${t}`)}function WO(e,t,s,n,i){const r=$V(t,n);let o;if(i){const[l,c]=wi(e[0],e[1]);o=l*c}else{const[l,c]=Ta(e[0],e[1]);o=l*c}const a=UV(s,r);return o*a}function $V(e,t){switch(e){case Xt.PACKED_2X2_FLOAT32:return $x(t);case Xt.PACKED_2X2_FLOAT16:return Wx(t);case Xt.UNPACKED_FLOAT32:return Fx(t);case Xt.UNPACKED_FLOAT16:return Mx(t);case Xt.PACKED_4X1_UNSIGNED_BYTE:return Ux(t);default:throw new Error(`Unknown physical texture type ${e}`)}}function WV(e){return W().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?Xt.PACKED_2X2_FLOAT32:Xt.UNPACKED_FLOAT32:e?Xt.PACKED_2X2_FLOAT16:Xt.UNPACKED_FLOAT16}function zO(e,t){if(e===is.UPLOAD)return Xt.PACKED_2X2_FLOAT32;if(e===is.RENDER||e==null)return WV(t);if(e===is.DOWNLOAD||e===is.PIXELS)return Xt.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function PO(e,t,s){return`${e[0]}_${e[1]}_${t}_${s}`}class jO{constructor(e,t){this.variableNames=["A"];const s=new Array(e.length);for(let r=0;r5)throw Error(`Tile for rank ${t} is not yet supported`);if(t===1)return`imod(resRC, ${e[0]})`;const s=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],n=[];for(let i=0;i5)throw Error(`Tile for rank ${t} is not yet supported`);if(t===1)return`imod(resRC, ${e[0]})`;const s=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],n=[];for(let i=0;i= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0); -`;function HO(e=0){return Qi+` +`;function qO(e=0){return Qi+` return x > 0.0 ? 1.0 : float(${e}); - `}const Hx="return -x;",Yx="return ceil(x);",Kx="return floor(x);",YO=` + `}const Hx="return -x;",Yx="return ceil(x);",Kx="return floor(x);",HO=` if (isnan(x)) { return 0.0; } return sign(x); -`,KO="return float(isnan(x));",XO="return float(isinf(x));",JO="return float(!isnan(x) && !isinf(x));",ZO=` +`,YO="return float(isnan(x));",KO="return float(isinf(x));",XO="return float(!isnan(x) && !isinf(x));",JO=` // OpenGL ES does not support round function. // The algorithm is based on banker's rounding. float base = floor(x); @@ -3524,8 +3524,8 @@ return (round(mod(b, 2.0)) != 1) ? return base + 1.0; } } -`,Xx="return exp(x);",Jx="return exp(x) - 1.0;",QO=`if (x < 0.0) return NAN; - return log(x);`,e1="return log(1.0 + x);",t1="return sqrt(x);",s1="return inversesqrt(x);",n1="return 1.0 / (1.0 + exp(-1.0 * x));",i1=` +`,Xx="return exp(x);",Jx="return exp(x) - 1.0;",ZO=`if (x < 0.0) return NAN; + return log(x);`,QO="return log(1.0 + x);",e1="return sqrt(x);",t1="return inversesqrt(x);",s1="return 1.0 / (1.0 + exp(-1.0 * x));",n1=` float epsilon = 1.1920928955078125e-7; float threshold = log(epsilon) + 2.0; @@ -3545,32 +3545,32 @@ return (round(mod(b, 2.0)) != 1) ? result = log(exp_x + 1.0); } return result; -`,r1=Qi+` +`,i1=Qi+` if (abs(x) > 1.) { return NAN; } return asin(x); -`,o1=Qi+` +`,r1=Qi+` if (abs(x) > 1.) { return NAN; } return acos(x); -`,a1=Qi+` +`,o1=Qi+` return atan(x); -`,l1=` +`,a1=` float e2x = exp(x); return (e2x - 1.0 / e2x) / 2.0; -`,c1=` +`,l1=` float e2x = exp(-x); return (e2x + 1.0 / e2x) / 2.0; -`,p1=` +`,c1=` float e2x = exp(-2.0 * abs(x)); return sign(x) * (1.0 - e2x) / (1.0 + e2x); -`,u1=Qi+"return log(x + sqrt(x * x + 1.0));",h1=Qi+` +`,p1=Qi+"return log(x + sqrt(x * x + 1.0));",u1=Qi+` if (x < 1.0) return NAN; - return log(x + sqrt(x * x - 1.0));`,d1=Qi+` + return log(x + sqrt(x * x - 1.0));`,h1=Qi+` if ((x < -1.0) || (x > 1.0)) return NAN; - return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,m1=` + return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,d1=` // Error function is calculated approximately with elementary function. // See "Handbook of Mathematical Functions with Formulas, // Graphs, and Mathematical Tables", Abramowitz and Stegun. @@ -3585,7 +3585,7 @@ return (round(mod(b, 2.0)) != 1) ? x = abs(x); float t = 1.0 / (1.0 + p * x); return sign * (1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x)); -`,f1="return 1.0 / x;",g1="return float(!(x >= 1.0));",y1="return float(int(x));",Wu="return x;";const b1="return x;",w1=` +`,m1="return 1.0 / x;",f1="return float(!(x >= 1.0));",g1="return float(int(x));",Wu="return x;";const y1="return x;",b1=` vec4 result = log(x); vec4 isNaN = vec4(lessThan(x, vec4(0.0))); result.r = isNaN.r == 1.0 ? NAN : result.r; @@ -3634,29 +3634,29 @@ return (round(mod(b, 2.0)) != 1) ? setOutput(y); } - `}}class x1{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e;const t=e.length,s=_t("rc",t),n=Re(t),i=BR(t,s),r=s.slice(-2),o=t<=1?"rc":`vec2(${r.join(",")})`;this.userCode=` + `}}class w1{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e;const t=e.length,s=_t("rc",t),n=Re(t),i=PR(t,s),r=s.slice(-2),o=t<=1?"rc":`vec2(${r.join(",")})`;this.userCode=` void main() { ${n} rc = getOutputCoords(); vec4 packedInput = getA(${i}); setOutput(getChannel(packedInput, ${o})); } - `}}const{segment_util:L1}=U,BV=vt.split,jV=vt.tile,VV=vt.topkImpl,GV=vt.whereImpl,qV=1e-7,HV=1e-4,mg={};function YV(e){return e in mg||(mg[e]={}),mg[e]}function fg(e,t=!1){if(e==="linear")return t?b1:GO;if(e==="relu")return t?Zx:Vx;if(e==="elu")return t?eL:qx;if(e==="relu6")return t?Qx:Gx;if(e==="prelu")return t?Cx:Nx;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}const KV=128,XV=600;function JV(){return W().global.screen==null?1024:W().global.screen.height*W().global.screen.width*window.devicePixelRatio*XV/1024/1024}const S1=1e3;class tL extends Eo{constructor(e){super();if(this.pendingRead=new WeakMap,this.pendingDisposal=new WeakSet,this.dataRefCount=new WeakMap,this.numBytesInGPU=0,this.uploadWaitMs=0,this.downloadWaitMs=0,this.warnedAboutMemory=!1,this.warnedAboutCPUBackend=!1,this.pendingDeletes=0,this.disposed=!1,!W().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");if(e==null){const t=on(W().getNumber("WEBGL_VERSION"));this.binaryCache=YV(W().getNumber("WEBGL_VERSION")),this.gpgpu=new zx(t),this.canvas=t.canvas,this.gpgpuCreatedLocally=!0}else this.gpgpu=e,this.binaryCache={},this.gpgpuCreatedLocally=!1,this.canvas=e.gl.canvas;this.textureManager=new jO(this.gpgpu),this.numMBBeforeWarning=JV(),this.texData=new Fc(this,Us())}numDataIds(){return this.texData.numDataIds()+(this.cpuBackend?this.cpuBackend.numDataIds():0)-this.pendingDeletes}write(e,t,s){if((W().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||W().getBool("DEBUG"))&&this.checkNumericalProblems(e),s==="complex64"&&e!=null)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");const n={};return this.texData.set(n,{shape:t,dtype:s,values:e,usage:is.UPLOAD,refCount:1}),n}incRef(e){const t=this.texData.get(e);t.refCount++}decRef(e){if(this.texData.has(e)){const t=this.texData.get(e);t.refCount--}}move(e,t,s,n){if(W().getBool("DEBUG")&&this.checkNumericalProblems(t),n==="complex64")throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(e,{shape:s,dtype:n,values:t,usage:is.UPLOAD,refCount:1})}disposeIntermediateTensorInfo(e){const t=e.dataId;if(this.texData.has(t)){const s=this.texData.get(t);s.refCount--,s.refCount<1&&this.disposeData(t)}}readSync(e){const t=this.texData.get(e),{values:s,dtype:n,complexTensors:i,slice:r,shape:o,isPacked:a}=t;if(r!=null){let u;a?u=new lc(o,Wu):u=new $e(o,Wu);const h=this.runWebGLProgram(u,[{dataId:e,shape:o,dtype:n}],n),d=this.readSync(h.dataId);return this.disposeIntermediateTensorInfo(h),d}if(s!=null)return this.convertAndCacheOnCPU(e);if(n==="string")return s;const l=this.activeTimers!=null;let c;l&&(c=N.now());let p;if(n==="complex64"){const u=i.real.dataSync(),h=i.imag.dataSync();p=U.mergeRealAndImagArrays(u,h)}else p=this.getValuesFromTexture(e);return l&&(this.downloadWaitMs+=N.now()-c),this.convertAndCacheOnCPU(e,p)}async read(e){if(this.pendingRead.has(e)){const d=this.pendingRead.get(e);return new Promise(m=>d.push(m))}const t=this.texData.get(e),{values:s,shape:n,slice:i,dtype:r,complexTensors:o,isPacked:a}=t;if(i!=null){let d;a?d=new lc(n,Wu):d=new $e(n,Wu);const m=this.runWebGLProgram(d,[{dataId:e,shape:n,dtype:r}],r),f=this.read(m.dataId);return this.disposeIntermediateTensorInfo(m),f}if(s!=null)return this.convertAndCacheOnCPU(e);if(!W().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&W().getNumber("WEBGL_VERSION")===2)throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let l=null,c;if(r!=="complex64"&&W().get("WEBGL_BUFFER_SUPPORTED")){c=this.decode(e);const d=this.texData.get(c.dataId);l=this.gpgpu.createBufferFromTexture(d.texture,...xo(n))}this.pendingRead.set(e,[]),r!=="complex64"&&await this.gpgpu.createAndWaitForFence();let p;if(r==="complex64"){const d=await Promise.all([o.real.data(),o.imag.data()]),m=d[0],f=d[1];p=U.mergeRealAndImagArrays(m,f)}else if(l==null)p=this.getValuesFromTexture(e);else{const d=N.sizeFromShape(n);p=this.gpgpu.downloadFloat32MatrixFromBuffer(l,d)}c!=null&&this.disposeIntermediateTensorInfo(c);const u=this.convertAndCacheOnCPU(e,p),h=this.pendingRead.get(e);return this.pendingRead.delete(e),h.forEach(d=>d(u)),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e),this.pendingDeletes--),u}checkNumericalProblems(e){if(e==null)return;for(let t=0;ta.query)).filter(a=>a!=null),r=N.flatten(this.activeTimers.map(a=>a.name)).filter(a=>a!=null);this.activeTimers=t,n&&(this.programTimersStack=null);const o={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};if(W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){const a=await Promise.all(i);o.kernelMs=N.sum(a),o.getExtraProfileInfo=()=>a.map((l,c)=>({name:r[c],ms:l})).map(l=>`${l.name}: ${l.ms}`).join(", ")}else o.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,o}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:N.now(),endMs:null}}endTimer(e){return W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=N.now(),e)}async getQueryTime(e){if(W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(e);const t=e;return t.endMs-t.startMs}disposeData(e){if(this.pendingDisposal.has(e))return;if(this.pendingRead.has(e)){this.pendingDisposal.add(e),this.pendingDeletes++;return}if(!this.texData.has(e))return;this.releaseGPUData(e);const{complexTensors:t}=this.texData.get(e);t!=null&&(t.real.dispose(),t.imag.dispose()),this.texData.delete(e)}releaseGPUData(e){const{texture:t,dtype:s,texShape:n,usage:i,isPacked:r,slice:o}=this.texData.get(e),a=o&&o.origDataId||e,l=this.dataRefCount.get(a);l>1?this.dataRefCount.set(a,l-1):(this.dataRefCount.delete(a),t!=null&&(this.numBytesInGPU-=this.computeBytes(n,s),this.textureManager.releaseTexture(t,n,i,r)));const c=this.texData.get(e);c.texture=null,c.texShape=null,c.isPacked=!1,c.slice=null}getTexture(e){return this.uploadToGPU(e),this.texData.get(e).texture}getDataInfo(e){return this.texData.get(e)}getCPUBackend(){return W().getBool("WEBGL_CPU_FORWARD")?(this.cpuBackend==null&&(this.cpuBackend=Us().findBackend("cpu")),this.cpuBackend):null}shouldExecuteOnCPU(e,t=KV){const s=this.getCPUBackend();return!this.warnedAboutCPUBackend&&s==null&&(console.warn("Your application contains ops that are small enough to be executed on the CPU backend, however the CPU backend cannot be found. Consider importing the CPU backend (@tensorflow/tfjs-backend-cpu) for better performance."),this.warnedAboutCPUBackend=!0),s!=null&&e.every(n=>this.texData.get(n.dataId).texture==null&&N.sizeFromShape(n.shape)this.cpuBackend.stridedSlice(e,t,s,n));if(i)return i;const r=Ms.computeOutShape(t,s,n);if(r.some(a=>a===0))return ze([],r);const o=new WO(t,n,r);return this.compileAndRun(o,[e])}reverse(e,t){const s=W().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new DO(e.shape,t):new kO(e.shape,t);return this.compileAndRun(s,[e])}concat(e,t){if(e[0].dtype==="complex64"){const o=e.map(l=>Zs(l)),a=e.map(l=>yn(l));return Gt(this.concat(o,t),this.concat(a,t))}if(e.length===1)return e[0];if(e.length>W().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){const o=Math.floor(e.length/2),a=this.concat(e.slice(0,o),t),l=this.concat(e.slice(o),t);return this.concat([a,l],t)}if(W().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&e[0].rank>1){const o=new R2(e.map(a=>a.shape),t);return this.compileAndRun(o,e)}const s=U.computeOutShape(e.map(o=>o.shape),t),n=e.map(o=>o.as2D(-1,N.sizeFromShape(o.shape.slice(t)))),i=new C2(n.map(o=>o.shape)),r=this.compileAndRun(i,n);return r.reshape(s)}neg(e){const t=this.tryRunOnCpuOrThrow([e],()=>this.cpuBackend.neg(e));if(t)return t;if(W().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,Hx,e.dtype);const s=new $e(e.shape,Hx);return this.compileAndRun(s,[e])}batchMatMul(e,t,s,n){const i=s?e.shape[2]:e.shape[1],r=n?t.shape[1]:t.shape[2],o=s?e.shape[1]:e.shape[2],[a,,]=e.shape;if((i===1||r===1)&&o>S1){s&&(e=se(e,[0,2,1])),n&&(t=se(t,[0,2,1]));const p=r===1?e:e.as3D(a,o,1),u=r===1?2:1,h=r===1?t.as3D(a,1,o):t;return this.multiply(p,h).sum(u,!0)}const l=Ft(e.dtype,t.dtype),c=new pg(e.shape,[a,i,r],s,n);return this.compileAndRun(c,[e,t],l)}fusedBatchMatMul({a:e,b:t,transposeA:s,transposeB:n,bias:i,activation:r,preluActivationWeights:o}){const a=s?e.shape[2]:e.shape[1],l=n?t.shape[1]:t.shape[2],[c,,]=e.shape,p=Ft(e.dtype,t.dtype),u=i!=null,h=o!=null,d=r?fg(r,!0):null,m=new pg(e.shape,[c,a,l],s,n,u,d,h),f=[e,t];return i&&f.push(i),o&&f.push(o),this.compileAndRun(m,f,p)}multiply(e,t){if(e.dtype==="complex64"){const i=this.texData.get(e.dataId),r=this.texData.get(t.dataId),o=new Tx(vx.REAL,e.shape,t.shape),a=new Tx(vx.IMAG,e.shape,t.shape),l=[this.makeComplexComponentTensorInfo(e,i.complexTensors.real),this.makeComplexComponentTensorInfo(e,i.complexTensors.imag),this.makeComplexComponentTensorInfo(t,r.complexTensors.real),this.makeComplexComponentTensorInfo(t,r.complexTensors.imag)],c=this.compileAndRun(o,l),p=this.compileAndRun(a,l),u=this.complex(c,p);return c.dispose(),p.dispose(),u}const s=Ft(e.dtype,t.dtype);if(this.shouldExecuteOnCPU([e,t])){const i=this.texData.get(e.dataId),r=this.texData.get(t.dataId),[o,a]=DR(e.shape,t.shape,i.values,r.values,s);return this.makeOutput(a,s,o)}if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,Ax,e.dtype);const n=new kt(Ax,e.shape,t.shape);return this.compileAndRun(n,[e,t],e.dtype)}localResponseNormalization4D(e,t,s,n,i){const r=W().getBool("WEBGL_PACK_NORMALIZATION")?new xO(e.shape,t,s,n,i):new bO(e.shape,t,s,n,i);return this.compileAndRun(r,[e])}LRNGrad(e,t,s,n,i,r,o){const a=new wO(t.shape,n,i,r,o);return this.compileAndRun(a,[t,s,e])}tile(e,t){if(e.dtype==="string"){const n=this.readSync(e.dataId),i=n.map(o=>N.decodeString(o)),r=ge(e.shape,e.dtype,i);return jV(r,t)}const s=new VO(e.shape,t);return this.compileAndRun(s,[e])}pad(e,t,s){const n=W().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new NO(e.shape,t,s):new AO(e.shape,t,s);return this.compileAndRun(n,[e])}gather(e,t,s){const n=this.tryRunOnCpuOrThrow([e,t],()=>this.cpuBackend.gather(e,t,s));if(n)return n;const i=new K2(e.shape,t.size,s);return this.compileAndRun(i,[e,t])}batchToSpaceND(e,t,s){N.assert(e.rank<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");const n=t.reduce((c,p)=>c*p),i=U.getReshaped(e.shape,t,n),r=U.getPermuted(i.length,t.length),o=U.getReshapedPermuted(e.shape,t,n),a=U.getSliceBeginCoords(s,t.length),l=U.getSliceSize(o,s,t.length);return se(e.reshape(i),r).reshape(o).slice(a,l)}spaceToBatchND(e,t,s){N.assert(e.rank<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");const n=t.reduce((p,u)=>p*u),i=[[0,0]];i.push(...s);for(let p=1+t.length;pthis.cpuBackend.prod(e,t));if(s)return s;const[n,i]=U.computeOutAndReduceShapes(e.shape,t),r=N.sizeFromShape(i),o=e.as2D(-1,r),a=Mp(e.dtype);return this.reduce(o,"prod",a).reshape(n)}unsortedSegmentSum(e,t,s){let n=0;const i=U.getAxesPermutation([n],e.rank);let r=e;i!=null&&(r=se(e,i),n=U.getInnerMostAxes(1,e.rank)[0]);const o=L1.computeOutShape(r.shape,n,s),a=N.sizeFromShape([r.shape[n]]),l=r.as2D(-1,a),c=Mp(e.dtype);let p=this.segOpCompute(l,"unsortedSegmentSum",t,c,s).reshape(o);return i!=null&&(p=se(p,U.getUndoAxesPermutation(i))),p}segOpCompute(e,t,s,n,i){const r=e.shape[0],o=e.shape[1],a=L1.segOpComputeOptimalWindowSize(o,i),l={windowSize:a,inSize:o,batchSize:r,numSegments:i},c=new FO(l,t),p=this.compileAndRun(c,[e,s],n);return p.shape[1]===i?p:(s=$i(0,i).tile([o/a]),this.segOpCompute(p,t,s,n,i))}argMinMaxReduce(e,t,s){const n=[t];if(U.assertAxesAreInnerMostDims("arg"+s.charAt(0).toUpperCase()+s.slice(1),n,e.rank),!W().getBool("WEBGL_PACK_REDUCE")||e.rank<=2){const[i,r]=U.computeOutAndReduceShapes(e.shape,n),o=N.sizeFromShape(r),a=e.as2D(-1,o);return this.argReduce(a,s).reshape(i)}return this.argReducePacked(e,s)}argMin(e,t){return this.argMinMaxReduce(e,t,"min")}argMax(e,t){return this.argMinMaxReduce(e,t,"max")}cumsum(e,t,s,n){if(t!==e.rank-1)throw new Error(`WebGL cumsum shader expects an inner-most axis=${e.rank-1} but got axis=${t}`);const i=e.shape[t];let r=e;for(let o=0;o<=Math.ceil(Math.log2(i))-1;o++){const a=new _x(e.shape,!1,n),l=a.getCustomSetupFunc(o),c=r;r=this.compileAndRun(a,[r],r.dtype,l),c.dispose()}if(s){const o=new _x(e.shape,s,n),a=r;r=this.compileAndRun(o,[r]),a.dispose()}return r}equal(e,t){if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,m2,"bool");const s=new kt(QR,e.shape,t.shape);return this.compileAndRun(s,[e,t],"bool")}notEqual(e,t){if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,f2,"bool");const s=new kt(e2,e.shape,t.shape);return this.compileAndRun(s,[e,t],"bool")}less(e,t){const s=this.tryRunOnCpuOrThrow([e,t],()=>this.cpuBackend.less(e,t));if(s)return s;if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,g2,"bool");const n=new kt(t2,e.shape,t.shape);return this.compileAndRun(n,[e,t],"bool")}lessEqual(e,t){if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,y2,"bool");const s=new kt(s2,e.shape,t.shape);return this.compileAndRun(s,[e,t],"bool")}greater(e,t){const s=this.tryRunOnCpuOrThrow([e,t],()=>this.cpuBackend.greater(e,t));if(s)return s;if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,b2,"bool");const n=new kt(n2,e.shape,t.shape);return this.compileAndRun(n,[e,t],"bool")}greaterEqual(e,t){if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,w2,"bool");const s=new kt(i2,e.shape,t.shape);return this.compileAndRun(s,[e,t],"bool")}logicalNot(e){const t=new $e(e.shape,g1);return this.compileAndRun(t,[e])}logicalAnd(e,t){if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,x2,"bool");const s=new kt(r2,e.shape,t.shape);return this.compileAndRun(s,[e,t],"bool")}logicalOr(e,t){if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,L2,"bool");const s=new kt(o2,e.shape,t.shape);return this.compileAndRun(s,[e,t],"bool")}select(e,t,s){const n=new MO(e.rank,t.shape,t.rank);return this.compileAndRun(n,[e,t,s],Ft(t.dtype,s.dtype))}where(e){U.warn("tf.where() in webgl locks the UI thread. Call tf.whereAsync() instead");const t=e.dataSync();return GV(e.shape,t)}topk(e,t,s){const n=e.dataSync();return VV(n,e.shape,e.dtype,t,s)}min(e,t){U.assertAxesAreInnerMostDims("min",t,e.rank);const[s,n]=U.computeOutAndReduceShapes(e.shape,t),i=N.sizeFromShape(n),r=e.as2D(-1,i);return this.reduce(r,"min",r.dtype).reshape(s)}minimum(e,t){const s=this.tryRunOnCpuOrThrow([e,t],()=>this.cpuBackend.minimum(e,t));if(s)return s;const n=W().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Li(I2,e.shape,t.shape):new kt(l2,e.shape,t.shape);return this.compileAndRun(n,[e,t])}mod(e,t){const s=W().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Li(v2,e.shape,t.shape):new kt(c2,e.shape,t.shape);return this.compileAndRun(s,[e,t])}maximum(e,t){const s=this.tryRunOnCpuOrThrow([e,t],()=>this.cpuBackend.maximum(e,t));if(s)return s;const n=W().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Li(S2,e.shape,t.shape):new kt(a2,e.shape,t.shape);return this.compileAndRun(n,[e,t])}all(e,t){U.assertAxesAreInnerMostDims("all",t,e.rank);const[s,n]=U.computeOutAndReduceShapes(e.shape,t),i=N.sizeFromShape(n),r=e.as2D(-1,i);return this.reduce(r,"all",r.dtype).reshape(s)}any(e,t){U.assertAxesAreInnerMostDims("any",t,e.rank);const[s,n]=U.computeOutAndReduceShapes(e.shape,t),i=N.sizeFromShape(n),r=e.as2D(-1,i);return this.reduce(r,"any",r.dtype).reshape(s)}floorDiv(e,t){const s=JR,n="int32";if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,u2,n);const i=new kt(s,e.shape,t.shape);return this.compileAndRun(i,[e,t],n)}add(e,t){if(e.dtype==="complex64"&&t.dtype==="complex64")return this.complexSeparableBinaryOp(e,t,og);const s=Ft(e.dtype,t.dtype);if(this.shouldExecuteOnCPU([e,t])){const i=this.texData.get(e.dataId),r=this.texData.get(t.dataId),[o,a]=NR(e.shape,t.shape,i.values,r.values,s);return this.makeOutput(a,s,o)}if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,og,s);const n=new kt(og,e.shape,t.shape);return this.compileAndRun(n,[e,t],s)}packedUnaryOp(e,t,s){const n=new lc(e.shape,t);return this.compileAndRun(n,[e],s)}packedBinaryOp(e,t,s,n,i=!1){const r=new Li(s,e.shape,t.shape,i);return this.compileAndRun(r,[e,t],n)}complexSeparableBinaryOp(e,t,s){const n=this.texData.get(e.dataId),i=this.texData.get(t.dataId),[r,o]=[[n.complexTensors.real,i.complexTensors.real],[n.complexTensors.imag,i.complexTensors.imag]].map(l=>{const[c,p]=l,u=this.makeComplexComponentTensorInfo(e,c),h=this.makeComplexComponentTensorInfo(t,p),d=new kt(s,e.shape,t.shape);return this.compileAndRun(d,[u,h],Ft(c.dtype,p.dtype))}),a=this.complex(r,o);return r.dispose(),o.dispose(),a}makeComplexComponentTensorInfo(e,t){return{dataId:t.dataId,dtype:t.dtype,shape:e.shape}}addN(e){if(e.length===1)return e[0];if(e.length>W().get("WEBGL_MAX_TEXTURES_IN_SHADER")){const r=Math.floor(e.length/2),o=this.addN(e.slice(0,r)),a=this.addN(e.slice(r));return this.addN([o,a])}const t=e.map(r=>r.dtype).reduce((r,o)=>Ft(r,o)),s=e.map(r=>r.shape),n=W().getBool("WEBGL_PACK"),i=n?new zR(e[0].shape,s):new WR(e[0].shape,s);return this.compileAndRun(i,e,t)}subtract(e,t){if(e.dtype==="complex64"&&t.dtype==="complex64")return this.complexSeparableBinaryOp(e,t,ag);const s=Ft(e.dtype,t.dtype);if(this.shouldExecuteOnCPU([e,t])){const i=this.texData.get(e.dataId),r=this.texData.get(t.dataId),[o,a]=UR(e.shape,t.shape,i.values,r.values,s);return this.makeOutput(a,s,o)}if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,ag,e.dtype);const n=new kt(ag,e.shape,t.shape);return this.compileAndRun(n,[e,t],s)}pow(e,t){const s=W().getBool("WEBGL_PACK_BINARY_OPERATIONS"),n=s?new Li(h2,e.shape,t.shape):new kt(ZR,e.shape,t.shape),i=Ft(e.dtype,t.dtype);return this.compileAndRun(n,[e,t],i)}ceil(e){if(this.shouldExecuteOnCPU([e])){const s=CR(this.texData.get(e.dataId).values,e.dtype);return this.makeOutput(e.shape,e.dtype,s)}if(W().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,Yx,e.dtype);const t=new $e(e.shape,Yx);return this.compileAndRun(t,[e])}floor(e){if(this.shouldExecuteOnCPU([e])){const s=ER(this.texData.get(e.dataId).values,e.dtype);return this.makeOutput(e.shape,e.dtype,s)}if(W().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,Kx,e.dtype);const t=new $e(e.shape,Kx);return this.compileAndRun(t,[e])}sign(e){const t=new $e(e.shape,YO);return this.compileAndRun(t,[e])}isNaN(e){const t=new $e(e.shape,KO);return this.compileAndRun(t,[e],"bool")}isInf(e){const t=new $e(e.shape,XO);return this.compileAndRun(t,[e],"bool")}isFinite(e){const t=new $e(e.shape,JO);return this.compileAndRun(t,[e],"bool")}round(e){const t=new $e(e.shape,ZO);return this.compileAndRun(t,[e])}exp(e){if(this.shouldExecuteOnCPU([e])){const s=RR(this.texData.get(e.dataId).values,e.dtype);return this.makeOutput(e.shape,e.dtype,s)}if(W().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,Xx,e.dtype);const t=new $e(e.shape,Xx);return this.compileAndRun(t,[e])}expm1(e){if(this.shouldExecuteOnCPU([e])){const s=OR(this.texData.get(e.dataId).values,e.dtype);return this.makeOutput(e.shape,e.dtype,s)}if(W().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,Jx,e.dtype);const t=new $e(e.shape,Jx);return this.compileAndRun(t,[e])}softmax(e,t){const s=N.parseAxisParam([t],e.shape),n=Lt(e,s),i=U.expandShapeToKeepDim(n.shape,s),r=this.subtract(e,n.reshape(i)),o=this.exp(r),a=this.sum(o,s).reshape(i);return Z(o,a)}log(e){if(this.shouldExecuteOnCPU([e])){const s=_R(this.texData.get(e.dataId).values,e.dtype);return this.makeOutput(e.shape,e.dtype,s)}if(W().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,w1,e.dtype);const t=new $e(e.shape,QO);return this.compileAndRun(t,[e])}log1p(e){const t=new $e(e.shape,e1);return this.compileAndRun(t,[e])}sqrt(e){const t=new $e(e.shape,t1);return this.compileAndRun(t,[e])}rsqrt(e){if(this.shouldExecuteOnCPU([e])){const s=FR(this.texData.get(e.dataId).values,e.dtype);return this.makeOutput(e.shape,e.dtype,s)}const t=new $e(e.shape,s1);return this.compileAndRun(t,[e])}reciprocal(e){const t=new $e(e.shape,f1);return this.compileAndRun(t,[e])}relu(e){let t;return W().getBool("WEBGL_PACK")?t=new lc(e.shape,Zx):t=new $e(e.shape,Vx),this.compileAndRun(t,[e])}relu6(e){let t;return W().getBool("WEBGL_PACK")?t=new lc(e.shape,Qx):t=new $e(e.shape,Gx),this.compileAndRun(t,[e])}prelu(e,t){const s=W().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Li(Cx,e.shape,t.shape):new kt(Nx,e.shape,t.shape);return this.compileAndRun(s,[e,t])}elu(e){if(W().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,eL,e.dtype);const t=new $e(e.shape,qx);return this.compileAndRun(t,[e])}eluDer(e,t){const s=W().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Li(d2,e.shape,t.shape):new kt(p2,e.shape,t.shape);return this.compileAndRun(s,[e,t])}selu(e){const t=new $e(e.shape,qO);return this.compileAndRun(t,[e])}int(e){const t=new $e(e.shape,y1);return this.compileAndRun(t,[e],"int32")}clip(e,t,s){let n;W().getBool("WEBGL_PACK_CLIP")?n=new A2(e.shape):n=new T2(e.shape);const i=n.getCustomSetupFunc(t,s);return this.compileAndRun(n,[e],null,i)}abs(e){if(this.shouldExecuteOnCPU([e])&&e.dtype!=="complex64"){const s=AR(this.texData.get(e.dataId).values);return this.makeOutput(e.shape,e.dtype,s)}if(W().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,jx,e.dtype);const t=new $e(e.shape,jx);return this.compileAndRun(t,[e])}complexAbs(e){const t=this.texData.get(e.dataId),s=new N2(e.shape),n=[this.makeComplexComponentTensorInfo(e,t.complexTensors.real),this.makeComplexComponentTensorInfo(e,t.complexTensors.imag)];return this.compileAndRun(s,n)}sigmoid(e){const t=new $e(e.shape,n1);return this.compileAndRun(t,[e])}softplus(e){const t=new $e(e.shape,i1);return this.compileAndRun(t,[e])}asin(e){const t=new $e(e.shape,r1);return this.compileAndRun(t,[e])}acos(e){const t=new $e(e.shape,o1);return this.compileAndRun(t,[e])}atan(e){const t=new $e(e.shape,a1);return this.compileAndRun(t,[e])}sinh(e){const t=new $e(e.shape,l1);return this.compileAndRun(t,[e])}cosh(e){const t=new $e(e.shape,c1);return this.compileAndRun(t,[e])}tanh(e){const t=new $e(e.shape,p1);return this.compileAndRun(t,[e])}asinh(e){const t=new $e(e.shape,u1);return this.compileAndRun(t,[e])}acosh(e){const t=new $e(e.shape,h1);return this.compileAndRun(t,[e])}atanh(e){const t=new $e(e.shape,d1);return this.compileAndRun(t,[e])}erf(e){const t=new $e(e.shape,m1);return this.compileAndRun(t,[e])}step(e,t){const s=new $e(e.shape,HO(t));return this.compileAndRun(s,[e])}conv2dByMatMul(e,t,s,n,i,r){const o=e.shape,a=this.texData.get(e.dataId),l=s.inChannels,c=o[0]*o[1]*o[2],p=s.outChannels,u=s.dataFormat==="channelsLast",h=!1,d=!1,m=(c===1||p===1)&&l>S1,f=o[2]%2!==0&&!!a.isPacked;if(m||!W().getBool("WEBGL_LAZILY_UNPACK")||!W().getBool("WEBGL_PACK_BINARY_OPERATIONS")||!f){const _=u?o[0]*o[1]*o[2]:o[0]*o[2]*o[3],E=O(e,[1,_,s.inChannels]),F=O(t,[1,s.inChannels,s.outChannels]),D=this.fusedBatchMatMul({a:E,b:F,transposeA:h,transposeB:d,bias:n,activation:i,preluActivationWeights:r});return O(D,s.outShape)}const g=u?o[0]*o[1]*(o[2]+1):o[0]*o[2]*(o[3]+1),y={dataId:e.dataId,shape:[1,g,s.inChannels],dtype:e.dtype},w=a.shape;a.shape=a.shape.slice(),a.shape[a.shape.length-2]++,N.assert(sc(a.shape,y.shape),()=>`packed reshape ${a.shape} to ${y.shape} isn't free`);const x=O(t,[1,s.inChannels,s.outChannels]),T=this.fusedBatchMatMul({a:y,b:x,transposeA:h,transposeB:d,bias:n,activation:i,preluActivationWeights:r}),A=this.texData.get(T.dataId);return N.assert(A.isPacked,()=>"batchMatMul result is expected to be packed"),a.shape=w,A.shape=s.outShape,Us().makeTensorFromDataId(T.dataId,s.outShape,T.dtype)}conv2dWithIm2Row(e,t,s,n,i,r){const{filterWidth:o,filterHeight:a,inChannels:l,outWidth:c,outHeight:p,dataFormat:u}=s,h=u==="channelsLast",d=o*a*l,m=p*c,f=[d,m],g=!0,y=!1,w=e.squeeze([0]),x=t.reshape([1,d,-1]),T=new yO(f,w.shape,s),A=this.compileAndRun(T,[w]).reshape([1,f[0],f[1]]),_=n!=null,E=r!=null,F=i?fg(i,!0):null,D=new pg(A.shape,[1,m,s.outChannels],g,y,_,F,E),M=[A,x];n&&M.push(n),E&&M.push(r);const P=this.compileAndRun(D,M);return h?P.reshape([1,p,c,s.outChannels]):P.reshape([1,s.outChannels,p,c])}fusedConv2d({input:e,filter:t,convInfo:s,bias:n,activation:i,preluActivationWeights:r}){if(s.filterHeight===1&&s.filterWidth===1&&s.dilationHeight===1&&s.dilationWidth===1&&s.strideHeight===1&&s.strideWidth===1&&(s.padInfo.type==="SAME"||s.padInfo.type==="VALID"))return this.conv2dByMatMul(e,t,s,n,i,r);if(W().getBool("WEBGL_CONV_IM2COL")&&e.shape[0]===1)return this.conv2dWithIm2Row(e,t,s,n,i,r);const o=n!=null,a=r!=null,l=i?fg(i,!1):null,c=new Rx(s,o,l,a),p=[e,t];return n&&p.push(n),r&&p.push(r),this.compileAndRun(c,p)}conv2d(e,t,s){if(s.filterHeight===1&&s.filterWidth===1&&s.dilationHeight===1&&s.dilationWidth===1&&s.strideHeight===1&&s.strideWidth===1&&(s.padInfo.type==="SAME"||s.padInfo.type==="VALID"))return this.conv2dByMatMul(e,t,s);if(W().getBool("WEBGL_CONV_IM2COL")&&e.shape[0]===1)return this.conv2dWithIm2Row(e,t,s);const n=new Rx(s);return this.compileAndRun(n,[e,t])}conv2dDerInput(e,t,s){const n=new E2(s);return this.compileAndRun(n,[e,t])}conv2dDerFilter(e,t,s){const n=new O2(s);return this.compileAndRun(n,[e,t])}fusedDepthwiseConv2D({input:e,filter:t,convInfo:s,bias:n,activation:i,preluActivationWeights:r}){const o=W().getBool("WEBGL_PACK_DEPTHWISECONV")&&s.strideWidth<=2&&s.outChannels/s.inChannels===1,a=i?fg(i,o):null,l=[e,t],c=n!=null,p=r!=null;c&&l.push(n),p&&l.push(r);let u;return o?(u=new Ex(s,c,a,p),this.compileAndRun(u,l)):(u=new Ox(s,c,a,p),this.compileAndRun(u,l))}depthwiseConv2D(e,t,s){let n;return W().getBool("WEBGL_PACK_DEPTHWISECONV")&&s.strideWidth<=2&&s.outChannels/s.inChannels===1?(n=new Ex(s),this.compileAndRun(n,[e,t])):(n=new Ox(s),this.compileAndRun(n,[e,t]))}depthwiseConv2DDerInput(e,t,s){const n=new F2(s);return this.compileAndRun(n,[e,t])}depthwiseConv2DDerFilter(e,t,s){const n=new D2(s);return this.compileAndRun(n,[e,t])}conv3d(e,t,s){const n=new M2(s);return this.compileAndRun(n,[e,t])}conv3dDerInput(e,t,s){const n=new k2(s);return this.compileAndRun(n,[e,t])}conv3dDerFilter(e,t,s){const n=new _2(s);return this.compileAndRun(n,[e,t])}cast(e,t){return U.castTensor(e,t,this)}unstack(e,t){const s=e.shape[t],n=new Array(e.rank-1);let i=0;for(let l=0;l1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`);const n=e.shape[0],i=s==="NHWC"?e.shape[1]:e.shape[2],r=s==="NHWC"?e.shape[2]:e.shape[3],o=s==="NHWC"?e.shape[3]:e.shape[1],a=i*t,l=r*t,c=o/(t*t),p=s==="NHWC"?[n,a,l,c]:[n,c,a,l],u=new B2(p,t,s);return this.compileAndRun(u,[e])}split(e,t,s){return BV(e,t,s)}scatterND(e,t,s){const{sliceRank:n,numUpdates:i,sliceSize:r,strides:o,outputSize:a}=U.calculateShapes(t,e,s),l=[a/r,r],c=e.reshape([i,n]),p=t.reshape([i,r]);if(a===0)return U.reshapeTensor(ze([]),s);const u=j(0),h=new Px(i,n,c.rank,p.rank,o,l),d=this.compileAndRun(h,[p,c,u]);return d.reshape(s)}sparseToDense(e,t,s,n){const{sliceRank:i,numUpdates:r,strides:o,outputSize:a}=U.calculateShapes(t,e,s),l=!1,c=new Px(r,i,e.rank,t.rank,o,[a,1],l),p=this.compileAndRun(c,[t,e,n]);return p.reshape(s)}fft(e){const t=!1;return this.fftImpl(e,t)}ifft(e){const t=!0;return this.fftImpl(e,t)}fftImpl(e,t){const s=this.texData.get(e.dataId),n=new Dx(kx.REAL,e.shape,t),i=new Dx(kx.IMAG,e.shape,t),r=[this.makeComplexComponentTensorInfo(e,s.complexTensors.real),this.makeComplexComponentTensorInfo(e,s.complexTensors.imag)],o=this.compileAndRun(n,r),a=this.compileAndRun(i,r),l=this.complex(o,a).as2D(e.shape[0],e.shape[1]);return o.dispose(),a.dispose(),l}gatherND(e,t){const s=t.shape,n=s[s.length-1],[i,r,o,a]=U.prepareAndValidate(e,t),l=t.reshape([r,n]),c=e.reshape([e.size/o,o]),p=new X2(n,a,[r,o]),u=this.compileAndRun(p,[c,l]);return u.reshape(i)}fill(e,t,s){if(s=s||N.inferDtype(t),s==="string"){const n=N.getArrayFromDType(s,N.sizeFromShape(e));return n.fill(t),Us().makeTensor(n,e,s,this)}else{const n=new Y2(e,t),i=n.getCustomSetupFunc(t);return this.compileAndRun(n,[],s,i)}}onesLike(e){if(e.dtype==="string")throw new Error("onesLike is not supported under string dtype");return this.fill(e.shape,1,e.dtype)}zerosLike(e){return this.fill(e.shape,e.dtype==="string"?"":0,e.dtype)}linspace(e,t,s){return U.linspaceImpl(e,t,s)}makeTensorInfo(e,t,s){const n=this.write(s,e,t);return this.texData.get(n).usage=null,{dataId:n,shape:e,dtype:t}}makeOutput(e,t,s){const{dataId:n}=this.makeTensorInfo(e,t,s);return Us().makeTensorFromDataId(n,e,t,this)}unpackTensor(e){const t=new x1(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){const t=new TO(e.shape),s=!0;return this.runWebGLProgram(t,[e],e.dtype,null,s)}packedReshape(e,t){const s=[Lo(e.shape),...So(e.shape)],n={dtype:e.dtype,shape:s,dataId:e.dataId},i=[Lo(t),...So(t)],r=new dg(i,s),o=!0,a=this.runWebGLProgram(r,[n],e.dtype,null,o);return{dataId:a.dataId,shape:t,dtype:a.dtype}}decode(e){const t=this.texData.get(e),{isPacked:s,shape:n,dtype:i}=t,r=sg(n);let o;s?o=new P2(r):o=new z2(r);const a=!0,l=this.runWebGLProgram(o,[{shape:r,dtype:i,dataId:e}],i,null,a);return{dtype:i,shape:n,dataId:l.dataId}}runWebGLProgram(e,t,s,n,i=!1){const r=this.makeTensorInfo(e.outputShape,s),o=this.texData.get(r.dataId);if(e.packedOutput&&(o.isPacked=!0),e.outPackingScheme===wo.DENSE){const m=xo(e.outputShape);o.texShape=m.map(f=>f*2)}if(e.outTexUsage!=null&&(o.usage=e.outTexUsage),N.sizeFromShape(r.shape)===0)return o.values=N.getTypedArrayFromDType(r.dtype,0),r;const a=[],l=t.map(m=>{if(m.dtype==="complex64")throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let f=this.texData.get(m.dataId);if(f.texture==null){if(!e.packedInputs&&N.sizeFromShape(m.shape)<=W().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:m.shape,texData:null,isUniform:!0,uniformValues:f.values};e.packedInputs&&(f.isPacked=!0,f.shape=m.shape)}else if(!!f.isPacked!==!!e.packedInputs)m=f.isPacked?this.unpackTensor(m):this.packTensor(m),a.push(m),f=this.texData.get(m.dataId);else if(f.isPacked&&!sc(f.shape,m.shape)){const g=m,y=m.shape;m.shape=f.shape,m=this.packedReshape(m,y),a.push(m),f=this.texData.get(m.dataId),g.shape=y}return this.uploadToGPU(m.dataId),{shape:m.shape,texData:f,isUniform:!1}});this.uploadToGPU(r.dataId);const c={shape:r.shape,texData:o,isUniform:!1},p=gO(e,l,c),u=this.getAndSaveBinary(p,()=>dO(this.gpgpu,e,l,c)),h=this.activeTimers!=null;let d;if(h&&(d=this.startTimer()),fO(this.gpgpu,u,l,c,n),a.forEach(m=>this.disposeIntermediateTensorInfo(m)),h&&(d=this.endTimer(d),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(d)})),!W().getBool("WEBGL_LAZILY_UNPACK")&&o.isPacked&&i===!1){const m=this.unpackTensor(r);return this.disposeIntermediateTensorInfo(r),m}return r}compileAndRun(e,t,s,n,i=!1){s=s||t[0].dtype;const r=this.runWebGLProgram(e,t,s,n,i);return Us().makeTensorFromDataId(r.dataId,r.shape,r.dtype)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){if(this.disposed)return;if(!W().getBool("IS_TEST")){const e=Object.keys(this.binaryCache);e.forEach(t=>{this.gpgpu.deleteProgram(this.binaryCache[t].webGLProgram),delete this.binaryCache[t]})}this.textureManager.dispose(),this.canvas!=null&&typeof HTMLCanvasElement!="undefined"&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0}floatPrecision(){return this.floatPrecisionValue==null&&(this.floatPrecisionValue=C(()=>{if(!W().get("WEBGL_RENDER_FLOAT32_ENABLED")){const e=W().getBool("DEBUG");W().set("DEBUG",!1);const t=this.abs(j(1e-8)).dataSync()[0];if(W().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?qV:HV}uploadToGPU(e){const t=this.texData.get(e),{shape:s,dtype:n,values:i,texture:r,usage:o,isPacked:a}=t;if(r!=null)return;const l=this.activeTimers!=null;let c;l&&(c=N.now());let p=t.texShape;if(p==null&&(p=wR(s,a),t.texShape=p),i!=null){const u=sg(s);let h,d=p[1],m=p[0];const f=i instanceof Uint8Array;a?([d,m]=wi(p[0],p[1]),h=new H2(u,[m,d],f)):h=new q2(u,[m,d],f);const g=this.makeTensorInfo([m,d],n);f?this.texData.get(g.dataId).usage=is.PIXELS:this.texData.get(g.dataId).usage=is.UPLOAD,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(g.dataId),d,m,i);const y=!0,w=this.runWebGLProgram(h,[g],n,null,y),x=this.texData.get(w.dataId);t.texture=x.texture,t.texShape=x.texShape,t.isPacked=x.isPacked,t.usage=x.usage,this.disposeIntermediateTensorInfo(g),this.texData.delete(w.dataId),t.values=null,l&&(this.uploadWaitMs+=N.now()-c)}else{const u=this.acquireTexture(p,o,n,a);t.texture=u}}convertAndCacheOnCPU(e,t){const s=this.texData.get(e),{dtype:n}=s;return this.releaseGPUData(e),t!=null&&(s.values=ZV(t,n)),s.values}acquireTexture(e,t,s,n){if(this.numBytesInGPU+=this.computeBytes(e,s),!this.warnedAboutMemory&&this.numBytesInGPU>this.numMBBeforeWarning*1024*1024){const i=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${i} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(e,t,n)}computeBytes(e,t){return e[0]*e[1]*N.bytesPerElement(t)}tryRunOnCpuOrThrow(e,t){if(this.shouldExecuteOnCPU(e))try{return t()}catch(s){if(W().getBool("IS_TEST"))throw new Error("CPU forwarding failed")}return null}}function ZV(e,t){if(t==="float32"||t==="complex64")return e;if(t==="int32"||t==="bool"){const s=t==="int32"?new Int32Array(e.length):new Uint8Array(e.length);for(let n=0;nnew tL,2);const f5e={forceHalfFloat:I1};const gg="if (isnan(x)) return x;",v1=` + `}}const{segment_util:x1}=U,PV=vt.split,BV=vt.tile,jV=vt.topkImpl,VV=vt.whereImpl,GV=1e-7,qV=1e-4,mg={};function HV(e){return e in mg||(mg[e]={}),mg[e]}function fg(e,t=!1){if(e==="linear")return t?y1:VO;if(e==="relu")return t?Zx:Vx;if(e==="elu")return t?eL:qx;if(e==="relu6")return t?Qx:Gx;if(e==="prelu")return t?Cx:Nx;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}const YV=128,KV=600;function XV(){return W().global.screen==null?1024:W().global.screen.height*W().global.screen.width*window.devicePixelRatio*KV/1024/1024}const L1=1e3;class tL extends Eo{constructor(e){super();if(this.pendingRead=new WeakMap,this.pendingDisposal=new WeakSet,this.dataRefCount=new WeakMap,this.numBytesInGPU=0,this.uploadWaitMs=0,this.downloadWaitMs=0,this.warnedAboutMemory=!1,this.warnedAboutCPUBackend=!1,this.pendingDeletes=0,this.disposed=!1,!W().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");if(e==null){const t=on(W().getNumber("WEBGL_VERSION"));this.binaryCache=HV(W().getNumber("WEBGL_VERSION")),this.gpgpu=new zx(t),this.canvas=t.canvas,this.gpgpuCreatedLocally=!0}else this.gpgpu=e,this.binaryCache={},this.gpgpuCreatedLocally=!1,this.canvas=e.gl.canvas;this.textureManager=new BO(this.gpgpu),this.numMBBeforeWarning=XV(),this.texData=new Fc(this,Us())}numDataIds(){return this.texData.numDataIds()+(this.cpuBackend?this.cpuBackend.numDataIds():0)-this.pendingDeletes}write(e,t,s){if((W().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||W().getBool("DEBUG"))&&this.checkNumericalProblems(e),s==="complex64"&&e!=null)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");const n={};return this.texData.set(n,{shape:t,dtype:s,values:e,usage:is.UPLOAD,refCount:1}),n}incRef(e){const t=this.texData.get(e);t.refCount++}decRef(e){if(this.texData.has(e)){const t=this.texData.get(e);t.refCount--}}move(e,t,s,n){if(W().getBool("DEBUG")&&this.checkNumericalProblems(t),n==="complex64")throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(e,{shape:s,dtype:n,values:t,usage:is.UPLOAD,refCount:1})}disposeIntermediateTensorInfo(e){const t=e.dataId;if(this.texData.has(t)){const s=this.texData.get(t);s.refCount--,s.refCount<1&&this.disposeData(t)}}readSync(e){const t=this.texData.get(e),{values:s,dtype:n,complexTensors:i,slice:r,shape:o,isPacked:a}=t;if(r!=null){let u;a?u=new lc(o,Wu):u=new $e(o,Wu);const h=this.runWebGLProgram(u,[{dataId:e,shape:o,dtype:n}],n),d=this.readSync(h.dataId);return this.disposeIntermediateTensorInfo(h),d}if(s!=null)return this.convertAndCacheOnCPU(e);if(n==="string")return s;const l=this.activeTimers!=null;let c;l&&(c=N.now());let p;if(n==="complex64"){const u=i.real.dataSync(),h=i.imag.dataSync();p=U.mergeRealAndImagArrays(u,h)}else p=this.getValuesFromTexture(e);return l&&(this.downloadWaitMs+=N.now()-c),this.convertAndCacheOnCPU(e,p)}async read(e){if(this.pendingRead.has(e)){const d=this.pendingRead.get(e);return new Promise(m=>d.push(m))}const t=this.texData.get(e),{values:s,shape:n,slice:i,dtype:r,complexTensors:o,isPacked:a}=t;if(i!=null){let d;a?d=new lc(n,Wu):d=new $e(n,Wu);const m=this.runWebGLProgram(d,[{dataId:e,shape:n,dtype:r}],r),f=this.read(m.dataId);return this.disposeIntermediateTensorInfo(m),f}if(s!=null)return this.convertAndCacheOnCPU(e);if(!W().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&W().getNumber("WEBGL_VERSION")===2)throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let l=null,c;if(r!=="complex64"&&W().get("WEBGL_BUFFER_SUPPORTED")){c=this.decode(e);const d=this.texData.get(c.dataId);l=this.gpgpu.createBufferFromTexture(d.texture,...xo(n))}this.pendingRead.set(e,[]),r!=="complex64"&&await this.gpgpu.createAndWaitForFence();let p;if(r==="complex64"){const d=await Promise.all([o.real.data(),o.imag.data()]),m=d[0],f=d[1];p=U.mergeRealAndImagArrays(m,f)}else if(l==null)p=this.getValuesFromTexture(e);else{const d=N.sizeFromShape(n);p=this.gpgpu.downloadFloat32MatrixFromBuffer(l,d)}c!=null&&this.disposeIntermediateTensorInfo(c);const u=this.convertAndCacheOnCPU(e,p),h=this.pendingRead.get(e);return this.pendingRead.delete(e),h.forEach(d=>d(u)),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e),this.pendingDeletes--),u}checkNumericalProblems(e){if(e==null)return;for(let t=0;ta.query)).filter(a=>a!=null),r=N.flatten(this.activeTimers.map(a=>a.name)).filter(a=>a!=null);this.activeTimers=t,n&&(this.programTimersStack=null);const o={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};if(W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){const a=await Promise.all(i);o.kernelMs=N.sum(a),o.getExtraProfileInfo=()=>a.map((l,c)=>({name:r[c],ms:l})).map(l=>`${l.name}: ${l.ms}`).join(", ")}else o.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,o}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:N.now(),endMs:null}}endTimer(e){return W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=N.now(),e)}async getQueryTime(e){if(W().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(e);const t=e;return t.endMs-t.startMs}disposeData(e){if(this.pendingDisposal.has(e))return;if(this.pendingRead.has(e)){this.pendingDisposal.add(e),this.pendingDeletes++;return}if(!this.texData.has(e))return;this.releaseGPUData(e);const{complexTensors:t}=this.texData.get(e);t!=null&&(t.real.dispose(),t.imag.dispose()),this.texData.delete(e)}releaseGPUData(e){const{texture:t,dtype:s,texShape:n,usage:i,isPacked:r,slice:o}=this.texData.get(e),a=o&&o.origDataId||e,l=this.dataRefCount.get(a);l>1?this.dataRefCount.set(a,l-1):(this.dataRefCount.delete(a),t!=null&&(this.numBytesInGPU-=this.computeBytes(n,s),this.textureManager.releaseTexture(t,n,i,r)));const c=this.texData.get(e);c.texture=null,c.texShape=null,c.isPacked=!1,c.slice=null}getTexture(e){return this.uploadToGPU(e),this.texData.get(e).texture}getDataInfo(e){return this.texData.get(e)}getCPUBackend(){return W().getBool("WEBGL_CPU_FORWARD")?(this.cpuBackend==null&&(this.cpuBackend=Us().findBackend("cpu")),this.cpuBackend):null}shouldExecuteOnCPU(e,t=YV){const s=this.getCPUBackend();return!this.warnedAboutCPUBackend&&s==null&&(console.warn("Your application contains ops that are small enough to be executed on the CPU backend, however the CPU backend cannot be found. Consider importing the CPU backend (@tensorflow/tfjs-backend-cpu) for better performance."),this.warnedAboutCPUBackend=!0),s!=null&&e.every(n=>this.texData.get(n.dataId).texture==null&&N.sizeFromShape(n.shape)this.cpuBackend.stridedSlice(e,t,s,n));if(i)return i;const r=Ms.computeOutShape(t,s,n);if(r.some(a=>a===0))return ze([],r);const o=new $O(t,n,r);return this.compileAndRun(o,[e])}reverse(e,t){const s=W().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new kO(e.shape,t):new _O(e.shape,t);return this.compileAndRun(s,[e])}concat(e,t){if(e[0].dtype==="complex64"){const o=e.map(l=>Zs(l)),a=e.map(l=>yn(l));return Gt(this.concat(o,t),this.concat(a,t))}if(e.length===1)return e[0];if(e.length>W().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER")){const o=Math.floor(e.length/2),a=this.concat(e.slice(0,o),t),l=this.concat(e.slice(o),t);return this.concat([a,l],t)}if(W().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&e[0].rank>1){const o=new C2(e.map(a=>a.shape),t);return this.compileAndRun(o,e)}const s=U.computeOutShape(e.map(o=>o.shape),t),n=e.map(o=>o.as2D(-1,N.sizeFromShape(o.shape.slice(t)))),i=new N2(n.map(o=>o.shape)),r=this.compileAndRun(i,n);return r.reshape(s)}neg(e){const t=this.tryRunOnCpuOrThrow([e],()=>this.cpuBackend.neg(e));if(t)return t;if(W().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,Hx,e.dtype);const s=new $e(e.shape,Hx);return this.compileAndRun(s,[e])}batchMatMul(e,t,s,n){const i=s?e.shape[2]:e.shape[1],r=n?t.shape[1]:t.shape[2],o=s?e.shape[1]:e.shape[2],[a,,]=e.shape;if((i===1||r===1)&&o>L1){s&&(e=se(e,[0,2,1])),n&&(t=se(t,[0,2,1]));const p=r===1?e:e.as3D(a,o,1),u=r===1?2:1,h=r===1?t.as3D(a,1,o):t;return this.multiply(p,h).sum(u,!0)}const l=Ft(e.dtype,t.dtype),c=new pg(e.shape,[a,i,r],s,n);return this.compileAndRun(c,[e,t],l)}fusedBatchMatMul({a:e,b:t,transposeA:s,transposeB:n,bias:i,activation:r,preluActivationWeights:o}){const a=s?e.shape[2]:e.shape[1],l=n?t.shape[1]:t.shape[2],[c,,]=e.shape,p=Ft(e.dtype,t.dtype),u=i!=null,h=o!=null,d=r?fg(r,!0):null,m=new pg(e.shape,[c,a,l],s,n,u,d,h),f=[e,t];return i&&f.push(i),o&&f.push(o),this.compileAndRun(m,f,p)}multiply(e,t){if(e.dtype==="complex64"){const i=this.texData.get(e.dataId),r=this.texData.get(t.dataId),o=new Tx(vx.REAL,e.shape,t.shape),a=new Tx(vx.IMAG,e.shape,t.shape),l=[this.makeComplexComponentTensorInfo(e,i.complexTensors.real),this.makeComplexComponentTensorInfo(e,i.complexTensors.imag),this.makeComplexComponentTensorInfo(t,r.complexTensors.real),this.makeComplexComponentTensorInfo(t,r.complexTensors.imag)],c=this.compileAndRun(o,l),p=this.compileAndRun(a,l),u=this.complex(c,p);return c.dispose(),p.dispose(),u}const s=Ft(e.dtype,t.dtype);if(this.shouldExecuteOnCPU([e,t])){const i=this.texData.get(e.dataId),r=this.texData.get(t.dataId),[o,a]=kR(e.shape,t.shape,i.values,r.values,s);return this.makeOutput(a,s,o)}if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,Ax,e.dtype);const n=new kt(Ax,e.shape,t.shape);return this.compileAndRun(n,[e,t],e.dtype)}localResponseNormalization4D(e,t,s,n,i){const r=W().getBool("WEBGL_PACK_NORMALIZATION")?new wO(e.shape,t,s,n,i):new yO(e.shape,t,s,n,i);return this.compileAndRun(r,[e])}LRNGrad(e,t,s,n,i,r,o){const a=new bO(t.shape,n,i,r,o);return this.compileAndRun(a,[t,s,e])}tile(e,t){if(e.dtype==="string"){const n=this.readSync(e.dataId),i=n.map(o=>N.decodeString(o)),r=ge(e.shape,e.dtype,i);return BV(r,t)}const s=new jO(e.shape,t);return this.compileAndRun(s,[e])}pad(e,t,s){const n=W().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new AO(e.shape,t,s):new TO(e.shape,t,s);return this.compileAndRun(n,[e])}gather(e,t,s){const n=this.tryRunOnCpuOrThrow([e,t],()=>this.cpuBackend.gather(e,t,s));if(n)return n;const i=new Y2(e.shape,t.size,s);return this.compileAndRun(i,[e,t])}batchToSpaceND(e,t,s){N.assert(e.rank<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");const n=t.reduce((c,p)=>c*p),i=U.getReshaped(e.shape,t,n),r=U.getPermuted(i.length,t.length),o=U.getReshapedPermuted(e.shape,t,n),a=U.getSliceBeginCoords(s,t.length),l=U.getSliceSize(o,s,t.length);return se(e.reshape(i),r).reshape(o).slice(a,l)}spaceToBatchND(e,t,s){N.assert(e.rank<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");const n=t.reduce((p,u)=>p*u),i=[[0,0]];i.push(...s);for(let p=1+t.length;pthis.cpuBackend.prod(e,t));if(s)return s;const[n,i]=U.computeOutAndReduceShapes(e.shape,t),r=N.sizeFromShape(i),o=e.as2D(-1,r),a=Mp(e.dtype);return this.reduce(o,"prod",a).reshape(n)}unsortedSegmentSum(e,t,s){let n=0;const i=U.getAxesPermutation([n],e.rank);let r=e;i!=null&&(r=se(e,i),n=U.getInnerMostAxes(1,e.rank)[0]);const o=x1.computeOutShape(r.shape,n,s),a=N.sizeFromShape([r.shape[n]]),l=r.as2D(-1,a),c=Mp(e.dtype);let p=this.segOpCompute(l,"unsortedSegmentSum",t,c,s).reshape(o);return i!=null&&(p=se(p,U.getUndoAxesPermutation(i))),p}segOpCompute(e,t,s,n,i){const r=e.shape[0],o=e.shape[1],a=x1.segOpComputeOptimalWindowSize(o,i),l={windowSize:a,inSize:o,batchSize:r,numSegments:i},c=new DO(l,t),p=this.compileAndRun(c,[e,s],n);return p.shape[1]===i?p:(s=$i(0,i).tile([o/a]),this.segOpCompute(p,t,s,n,i))}argMinMaxReduce(e,t,s){const n=[t];if(U.assertAxesAreInnerMostDims("arg"+s.charAt(0).toUpperCase()+s.slice(1),n,e.rank),!W().getBool("WEBGL_PACK_REDUCE")||e.rank<=2){const[i,r]=U.computeOutAndReduceShapes(e.shape,n),o=N.sizeFromShape(r),a=e.as2D(-1,o);return this.argReduce(a,s).reshape(i)}return this.argReducePacked(e,s)}argMin(e,t){return this.argMinMaxReduce(e,t,"min")}argMax(e,t){return this.argMinMaxReduce(e,t,"max")}cumsum(e,t,s,n){if(t!==e.rank-1)throw new Error(`WebGL cumsum shader expects an inner-most axis=${e.rank-1} but got axis=${t}`);const i=e.shape[t];let r=e;for(let o=0;o<=Math.ceil(Math.log2(i))-1;o++){const a=new _x(e.shape,!1,n),l=a.getCustomSetupFunc(o),c=r;r=this.compileAndRun(a,[r],r.dtype,l),c.dispose()}if(s){const o=new _x(e.shape,s,n),a=r;r=this.compileAndRun(o,[r]),a.dispose()}return r}equal(e,t){if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,d2,"bool");const s=new kt(ZR,e.shape,t.shape);return this.compileAndRun(s,[e,t],"bool")}notEqual(e,t){if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,m2,"bool");const s=new kt(QR,e.shape,t.shape);return this.compileAndRun(s,[e,t],"bool")}less(e,t){const s=this.tryRunOnCpuOrThrow([e,t],()=>this.cpuBackend.less(e,t));if(s)return s;if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,f2,"bool");const n=new kt(e2,e.shape,t.shape);return this.compileAndRun(n,[e,t],"bool")}lessEqual(e,t){if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,g2,"bool");const s=new kt(t2,e.shape,t.shape);return this.compileAndRun(s,[e,t],"bool")}greater(e,t){const s=this.tryRunOnCpuOrThrow([e,t],()=>this.cpuBackend.greater(e,t));if(s)return s;if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,y2,"bool");const n=new kt(s2,e.shape,t.shape);return this.compileAndRun(n,[e,t],"bool")}greaterEqual(e,t){if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,b2,"bool");const s=new kt(n2,e.shape,t.shape);return this.compileAndRun(s,[e,t],"bool")}logicalNot(e){const t=new $e(e.shape,f1);return this.compileAndRun(t,[e])}logicalAnd(e,t){if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,w2,"bool");const s=new kt(i2,e.shape,t.shape);return this.compileAndRun(s,[e,t],"bool")}logicalOr(e,t){if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,x2,"bool");const s=new kt(r2,e.shape,t.shape);return this.compileAndRun(s,[e,t],"bool")}select(e,t,s){const n=new FO(e.rank,t.shape,t.rank);return this.compileAndRun(n,[e,t,s],Ft(t.dtype,s.dtype))}where(e){U.warn("tf.where() in webgl locks the UI thread. Call tf.whereAsync() instead");const t=e.dataSync();return VV(e.shape,t)}topk(e,t,s){const n=e.dataSync();return jV(n,e.shape,e.dtype,t,s)}min(e,t){U.assertAxesAreInnerMostDims("min",t,e.rank);const[s,n]=U.computeOutAndReduceShapes(e.shape,t),i=N.sizeFromShape(n),r=e.as2D(-1,i);return this.reduce(r,"min",r.dtype).reshape(s)}minimum(e,t){const s=this.tryRunOnCpuOrThrow([e,t],()=>this.cpuBackend.minimum(e,t));if(s)return s;const n=W().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Li(S2,e.shape,t.shape):new kt(a2,e.shape,t.shape);return this.compileAndRun(n,[e,t])}mod(e,t){const s=W().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Li(I2,e.shape,t.shape):new kt(l2,e.shape,t.shape);return this.compileAndRun(s,[e,t])}maximum(e,t){const s=this.tryRunOnCpuOrThrow([e,t],()=>this.cpuBackend.maximum(e,t));if(s)return s;const n=W().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Li(L2,e.shape,t.shape):new kt(o2,e.shape,t.shape);return this.compileAndRun(n,[e,t])}all(e,t){U.assertAxesAreInnerMostDims("all",t,e.rank);const[s,n]=U.computeOutAndReduceShapes(e.shape,t),i=N.sizeFromShape(n),r=e.as2D(-1,i);return this.reduce(r,"all",r.dtype).reshape(s)}any(e,t){U.assertAxesAreInnerMostDims("any",t,e.rank);const[s,n]=U.computeOutAndReduceShapes(e.shape,t),i=N.sizeFromShape(n),r=e.as2D(-1,i);return this.reduce(r,"any",r.dtype).reshape(s)}floorDiv(e,t){const s=XR,n="int32";if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,p2,n);const i=new kt(s,e.shape,t.shape);return this.compileAndRun(i,[e,t],n)}add(e,t){if(e.dtype==="complex64"&&t.dtype==="complex64")return this.complexSeparableBinaryOp(e,t,og);const s=Ft(e.dtype,t.dtype);if(this.shouldExecuteOnCPU([e,t])){const i=this.texData.get(e.dataId),r=this.texData.get(t.dataId),[o,a]=AR(e.shape,t.shape,i.values,r.values,s);return this.makeOutput(a,s,o)}if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,og,s);const n=new kt(og,e.shape,t.shape);return this.compileAndRun(n,[e,t],s)}packedUnaryOp(e,t,s){const n=new lc(e.shape,t);return this.compileAndRun(n,[e],s)}packedBinaryOp(e,t,s,n,i=!1){const r=new Li(s,e.shape,t.shape,i);return this.compileAndRun(r,[e,t],n)}complexSeparableBinaryOp(e,t,s){const n=this.texData.get(e.dataId),i=this.texData.get(t.dataId),[r,o]=[[n.complexTensors.real,i.complexTensors.real],[n.complexTensors.imag,i.complexTensors.imag]].map(l=>{const[c,p]=l,u=this.makeComplexComponentTensorInfo(e,c),h=this.makeComplexComponentTensorInfo(t,p),d=new kt(s,e.shape,t.shape);return this.compileAndRun(d,[u,h],Ft(c.dtype,p.dtype))}),a=this.complex(r,o);return r.dispose(),o.dispose(),a}makeComplexComponentTensorInfo(e,t){return{dataId:t.dataId,dtype:t.dtype,shape:e.shape}}addN(e){if(e.length===1)return e[0];if(e.length>W().get("WEBGL_MAX_TEXTURES_IN_SHADER")){const r=Math.floor(e.length/2),o=this.addN(e.slice(0,r)),a=this.addN(e.slice(r));return this.addN([o,a])}const t=e.map(r=>r.dtype).reduce((r,o)=>Ft(r,o)),s=e.map(r=>r.shape),n=W().getBool("WEBGL_PACK"),i=n?new WR(e[0].shape,s):new $R(e[0].shape,s);return this.compileAndRun(i,e,t)}subtract(e,t){if(e.dtype==="complex64"&&t.dtype==="complex64")return this.complexSeparableBinaryOp(e,t,ag);const s=Ft(e.dtype,t.dtype);if(this.shouldExecuteOnCPU([e,t])){const i=this.texData.get(e.dataId),r=this.texData.get(t.dataId),[o,a]=MR(e.shape,t.shape,i.values,r.values,s);return this.makeOutput(a,s,o)}if(W().getBool("WEBGL_PACK_BINARY_OPERATIONS"))return this.packedBinaryOp(e,t,ag,e.dtype);const n=new kt(ag,e.shape,t.shape);return this.compileAndRun(n,[e,t],s)}pow(e,t){const s=W().getBool("WEBGL_PACK_BINARY_OPERATIONS"),n=s?new Li(u2,e.shape,t.shape):new kt(JR,e.shape,t.shape),i=Ft(e.dtype,t.dtype);return this.compileAndRun(n,[e,t],i)}ceil(e){if(this.shouldExecuteOnCPU([e])){const s=NR(this.texData.get(e.dataId).values,e.dtype);return this.makeOutput(e.shape,e.dtype,s)}if(W().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,Yx,e.dtype);const t=new $e(e.shape,Yx);return this.compileAndRun(t,[e])}floor(e){if(this.shouldExecuteOnCPU([e])){const s=OR(this.texData.get(e.dataId).values,e.dtype);return this.makeOutput(e.shape,e.dtype,s)}if(W().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,Kx,e.dtype);const t=new $e(e.shape,Kx);return this.compileAndRun(t,[e])}sign(e){const t=new $e(e.shape,HO);return this.compileAndRun(t,[e])}isNaN(e){const t=new $e(e.shape,YO);return this.compileAndRun(t,[e],"bool")}isInf(e){const t=new $e(e.shape,KO);return this.compileAndRun(t,[e],"bool")}isFinite(e){const t=new $e(e.shape,XO);return this.compileAndRun(t,[e],"bool")}round(e){const t=new $e(e.shape,JO);return this.compileAndRun(t,[e])}exp(e){if(this.shouldExecuteOnCPU([e])){const s=CR(this.texData.get(e.dataId).values,e.dtype);return this.makeOutput(e.shape,e.dtype,s)}if(W().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,Xx,e.dtype);const t=new $e(e.shape,Xx);return this.compileAndRun(t,[e])}expm1(e){if(this.shouldExecuteOnCPU([e])){const s=RR(this.texData.get(e.dataId).values,e.dtype);return this.makeOutput(e.shape,e.dtype,s)}if(W().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,Jx,e.dtype);const t=new $e(e.shape,Jx);return this.compileAndRun(t,[e])}softmax(e,t){const s=N.parseAxisParam([t],e.shape),n=Lt(e,s),i=U.expandShapeToKeepDim(n.shape,s),r=this.subtract(e,n.reshape(i)),o=this.exp(r),a=this.sum(o,s).reshape(i);return Z(o,a)}log(e){if(this.shouldExecuteOnCPU([e])){const s=ER(this.texData.get(e.dataId).values,e.dtype);return this.makeOutput(e.shape,e.dtype,s)}if(W().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,b1,e.dtype);const t=new $e(e.shape,ZO);return this.compileAndRun(t,[e])}log1p(e){const t=new $e(e.shape,QO);return this.compileAndRun(t,[e])}sqrt(e){const t=new $e(e.shape,e1);return this.compileAndRun(t,[e])}rsqrt(e){if(this.shouldExecuteOnCPU([e])){const s=DR(this.texData.get(e.dataId).values,e.dtype);return this.makeOutput(e.shape,e.dtype,s)}const t=new $e(e.shape,t1);return this.compileAndRun(t,[e])}reciprocal(e){const t=new $e(e.shape,m1);return this.compileAndRun(t,[e])}relu(e){let t;return W().getBool("WEBGL_PACK")?t=new lc(e.shape,Zx):t=new $e(e.shape,Vx),this.compileAndRun(t,[e])}relu6(e){let t;return W().getBool("WEBGL_PACK")?t=new lc(e.shape,Qx):t=new $e(e.shape,Gx),this.compileAndRun(t,[e])}prelu(e,t){const s=W().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Li(Cx,e.shape,t.shape):new kt(Nx,e.shape,t.shape);return this.compileAndRun(s,[e,t])}elu(e){if(W().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,eL,e.dtype);const t=new $e(e.shape,qx);return this.compileAndRun(t,[e])}eluDer(e,t){const s=W().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Li(h2,e.shape,t.shape):new kt(c2,e.shape,t.shape);return this.compileAndRun(s,[e,t])}selu(e){const t=new $e(e.shape,GO);return this.compileAndRun(t,[e])}int(e){const t=new $e(e.shape,g1);return this.compileAndRun(t,[e],"int32")}clip(e,t,s){let n;W().getBool("WEBGL_PACK_CLIP")?n=new T2(e.shape):n=new v2(e.shape);const i=n.getCustomSetupFunc(t,s);return this.compileAndRun(n,[e],null,i)}abs(e){if(this.shouldExecuteOnCPU([e])&&e.dtype!=="complex64"){const s=TR(this.texData.get(e.dataId).values);return this.makeOutput(e.shape,e.dtype,s)}if(W().getBool("WEBGL_PACK_UNARY_OPERATIONS"))return this.packedUnaryOp(e,jx,e.dtype);const t=new $e(e.shape,jx);return this.compileAndRun(t,[e])}complexAbs(e){const t=this.texData.get(e.dataId),s=new A2(e.shape),n=[this.makeComplexComponentTensorInfo(e,t.complexTensors.real),this.makeComplexComponentTensorInfo(e,t.complexTensors.imag)];return this.compileAndRun(s,n)}sigmoid(e){const t=new $e(e.shape,s1);return this.compileAndRun(t,[e])}softplus(e){const t=new $e(e.shape,n1);return this.compileAndRun(t,[e])}asin(e){const t=new $e(e.shape,i1);return this.compileAndRun(t,[e])}acos(e){const t=new $e(e.shape,r1);return this.compileAndRun(t,[e])}atan(e){const t=new $e(e.shape,o1);return this.compileAndRun(t,[e])}sinh(e){const t=new $e(e.shape,a1);return this.compileAndRun(t,[e])}cosh(e){const t=new $e(e.shape,l1);return this.compileAndRun(t,[e])}tanh(e){const t=new $e(e.shape,c1);return this.compileAndRun(t,[e])}asinh(e){const t=new $e(e.shape,p1);return this.compileAndRun(t,[e])}acosh(e){const t=new $e(e.shape,u1);return this.compileAndRun(t,[e])}atanh(e){const t=new $e(e.shape,h1);return this.compileAndRun(t,[e])}erf(e){const t=new $e(e.shape,d1);return this.compileAndRun(t,[e])}step(e,t){const s=new $e(e.shape,qO(t));return this.compileAndRun(s,[e])}conv2dByMatMul(e,t,s,n,i,r){const o=e.shape,a=this.texData.get(e.dataId),l=s.inChannels,c=o[0]*o[1]*o[2],p=s.outChannels,u=s.dataFormat==="channelsLast",h=!1,d=!1,m=(c===1||p===1)&&l>L1,f=o[2]%2!==0&&!!a.isPacked;if(m||!W().getBool("WEBGL_LAZILY_UNPACK")||!W().getBool("WEBGL_PACK_BINARY_OPERATIONS")||!f){const _=u?o[0]*o[1]*o[2]:o[0]*o[2]*o[3],E=O(e,[1,_,s.inChannels]),F=O(t,[1,s.inChannels,s.outChannels]),D=this.fusedBatchMatMul({a:E,b:F,transposeA:h,transposeB:d,bias:n,activation:i,preluActivationWeights:r});return O(D,s.outShape)}const g=u?o[0]*o[1]*(o[2]+1):o[0]*o[2]*(o[3]+1),y={dataId:e.dataId,shape:[1,g,s.inChannels],dtype:e.dtype},w=a.shape;a.shape=a.shape.slice(),a.shape[a.shape.length-2]++,N.assert(sc(a.shape,y.shape),()=>`packed reshape ${a.shape} to ${y.shape} isn't free`);const x=O(t,[1,s.inChannels,s.outChannels]),T=this.fusedBatchMatMul({a:y,b:x,transposeA:h,transposeB:d,bias:n,activation:i,preluActivationWeights:r}),A=this.texData.get(T.dataId);return N.assert(A.isPacked,()=>"batchMatMul result is expected to be packed"),a.shape=w,A.shape=s.outShape,Us().makeTensorFromDataId(T.dataId,s.outShape,T.dtype)}conv2dWithIm2Row(e,t,s,n,i,r){const{filterWidth:o,filterHeight:a,inChannels:l,outWidth:c,outHeight:p,dataFormat:u}=s,h=u==="channelsLast",d=o*a*l,m=p*c,f=[d,m],g=!0,y=!1,w=e.squeeze([0]),x=t.reshape([1,d,-1]),T=new gO(f,w.shape,s),A=this.compileAndRun(T,[w]).reshape([1,f[0],f[1]]),_=n!=null,E=r!=null,F=i?fg(i,!0):null,D=new pg(A.shape,[1,m,s.outChannels],g,y,_,F,E),M=[A,x];n&&M.push(n),E&&M.push(r);const P=this.compileAndRun(D,M);return h?P.reshape([1,p,c,s.outChannels]):P.reshape([1,s.outChannels,p,c])}fusedConv2d({input:e,filter:t,convInfo:s,bias:n,activation:i,preluActivationWeights:r}){if(s.filterHeight===1&&s.filterWidth===1&&s.dilationHeight===1&&s.dilationWidth===1&&s.strideHeight===1&&s.strideWidth===1&&(s.padInfo.type==="SAME"||s.padInfo.type==="VALID"))return this.conv2dByMatMul(e,t,s,n,i,r);if(W().getBool("WEBGL_CONV_IM2COL")&&e.shape[0]===1)return this.conv2dWithIm2Row(e,t,s,n,i,r);const o=n!=null,a=r!=null,l=i?fg(i,!1):null,c=new Rx(s,o,l,a),p=[e,t];return n&&p.push(n),r&&p.push(r),this.compileAndRun(c,p)}conv2d(e,t,s){if(s.filterHeight===1&&s.filterWidth===1&&s.dilationHeight===1&&s.dilationWidth===1&&s.strideHeight===1&&s.strideWidth===1&&(s.padInfo.type==="SAME"||s.padInfo.type==="VALID"))return this.conv2dByMatMul(e,t,s);if(W().getBool("WEBGL_CONV_IM2COL")&&e.shape[0]===1)return this.conv2dWithIm2Row(e,t,s);const n=new Rx(s);return this.compileAndRun(n,[e,t])}conv2dDerInput(e,t,s){const n=new O2(s);return this.compileAndRun(n,[e,t])}conv2dDerFilter(e,t,s){const n=new R2(s);return this.compileAndRun(n,[e,t])}fusedDepthwiseConv2D({input:e,filter:t,convInfo:s,bias:n,activation:i,preluActivationWeights:r}){const o=W().getBool("WEBGL_PACK_DEPTHWISECONV")&&s.strideWidth<=2&&s.outChannels/s.inChannels===1,a=i?fg(i,o):null,l=[e,t],c=n!=null,p=r!=null;c&&l.push(n),p&&l.push(r);let u;return o?(u=new Ex(s,c,a,p),this.compileAndRun(u,l)):(u=new Ox(s,c,a,p),this.compileAndRun(u,l))}depthwiseConv2D(e,t,s){let n;return W().getBool("WEBGL_PACK_DEPTHWISECONV")&&s.strideWidth<=2&&s.outChannels/s.inChannels===1?(n=new Ex(s),this.compileAndRun(n,[e,t])):(n=new Ox(s),this.compileAndRun(n,[e,t]))}depthwiseConv2DDerInput(e,t,s){const n=new D2(s);return this.compileAndRun(n,[e,t])}depthwiseConv2DDerFilter(e,t,s){const n=new k2(s);return this.compileAndRun(n,[e,t])}conv3d(e,t,s){const n=new F2(s);return this.compileAndRun(n,[e,t])}conv3dDerInput(e,t,s){const n=new _2(s);return this.compileAndRun(n,[e,t])}conv3dDerFilter(e,t,s){const n=new E2(s);return this.compileAndRun(n,[e,t])}cast(e,t){return U.castTensor(e,t,this)}unstack(e,t){const s=e.shape[t],n=new Array(e.rank-1);let i=0;for(let l=0;l1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`);const n=e.shape[0],i=s==="NHWC"?e.shape[1]:e.shape[2],r=s==="NHWC"?e.shape[2]:e.shape[3],o=s==="NHWC"?e.shape[3]:e.shape[1],a=i*t,l=r*t,c=o/(t*t),p=s==="NHWC"?[n,a,l,c]:[n,c,a,l],u=new P2(p,t,s);return this.compileAndRun(u,[e])}split(e,t,s){return PV(e,t,s)}scatterND(e,t,s){const{sliceRank:n,numUpdates:i,sliceSize:r,strides:o,outputSize:a}=U.calculateShapes(t,e,s),l=[a/r,r],c=e.reshape([i,n]),p=t.reshape([i,r]);if(a===0)return U.reshapeTensor(ze([]),s);const u=j(0),h=new Px(i,n,c.rank,p.rank,o,l),d=this.compileAndRun(h,[p,c,u]);return d.reshape(s)}sparseToDense(e,t,s,n){const{sliceRank:i,numUpdates:r,strides:o,outputSize:a}=U.calculateShapes(t,e,s),l=!1,c=new Px(r,i,e.rank,t.rank,o,[a,1],l),p=this.compileAndRun(c,[t,e,n]);return p.reshape(s)}fft(e){const t=!1;return this.fftImpl(e,t)}ifft(e){const t=!0;return this.fftImpl(e,t)}fftImpl(e,t){const s=this.texData.get(e.dataId),n=new Dx(kx.REAL,e.shape,t),i=new Dx(kx.IMAG,e.shape,t),r=[this.makeComplexComponentTensorInfo(e,s.complexTensors.real),this.makeComplexComponentTensorInfo(e,s.complexTensors.imag)],o=this.compileAndRun(n,r),a=this.compileAndRun(i,r),l=this.complex(o,a).as2D(e.shape[0],e.shape[1]);return o.dispose(),a.dispose(),l}gatherND(e,t){const s=t.shape,n=s[s.length-1],[i,r,o,a]=U.prepareAndValidate(e,t),l=t.reshape([r,n]),c=e.reshape([e.size/o,o]),p=new K2(n,a,[r,o]),u=this.compileAndRun(p,[c,l]);return u.reshape(i)}fill(e,t,s){if(s=s||N.inferDtype(t),s==="string"){const n=N.getArrayFromDType(s,N.sizeFromShape(e));return n.fill(t),Us().makeTensor(n,e,s,this)}else{const n=new H2(e,t),i=n.getCustomSetupFunc(t);return this.compileAndRun(n,[],s,i)}}onesLike(e){if(e.dtype==="string")throw new Error("onesLike is not supported under string dtype");return this.fill(e.shape,1,e.dtype)}zerosLike(e){return this.fill(e.shape,e.dtype==="string"?"":0,e.dtype)}linspace(e,t,s){return U.linspaceImpl(e,t,s)}makeTensorInfo(e,t,s){const n=this.write(s,e,t);return this.texData.get(n).usage=null,{dataId:n,shape:e,dtype:t}}makeOutput(e,t,s){const{dataId:n}=this.makeTensorInfo(e,t,s);return Us().makeTensorFromDataId(n,e,t,this)}unpackTensor(e){const t=new w1(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){const t=new vO(e.shape),s=!0;return this.runWebGLProgram(t,[e],e.dtype,null,s)}packedReshape(e,t){const s=[Lo(e.shape),...So(e.shape)],n={dtype:e.dtype,shape:s,dataId:e.dataId},i=[Lo(t),...So(t)],r=new dg(i,s),o=!0,a=this.runWebGLProgram(r,[n],e.dtype,null,o);return{dataId:a.dataId,shape:t,dtype:a.dtype}}decode(e){const t=this.texData.get(e),{isPacked:s,shape:n,dtype:i}=t,r=sg(n);let o;s?o=new z2(r):o=new W2(r);const a=!0,l=this.runWebGLProgram(o,[{shape:r,dtype:i,dataId:e}],i,null,a);return{dtype:i,shape:n,dataId:l.dataId}}runWebGLProgram(e,t,s,n,i=!1){const r=this.makeTensorInfo(e.outputShape,s),o=this.texData.get(r.dataId);if(e.packedOutput&&(o.isPacked=!0),e.outPackingScheme===wo.DENSE){const m=xo(e.outputShape);o.texShape=m.map(f=>f*2)}if(e.outTexUsage!=null&&(o.usage=e.outTexUsage),N.sizeFromShape(r.shape)===0)return o.values=N.getTypedArrayFromDType(r.dtype,0),r;const a=[],l=t.map(m=>{if(m.dtype==="complex64")throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let f=this.texData.get(m.dataId);if(f.texture==null){if(!e.packedInputs&&N.sizeFromShape(m.shape)<=W().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:m.shape,texData:null,isUniform:!0,uniformValues:f.values};e.packedInputs&&(f.isPacked=!0,f.shape=m.shape)}else if(!!f.isPacked!==!!e.packedInputs)m=f.isPacked?this.unpackTensor(m):this.packTensor(m),a.push(m),f=this.texData.get(m.dataId);else if(f.isPacked&&!sc(f.shape,m.shape)){const g=m,y=m.shape;m.shape=f.shape,m=this.packedReshape(m,y),a.push(m),f=this.texData.get(m.dataId),g.shape=y}return this.uploadToGPU(m.dataId),{shape:m.shape,texData:f,isUniform:!1}});this.uploadToGPU(r.dataId);const c={shape:r.shape,texData:o,isUniform:!1},p=fO(e,l,c),u=this.getAndSaveBinary(p,()=>hO(this.gpgpu,e,l,c)),h=this.activeTimers!=null;let d;if(h&&(d=this.startTimer()),mO(this.gpgpu,u,l,c,n),a.forEach(m=>this.disposeIntermediateTensorInfo(m)),h&&(d=this.endTimer(d),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(d)})),!W().getBool("WEBGL_LAZILY_UNPACK")&&o.isPacked&&i===!1){const m=this.unpackTensor(r);return this.disposeIntermediateTensorInfo(r),m}return r}compileAndRun(e,t,s,n,i=!1){s=s||t[0].dtype;const r=this.runWebGLProgram(e,t,s,n,i);return Us().makeTensorFromDataId(r.dataId,r.shape,r.dtype)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){if(this.disposed)return;if(!W().getBool("IS_TEST")){const e=Object.keys(this.binaryCache);e.forEach(t=>{this.gpgpu.deleteProgram(this.binaryCache[t].webGLProgram),delete this.binaryCache[t]})}this.textureManager.dispose(),this.canvas!=null&&typeof HTMLCanvasElement!="undefined"&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0}floatPrecision(){return this.floatPrecisionValue==null&&(this.floatPrecisionValue=C(()=>{if(!W().get("WEBGL_RENDER_FLOAT32_ENABLED")){const e=W().getBool("DEBUG");W().set("DEBUG",!1);const t=this.abs(j(1e-8)).dataSync()[0];if(W().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?GV:qV}uploadToGPU(e){const t=this.texData.get(e),{shape:s,dtype:n,values:i,texture:r,usage:o,isPacked:a}=t;if(r!=null)return;const l=this.activeTimers!=null;let c;l&&(c=N.now());let p=t.texShape;if(p==null&&(p=bR(s,a),t.texShape=p),i!=null){const u=sg(s);let h,d=p[1],m=p[0];const f=i instanceof Uint8Array;a?([d,m]=wi(p[0],p[1]),h=new q2(u,[m,d],f)):h=new G2(u,[m,d],f);const g=this.makeTensorInfo([m,d],n);f?this.texData.get(g.dataId).usage=is.PIXELS:this.texData.get(g.dataId).usage=is.UPLOAD,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(g.dataId),d,m,i);const y=!0,w=this.runWebGLProgram(h,[g],n,null,y),x=this.texData.get(w.dataId);t.texture=x.texture,t.texShape=x.texShape,t.isPacked=x.isPacked,t.usage=x.usage,this.disposeIntermediateTensorInfo(g),this.texData.delete(w.dataId),t.values=null,l&&(this.uploadWaitMs+=N.now()-c)}else{const u=this.acquireTexture(p,o,n,a);t.texture=u}}convertAndCacheOnCPU(e,t){const s=this.texData.get(e),{dtype:n}=s;return this.releaseGPUData(e),t!=null&&(s.values=JV(t,n)),s.values}acquireTexture(e,t,s,n){if(this.numBytesInGPU+=this.computeBytes(e,s),!this.warnedAboutMemory&&this.numBytesInGPU>this.numMBBeforeWarning*1024*1024){const i=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${i} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(e,t,n)}computeBytes(e,t){return e[0]*e[1]*N.bytesPerElement(t)}tryRunOnCpuOrThrow(e,t){if(this.shouldExecuteOnCPU(e))try{return t()}catch(s){if(W().getBool("IS_TEST"))throw new Error("CPU forwarding failed")}return null}}function JV(e,t){if(t==="float32"||t==="complex64")return e;if(t==="int32"||t==="bool"){const s=t==="int32"?new Int32Array(e.length):new Uint8Array(e.length);for(let n=0;nnew tL,2);const d5e={forceHalfFloat:S1};const gg="if (isnan(x)) return x;",I1=` if (isnan(a)) return a; if (isnan(b)) return b; -`,T1=` +`,v1=` result.r = isNaN.r > 0. ? NAN : result.r; result.g = isNaN.g > 0. ? NAN : result.g; result.b = isNaN.b > 0. ? NAN : result.b; result.a = isNaN.a > 0. ? NAN : result.a; -`;function Io(e){return({inputs:t,backend:s})=>{const{x:n}=t,i=s,r=new $e(n.shape,e);return i.runWebGLProgram(r,[n],n.dtype)}}function cc(e,t,s,n){return({inputs:i,backend:r})=>{const{a:o,b:a}=i,l=r,c=W().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Li(t,o.shape,a.shape,!!s):new kt(e,o.shape,a.shape),p=n||o.dtype,u=l.runWebGLProgram(c,[o,a],p);return u}}const QV=v1+` +`;function Io(e){return({inputs:t,backend:s})=>{const{x:n}=t,i=s,r=new $e(n.shape,e);return i.runWebGLProgram(r,[n],n.dtype)}}function cc(e,t,s,n){return({inputs:i,backend:r})=>{const{a:o,b:a}=i,l=r,c=W().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Li(t,o.shape,a.shape,!!s):new kt(e,o.shape,a.shape),p=n||o.dtype,u=l.runWebGLProgram(c,[o,a],p);return u}}const ZV=I1+` return atan(a, b); -`,eG=` +`,QV=` vec4 result = atan(a, b); vec4 isNaN = min(vec4(isnan(a)) + vec4(isnan(b)), vec4(1.0)); - `+T1+` + `+v1+` return result; -`,tG=cc(QV,eG),A1={kernelName:ko,backendName:"webgl",kernelFunc:tG};function zu(e){const{inputs:t,backend:s}=e,{x:n}=t;return s.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}const N1={kernelName:Ci,backendName:"webgl",kernelFunc:zu};function sG(e){const{inputs:t,backend:s,attrs:n}=e,{x:i}=t;xi(i,"avgPool");const{filterSize:r,strides:o,pad:a,dimRoundingMode:l}=n,c=1;N.assert(U.eitherStridesOrDilationsAreOne(o,c),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${o} and dilations '${c}'`);const p=U.computePool2DInfo(i.shape,r,o,c,a,l);if(p.filterWidth===1&&p.filterHeight===1&&N.arraysEqual(p.inShape,p.outShape))return zu({inputs:{x:i},backend:s});const u=new Zi(p,"avg",!1);return s.runWebGLProgram(u,[i],"float32")}const C1={kernelName:Ti,backendName:"webgl",kernelFunc:sG};function nG(e){const{inputs:t,backend:s,attrs:n}=e,{dy:i,input:r}=t,o=r;xi([i,r],"avgPoolBackprop");const{filterSize:a,strides:l,pad:c}=n,p=U.computePool2DInfo(o.shape,a,l,1,c),u=new YR(p);return s.runWebGLProgram(u,[i],o.dtype)}const R1={kernelName:Do,backendName:"webgl",kernelFunc:nG};class O1{constructor(e,t,s,n,i,r){this.outputShape=[],this.variableNames=["x","mean","variance"],U.assertAndGetBroadcastShape(e,t),U.assertAndGetBroadcastShape(e,s);let o="0.0";n!=null&&(U.assertAndGetBroadcastShape(e,n),this.variableNames.push("offset"),o="getOffsetAtOutCoords()");let a="1.0";i!=null&&(U.assertAndGetBroadcastShape(e,i),this.variableNames.push("scale"),a="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` +`,eG=cc(ZV,QV),T1={kernelName:ko,backendName:"webgl",kernelFunc:eG};function zu(e){const{inputs:t,backend:s}=e,{x:n}=t;return s.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}const A1={kernelName:Ci,backendName:"webgl",kernelFunc:zu};function tG(e){const{inputs:t,backend:s,attrs:n}=e,{x:i}=t;xi(i,"avgPool");const{filterSize:r,strides:o,pad:a,dimRoundingMode:l}=n,c=1;N.assert(U.eitherStridesOrDilationsAreOne(o,c),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${o} and dilations '${c}'`);const p=U.computePool2DInfo(i.shape,r,o,c,a,l);if(p.filterWidth===1&&p.filterHeight===1&&N.arraysEqual(p.inShape,p.outShape))return zu({inputs:{x:i},backend:s});const u=new Zi(p,"avg",!1);return s.runWebGLProgram(u,[i],"float32")}const N1={kernelName:Ti,backendName:"webgl",kernelFunc:tG};function sG(e){const{inputs:t,backend:s,attrs:n}=e,{dy:i,input:r}=t,o=r;xi([i,r],"avgPoolBackprop");const{filterSize:a,strides:l,pad:c}=n,p=U.computePool2DInfo(o.shape,a,l,1,c),u=new HR(p);return s.runWebGLProgram(u,[i],o.dtype)}const C1={kernelName:Do,backendName:"webgl",kernelFunc:sG};class R1{constructor(e,t,s,n,i,r){this.outputShape=[],this.variableNames=["x","mean","variance"],U.assertAndGetBroadcastShape(e,t),U.assertAndGetBroadcastShape(e,s);let o="0.0";n!=null&&(U.assertAndGetBroadcastShape(e,n),this.variableNames.push("offset"),o="getOffsetAtOutCoords()");let a="1.0";i!=null&&(U.assertAndGetBroadcastShape(e,i),this.variableNames.push("scale"),a="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` void main() { float x = getXAtOutCoords(); float mean = getMeanAtOutCoords(); @@ -3666,7 +3666,7 @@ return (round(mod(b, 2.0)) != 1) ? float inv = scale * inversesqrt(variance + float(${r})); setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1))); } - `}}class E1{constructor(e,t,s,n,i,r){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],U.assertAndGetBroadcastShape(e,t),U.assertAndGetBroadcastShape(e,s);let o="vec4(0.0)";n!=null&&(U.assertAndGetBroadcastShape(e,n),this.variableNames.push("offset"),o="getOffsetAtOutCoords()");let a="vec4(1.0)";i!=null&&(U.assertAndGetBroadcastShape(e,i),this.variableNames.push("scale"),a="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + `}}class O1{constructor(e,t,s,n,i,r){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],U.assertAndGetBroadcastShape(e,t),U.assertAndGetBroadcastShape(e,s);let o="vec4(0.0)";n!=null&&(U.assertAndGetBroadcastShape(e,n),this.variableNames.push("offset"),o="getOffsetAtOutCoords()");let a="vec4(1.0)";i!=null&&(U.assertAndGetBroadcastShape(e,i),this.variableNames.push("scale"),a="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` void main() { vec4 offset = ${o}; vec4 scale = ${a}; @@ -3679,13 +3679,13 @@ return (round(mod(b, 2.0)) != 1) ? setOutput((x - mean) * inv + offset); } - `}}const iG=({inputs:e,backend:t,attrs:s})=>{const{x:n,mean:i,variance:r,offset:o,scale:a}=e;N.assert(i.shape.length===r.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),N.assert(o==null||i.shape.length===o.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),N.assert(a==null||i.shape.length===a.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let{varianceEpsilon:l}=s;l==null&&(l=.001);const c=[n,i,r];let p=null;o!=null&&(p=o.shape,c.push(o));let u=null;a!=null&&(u=a.shape,c.push(a));const h=W().getBool("WEBGL_PACK_NORMALIZATION")?new E1(n.shape,i.shape,r.shape,p,u,l):new O1(n.shape,i.shape,r.shape,p,u,l),d=t.runWebGLProgram(h,c,c[0].dtype);return d},_1={kernelName:Ni,backendName:"webgl",kernelFunc:iG};const rG=gg+` + `}}const nG=({inputs:e,backend:t,attrs:s})=>{const{x:n,mean:i,variance:r,offset:o,scale:a}=e;N.assert(i.shape.length===r.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),N.assert(o==null||i.shape.length===o.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),N.assert(a==null||i.shape.length===a.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let{varianceEpsilon:l}=s;l==null&&(l=.001);const c=[n,i,r];let p=null;o!=null&&(p=o.shape,c.push(o));let u=null;a!=null&&(u=a.shape,c.push(a));const h=W().getBool("WEBGL_PACK_NORMALIZATION")?new O1(n.shape,i.shape,r.shape,p,u,l):new R1(n.shape,i.shape,r.shape,p,u,l),d=t.runWebGLProgram(h,c,c[0].dtype);return d},E1={kernelName:Ni,backendName:"webgl",kernelFunc:nG};const iG=gg+` return cos(x); -`,oG=Io(rG),k1={kernelName:Qn,backendName:"webgl",kernelFunc:oG};const aG=` +`,rG=Io(iG),_1={kernelName:Qn,backendName:"webgl",kernelFunc:rG};const oG=` if (a == b) { return 1.0; }; -return a / b;`,lG=` +return a / b;`,aG=` // vec4 one = vec4(equal(a, b)); // return one + (vec4(1.0) - one) * a / b; vec4 result = a / b; @@ -3703,7 +3703,7 @@ return a / b;`,lG=` } return result; -`,cG=cc(aG,lG,!0),D1={kernelName:ei,backendName:"webgl",kernelFunc:cG};class F1{constructor(e){this.variableNames=["Image"],this.outputShape=[];const t=e[2];this.outputShape=e,this.userCode=` +`,lG=cc(oG,aG,!0),k1={kernelName:ei,backendName:"webgl",kernelFunc:lG};class D1{constructor(e){this.variableNames=["Image"],this.outputShape=[];const t=e[2];this.outputShape=e,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int x = coords[2]; @@ -3717,7 +3717,7 @@ return a / b;`,lG=` } setOutput(outputValue); } - `}}const M1={kernelName:Uo,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{const{image:s}=e,n=t,i=new F1(s.shape),r=n.runWebGLProgram(i,[s],s.dtype);return r}};class U1{constructor(e){this.variableNames=["A"];const t=ct(),[s,n]=e;this.outputShape=e,this.userCode=` + `}}const F1={kernelName:Uo,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{const{image:s}=e,n=t,i=new D1(s.shape),r=n.runWebGLProgram(i,[s],s.dtype);return r}};class M1{constructor(e){this.variableNames=["A"];const t=ct(),[s,n]=e;this.outputShape=e,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -3739,7 +3739,7 @@ return a / b;`,lG=` setOutput(floor(value * 255.0 + 0.5)); } - `}}class $1{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;const t=ct(),[s,n]=e;this.outputShape=e,this.userCode=` + `}}class U1{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;const t=ct(),[s,n]=e;this.outputShape=e,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -3773,12 +3773,12 @@ return a / b;`,lG=` ${t.output} = result; } - `}}const W1={kernelName:Xa,backendName:"webgl",kernelFunc:pG};let pc;function pG(e){const{inputs:t,backend:s,attrs:n}=e;let{pixels:i}=t;const{numChannels:r}=n,o=typeof HTMLVideoElement!="undefined"&&i instanceof HTMLVideoElement,a=typeof HTMLImageElement!="undefined"&&i instanceof HTMLImageElement,[l,c]=o?[i.videoWidth,i.videoHeight]:[i.width,i.height],p=[c,l],u=[c,l,r];(a||o)&&(pc==null&&(pc=document.createElement("canvas").getContext("2d")),pc.canvas.width=l,pc.canvas.height=c,pc.drawImage(i,0,0,l,c),i=pc.canvas);const h=s.makeTensorInfo(p,"int32");s.texData.get(h.dataId).usage=is.PIXELS,s.gpgpu.uploadPixelDataToTexture(s.getTexture(h.dataId),i);const d=W().getBool("WEBGL_PACK")?new $1(u):new U1(u),m=s.runWebGLProgram(d,[h],"int32");return s.disposeData(h.dataId),m}function uG(e){const t=[];for(;t.length===0||t[t.length-1].outSize!==1;){const s=t.length?t[t.length-1].outSize:e[1],n=U.computeOptimalWindowSize(s);t.push({inSize:s,windowSize:n,outSize:Math.ceil(s/n)})}return t}function z1(e,t,s,n){const i=uG(e.shape);let r=e;for(let o=0;o`The new shape (${l}) has ${c} elements and the old shape (${i.shape}) has ${a} elements. The new shape and old shape must have the same number of elements.`);const p=o.texData.get(i.dataId);return p.isPacked&&!sc(i.shape,l)&&!(p.texture!==null&&sc(p.shape,l))?P1(i,l,o):(o.incRef(i.dataId),{dataId:i.dataId,shape:l,dtype:i.dtype})}const B1={kernelName:Ei,backendName:"webgl",kernelFunc:yg};function j1(e,t,s,n){const i=N.sizeFromShape(t),r=N.sizeFromShape(e.shape),o=r/i,a=yg({inputs:{x:e},attrs:{shape:[o,i]},backend:n}),l=z1(a,e.dtype,"max",n),c=yg({inputs:{x:l},attrs:{shape:s},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(l),c}class V1{constructor(e,t){this.variableNames=["A"];const s=new Array(e.length);for(let r=0;r`The new shape (${l}) has ${c} elements and the old shape (${i.shape}) has ${a} elements. The new shape and old shape must have the same number of elements.`);const p=o.texData.get(i.dataId);return p.isPacked&&!sc(i.shape,l)&&!(p.texture!==null&&sc(p.shape,l))?z1(i,l,o):(o.incRef(i.dataId),{dataId:i.dataId,shape:l,dtype:i.dtype})}const P1={kernelName:Ei,backendName:"webgl",kernelFunc:yg};function B1(e,t,s,n){const i=N.sizeFromShape(t),r=N.sizeFromShape(e.shape),o=r/i,a=yg({inputs:{x:e},attrs:{shape:[o,i]},backend:n}),l=W1(a,e.dtype,"max",n),c=yg({inputs:{x:l},attrs:{shape:s},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(l),c}class j1{constructor(e,t){this.variableNames=["A"];const s=new Array(e.length);for(let r=0;r6)throw Error(`Transpose for rank ${t} is not yet supported`);const s=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],n=new Array(t);for(let i=0;i6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);const n=Re(this.rank),i=Ix("rc",this.rank),r=new Array(this.rank);for(let c=0;c6)throw Error(`Transpose for rank ${t} is not yet supported`);const s=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],n=new Array(t);for(let i=0;i6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);const n=Re(this.rank),i=Ix("rc",this.rank),r=new Array(this.rank);for(let c=0;c{const{x:n}=e,{reductionIndices:i,keepDims:r}=t,o=s,a=n.shape.length,l=N.parseAxisParam(i,n.shape);let c=l;const p=U.getAxesPermutation(c,a),u=p!=null,h=o.shouldExecuteOnCPU([n]);let d=n;if(u){if(h){const w=o.texData.get(d.dataId),x=w.values,T=new Array(a);for(let E=0;E`Error in maxPool: Either strides or dilations must be 1. Got strides ${o} and dilations '${c}'`);const p=U.computePool2DInfo(i.shape,r,o,c,a,l);if(p.filterWidth===1&&p.filterHeight===1&&N.arraysEqual(p.inShape,p.outShape))return zu({inputs:{x:i},backend:s});const u=new Zi(p,"max",!1);return s.runWebGLProgram(u,[i],i.dtype)}const H1={kernelName:Oi,backendName:"webgl",kernelFunc:dG};function mG(e){const{inputs:t,backend:s,attrs:n}=e,{dy:i,input:r,output:o}=t,a=r;xi([r,o],"maxPoolBackprop");const{filterSize:l,strides:c,pad:p,dimRoundingMode:u}=n,h=U.computePool2DInfo(a.shape,l,c,1,p,u),d=!0,m=new Zi(h,"max",d),f=s.runWebGLProgram(m,[a],a.dtype),g=new LO(h),y=s.runWebGLProgram(g,[i,f],a.dtype);return s.disposeIntermediateTensorInfo(f),y}const Y1={kernelName:$o,backendName:"webgl",kernelFunc:mG};function K1(e,t,s,n){let i=new Zi(s,"max",!1);const r=n.runWebGLProgram(i,[e],"float32");i=new Zi(s,"max",!0,!0,t);const o=n.runWebGLProgram(i,[e],"float32");return[r,o]}const X1={kernelName:Wo,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:s})=>{const{x:n}=e,{filterSize:i,strides:r,pad:o,includeBatchInIndex:a}=t,l=s;N.assert(n.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${n.shape.length}.`);const c=[1,1];N.assert(U.eitherStridesOrDilationsAreOne(r,c),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${r} and dilations '${c}'`);const p=U.computePool2DInfo(n.shape,i,r,c,o),[u,h]=K1(n,a,p,l);return[u,h]}};const J1={kernelName:cp,backendName:"webgl",kernelFunc:({inputs:e,backend:t,attrs:s})=>{U.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");const{boxes:n,scores:i}=e,{maxOutputSize:r,iouThreshold:o,scoreThreshold:a}=s,l=t,c=l.readSync(n.dataId),p=l.readSync(i.dataId),u=r,h=o,d=a;return vt.nonMaxSuppressionV3Impl(c,p,u,h,d)}};const fG=vt.nonMaxSuppressionV4Impl,Z1={kernelName:zo,backendName:"webgl",kernelFunc:({inputs:e,backend:t,attrs:s})=>{U.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");const{boxes:n,scores:i}=e,{maxOutputSize:r,iouThreshold:o,scoreThreshold:a,padToMaxOutputSize:l}=s,c=t,p=c.readSync(n.dataId),u=c.readSync(i.dataId),{selectedIndices:h,validOutputs:d}=fG(p,u,r,o,a,l);return[h,d]}};const gG=vt.nonMaxSuppressionV5Impl,Q1={kernelName:Po,backendName:"webgl",kernelFunc:({inputs:e,backend:t,attrs:s})=>{U.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");const{boxes:n,scores:i}=e,{maxOutputSize:r,iouThreshold:o,scoreThreshold:a,softNmsSigma:l}=s,c=t,p=c.readSync(n.dataId),u=c.readSync(i.dataId),h=r,d=o,m=a,f=l,{selectedIndices:g,selectedScores:y}=gG(p,u,h,d,m,f);return[g,y]}};class eE{constructor(e,t,s,n){this.variableNames=["Image"],this.outputShape=[];const i=e[1],r=e[2],o=Math.sin(t).toFixed(3),a=Math.cos(t).toFixed(3);this.outputShape=e;const[l,c]=U.getImageCenter(n,i,r),p=l.toFixed(3),u=c.toFixed(3);let h="";typeof s=="number"?h=`float outputValue = ${s.toFixed(2)};`:h=` + `}}function bg(e,t,s){const n=W().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new V1(e.shape,t):new j1(e.shape,t);return s.runWebGLProgram(n,[e],e.dtype)}const G1={kernelName:Ri,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:s})=>{const{x:n}=e,{reductionIndices:i,keepDims:r}=t,o=s,a=n.shape.length,l=N.parseAxisParam(i,n.shape);let c=l;const p=U.getAxesPermutation(c,a),u=p!=null,h=o.shouldExecuteOnCPU([n]);let d=n;if(u){if(h){const w=o.texData.get(d.dataId),x=w.values,T=new Array(a);for(let E=0;E`Error in maxPool: Either strides or dilations must be 1. Got strides ${o} and dilations '${c}'`);const p=U.computePool2DInfo(i.shape,r,o,c,a,l);if(p.filterWidth===1&&p.filterHeight===1&&N.arraysEqual(p.inShape,p.outShape))return zu({inputs:{x:i},backend:s});const u=new Zi(p,"max",!1);return s.runWebGLProgram(u,[i],i.dtype)}const q1={kernelName:Oi,backendName:"webgl",kernelFunc:hG};function dG(e){const{inputs:t,backend:s,attrs:n}=e,{dy:i,input:r,output:o}=t,a=r;xi([r,o],"maxPoolBackprop");const{filterSize:l,strides:c,pad:p,dimRoundingMode:u}=n,h=U.computePool2DInfo(a.shape,l,c,1,p,u),d=!0,m=new Zi(h,"max",d),f=s.runWebGLProgram(m,[a],a.dtype),g=new xO(h),y=s.runWebGLProgram(g,[i,f],a.dtype);return s.disposeIntermediateTensorInfo(f),y}const H1={kernelName:$o,backendName:"webgl",kernelFunc:dG};function Y1(e,t,s,n){let i=new Zi(s,"max",!1);const r=n.runWebGLProgram(i,[e],"float32");i=new Zi(s,"max",!0,!0,t);const o=n.runWebGLProgram(i,[e],"float32");return[r,o]}const K1={kernelName:Wo,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:s})=>{const{x:n}=e,{filterSize:i,strides:r,pad:o,includeBatchInIndex:a}=t,l=s;N.assert(n.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${n.shape.length}.`);const c=[1,1];N.assert(U.eitherStridesOrDilationsAreOne(r,c),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${r} and dilations '${c}'`);const p=U.computePool2DInfo(n.shape,i,r,c,o),[u,h]=Y1(n,a,p,l);return[u,h]}};const X1={kernelName:cp,backendName:"webgl",kernelFunc:({inputs:e,backend:t,attrs:s})=>{U.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");const{boxes:n,scores:i}=e,{maxOutputSize:r,iouThreshold:o,scoreThreshold:a}=s,l=t,c=l.readSync(n.dataId),p=l.readSync(i.dataId),u=r,h=o,d=a;return vt.nonMaxSuppressionV3Impl(c,p,u,h,d)}};const mG=vt.nonMaxSuppressionV4Impl,J1={kernelName:zo,backendName:"webgl",kernelFunc:({inputs:e,backend:t,attrs:s})=>{U.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");const{boxes:n,scores:i}=e,{maxOutputSize:r,iouThreshold:o,scoreThreshold:a,padToMaxOutputSize:l}=s,c=t,p=c.readSync(n.dataId),u=c.readSync(i.dataId),{selectedIndices:h,validOutputs:d}=mG(p,u,r,o,a,l);return[h,d]}};const fG=vt.nonMaxSuppressionV5Impl,Z1={kernelName:Po,backendName:"webgl",kernelFunc:({inputs:e,backend:t,attrs:s})=>{U.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");const{boxes:n,scores:i}=e,{maxOutputSize:r,iouThreshold:o,scoreThreshold:a,softNmsSigma:l}=s,c=t,p=c.readSync(n.dataId),u=c.readSync(i.dataId),h=r,d=o,m=a,f=l,{selectedIndices:g,selectedScores:y}=fG(p,u,h,d,m,f);return[g,y]}};class Q1{constructor(e,t,s,n){this.variableNames=["Image"],this.outputShape=[];const i=e[1],r=e[2],o=Math.sin(t).toFixed(3),a=Math.cos(t).toFixed(3);this.outputShape=e;const[l,c]=U.getImageCenter(n,i,r),p=l.toFixed(3),u=c.toFixed(3);let h="";typeof s=="number"?h=`float outputValue = ${s.toFixed(2)};`:h=` vec3 fill = vec3(${s.join(",")}); float outputValue = fill[coords[3]];`,this.userCode=` void main() { @@ -3812,9 +3812,9 @@ return a / b;`,lG=` } setOutput(outputValue); } - `}}const tE={kernelName:Ho,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:s})=>{const{image:n}=e,{radians:i,fillValue:r,center:o}=t,a=s,l=new eE(n.shape,i,r,o),c=a.runWebGLProgram(l,[n],n.dtype);return c}};const yG=gg+` + `}}const eE={kernelName:Ho,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:s})=>{const{image:n}=e,{radians:i,fillValue:r,center:o}=t,a=s,l=new Q1(n.shape,i,r,o),c=a.runWebGLProgram(l,[n],n.dtype);return c}};const gG=gg+` return sin(x); -`,bG=Io(yG),sE={kernelName:ti,backendName:"webgl",kernelFunc:bG};const wG="return x * x;",xG=Io(wG),nE={kernelName:Go,backendName:"webgl",kernelFunc:xG};const iE="return (a - b) * (a - b);",LG=cc(iE,iE),rE={kernelName:si,backendName:"webgl",kernelFunc:LG};const SG="return tan(x);",IG=Io(SG),oE={kernelName:ni,backendName:"webgl",kernelFunc:IG};const aE={kernelName:_i,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:s})=>{const{x:n}=e,{perm:i}=t,r=s,o=n.shape.length,a=new Array(o);for(let c=0;c_o,Acos:()=>dr,Acosh:()=>mr,AdadeltaOptimizer:()=>ca,AdagradOptimizer:()=>pa,AdamOptimizer:()=>ua,AdamaxOptimizer:()=>ha,Add:()=>Zn,AddN:()=>Mc,All:()=>ty,Any:()=>sy,ArgMax:()=>Uc,ArgMin:()=>$c,Asin:()=>fr,Asinh:()=>gr,Atan:()=>yr,Atan2:()=>ko,Atanh:()=>br,AvgPool:()=>Ti,AvgPool3D:()=>Wc,AvgPool3DBackprop:()=>ny,AvgPoolBackprop:()=>Do,BatchMatMul:()=>zc,BatchToSpaceND:()=>Pc,BroadcastTo:()=>Bc,Callback:()=>fw,CallbackList:()=>Hb,Cast:()=>Ai,Ceil:()=>wr,ClipByValue:()=>xr,Complex:()=>jc,Concat:()=>Fo,Conv2D:()=>Vc,Conv2DBackpropFilter:()=>iy,Conv2DBackpropInput:()=>Gc,Conv3D:()=>qc,Conv3DBackpropFilterV2:()=>ry,Conv3DBackpropInputV2:()=>oy,Cos:()=>Qn,Cosh:()=>Lr,CropAndResize:()=>ay,Cumsum:()=>Hc,CustomCallback:()=>Kb,DataStorage:()=>Fc,DepthToSpace:()=>ly,DepthwiseConv2dNative:()=>Yc,DepthwiseConv2dNativeBackpropFilter:()=>cy,DepthwiseConv2dNativeBackpropInput:()=>py,Diag:()=>uy,Dilation2D:()=>Mo,Dilation2DBackpropFilter:()=>Ha,Dilation2DBackpropInput:()=>qa,Div:()=>ei,ENV:()=>Jg,EarlyStopping:()=>gw,Elu:()=>Sr,EluGrad:()=>hy,Environment:()=>Xg,Equal:()=>dy,Erf:()=>Ir,Exp:()=>vr,Expm1:()=>Tr,FFT:()=>Kc,Fill:()=>my,FlipLeftRight:()=>Uo,Floor:()=>Ar,FloorDiv:()=>Xc,FromPixels:()=>Xa,FusedBatchNorm:()=>Ni,FusedConv2D:()=>Ah,FusedDepthwiseConv2D:()=>Nh,GatherNd:()=>fy,GatherV2:()=>Jc,GraphModel:()=>Pw,Greater:()=>gy,GreaterEqual:()=>Zc,History:()=>Yb,IFFT:()=>Qc,Identity:()=>Ci,Imag:()=>ep,InputSpec:()=>st,IsFinite:()=>Nr,IsInf:()=>Cr,IsNan:()=>Rr,KernelBackend:()=>Eo,LRN:()=>sp,LRNBackprop:()=>Sy,LayerVariable:()=>nm,LayersModel:()=>nn,Less:()=>yy,LessEqual:()=>by,LinSpace:()=>wy,Log:()=>Or,Log1p:()=>Er,LogSoftmax:()=>tp,LogicalAnd:()=>xy,LogicalNot:()=>Ya,LogicalOr:()=>Ly,Max:()=>Ri,MaxPool:()=>Oi,MaxPool3D:()=>ip,MaxPool3DBackprop:()=>Iy,MaxPoolBackprop:()=>$o,MaxPoolWithArgmax:()=>Wo,Maximum:()=>np,Mean:()=>y_,Min:()=>rp,Minimum:()=>op,Mod:()=>ap,MomentumOptimizer:()=>da,Multiply:()=>_r,Negate:()=>lp,NonMaxSuppressionV3:()=>cp,NonMaxSuppressionV4:()=>zo,NonMaxSuppressionV5:()=>Po,NotEqual:()=>Ka,OP_SCOPE_SUFFIX:()=>Xy,OneHot:()=>up,OnesLike:()=>pp,Optimizer:()=>gs,PadV2:()=>Bo,Pool:()=>b_,Pow:()=>hp,Prelu:()=>dp,Prod:()=>vy,RMSPropOptimizer:()=>ma,RNN:()=>rn,Range:()=>Ty,Rank:()=>By,Real:()=>mp,Reciprocal:()=>kr,Reduction:()=>gt,Relu:()=>fp,Relu6:()=>bp,Reshape:()=>Ei,ResizeBilinear:()=>yp,ResizeBilinearGrad:()=>Ny,ResizeNearestNeighbor:()=>gp,ResizeNearestNeighborGrad:()=>Ay,Reverse:()=>wp,RotateWithOffset:()=>Ho,Round:()=>Dr,Rsqrt:()=>Fr,SGDOptimizer:()=>zi,ScatterNd:()=>Cy,SelectV2:()=>xp,Selu:()=>Mr,Sequential:()=>mo,Sigmoid:()=>Wr,Sign:()=>$r,Sin:()=>ti,Sinh:()=>Ur,Slice:()=>jo,Softmax:()=>Ip,Softplus:()=>zr,SpaceToBatchND:()=>Vo,SparseToDense:()=>Ry,SplitV:()=>Sp,Sqrt:()=>Pr,Square:()=>Go,SquaredDifference:()=>si,Step:()=>Vr,StridedSlice:()=>Oy,Sub:()=>Br,Sum:()=>Lp,SymbolicTensor:()=>xs,Tan:()=>ni,Tanh:()=>jr,Tensor:()=>me,TensorBuffer:()=>dn,Tile:()=>vp,TopK:()=>Ey,Transpose:()=>_i,Unique:()=>qo,Unpack:()=>Tp,UnsortedSegmentSum:()=>Ap,Variable:()=>ci,ZerosLike:()=>Np,_FusedMatMul:()=>Th,abs:()=>et,acos:()=>Uh,acosh:()=>$h,add:()=>$,addN:()=>Wh,addStrict:()=>DU,all:()=>hl,any:()=>Zo,argMax:()=>Qo,argMin:()=>zh,asin:()=>Ph,asinh:()=>Bh,atan:()=>jh,atan2:()=>Vh,atanh:()=>Gh,avgPool:()=>ds,avgPool3d:()=>ml,backend:()=>mb,backend_util:()=>U,basicLSTMCell:()=>dI,batchNorm:()=>Xs,batchNorm2d:()=>Yh,batchNorm3d:()=>Kh,batchNorm4d:()=>Xh,batchToSpaceND:()=>Yr,booleanMaskAsync:()=>hU,broadcastTo:()=>ta,browser:()=>Gr,buffer:()=>ge,callbacks:()=>WN,cast:()=>G,ceil:()=>Jh,clipByValue:()=>xt,clone:()=>Fs,complex:()=>Gt,concat:()=>be,concat1d:()=>Zh,concat2d:()=>Qh,concat3d:()=>ed,concat4d:()=>td,constraints:()=>zb,conv1d:()=>fl,conv2d:()=>rt,conv2dTranspose:()=>yl,conv3d:()=>bl,conv3dTranspose:()=>fI,copyRegisteredKernels:()=>L_,cos:()=>Kr,cosh:()=>wl,cosineWindow:()=>Jp,cumsum:()=>xl,customGrad:()=>fs,data:()=>Yw,deprecationWarn:()=>It,depthToSpace:()=>nd,depthwiseConv2d:()=>fn,deregisterOp:()=>BN,device_util:()=>rl,diag:()=>gI,dilation2d:()=>id,disableDeprecationWarnings:()=>Vk,dispose:()=>ce,disposeVariables:()=>Gk,div:()=>Z,divNoNan:()=>rd,divStrict:()=>FU,dot:()=>yI,dropout:()=>Tb,elu:()=>gn,enableDebugMode:()=>jk,enableProdMode:()=>Bk,enclosingPowerOfTwo:()=>Ab,engine:()=>Us,env:()=>W,equal:()=>as,equalStrict:()=>wU,erf:()=>od,exp:()=>ut,expandDims:()=>Mt,expm1:()=>ad,eye:()=>sa,fft:()=>so,fill:()=>Wt,findBackend:()=>Jk,findBackendFactory:()=>Zk,floor:()=>ui,floorDiv:()=>ul,fused:()=>xn,gather:()=>hi,gatherND:()=>vb,gather_util:()=>JS,getBackend:()=>Kk,getGradient:()=>Ch,getKernel:()=>Rp,getKernelsForBackend:()=>Op,grad:()=>kF,grads:()=>DF,greater:()=>Ut,greaterEqual:()=>ms,greaterEqualStrict:()=>xU,greaterStrict:()=>LU,ifft:()=>Wi,imag:()=>yn,image:()=>en,inTopKAsync:()=>JU,initializers:()=>Gb,input:()=>wm,io:()=>Rt,irfft:()=>kl,isFinite:()=>wI,isInf:()=>xI,isNaN:()=>LI,keep:()=>pt,kernel_impls:()=>vt,layers:()=>lw,leakyRelu:()=>Ll,less:()=>Xr,lessEqual:()=>Ws,lessEqualStrict:()=>SU,lessStrict:()=>IU,linalg:()=>Cb,linspace:()=>cd,loadGraphModel:()=>yC,loadLayersModel:()=>rN,localResponseNormalization:()=>pd,log:()=>zt,log1p:()=>Sl,logSigmoid:()=>SI,logSoftmax:()=>Il,logSumExp:()=>dd,logicalAnd:()=>Yt,logicalNot:()=>Jr,logicalOr:()=>vl,logicalXor:()=>II,losses:()=>j$,matMul:()=>Te,math:()=>XS,max:()=>Lt,maxPool:()=>ft,maxPool3d:()=>Tl,maxPoolWithArgmax:()=>md,maximum:()=>Ht,maximumStrict:()=>MU,mean:()=>Xe,memory:()=>pl,metrics:()=>hw,min:()=>Ui,minimum:()=>bn,minimumStrict:()=>UU,mod:()=>Al,modStrict:()=>$U,model:()=>nN,models:()=>dw,moments:()=>na,movingAverage:()=>GU,mul:()=>R,mulStrict:()=>WU,multiRNNCell:()=>vI,multinomial:()=>fd,neg:()=>ke,nextFrame:()=>Zp,norm:()=>Kp,notEqual:()=>Js,notEqualStrict:()=>vU,oneHot:()=>pi,ones:()=>Kt,onesLike:()=>Ot,op:()=>S,outerProduct:()=>TI,pad:()=>Pt,pad1d:()=>AI,pad2d:()=>NI,pad3d:()=>CI,pad4d:()=>RI,pool:()=>OI,pow:()=>es,powStrict:()=>zU,prelu:()=>Qr,print:()=>Fh,prod:()=>Nl,profile:()=>qk,rand:()=>EI,randomGamma:()=>DI,randomNormal:()=>qp,randomUniform:()=>wn,range:()=>$i,ready:()=>Yk,real:()=>Zs,reciprocal:()=>yd,registerBackend:()=>Vp,registerCallbackConstructor:()=>oN,registerGradient:()=>ky,registerKernel:()=>Za,registerOp:()=>PN,regularizers:()=>mw,relu:()=>Fe,relu6:()=>bd,removeBackend:()=>Xk,reshape:()=>O,reverse:()=>Et,reverse1d:()=>FI,reverse2d:()=>MI,reverse3d:()=>UI,reverse4d:()=>$I,rfft:()=>no,round:()=>wd,rsqrt:()=>Cl,scalar:()=>j,scatterND:()=>Ib,scatter_util:()=>QS,selu:()=>Rl,separableConv2d:()=>eo,sequential:()=>iN,serialization:()=>V,setBackend:()=>uI,setPlatform:()=>Qk,setdiff1dAsync:()=>xd,sigmoid:()=>os,sign:()=>Ld,signal:()=>B$,sin:()=>Ol,sinh:()=>El,slice:()=>he,slice1d:()=>_l,slice2d:()=>Hp,slice3d:()=>to,slice4d:()=>ia,slice_util:()=>Ms,softmax:()=>ts,softplus:()=>di,spaceToBatchND:()=>Zr,sparseToDense:()=>Xp,spectral:()=>P$,split:()=>Bt,sqrt:()=>Je,square:()=>xe,squaredDifference:()=>io,squaredDifferenceStrict:()=>PU,squeeze:()=>Qs,stack:()=>Ge,step:()=>mi,stridedSlice:()=>Sd,sub:()=>X,subStrict:()=>BU,sum:()=>te,sumOutType:()=>Mp,tan:()=>Id,tanh:()=>Mi,tensor:()=>ze,tensor1d:()=>Oe,tensor2d:()=>ls,tensor3d:()=>ll,tensor4d:()=>ss,tensor5d:()=>WI,tensor6d:()=>zI,tensor_util:()=>mn,test_util:()=>cI,tidy:()=>C,tile:()=>$s,time:()=>Hk,topk:()=>vd,train:()=>ao,transpose:()=>se,truncatedNormal:()=>ro,unique:()=>Yp,unregisterGradient:()=>x_,unregisterKernel:()=>w_,unsortedSegmentSum:()=>Td,unstack:()=>qe,upcastType:()=>Ft,util:()=>N,valueAndGrad:()=>FF,valueAndGrads:()=>MF,variable:()=>Ad,variableGrads:()=>hd,version:()=>AG,version_converter:()=>kf,version_core:()=>db,version_layers:()=>uo,where:()=>mt,whereAsync:()=>Dl,zeros:()=>ye,zerosLike:()=>re});const AG={"tfjs-core":db,"tfjs-backend-cpu":hx,"tfjs-backend-webgl":sL,"tfjs-data":Hf,"tfjs-layers":uo,"tfjs-converter":kf,tfjs:cE};function er(e,t,s=!1){if(e.beginPath(),t.slice(1).forEach(({x:n,y:i},r)=>{const o=t[r];e.moveTo(o.x,o.y),e.lineTo(n,i)}),s){const n=t[t.length-1],i=t[0];if(!n||!i)return;e.moveTo(n.x,n.y),e.lineTo(i.x,i.y)}e.stroke()}class Ts{constructor(e,t){if(!Yn(e)||!Yn(t))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:e,height:t})}`);this._width=e,this._height=t}get width(){return this._width}get height(){return this._height}reverse(){return new Ts(1/this.width,1/this.height)}}const Qu={};Ee(Qu,{computeReshapedDimensions:()=>rL,getCenterPoint:()=>Ra,isDimensions:()=>xg,isEven:()=>wg,isFloat:()=>iL,isTensor:()=>Na,isTensor1D:()=>NG,isTensor2D:()=>nL,isTensor3D:()=>tr,isTensor4D:()=>ln,isValidNumber:()=>Yn,isValidProbablitiy:()=>uc,range:()=>Si,round:()=>Ca});function Na(e,t){return e instanceof me&&e.shape.length===t}function NG(e){return Na(e,1)}function nL(e){return Na(e,2)}function tr(e){return Na(e,3)}function ln(e){return Na(e,4)}function iL(e){return e%1!==0}function wg(e){return e%2===0}function Ca(e,t=2){const s=Math.pow(10,t);return Math.floor(e*s)/s}function xg(e){return e&&e.width&&e.height}function rL({width:e,height:t},s){const n=s/Math.max(t,e);return new Ts(Math.round(e*n),Math.round(t*n))}function Ra(e){return e.reduce((t,s)=>t.add(s),new _e(0,0)).div(new _e(e.length,e.length))}function Si(e,t,s){return Array(e).fill(0).map((n,i)=>t+i*s)}function Yn(e){return!!e&&e!==Infinity&&e!==-Infinity&&!isNaN(e)||e===0}function uc(e){return Yn(e)&&0<=e&&e<=1}class _e{constructor(e,t){this._x=e,this._y=t}get x(){return this._x}get y(){return this._y}add(e){return new _e(this.x+e.x,this.y+e.y)}sub(e){return new _e(this.x-e.x,this.y-e.y)}mul(e){return new _e(this.x*e.x,this.y*e.y)}div(e){return new _e(this.x/e.x,this.y/e.y)}abs(){return new _e(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(Math.pow(this.x,2)+Math.pow(this.y,2))}floor(){return new _e(Math.floor(this.x),Math.floor(this.y))}}class it{constructor(e,t=!0){const s=e||{},n=[s.left,s.top,s.right,s.bottom].every(Yn),i=[s.x,s.y,s.width,s.height].every(Yn);if(!i&&!n)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(s)}`);const[r,o,a,l]=i?[s.x,s.y,s.width,s.height]:[s.left,s.top,s.right-s.left,s.bottom-s.top];it.assertIsValidBox({x:r,y:o,width:a,height:l},"Box.constructor",t),this._x=r,this._y=o,this._width=a,this._height=l}static isRect(e){return!!e&&[e.x,e.y,e.width,e.height].every(Yn)}static assertIsValidBox(e,t,s=!1){if(!it.isRect(e))throw new Error(`${t} - invalid box: ${JSON.stringify(e)}, expected object with properties x, y, width, height`);if(!s&&(e.width<0||e.height<0))throw new Error(`${t} - width (${e.width}) and height (${e.height}) must be positive numbers`)}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new _e(this.left,this.top)}get topRight(){return new _e(this.right,this.top)}get bottomLeft(){return new _e(this.left,this.bottom)}get bottomRight(){return new _e(this.right,this.bottom)}round(){const[e,t,s,n]=[this.x,this.y,this.width,this.height].map(i=>Math.round(i));return new it({x:e,y:t,width:s,height:n})}floor(){const[e,t,s,n]=[this.x,this.y,this.width,this.height].map(i=>Math.floor(i));return new it({x:e,y:t,width:s,height:n})}toSquare(){let{x:e,y:t,width:s,height:n}=this;const i=Math.abs(s-n);return st&&(o=-p+t+s,p=t),u>e&&(a=-u+e+n,u=e),l<1&&(a=2-l,l=1),c<1&&(a=2-c,c=1),{dy:r,edy:a,dx:i,edx:o,y:c,ey:u,x:l,ex:p,w:s,h:n}}calibrate(e){return new it({left:this.left+e.left*this.width,top:this.top+e.top*this.height,right:this.right+e.right*this.width,bottom:this.bottom+e.bottom*this.height}).toSquare().round()}}class Ga extends it{constructor(e,t,s,n,i=!1){super({left:e,top:t,right:s,bottom:n},i)}}class Oo{constructor(e,t,s,n,i){this._imageDims=new Ts(i.width,i.height),this._score=e,this._classScore=t,this._className=s,this._box=new it(n).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new it(this._box).rescale(this.imageDims.reverse())}forSize(e,t){return new Oo(this.score,this.classScore,this.className,this.relativeBox,{width:e,height:t})}}class ht extends Oo{constructor(e,t,s){super(e,e,"",t,s)}forSize(e,t){const{score:s,relativeBox:n,imageDims:i}=super.forSize(e,t);return new ht(s,n,i)}}function oh(e,t,s=!0){const n=Math.max(0,Math.min(e.right,t.right)-Math.max(e.left,t.left)),i=Math.max(0,Math.min(e.bottom,t.bottom)-Math.max(e.top,t.top)),r=n*i;return s?r/(e.area+t.area-r):r/Math.min(e.area,t.area)}function rh(e){const t=e.map(a=>a.x),s=e.map(a=>a.y),n=t.reduce((a,l)=>llaa({score:o,boxIndex:a})).sort((o,a)=>o.score-a.score).map(o=>o.boxIndex);const r=[];for(;i.length>0;){const o=i.pop();r.push(o);const a=i,l=[];for(let c=0;cl[p]<=s)}return r}function un(e,t){return C(()=>{const[s,n,i]=t,r=Wt([...e.shape.slice(0,3),1],s),o=Wt([...e.shape.slice(0,3),1],n),a=Wt([...e.shape.slice(0,3),1],i),l=be([r,o,a],3);return X(e,l)})}function nh(e,t=!1){return C(()=>{const[s,n]=e.shape.slice(1);if(s===n)return e;const i=Math.abs(s-n),r=Math.round(i*(t?.5:1)),o=s>n?2:1,a=h=>{const d=e.shape.slice();return d[o]=h,Wt(d,0)},l=a(r),c=i-l.shape[o],p=t&&c?a(c):null,u=[p,e,l].filter(h=>!!h).map(h=>G(h,"float32"));return be(u,o)})}function VL(e){const t=e.slice();for(let s=t.length-1;s>0;s--){const n=Math.floor(Math.random()*(s+1)),i=t[s];t[s]=t[n],t[n]=i}return t}function $a(e){return 1/(1+Math.exp(-e))}function GL(e){return Math.log(e/(1-e))}class ja extends it{constructor(e,t,s,n,i=!1){super({x:e,y:t,width:s,height:n},i)}}const CG=.5,RG=.43,OG=.45;class Hs{constructor(e,t,s=new _e(0,0)){const{width:n,height:i}=t;this._imgDims=new Ts(n,i),this._shift=s,this._positions=e.map(r=>r.mul(new _e(n,i)).add(s))}get shift(){return new _e(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(e=>e.sub(this._shift).div(new _e(this.imageWidth,this.imageHeight)))}forSize(e,t){return new this.constructor(this.relativePositions,{width:e,height:t})}shiftBy(e,t){return new this.constructor(this.relativePositions,this._imgDims,new _e(e,t))}shiftByPoint(e){return this.shiftBy(e.x,e.y)}align(e,t={}){if(e){const i=e instanceof ht?e.box.floor():new it(e);return this.shiftBy(i.x,i.y).align(null,t)}const{useDlibAlignment:s,minBoxPadding:n}=Object.assign({},{useDlibAlignment:!1,minBoxPadding:.2},t);return s?this.alignDlib():this.alignMinBbox(n)}alignDlib(){const e=this.getRefPointsForAlignment(),[t,s,n]=e,i=p=>n.sub(p).magnitude(),r=(i(t)+i(s))/2,o=Math.floor(r/OG),a=Ra(e),l=Math.floor(Math.max(0,a.x-CG*o)),c=Math.floor(Math.max(0,a.y-RG*o));return new ja(l,c,Math.min(o,this.imageWidth+l),Math.min(o,this.imageHeight+c))}alignMinBbox(e){const t=rh(this.positions);return t.pad(t.width*e,t.height*e)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}}class wS extends Hs{getRefPointsForAlignment(){const e=this.positions;return[e[0],e[1],Ra([e[3],e[4]])]}}class Va extends Hs{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(Ra)}}class Dc{constructor(e,t){this._label=e,this._distance=t}get label(){return this._label}get distance(){return this._distance}toString(e=!0){return`${this.label}${e?` (${Ca(this.distance)})`:""}`}}class kc extends it{constructor(e,t){super(e);this._label=t}static assertIsValidLabeledBox(e,t){if(it.assertIsValidBox(e,t),!Yn(e.label))throw new Error(`${t} - expected property label (${e.label}) to be a number`)}get label(){return this._label}}class hr{constructor(e,t){if(!(typeof e=="string"))throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(t)||t.some(s=>!(s instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=e,this._descriptors=t}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(e=>Array.from(e))}}static fromJSON(e){const t=e.descriptors.map(s=>new Float32Array(s));return new hr(e.label,t)}}class bS extends kc{constructor(e,t,s,n){super(e,t);this._score=s,this._classScore=n}static assertIsValidPredictedBox(e,t){if(kc.assertIsValidLabeledBox(e,t),!uc(e.score)||!uc(e.classScore))throw new Error(`${t} - expected properties score (${e.score}) and (${e.classScore}) to be a number between [0, 1]`)}get score(){return this._score}get classScore(){return this._classScore}}function Mn(e){return e.detection instanceof ht}function ar(e,t){const s={detection:t};return Object.assign({},e,s)}function oL(){const e=window.fetch||function(){throw new Error("fetch - missing fetch implementation for browser environment")},t=function(){throw new Error("readFile - filesystem not available for browser environment")};return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),fetch:e,readFile:t}}function Lg(e){let t="";if(!e)try{e=require("fs")}catch(n){t=n.toString()}const s=e?function(n){return new Promise((i,r)=>{e.readFile(n,function(o,a){return o?r(o):i(a)})})}:function(){throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)};return{readFile:s}}function aL(){const e=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,s=function(){if(e)return new e;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},n=function(){if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},i=global.fetch||function(){throw new Error("fetch - missing fetch implementation for nodejs environment")},r=Lg();return{Canvas:e||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:s,createImageElement:n,fetch:i,...r}}function lL(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}const cL=vc(ML());let Jt;function EG(){if(!Jt)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return Jt}function pL(e){Jt=e}function uL(){if(lL())return pL(oL());if(cL.isNodejs())return pL(aL())}function _G(e){if(Jt||uL(),!Jt)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");const{Canvas:t=Jt.Canvas,Image:s=Jt.Image}=e;Jt.Canvas=t,Jt.Image=s,Jt.createCanvasElement=e.createCanvasElement||(()=>new t),Jt.createImageElement=e.createImageElement||(()=>new s),Jt.ImageData=e.ImageData||Jt.ImageData,Jt.Video=e.Video||Jt.Video,Jt.fetch=e.fetch||Jt.fetch,Jt.readFile=e.readFile||Jt.readFile}const Ve={getEnv:EG,setEnv:pL,initialize:uL,createBrowserEnv:oL,createFileSystem:Lg,createNodejsEnv:aL,monkeyPatch:_G,isBrowser:lL,isNodejs:cL.isNodejs};uL();function cr(e){return!Ve.isNodejs()&&typeof e=="string"?document.getElementById(e):e}function us(e){const{Canvas:t,CanvasRenderingContext2D:s}=Ve.getEnv();if(e instanceof s)return e;const n=cr(e);if(!(n instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");const i=n.getContext("2d");if(!i)throw new Error("resolveContext2d - canvas 2d context is null");return i}var Ii;(function(e){e.TOP_LEFT="TOP_LEFT",e.TOP_RIGHT="TOP_RIGHT",e.BOTTOM_LEFT="BOTTOM_LEFT",e.BOTTOM_RIGHT="BOTTOM_RIGHT"})(Ii||(Ii={}));class Sg{constructor(e={}){const{anchorPosition:t,backgroundColor:s,fontColor:n,fontSize:i,fontStyle:r,padding:o}=e;this.anchorPosition=t||Ii.TOP_LEFT,this.backgroundColor=s||"rgba(0, 0, 0, 0.5)",this.fontColor=n||"rgba(255, 255, 255, 1)",this.fontSize=i||14,this.fontStyle=r||"Georgia",this.padding=o||4}}class hc{constructor(e,t,s={}){this.text=typeof e=="string"?[e]:e instanceof hc?e.text:e,this.anchor=t,this.options=new Sg(s)}measureWidth(e){const{padding:t}=this.options;return this.text.map(s=>e.measureText(s).width).reduce((s,n)=>s{const d=a+p.x,m=a+p.y+(h+1)*r;s.fillText(u,d,m)})}}class pE{constructor(e={}){const{boxColor:t,lineWidth:s,label:n,drawLabelOptions:i}=e;this.boxColor=t||"rgba(0, 0, 255, 1)",this.lineWidth=s||2,this.label=n;const r={anchorPosition:Ii.BOTTOM_LEFT,backgroundColor:this.boxColor};this.drawLabelOptions=new Sg(Object.assign({},r,i))}}class hL{constructor(e,t={}){this.box=new it(e),this.options=new pE(t)}draw(e){const t=us(e),{boxColor:s,lineWidth:n}=this.options,{x:i,y:r,width:o,height:a}=this.box;t.strokeStyle=s,t.lineWidth=n,t.strokeRect(i,r,o,a);const{label:l}=this.options;l&&new hc([l],{x:i-n/2,y:r},this.options.drawLabelOptions).draw(e)}}function kG(e,t){const s=Array.isArray(t)?t:[t];s.forEach(n=>{const i=n instanceof ht?n.score:Mn(n)?n.detection.score:void 0,r=n instanceof ht?n.box:Mn(n)?n.detection.box:new it(n),o=i?`${Ca(i)}`:void 0;new hL(r,{label:o}).draw(e)})}function Pa(e){const{Image:t,Video:s}=Ve.getEnv();return e instanceof t&&e.complete||e instanceof s&&e.readyState>=3}function Ih(e){return new Promise((t,s)=>{if(e instanceof Ve.getEnv().Canvas||Pa(e))return t(null);function n(r){if(!r.currentTarget)return;r.currentTarget.removeEventListener("load",n),r.currentTarget.removeEventListener("error",i),t(r)}function i(r){if(!r.currentTarget)return;r.currentTarget.removeEventListener("load",n),r.currentTarget.removeEventListener("error",i),s(r)}e.addEventListener("load",n),e.addEventListener("error",i)})}function Sh(e){return new Promise((t,s)=>{if(!(e instanceof Blob))return s("bufferToImage - expected buf to be of type: Blob");const n=new FileReader;n.onload=()=>{if(typeof n.result!="string")return s("bufferToImage - expected reader.result to be a string, in onload");const i=Ve.getEnv().createImageElement();i.onload=()=>t(i),i.onerror=s,i.src=n.result},n.onerror=s,n.readAsDataURL(e)})}function pr(e){const{Image:t,Video:s}=Ve.getEnv();return e instanceof t?new Ts(e.naturalWidth,e.naturalHeight):e instanceof s?new Ts(e.videoWidth,e.videoHeight):new Ts(e.width,e.height)}function Ro({width:e,height:t}){const{createCanvasElement:s}=Ve.getEnv(),n=s();return n.width=e,n.height=t,n}function Ba(e,t){const{ImageData:s}=Ve.getEnv();if(!(e instanceof s)&&!Pa(e))throw new Error("createCanvasFromMedia - media has not finished loading yet");const{width:n,height:i}=t||pr(e),r=Ro({width:n,height:i});return e instanceof s?us(r).putImageData(e,0,0):us(r).drawImage(e,0,0,n,i),r}async function xh(e,t){const s=t||Ve.getEnv().createCanvasElement(),[n,i,r]=e.shape.slice(ln(e)?1:0),o=C(()=>e.as3D(n,i,r).toInt());return await Gr.toPixels(o,s),o.dispose(),s}function _c(e){const{Image:t,Canvas:s,Video:n}=Ve.getEnv();return e instanceof t||e instanceof s||e instanceof n}function wh(e,t,s=!1){const{Image:n,Canvas:i}=Ve.getEnv();if(!(e instanceof n||e instanceof i))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");const r=pr(e),o=t/Math.max(r.height,r.width),a=o*r.width,l=o*r.height,c=Ro({width:t,height:t}),p=e instanceof i?e:Ba(e),u=Math.abs(a-l)/2,h=s&&a{if(tr(s)){this._imageTensors[n]=s,this._inputDimensions[n]=s.shape;return}if(ln(s)){const r=s.shape[0];if(r!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${r} passed, but not supported in input array`);this._imageTensors[n]=s,this._inputDimensions[n]=s.shape.slice(1);return}const i=s instanceof Ve.getEnv().Canvas?s:Ba(s);this._canvases[n]=i,this._inputDimensions[n]=[i.height,i.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return Si(this.batchSize,0,1).map((e,t)=>this.getReshapedInputDimensions(t))}getInput(e){return this.canvases[e]||this.imageTensors[e]}getInputDimensions(e){return this._inputDimensions[e]}getInputHeight(e){return this._inputDimensions[e][0]}getInputWidth(e){return this._inputDimensions[e][1]}getReshapedInputDimensions(e){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");const t=this.getInputWidth(e),s=this.getInputHeight(e);return rL({width:t,height:s},this.inputSize)}toBatchTensor(e,t=!0){return this._inputSize=e,C(()=>{const s=Si(this.batchSize,0,1).map(i=>{const r=this.getInput(i);if(r instanceof me){let o=ln(r)?r:r.expandDims();return o=nh(o,t),(o.shape[1]!==e||o.shape[2]!==e)&&(o=en.resizeBilinear(o,[e,e])),o.as3D(e,e,3)}if(r instanceof Ve.getEnv().Canvas)return Gr.fromPixels(wh(r,e,t));throw new Error(`toBatchTensor - at batchIdx ${i}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${r}`)}),n=Ge(s.map(i=>G(i,"float32"))).as4D(this.batchSize,e,e,3);return n})}}async function nt(e){if(e instanceof vi)return e;let t=Array.isArray(e)?e:[e];if(!t.length)throw new Error("toNetInput - empty array passed as input");const s=i=>Array.isArray(e)?` at input index ${i}:`:"",n=t.map(cr);return n.forEach((i,r)=>{if(!_c(i)&&!tr(i)&&!ln(i))throw typeof t[r]=="string"?new Error(`toNetInput -${s(r)} string passed, but could not resolve HTMLElement for element id ${t[r]}`):new Error(`toNetInput -${s(r)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(ln(i)){const o=i.shape[0];if(o!==1)throw new Error(`toNetInput -${s(r)} tf.Tensor4D with batchSize ${o} passed, but not supported in input array`)}}),await Promise.all(n.map(i=>_c(i)&&Ih(i))),new vi(n,Array.isArray(e))}async function No(e,t){const{Canvas:s}=Ve.getEnv();let n=e;if(!(e instanceof s)){const o=await nt(e);if(o.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");const a=o.getInput(0);n=a instanceof s?a:await xh(a)}const i=us(n),r=t.map(o=>o instanceof ht?o.forSize(n.width,n.height).box.floor():o).map(o=>o.clipAtImageBorders(n.width,n.height));return r.map(({x:o,y:a,width:l,height:c})=>{const p=Ro({width:l,height:c});return us(p).putImageData(i.getImageData(o,a,l,c),0,0),p})}async function Co(e,t){if(!tr(e)&&!ln(e))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(ln(e)&&e.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return C(()=>{const[s,n,i]=e.shape.slice(ln(e)?1:0),r=t.map(a=>a instanceof ht?a.forSize(n,s).box:a).map(a=>a.clipAtImageBorders(n,s)),o=r.map(({x:a,y:l,width:c,height:p})=>to(e.as3D(s,n,i),[l,a,0],[p,c,i]));return o})}async function ur(e,t){const s=Ve.getEnv().fetch,n=await s(e,t);if(!(n.status<400))throw new Error(`failed to fetch: (${n.status}) ${n.statusText}, from url: ${n.url}`);return n}async function yS(e){const t=await ur(e),s=await t.blob();if(!s.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${s.type}, for url: ${t.url}`);return Sh(s)}async function Lh(e){return(await ur(e)).json()}async function gS(e){return new Float32Array(await(await ur(e)).arrayBuffer())}function Ig(e,t){const s=`${t}-weights_manifest.json`;if(!e)return{modelBaseUri:"",manifestUri:s};if(e==="/")return{modelBaseUri:"/",manifestUri:`/${s}`};const n=e.startsWith("http://")?"http://":e.startsWith("https://")?"https://":"";e=e.replace(n,"");const i=e.split("/").filter(a=>a),r=e.endsWith(".json")?i[i.length-1]:s;let o=n+(e.endsWith(".json")?i.slice(0,i.length-1):i).join("/");return o=e.startsWith("/")?`/${o}`:o,{modelBaseUri:o,manifestUri:o==="/"?`/${r}`:`${o}/${r}`}}async function bh(e,t){const{manifestUri:s,modelBaseUri:n}=Ig(e,t);let i=await Lh(s);return Rt.loadWeights(i,n)}function fS(e,t,s=!1){const{width:n,height:i}=s?pr(t):t;return e.width=n,e.height=i,{width:n,height:i}}class Zt{constructor(e){this._name=e,this._params=void 0,this._paramMappings=[]}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(e){const{obj:t,objProp:s}=this.traversePropertyPath(e);return t[s]}reassignParamFromPath(e,t){const{obj:s,objProp:n}=this.traversePropertyPath(e);s[n].dispose(),s[n]=t}getParamList(){return this._paramMappings.map(({paramPath:e})=>({path:e,tensor:this.getParamFromPath(e)}))}getTrainableParams(){return this.getParamList().filter(e=>e.tensor instanceof ci)}getFrozenParams(){return this.getParamList().filter(e=>!(e.tensor instanceof ci))}variable(){this.getFrozenParams().forEach(({path:e,tensor:t})=>{this.reassignParamFromPath(e,t.variable())})}freeze(){this.getTrainableParams().forEach(({path:e,tensor:t})=>{const s=ze(t.dataSync());t.dispose(),this.reassignParamFromPath(e,s)})}dispose(e=!0){this.getParamList().forEach(t=>{if(e&&t.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${t.path}`);t.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:e})=>Array.from(e.dataSync())).reduce((e,t)=>e.concat(t)))}async load(e){if(e instanceof Float32Array){this.extractWeights(e);return}await this.loadFromUri(e)}async loadFromUri(e){if(e&&typeof e!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);const t=await bh(e,this.getDefaultModelName());this.loadFromWeightMap(t)}async loadFromDisk(e){if(e&&typeof e!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);const{readFile:t}=Ve.getEnv(),{manifestUri:s,modelBaseUri:n}=Ig(e,this.getDefaultModelName()),i=l=>Promise.all(l.map(c=>t(c).then(p=>p.buffer))),r=Rt.weightsLoaderFactory(i),o=JSON.parse((await t(s)).toString()),a=await r(o,n);this.loadFromWeightMap(a)}loadFromWeightMap(e){const{paramMappings:t,params:s}=this.extractParamsFromWeigthMap(e);this._paramMappings=t,this._params=s}extractWeights(e){const{paramMappings:t,params:s}=this.extractParams(e);this._paramMappings=t,this._params=s}traversePropertyPath(e){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");const t=e.split("/").reduce((i,r)=>{if(!i.nextObj.hasOwnProperty(r))throw new Error(`traversePropertyPath - object does not have property ${r}, for path ${e}`);return{obj:i.nextObj,objProp:r,nextObj:i.nextObj[r]}},{nextObj:this.params}),{obj:s,objProp:n}=t;if(!s||!n||!(s[n]instanceof me))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${e}`);return{obj:s,objProp:n}}}function _s(e,t,s){return C(()=>{let n=eo(e,t.depthwise_filter,t.pointwise_filter,s,"same");return n=$(n,t.bias),n})}function vg(e,t,s=!1){return C(()=>{const n=Fe(s?$(rt(e,t.conv0.filters,[2,2],"same"),t.conv0.bias):_s(e,t.conv0,[2,2])),i=_s(n,t.conv1,[1,1]),r=Fe($(n,i)),o=_s(r,t.conv2,[1,1]);return Fe($(n,$(i,o)))})}function Pu(e,t,s=!1,n=!0){return C(()=>{const i=Fe(s?$(rt(e,t.conv0.filters,n?[2,2]:[1,1],"same"),t.conv0.bias):_s(e,t.conv0,n?[2,2]:[1,1])),r=_s(i,t.conv1,[1,1]),o=Fe($(i,r)),a=_s(o,t.conv2,[1,1]),l=Fe($(i,$(r,a))),c=_s(l,t.conv3,[1,1]);return Fe($(i,$(r,$(a,c))))})}function Oa(e,t,s="same",n=!1){return C(()=>{const i=$(rt(e,t.filters,[1,1],s),t.bias);return n?Fe(i):i})}function Is(e,t){Object.keys(e).forEach(s=>{t.some(n=>n.originalPath===s)||e[s].dispose()})}function dc(e,t){return function(s,n,i,r){const o=ss(e(s*n*i*i),[i,i,s,n]),a=Oe(e(n));return t.push({paramPath:`${r}/filters`},{paramPath:`${r}/bias`}),{filters:o,bias:a}}}function Tg(e,t){return function(s,n,i){const r=ls(e(s*n),[s,n]),o=Oe(e(n));return t.push({paramPath:`${i}/weights`},{paramPath:`${i}/bias`}),{weights:r,bias:o}}}class dL{constructor(e,t,s){this.depthwise_filter=e,this.pointwise_filter=t,this.bias=s}}function mc(e,t){return function(s,n,i){const r=ss(e(3*3*s),[3,3,s,1]),o=ss(e(s*n),[1,1,s,n]),a=Oe(e(n));return t.push({paramPath:`${i}/depthwise_filter`},{paramPath:`${i}/pointwise_filter`},{paramPath:`${i}/bias`}),new dL(r,o,a)}}function fc(e){return function(t){const s=e(`${t}/depthwise_filter`,4),n=e(`${t}/pointwise_filter`,4),i=e(`${t}/bias`,1);return new dL(s,n,i)}}function Vs(e,t){return function(s,n,i){const r=e[s];if(!Na(r,n))throw new Error(`expected weightMap[${s}] to be a Tensor${n}D, instead have ${r}`);return t.push({originalPath:s,paramPath:i||s}),r}}function vs(e){let t=e;function s(i){const r=t.slice(0,i);return t=t.slice(i),r}function n(){return t}return{extractWeights:s,getRemainingWeights:n}}function Ag(e,t){const s=dc(e,t),n=mc(e,t);function i(o,a,l,c=!1){const p=c?s(o,a,3,`${l}/conv0`):n(o,a,`${l}/conv0`),u=n(a,a,`${l}/conv1`),h=n(a,a,`${l}/conv2`);return{conv0:p,conv1:u,conv2:h}}function r(o,a,l,c=!1){const{conv0:p,conv1:u,conv2:h}=i(o,a,l,c),d=n(a,a,`${l}/conv3`);return{conv0:p,conv1:u,conv2:h,conv3:d}}return{extractDenseBlock3Params:i,extractDenseBlock4Params:r}}function uE(e){const t=[],{extractWeights:s,getRemainingWeights:n}=vs(e),{extractDenseBlock4Params:i}=Ag(s,t),r=i(3,32,"dense0",!0),o=i(32,64,"dense1"),a=i(64,128,"dense2"),l=i(128,256,"dense3");if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:t,params:{dense0:r,dense1:o,dense2:a,dense3:l}}}function Ng(e){return function(t){const s=e(`${t}/filters`,4),n=e(`${t}/bias`,1);return{filters:s,bias:n}}}function Cg(e,t){const s=Vs(e,t),n=Ng(s),i=fc(s);function r(a,l=!1){const c=l?n(`${a}/conv0`):i(`${a}/conv0`),p=i(`${a}/conv1`),u=i(`${a}/conv2`);return{conv0:c,conv1:p,conv2:u}}function o(a,l=!1){const c=l?n(`${a}/conv0`):i(`${a}/conv0`),p=i(`${a}/conv1`),u=i(`${a}/conv2`),h=i(`${a}/conv3`);return{conv0:c,conv1:p,conv2:u,conv3:h}}return{extractDenseBlock3Params:r,extractDenseBlock4Params:o}}function hE(e){const t=[],{extractDenseBlock4Params:s}=Cg(e,t),n={dense0:s("dense0",!0),dense1:s("dense1"),dense2:s("dense2"),dense3:s("dense3")};return Is(e,t),{params:n,paramMappings:t}}class Rg extends Zt{constructor(){super("FaceFeatureExtractor")}forwardInput(e){const{params:t}=this;if(!t)throw new Error("FaceFeatureExtractor - load model before inference");return C(()=>{const s=e.toBatchTensor(112,!0),n=[122.782,117.001,104.298],i=un(s,n).div(j(255));let r=Pu(i,t.dense0,!0);return r=Pu(r,t.dense1),r=Pu(r,t.dense2),r=Pu(r,t.dense3),r=ds(r,[7,7],[2,2],"valid"),r})}async forward(e){return this.forwardInput(await nt(e))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeigthMap(e){return hE(e)}extractParams(e){return uE(e)}}function Bu(e,t){return C(()=>$(Te(e,t.weights),t.bias))}function dE(e,t,s){const n=[],{extractWeights:i,getRemainingWeights:r}=vs(e),o=Tg(i,n),a=o(t,s,"fc");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:n,params:{fc:a}}}function mE(e){const t=[],s=Vs(e,t);function n(r){const o=s(`${r}/weights`,2),a=s(`${r}/bias`,1);return{weights:o,bias:a}}const i={fc:n("fc")};return Is(e,t),{params:i,paramMappings:t}}function Og(e){const t={},s={};return Object.keys(e).forEach(n=>{const i=n.startsWith("fc")?s:t;i[n]=e[n]}),{featureExtractorMap:t,classifierMap:s}}class Eg extends Zt{constructor(e,t){super(e);this._faceFeatureExtractor=t}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(e){const{params:t}=this;if(!t)throw new Error(`${this._name} - load model before inference`);return C(()=>{const s=e instanceof vi?this.faceFeatureExtractor.forwardInput(e):e;return Bu(s.as2D(s.shape[0],-1),t.fc)})}dispose(e=!0){this.faceFeatureExtractor.dispose(e),super.dispose(e)}loadClassifierParams(e){const{params:t,paramMappings:s}=this.extractClassifierParams(e);this._params=t,this._paramMappings=s}extractClassifierParams(e){return dE(e,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeigthMap(e){const{featureExtractorMap:t,classifierMap:s}=Og(e);return this.faceFeatureExtractor.loadFromWeightMap(t),mE(s)}extractParams(e){const t=this.getClassifierChannelsIn(),s=this.getClassifierChannelsOut(),n=s*t+s,i=e.slice(0,e.length-n),r=e.slice(e.length-n);return this.faceFeatureExtractor.extractWeights(i),this.extractClassifierParams(r)}}const fh=["neutral","happy","sad","angry","fearful","disgusted","surprised"];class lr{constructor(e){if(e.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${e.length}`);fh.forEach((t,s)=>{this[t]=e[s]})}asSortedArray(){return fh.map(e=>({expression:e,probability:this[e]})).sort((e,t)=>t.probability-e.probability)}}class gh extends Eg{constructor(e=new Rg){super("FaceExpressionNet",e)}forwardInput(e){return C(()=>ts(this.runNet(e)))}async forward(e){return this.forwardInput(await nt(e))}async predictExpressions(e){const t=await nt(e),s=await this.forwardInput(t),n=await Promise.all(qe(s).map(async r=>{const o=await r.data();return r.dispose(),o}));s.dispose();const i=n.map(r=>new lr(r));return t.isBatchInput?i:i[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}}function dh(e){return e.expressions instanceof lr}function Rc(e,t){const s={expressions:t};return Object.assign({},e,s)}function DG(e,t,s=.1,n){const i=Array.isArray(t)?t:[t];i.forEach(r=>{const o=r instanceof lr?r:dh(r)?r.expressions:void 0;if(!o)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");const a=o.asSortedArray(),l=a.filter(u=>u.probability>s),c=Mn(r)?r.detection.box.bottomLeft:n||new _e(0,0),p=new hc(l.map(u=>`${u.expression} (${Ca(u.probability)})`),c);p.draw(e)})}function or(e){return Mn(e)&&e.landmarks instanceof Hs&&e.unshiftedLandmarks instanceof Hs&&e.alignedRect instanceof ht}function Ao(e,t){const{box:s}=e.detection,n=t.shiftBy(s.x,s.y),i=n.align(),{imageDims:r}=e.detection,o=new ht(e.detection.score,i.rescale(r.reverse()),r),a={landmarks:n,unshiftedLandmarks:t,alignedRect:o};return Object.assign({},e,a)}class fE{constructor(e={}){const{drawLines:t=!0,drawPoints:s=!0,lineWidth:n,lineColor:i,pointSize:r,pointColor:o}=e;this.drawLines=t,this.drawPoints=s,this.lineWidth=n||1,this.pointSize=r||2,this.lineColor=i||"rgba(0, 255, 255, 1)",this.pointColor=o||"rgba(255, 0, 255, 1)"}}class gE{constructor(e,t={}){this.faceLandmarks=e,this.options=new fE(t)}draw(e){const t=us(e),{drawLines:s,drawPoints:n,lineWidth:i,lineColor:r,pointSize:o,pointColor:a}=this.options;if(s&&this.faceLandmarks instanceof Va&&(t.strokeStyle=r,t.lineWidth=i,er(t,this.faceLandmarks.getJawOutline()),er(t,this.faceLandmarks.getLeftEyeBrow()),er(t,this.faceLandmarks.getRightEyeBrow()),er(t,this.faceLandmarks.getNose()),er(t,this.faceLandmarks.getLeftEye(),!0),er(t,this.faceLandmarks.getRightEye(),!0),er(t,this.faceLandmarks.getMouth(),!0)),n){t.strokeStyle=a,t.fillStyle=a;const l=c=>{t.beginPath(),t.arc(c.x,c.y,o,0,2*Math.PI),t.fill()};this.faceLandmarks.positions.forEach(l)}}}function FG(e,t){const s=Array.isArray(t)?t:[t];s.forEach(n=>{const i=n instanceof Hs?n:or(n)?n.landmarks:void 0;if(!i)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new gE(i).draw(e)})}const Zu={};Ee(Zu,{AnchorPosition:()=>Ii,DrawBox:()=>hL,DrawBoxOptions:()=>pE,DrawFaceLandmarks:()=>gE,DrawFaceLandmarksOptions:()=>fE,DrawTextField:()=>hc,DrawTextFieldOptions:()=>Sg,drawContour:()=>er,drawDetections:()=>kG,drawFaceExpressions:()=>DG,drawFaceLandmarks:()=>FG});function MG(e,t){const s=dc(e,t),n=mc(e,t);function i(o,a,l){const c=n(o,a,`${l}/separable_conv0`),p=n(a,a,`${l}/separable_conv1`),u=s(o,a,1,`${l}/expansion_conv`);return{separable_conv0:c,separable_conv1:p,expansion_conv:u}}function r(o,a){const l=n(o,o,`${a}/separable_conv0`),c=n(o,o,`${a}/separable_conv1`),p=n(o,o,`${a}/separable_conv2`);return{separable_conv0:l,separable_conv1:c,separable_conv2:p}}return{extractConvParams:s,extractSeparableConvParams:n,extractReductionBlockParams:i,extractMainBlockParams:r}}function yE(e,t){const s=[],{extractWeights:n,getRemainingWeights:i}=vs(e),{extractConvParams:r,extractSeparableConvParams:o,extractReductionBlockParams:a,extractMainBlockParams:l}=MG(n,s),c=r(3,32,3,"entry_flow/conv_in"),p=a(32,64,"entry_flow/reduction_block_0"),u=a(64,128,"entry_flow/reduction_block_1"),h={conv_in:c,reduction_block_0:p,reduction_block_1:u},d={};Si(t,0,1).forEach(y=>{d[`main_block_${y}`]=l(128,`middle_flow/main_block_${y}`)});const m=a(128,256,"exit_flow/reduction_block"),f=o(256,512,"exit_flow/separable_conv"),g={reduction_block:m,separable_conv:f};if(i().length!==0)throw new Error(`weights remaing after extract: ${i().length}`);return{paramMappings:s,params:{entry_flow:h,middle_flow:d,exit_flow:g}}}function UG(e,t){const s=Vs(e,t),n=Ng(s),i=fc(s);function r(a){const l=i(`${a}/separable_conv0`),c=i(`${a}/separable_conv1`),p=n(`${a}/expansion_conv`);return{separable_conv0:l,separable_conv1:c,expansion_conv:p}}function o(a){const l=i(`${a}/separable_conv0`),c=i(`${a}/separable_conv1`),p=i(`${a}/separable_conv2`);return{separable_conv0:l,separable_conv1:c,separable_conv2:p}}return{extractConvParams:n,extractSeparableConvParams:i,extractReductionBlockParams:r,extractMainBlockParams:o}}function bE(e,t){const s=[],{extractConvParams:n,extractSeparableConvParams:i,extractReductionBlockParams:r,extractMainBlockParams:o}=UG(e,s),a=n("entry_flow/conv_in"),l=r("entry_flow/reduction_block_0"),c=r("entry_flow/reduction_block_1"),p={conv_in:a,reduction_block_0:l,reduction_block_1:c},u={};Si(t,0,1).forEach(f=>{u[`main_block_${f}`]=o(`middle_flow/main_block_${f}`)});const h=r("exit_flow/reduction_block"),d=i("exit_flow/separable_conv"),m={reduction_block:h,separable_conv:d};return Is(e,s),{params:{entry_flow:p,middle_flow:u,exit_flow:m},paramMappings:s}}function wE(e,t,s){return $(rt(e,t.filters,s,"same"),t.bias)}function mL(e,t,s=!0){let n=s?Fe(e):e;return n=_s(n,t.separable_conv0,[1,1]),n=_s(Fe(n),t.separable_conv1,[1,1]),n=ft(n,[3,3],[2,2],"same"),n=$(n,wE(e,t.expansion_conv,[2,2])),n}function $G(e,t){let s=_s(Fe(e),t.separable_conv0,[1,1]);return s=_s(Fe(s),t.separable_conv1,[1,1]),s=_s(Fe(s),t.separable_conv2,[1,1]),s=$(s,e),s}class xE extends Zt{constructor(e){super("TinyXception");this._numMainBlocks=e}forwardInput(e){const{params:t}=this;if(!t)throw new Error("TinyXception - load model before inference");return C(()=>{const s=e.toBatchTensor(112,!0),n=[122.782,117.001,104.298],i=un(s,n).div(j(256));let r=Fe(wE(i,t.entry_flow.conv_in,[2,2]));return r=mL(r,t.entry_flow.reduction_block_0,!1),r=mL(r,t.entry_flow.reduction_block_1),Si(this._numMainBlocks,0,1).forEach(o=>{r=$G(r,t.middle_flow[`main_block_${o}`])}),r=mL(r,t.exit_flow.reduction_block),r=Fe(_s(r,t.exit_flow.separable_conv,[1,1])),r})}async forward(e){return this.forwardInput(await nt(e))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeigthMap(e){return bE(e,this._numMainBlocks)}extractParams(e){return yE(e,this._numMainBlocks)}}function LE(e){const t=[],{extractWeights:s,getRemainingWeights:n}=vs(e),i=Tg(s,t),r=i(512,1,"fc/age"),o=i(512,2,"fc/gender");if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:t,params:{fc:{age:r,gender:o}}}}function SE(e){const t=[],s=Vs(e,t);function n(r){const o=s(`${r}/weights`,2),a=s(`${r}/bias`,1);return{weights:o,bias:a}}const i={fc:{age:n("fc/age"),gender:n("fc/gender")}};return Is(e,t),{params:i,paramMappings:t}}var Jn;(function(e){e.FEMALE="female",e.MALE="male"})(Jn||(Jn={}));class vh extends Zt{constructor(e=new xE(2)){super("AgeGenderNet");this._faceFeatureExtractor=e}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(e){const{params:t}=this;if(!t)throw new Error(`${this._name} - load model before inference`);return C(()=>{const s=e instanceof vi?this.faceFeatureExtractor.forwardInput(e):e,n=ds(s,[7,7],[2,2],"valid").as2D(s.shape[0],-1),i=Bu(n,t.fc.age).as1D(),r=Bu(n,t.fc.gender);return{age:i,gender:r}})}forwardInput(e){return C(()=>{const{age:t,gender:s}=this.runNet(e);return{age:t,gender:ts(s)}})}async forward(e){return this.forwardInput(await nt(e))}async predictAgeAndGender(e){const t=await nt(e),s=await this.forwardInput(t),n=qe(s.age),i=qe(s.gender),r=n.map((a,l)=>({ageTensor:a,genderTensor:i[l]})),o=await Promise.all(r.map(async({ageTensor:a,genderTensor:l})=>{const c=(await a.data())[0],p=(await l.data())[0],u=p>.5,h=u?Jn.MALE:Jn.FEMALE,d=u?p:1-p;return a.dispose(),l.dispose(),{age:c,gender:h,genderProbability:d}}));return s.age.dispose(),s.gender.dispose(),t.isBatchInput?o:o[0]}getDefaultModelName(){return"age_gender_model"}dispose(e=!0){this.faceFeatureExtractor.dispose(e),super.dispose(e)}loadClassifierParams(e){const{params:t,paramMappings:s}=this.extractClassifierParams(e);this._params=t,this._paramMappings=s}extractClassifierParams(e){return LE(e)}extractParamsFromWeigthMap(e){const{featureExtractorMap:t,classifierMap:s}=Og(e);return this.faceFeatureExtractor.loadFromWeightMap(t),SE(s)}extractParams(e){const t=512*1+1+(512*2+2),s=e.slice(0,e.length-t),n=e.slice(e.length-t);return this.faceFeatureExtractor.extractWeights(s),this.extractClassifierParams(n)}}class _g extends Eg{postProcess(e,t,s){const n=s.map(({width:r,height:o})=>{const a=t/Math.max(o,r);return{width:r*a,height:o*a}}),i=n.length;return C(()=>{const r=(p,u)=>Ge([Wt([68],p),Wt([68],u)],1).as2D(1,136).as1D(),o=(p,u)=>{const{width:h,height:d}=n[p];return u(h,d)?Math.abs(h-d)/2:0},a=p=>o(p,(u,h)=>uo(p,(u,h)=>hr(a(u),l(u))))).div(Ge(Array.from(Array(i),(p,u)=>r(n[u].width,n[u].height))));return c})}forwardInput(e){return C(()=>{const t=this.runNet(e);return this.postProcess(t,e.inputSize,e.inputDimensions.map(([s,n])=>({height:s,width:n})))})}async forward(e){return this.forwardInput(await nt(e))}async detectLandmarks(e){const t=await nt(e),s=C(()=>qe(this.forwardInput(t))),n=await Promise.all(s.map(async(i,r)=>{const o=Array.from(await i.data()),a=o.filter((c,p)=>wg(p)),l=o.filter((c,p)=>!wg(p));return new Va(Array(68).fill(0).map((c,p)=>new _e(a[p],l[p])),{height:t.getInputHeight(r),width:t.getInputWidth(r)})}));return s.forEach(i=>i.dispose()),t.isBatchInput?n:n[0]}getClassifierChannelsOut(){return 136}}class za extends _g{constructor(e=new Rg){super("FaceLandmark68Net",e)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}}function IE(e){const t=[],{extractDenseBlock3Params:s}=Cg(e,t),n={dense0:s("dense0",!0),dense1:s("dense1"),dense2:s("dense2")};return Is(e,t),{params:n,paramMappings:t}}function vE(e){const t=[],{extractWeights:s,getRemainingWeights:n}=vs(e),{extractDenseBlock3Params:i}=Ag(s,t),r=i(3,32,"dense0",!0),o=i(32,64,"dense1"),a=i(64,128,"dense2");if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:t,params:{dense0:r,dense1:o,dense2:a}}}class TE extends Zt{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(e){const{params:t}=this;if(!t)throw new Error("TinyFaceFeatureExtractor - load model before inference");return C(()=>{const s=e.toBatchTensor(112,!0),n=[122.782,117.001,104.298],i=un(s,n).div(j(255));let r=vg(i,t.dense0,!0);return r=vg(r,t.dense1),r=vg(r,t.dense2),r=ds(r,[14,14],[2,2],"valid"),r})}async forward(e){return this.forwardInput(await nt(e))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeigthMap(e){return IE(e)}extractParams(e){return vE(e)}}class mh extends _g{constructor(e=new TE){super("FaceLandmark68TinyNet",e)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}}class mS extends za{}function AE(e,t){return $(R(e,t.weights),t.biases)}function fL(e,t,s,n,i="same"){const{filters:r,bias:o}=t.conv;let a=rt(e,r,s,i);return a=$(a,o),a=AE(a,t.scale),n?Fe(a):a}function NE(e,t){return fL(e,t,[1,1],!0)}function gL(e,t){return fL(e,t,[1,1],!1)}function kg(e,t){return fL(e,t,[2,2],!0,"valid")}function WG(e,t){function s(a,l,c){const p=e(a),u=p.length/(l*c*c);if(iL(u))throw new Error(`depth has to be an integer: ${u}, weights.length: ${p.length}, numFilters: ${l}, filterSize: ${c}`);return C(()=>se(ss(p,[l,u,c,c]),[2,3,1,0]))}function n(a,l,c,p){const u=s(a,l,c),h=Oe(e(l));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:u,bias:h}}function i(a,l){const c=Oe(e(a)),p=Oe(e(a));return t.push({paramPath:`${l}/weights`},{paramPath:`${l}/biases`}),{weights:c,biases:p}}function r(a,l,c,p){const u=n(a,l,c,`${p}/conv`),h=i(l,`${p}/scale`);return{conv:u,scale:h}}function o(a,l,c,p,u=!1){const h=r((u?.5:1)*a,l,c,`${p}/conv1`),d=r(a,l,c,`${p}/conv2`);return{conv1:h,conv2:d}}return{extractConvLayerParams:r,extractResidualLayerParams:o}}function CE(e){const{extractWeights:t,getRemainingWeights:s}=vs(e),n=[],{extractConvLayerParams:i,extractResidualLayerParams:r}=WG(t,n),o=i(4704,32,7,"conv32_down"),a=r(9216,32,3,"conv32_1"),l=r(9216,32,3,"conv32_2"),c=r(9216,32,3,"conv32_3"),p=r(36864,64,3,"conv64_down",!0),u=r(36864,64,3,"conv64_1"),h=r(36864,64,3,"conv64_2"),d=r(36864,64,3,"conv64_3"),m=r(147456,128,3,"conv128_down",!0),f=r(147456,128,3,"conv128_1"),g=r(147456,128,3,"conv128_2"),y=r(589824,256,3,"conv256_down",!0),w=r(589824,256,3,"conv256_1"),x=r(589824,256,3,"conv256_2"),T=r(589824,256,3,"conv256_down_out"),A=C(()=>se(ls(t(256*128),[128,256]),[1,0]));if(n.push({paramPath:"fc"}),s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);const _={conv32_down:o,conv32_1:a,conv32_2:l,conv32_3:c,conv64_down:p,conv64_1:u,conv64_2:h,conv64_3:d,conv128_down:m,conv128_1:f,conv128_2:g,conv256_down:y,conv256_1:w,conv256_2:x,conv256_down_out:T,fc:A};return{params:_,paramMappings:n}}function zG(e,t){const s=Vs(e,t);function n(o){const a=s(`${o}/scale/weights`,1),l=s(`${o}/scale/biases`,1);return{weights:a,biases:l}}function i(o){const a=s(`${o}/conv/filters`,4),l=s(`${o}/conv/bias`,1),c=n(o);return{conv:{filters:a,bias:l},scale:c}}function r(o){return{conv1:i(`${o}/conv1`),conv2:i(`${o}/conv2`)}}return{extractConvLayerParams:i,extractResidualLayerParams:r}}function RE(e){const t=[],{extractConvLayerParams:s,extractResidualLayerParams:n}=zG(e,t),i=s("conv32_down"),r=n("conv32_1"),o=n("conv32_2"),a=n("conv32_3"),l=n("conv64_down"),c=n("conv64_1"),p=n("conv64_2"),u=n("conv64_3"),h=n("conv128_down"),d=n("conv128_1"),m=n("conv128_2"),f=n("conv256_down"),g=n("conv256_1"),y=n("conv256_2"),w=n("conv256_down_out"),x=e.fc;if(t.push({originalPath:"fc",paramPath:"fc"}),!nL(x))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${x}`);const T={conv32_down:i,conv32_1:r,conv32_2:o,conv32_3:a,conv64_down:l,conv64_1:c,conv64_2:p,conv64_3:u,conv128_down:h,conv128_1:d,conv128_2:m,conv256_down:f,conv256_1:g,conv256_2:y,conv256_down_out:w,fc:x};return Is(e,t),{params:T,paramMappings:t}}function Kn(e,t){let s=NE(e,t.conv1);return s=gL(s,t.conv2),s=$(s,e),s=Fe(s),s}function ju(e,t){let s=kg(e,t.conv1);s=gL(s,t.conv2);let n=ds(e,2,2,"valid");const i=ye(n.shape),r=n.shape[3]!==s.shape[3],o=n.shape[1]!==s.shape[1]||n.shape[2]!==s.shape[2];if(o){const a=[...s.shape];a[1]=1;const l=ye(a);s=be([s,l],1);const c=[...s.shape];c[2]=1;const p=ye(c);s=be([s,p],2)}return n=r?be([n,i],3):n,s=$(n,s),s=Fe(s),s}class Wa extends Zt{constructor(){super("FaceRecognitionNet")}forwardInput(e){const{params:t}=this;if(!t)throw new Error("FaceRecognitionNet - load model before inference");return C(()=>{const s=G(e.toBatchTensor(150,!0),"float32"),n=[122.782,117.001,104.298],i=un(s,n).div(j(256));let r=kg(i,t.conv32_down);r=ft(r,3,2,"valid"),r=Kn(r,t.conv32_1),r=Kn(r,t.conv32_2),r=Kn(r,t.conv32_3),r=ju(r,t.conv64_down),r=Kn(r,t.conv64_1),r=Kn(r,t.conv64_2),r=Kn(r,t.conv64_3),r=ju(r,t.conv128_down),r=Kn(r,t.conv128_1),r=Kn(r,t.conv128_2),r=ju(r,t.conv256_down),r=Kn(r,t.conv256_1),r=Kn(r,t.conv256_2),r=ju(r,t.conv256_down_out);const o=r.mean([1,2]),a=Te(o,t.fc);return a})}async forward(e){return this.forwardInput(await nt(e))}async computeFaceDescriptor(e){const t=await nt(e),s=C(()=>qe(this.forwardInput(t))),n=await Promise.all(s.map(i=>i.data()));return s.forEach(i=>i.dispose()),t.isBatchInput?n:n[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeigthMap(e){return RE(e)}extractParams(e){return CE(e)}}function dS(e){const t=new Wa;return t.extractWeights(e),t}function Oc(e,t){const s={descriptor:t};return Object.assign({},e,s)}function hS(e){return typeof e.age=="number"}function Ec(e,t){const s={age:t};return Object.assign({},e,s)}function uS(e){return(e.gender===Jn.MALE||e.gender===Jn.FEMALE)&&uc(e.genderProbability)}function Cc(e,t,s){const n={gender:t,genderProbability:s};return Object.assign({},e,n)}function PG(e,t){function s(l,c){const p=ss(e(3*3*l),[3,3,l,1]),u=Oe(e(l)),h=Oe(e(l)),d=Oe(e(l)),m=Oe(e(l));return t.push({paramPath:`${c}/filters`},{paramPath:`${c}/batch_norm_scale`},{paramPath:`${c}/batch_norm_offset`},{paramPath:`${c}/batch_norm_mean`},{paramPath:`${c}/batch_norm_variance`}),{filters:p,batch_norm_scale:u,batch_norm_offset:h,batch_norm_mean:d,batch_norm_variance:m}}function n(l,c,p,u,h){const d=ss(e(l*c*p*p),[p,p,l,c]),m=Oe(e(c));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/${h?"batch_norm_offset":"bias"}`}),{filters:d,bias:m}}function i(l,c,p,u){const{filters:h,bias:d}=n(l,c,p,u,!0);return{filters:h,batch_norm_offset:d}}function r(l,c,p){const u=s(l,`${p}/depthwise_conv`),h=i(l,c,1,`${p}/pointwise_conv`);return{depthwise_conv:u,pointwise_conv:h}}function o(){const l=i(3,32,3,"mobilenetv1/conv_0"),c=r(32,64,"mobilenetv1/conv_1"),p=r(64,128,"mobilenetv1/conv_2"),u=r(128,128,"mobilenetv1/conv_3"),h=r(128,256,"mobilenetv1/conv_4"),d=r(256,256,"mobilenetv1/conv_5"),m=r(256,512,"mobilenetv1/conv_6"),f=r(512,512,"mobilenetv1/conv_7"),g=r(512,512,"mobilenetv1/conv_8"),y=r(512,512,"mobilenetv1/conv_9"),w=r(512,512,"mobilenetv1/conv_10"),x=r(512,512,"mobilenetv1/conv_11"),T=r(512,1024,"mobilenetv1/conv_12"),A=r(1024,1024,"mobilenetv1/conv_13");return{conv_0:l,conv_1:c,conv_2:p,conv_3:u,conv_4:h,conv_5:d,conv_6:m,conv_7:f,conv_8:g,conv_9:y,conv_10:w,conv_11:x,conv_12:T,conv_13:A}}function a(){const l=i(1024,256,1,"prediction_layer/conv_0"),c=i(256,512,3,"prediction_layer/conv_1"),p=i(512,128,1,"prediction_layer/conv_2"),u=i(128,256,3,"prediction_layer/conv_3"),h=i(256,128,1,"prediction_layer/conv_4"),d=i(128,256,3,"prediction_layer/conv_5"),m=i(256,64,1,"prediction_layer/conv_6"),f=i(64,128,3,"prediction_layer/conv_7"),g=n(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),y=n(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),w=n(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),x=n(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),T=n(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),A=n(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),_=n(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),E=n(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),F=n(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),D=n(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),M=n(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),P=n(128,18,1,"prediction_layer/box_predictor_5/class_predictor"),B={box_encoding_predictor:g,class_predictor:y},Y={box_encoding_predictor:w,class_predictor:x},q={box_encoding_predictor:T,class_predictor:A},K={box_encoding_predictor:_,class_predictor:E},H={box_encoding_predictor:F,class_predictor:D},Q={box_encoding_predictor:M,class_predictor:P};return{conv_0:l,conv_1:c,conv_2:p,conv_3:u,conv_4:h,conv_5:d,conv_6:m,conv_7:f,box_predictor_0:B,box_predictor_1:Y,box_predictor_2:q,box_predictor_3:K,box_predictor_4:H,box_predictor_5:Q}}return{extractMobilenetV1Params:o,extractPredictionLayerParams:a}}function OE(e){const t=[],{extractWeights:s,getRemainingWeights:n}=vs(e),{extractMobilenetV1Params:i,extractPredictionLayerParams:r}=PG(s,t),o=i(),a=r(),l=ll(s(5118*4),[1,5118,4]),c={extra_dim:l};if(t.push({paramPath:"output_layer/extra_dim"}),n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{params:{mobilenetv1:o,prediction_layer:a,output_layer:c},paramMappings:t}}function BG(e,t){const s=Vs(e,t);function n(c,p,u){const h=s(`${c}/Conv2d_${p}_pointwise/weights`,4,`${u}/filters`),d=s(`${c}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${u}/batch_norm_offset`);return{filters:h,batch_norm_offset:d}}function i(c){const p=`mobilenetv1/conv_${c}`,u=`MobilenetV1/Conv2d_${c}_depthwise`,h=`${p}/depthwise_conv`,d=`${p}/pointwise_conv`,m=s(`${u}/depthwise_weights`,4,`${h}/filters`),f=s(`${u}/BatchNorm/gamma`,1,`${h}/batch_norm_scale`),g=s(`${u}/BatchNorm/beta`,1,`${h}/batch_norm_offset`),y=s(`${u}/BatchNorm/moving_mean`,1,`${h}/batch_norm_mean`),w=s(`${u}/BatchNorm/moving_variance`,1,`${h}/batch_norm_variance`);return{depthwise_conv:{filters:m,batch_norm_scale:f,batch_norm_offset:g,batch_norm_mean:y,batch_norm_variance:w},pointwise_conv:n("MobilenetV1",c,d)}}function r(){return{conv_0:n("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:i(1),conv_2:i(2),conv_3:i(3),conv_4:i(4),conv_5:i(5),conv_6:i(6),conv_7:i(7),conv_8:i(8),conv_9:i(9),conv_10:i(10),conv_11:i(11),conv_12:i(12),conv_13:i(13)}}function o(c,p){const u=s(`${c}/weights`,4,`${p}/filters`),h=s(`${c}/biases`,1,`${p}/bias`);return{filters:u,bias:h}}function a(c){const p=o(`Prediction/BoxPredictor_${c}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${c}/box_encoding_predictor`),u=o(`Prediction/BoxPredictor_${c}/ClassPredictor`,`prediction_layer/box_predictor_${c}/class_predictor`);return{box_encoding_predictor:p,class_predictor:u}}function l(){return{conv_0:n("Prediction",0,"prediction_layer/conv_0"),conv_1:n("Prediction",1,"prediction_layer/conv_1"),conv_2:n("Prediction",2,"prediction_layer/conv_2"),conv_3:n("Prediction",3,"prediction_layer/conv_3"),conv_4:n("Prediction",4,"prediction_layer/conv_4"),conv_5:n("Prediction",5,"prediction_layer/conv_5"),conv_6:n("Prediction",6,"prediction_layer/conv_6"),conv_7:n("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:a(0),box_predictor_1:a(1),box_predictor_2:a(2),box_predictor_3:a(3),box_predictor_4:a(4),box_predictor_5:a(5)}}return{extractMobilenetV1Params:r,extractPredictionLayerParams:l}}function EE(e){const t=[],{extractMobilenetV1Params:s,extractPredictionLayerParams:n}=BG(e,t),i=e["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!tr(i))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${i}`);const r={mobilenetv1:s(),prediction_layer:n(),output_layer:{extra_dim:i}};return Is(e,t),{params:r,paramMappings:t}}function Dn(e,t,s){return C(()=>{let n=rt(e,t.filters,s,"same");return n=$(n,t.batch_norm_offset),xt(n,0,6)})}const jG=.0010000000474974513;function VG(e,t,s){return C(()=>{let n=fn(e,t.filters,s,"same");return n=Xs(n,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,jG),xt(n,0,6)})}function GG(e){return[2,4,6,12].some(t=>t===e)?[2,2]:[1,1]}function _E(e,t){return C(()=>{let s,n=Dn(e,t.conv_0,[2,2]);const i=[t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13];if(i.forEach((r,o)=>{const a=o+1,l=GG(a);n=VG(n,r.depthwise_conv,l),n=Dn(n,r.pointwise_conv,[1,1]),a===11&&(s=n)}),s===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:n,conv11:s}})}function kE(e,t,s,n,i){const r=e.shape[0],o=Math.min(s,r),a=t.map((p,u)=>({score:p,boxIndex:u})).filter(p=>p.score>i).sort((p,u)=>u.score-p.score),l=p=>p<=n?1:0,c=[];return a.forEach(p=>{if(c.length>=o)return;const u=p.score;for(let h=c.length-1;h>=0;--h){const d=qG(e,p.boxIndex,c[h]);if(d===0)continue;if(p.score*=l(d),p.score<=i)break}u===p.score&&c.push(p.boxIndex)}),c}function qG(e,t,s){const n=e.arraySync(),i=Math.min(n[t][0],n[t][2]),r=Math.min(n[t][1],n[t][3]),o=Math.max(n[t][0],n[t][2]),a=Math.max(n[t][1],n[t][3]),l=Math.min(n[s][0],n[s][2]),c=Math.min(n[s][1],n[s][3]),p=Math.max(n[s][0],n[s][2]),u=Math.max(n[s][1],n[s][3]),h=(o-i)*(a-r),d=(p-l)*(u-c);if(h<=0||d<=0)return 0;const m=Math.max(i,l),f=Math.max(r,c),g=Math.min(o,p),y=Math.min(a,u),w=Math.max(g-m,0)*Math.max(y-f,0);return w/(h+d-w)}function HG(e){const t=qe(se(e,[1,0])),s=[X(t[2],t[0]),X(t[3],t[1])],n=[$(t[0],Z(s[0],j(2))),$(t[1],Z(s[1],j(2)))];return{sizes:s,centers:n}}function YG(e,t){const{sizes:s,centers:n}=HG(e),i=qe(se(t,[1,0])),r=Z(R(ut(Z(i[2],j(5))),s[0]),j(2)),o=$(R(Z(i[0],j(10)),s[0]),n[0]),a=Z(R(ut(Z(i[3],j(5))),s[1]),j(2)),l=$(R(Z(i[1],j(10)),s[1]),n[1]);return se(Ge([X(o,r),X(l,a),$(o,r),$(l,a)]),[1,0])}function DE(e,t,s){return C(()=>{const n=e.shape[0];let i=YG(O($s(s.extra_dim,[n,1,1]),[-1,4]),O(e,[-1,4]));i=O(i,[n,i.shape[0]/n,4]);const r=os(he(t,[0,0,1],[-1,-1,-1]));let o=he(r,[0,0,0],[-1,-1,1]);o=O(o,[n,o.shape[1]]);const a=qe(i),l=qe(o);return{boxes:a,scores:l}})}function Ea(e,t){return C(()=>{const s=e.shape[0],n=O(Oa(e,t.box_encoding_predictor),[s,-1,1,4]),i=O(Oa(e,t.class_predictor),[s,-1,3]);return{boxPredictionEncoding:n,classPrediction:i}})}function FE(e,t,s){return C(()=>{const n=Dn(e,s.conv_0,[1,1]),i=Dn(n,s.conv_1,[2,2]),r=Dn(i,s.conv_2,[1,1]),o=Dn(r,s.conv_3,[2,2]),a=Dn(o,s.conv_4,[1,1]),l=Dn(a,s.conv_5,[2,2]),c=Dn(l,s.conv_6,[1,1]),p=Dn(c,s.conv_7,[2,2]),u=Ea(t,s.box_predictor_0),h=Ea(e,s.box_predictor_1),d=Ea(i,s.box_predictor_2),m=Ea(o,s.box_predictor_3),f=Ea(l,s.box_predictor_4),g=Ea(p,s.box_predictor_5),y=be([u.boxPredictionEncoding,h.boxPredictionEncoding,d.boxPredictionEncoding,m.boxPredictionEncoding,f.boxPredictionEncoding,g.boxPredictionEncoding],1),w=be([u.classPrediction,h.classPrediction,d.classPrediction,m.classPrediction,f.classPrediction,g.classPrediction],1);return{boxPredictions:y,classPredictions:w}})}class pn{constructor({minConfidence:e,maxResults:t}={}){if(this._name="SsdMobilenetv1Options",this._minConfidence=e||.5,this._maxResults=t||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}}class To extends Zt{constructor(){super("SsdMobilenetv1")}forwardInput(e){const{params:t}=this;if(!t)throw new Error("SsdMobilenetv1 - load model before inference");return C(()=>{const s=G(e.toBatchTensor(512,!1),"float32"),n=X(R(s,j(.007843137718737125)),j(1)),i=_E(n,t.mobilenetv1),{boxPredictions:r,classPredictions:o}=FE(i.out,i.conv11,t.prediction_layer);return DE(r,o,t.output_layer)})}async forward(e){return this.forwardInput(await nt(e))}async locateFaces(e,t={}){const{maxResults:s,minConfidence:n}=new pn(t),i=await nt(e),{boxes:r,scores:o}=this.forwardInput(i),a=r[0],l=o[0];for(let w=1;w{const[x,T]=[Math.max(0,g[w][0]),Math.min(1,g[w][2])].map(E=>E*f),[A,_]=[Math.max(0,g[w][1]),Math.min(1,g[w][3])].map(E=>E*m);return new ht(c[w],new ja(A,x,_-A,T-x),{height:i.getInputHeight(0),width:i.getInputWidth(0)})});return a.dispose(),l.dispose(),y}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeigthMap(e){return EE(e)}extractParams(e){return OE(e)}}function jg(e){const t=new To;return t.extractWeights(e),t}function BL(e){return jg(e)}class jL extends To{}const ME=.4,UE=[new _e(.738768,.874946),new _e(2.42204,2.65704),new _e(4.30971,7.04493),new _e(10.246,4.59428),new _e(12.6868,11.8741)],$E=[new _e(1.603231,2.094468),new _e(6.041143,7.080126),new _e(2.882459,3.518061),new _e(4.266906,5.178857),new _e(9.041765,10.66308)],WE=[117.001,114.697,97.404],zE="tiny_yolov2_model",PE="tiny_yolov2_separable_conv_model";const Dg=e=>typeof e=="number";function eh(e){if(!e)throw new Error(`invalid config: ${e}`);if(typeof e.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${e.withSeparableConvs}`);if(!Dg(e.iouThreshold)||e.iouThreshold<0||e.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${e.iouThreshold}`);if(!Array.isArray(e.classes)||!e.classes.length||!e.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(e.classes)}`);if(!Array.isArray(e.anchors)||!e.anchors.length||!e.anchors.map(t=>t||{}).every(t=>Dg(t.x)&&Dg(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(e.anchors)}`);if(e.meanRgb&&(!Array.isArray(e.meanRgb)||e.meanRgb.length!==3||!e.meanRgb.every(Dg)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(e.meanRgb)}`)}function gc(e){return C(()=>{const t=R(e,j(.10000000149011612));return $(Fe(X(e,t)),t)})}function sr(e,t){return C(()=>{let s=Pt(e,[[0,0],[1,1],[1,1],[0,0]]);return s=rt(s,t.conv.filters,[1,1],"valid"),s=X(s,t.bn.sub),s=R(s,t.bn.truediv),s=$(s,t.conv.bias),gc(s)})}function nr(e,t){return C(()=>{let s=Pt(e,[[0,0],[1,1],[1,1],[0,0]]);return s=eo(s,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),s=$(s,t.bias),gc(s)})}function KG(e,t){const s=dc(e,t);function n(o,a){const l=Oe(e(o)),c=Oe(e(o));return t.push({paramPath:`${a}/sub`},{paramPath:`${a}/truediv`}),{sub:l,truediv:c}}function i(o,a,l){const c=s(o,a,3,`${l}/conv`),p=n(a,`${l}/bn`);return{conv:c,bn:p}}const r=mc(e,t);return{extractConvParams:s,extractConvWithBatchNormParams:i,extractSeparableConvParams:r}}function BE(e,t,s,n){const{extractWeights:i,getRemainingWeights:r}=vs(e),o=[],{extractConvParams:a,extractConvWithBatchNormParams:l,extractSeparableConvParams:c}=KG(i,o);let p;if(t.withSeparableConvs){const[u,h,d,m,f,g,y,w,x]=n,T=t.isFirstLayerConv2d?a(u,h,3,"conv0"):c(u,h,"conv0"),A=c(h,d,"conv1"),_=c(d,m,"conv2"),E=c(m,f,"conv3"),F=c(f,g,"conv4"),D=c(g,y,"conv5"),M=w?c(y,w,"conv6"):void 0,P=x?c(w,x,"conv7"):void 0,B=a(x||w||y,5*s,1,"conv8");p={conv0:T,conv1:A,conv2:_,conv3:E,conv4:F,conv5:D,conv6:M,conv7:P,conv8:B}}else{const[u,h,d,m,f,g,y,w,x]=n,T=l(u,h,"conv0"),A=l(h,d,"conv1"),_=l(d,m,"conv2"),E=l(m,f,"conv3"),F=l(f,g,"conv4"),D=l(g,y,"conv5"),M=l(y,w,"conv6"),P=l(w,x,"conv7"),B=a(x,5*s,1,"conv8");p={conv0:T,conv1:A,conv2:_,conv3:E,conv4:F,conv5:D,conv6:M,conv7:P,conv8:B}}if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{params:p,paramMappings:o}}function XG(e,t){const s=Vs(e,t);function n(a){const l=s(`${a}/sub`,1),c=s(`${a}/truediv`,1);return{sub:l,truediv:c}}function i(a){const l=s(`${a}/filters`,4),c=s(`${a}/bias`,1);return{filters:l,bias:c}}function r(a){const l=i(`${a}/conv`),c=n(`${a}/bn`);return{conv:l,bn:c}}const o=fc(s);return{extractConvParams:i,extractConvWithBatchNormParams:r,extractSeparableConvParams:o}}function jE(e,t){const s=[],{extractConvParams:n,extractConvWithBatchNormParams:i,extractSeparableConvParams:r}=XG(e,s);let o;if(t.withSeparableConvs){const a=t.filterSizes&&t.filterSizes.length||9;o={conv0:t.isFirstLayerConv2d?n("conv0"):r("conv0"),conv1:r("conv1"),conv2:r("conv2"),conv3:r("conv3"),conv4:r("conv4"),conv5:r("conv5"),conv6:a>7?r("conv6"):void 0,conv7:a>8?r("conv7"):void 0,conv8:n("conv8")}}else o={conv0:i("conv0"),conv1:i("conv1"),conv2:i("conv2"),conv3:i("conv3"),conv4:i("conv4"),conv5:i("conv5"),conv6:i("conv6"),conv7:i("conv7"),conv8:n("conv8")};return Is(e,s),{params:o,paramMappings:s}}var th;(function(e){e[e.XS=224]="XS",e[e.SM=320]="SM",e[e.MD=416]="MD",e[e.LG=608]="LG"})(th||(th={}));class Xn{constructor({inputSize:e,scoreThreshold:t}={}){if(this._name="TinyYolov2Options",this._inputSize=e||416,this._scoreThreshold=t||.5,typeof this._inputSize!="number"||this._inputSize%32!==0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}}class yc extends Zt{constructor(e){super("TinyYolov2");eh(e),this._config=e}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(e,t){let s=sr(e,t.conv0);return s=ft(s,[2,2],[2,2],"same"),s=sr(s,t.conv1),s=ft(s,[2,2],[2,2],"same"),s=sr(s,t.conv2),s=ft(s,[2,2],[2,2],"same"),s=sr(s,t.conv3),s=ft(s,[2,2],[2,2],"same"),s=sr(s,t.conv4),s=ft(s,[2,2],[2,2],"same"),s=sr(s,t.conv5),s=ft(s,[2,2],[1,1],"same"),s=sr(s,t.conv6),s=sr(s,t.conv7),Oa(s,t.conv8,"valid",!1)}runMobilenet(e,t){let s=this.config.isFirstLayerConv2d?gc(Oa(e,t.conv0,"valid",!1)):nr(e,t.conv0);return s=ft(s,[2,2],[2,2],"same"),s=nr(s,t.conv1),s=ft(s,[2,2],[2,2],"same"),s=nr(s,t.conv2),s=ft(s,[2,2],[2,2],"same"),s=nr(s,t.conv3),s=ft(s,[2,2],[2,2],"same"),s=nr(s,t.conv4),s=ft(s,[2,2],[2,2],"same"),s=nr(s,t.conv5),s=ft(s,[2,2],[1,1],"same"),s=t.conv6?nr(s,t.conv6):s,s=t.conv7?nr(s,t.conv7):s,Oa(s,t.conv8,"valid",!1)}forwardInput(e,t){const{params:s}=this;if(!s)throw new Error("TinyYolov2 - load model before inference");return C(()=>{let n=G(e.toBatchTensor(t,!1),"float32");return n=this.config.meanRgb?un(n,this.config.meanRgb):n,n=n.div(j(256)),this.config.withSeparableConvs?this.runMobilenet(n,s):this.runTinyYolov2(n,s)})}async forward(e,t){return await this.forwardInput(await nt(e),t)}async detect(e,t={}){const{inputSize:s,scoreThreshold:n}=new Xn(t),i=await nt(e),r=await this.forwardInput(i,s),o=C(()=>qe(r)[0].expandDims()),a={width:i.getInputWidth(0),height:i.getInputHeight(0)},l=await this.extractBoxes(o,i.getReshapedInputDimensions(0),n);r.dispose(),o.dispose();const c=l.map(f=>f.box),p=l.map(f=>f.score),u=l.map(f=>f.classScore),h=l.map(f=>this.config.classes[f.label]),d=ih(c.map(f=>f.rescale(s)),p,this.config.iouThreshold,!0),m=d.map(f=>new Oo(p[f],u[f],h[f],c[f],a));return m}getDefaultModelName(){return""}extractParamsFromWeigthMap(e){return jE(e,this.config)}extractParams(e){const t=this.config.filterSizes||yc.DEFAULT_FILTER_SIZES,s=t?t.length:void 0;if(s!==7&&s!==8&&s!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${s} filterSizes in config`);return BE(e,this.config,this.boxEncodingSize,t)}async extractBoxes(e,t,s){const{width:n,height:i}=t,r=Math.max(n,i),o=r/n,a=r/i,l=e.shape[1],c=this.config.anchors.length,[p,u,h]=C(()=>{const g=e.reshape([l,l,c,this.boxEncodingSize]),y=g.slice([0,0,0,0],[l,l,c,4]),w=g.slice([0,0,0,4],[l,l,c,1]),x=this.withClassScores?ts(g.slice([0,0,0,5],[l,l,c,this.config.classes.length]),3):j(0);return[y,w,x]}),d=[],m=await u.array(),f=await p.array();for(let g=0;gs){const T=(y+$a(f[g][y][w][0]))/l*o,A=(g+$a(f[g][y][w][1]))/l*a,_=Math.exp(f[g][y][w][2])*this.config.anchors[w].x/l*o,E=Math.exp(f[g][y][w][3])*this.config.anchors[w].y/l*a,F=T-_/2,D=A-E/2,M={row:g,col:y,anchor:w},{classScore:P,label:B}=this.withClassScores?await this.extractPredictedClass(h,M):{classScore:1,label:0};d.push({box:new Ga(F,D,F+_,D+E),score:x,classScore:x*P,label:B,...M})}}return p.dispose(),u.dispose(),h.dispose(),d}async extractPredictedClass(e,t){const{row:s,col:n,anchor:i}=t,r=await e.array();return Array(this.config.classes.length).fill(0).map((o,a)=>r[s][n][i][a]).map((o,a)=>({classScore:o,label:a})).reduce((o,a)=>o.classScore>a.classScore?o:a)}}yc.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];class Ma extends yc{constructor(e=!0){const t=Object.assign({},{withSeparableConvs:e,iouThreshold:ME,classes:["face"]},e?{anchors:$E,meanRgb:WE}:{anchors:UE,withClassScores:!0});super(t)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(e,t){const s=await this.detect(e,t);return s.map(n=>new ht(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?PE:zE}extractParamsFromWeigthMap(e){return super.extractParamsFromWeigthMap(e)}}function zL(e,t=!0){const s=new Ma(t);return s.extractWeights(e),s}class sh extends Xn{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}}class hn{async then(e){return e(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}}async function _a(e,t,s,n,i=({alignedRect:r})=>r){const r=e.map(l=>or(l)?i(l):l.detection),o=n||(t instanceof me?await Co(t,r):await No(t,r)),a=await s(o);return o.forEach(l=>l instanceof me&&l.dispose()),a}async function bc(e,t,s,n,i){return _a([e],t,async r=>s(r[0]),n,i)}const VE=.4,GE=[new _e(1.603231,2.094468),new _e(6.041143,7.080126),new _e(2.882459,3.518061),new _e(4.266906,5.178857),new _e(9.041765,10.66308)],qE=[117.001,114.697,97.404];class Ua extends yc{constructor(){const e={withSeparableConvs:!0,iouThreshold:VE,classes:["face"],anchors:GE,meanRgb:qE,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(e)}get anchors(){return this.config.anchors}async locateFaces(e,t){const s=await this.detect(e,t);return s.map(n=>new ht(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeigthMap(e){return super.extractParamsFromWeigthMap(e)}}const Be={ssdMobilenetv1:new To,tinyFaceDetector:new Ua,tinyYolov2:new Ma,faceLandmark68Net:new za,faceLandmark68TinyNet:new mh,faceRecognitionNet:new Wa,faceExpressionNet:new gh,ageGenderNet:new vh},Gg=(e,t)=>Be.ssdMobilenetv1.locateFaces(e,t),qL=(e,t)=>Be.tinyFaceDetector.locateFaces(e,t),HL=(e,t)=>Be.tinyYolov2.locateFaces(e,t),qg=e=>Be.faceLandmark68Net.detectLandmarks(e),YL=e=>Be.faceLandmark68TinyNet.detectLandmarks(e),KL=e=>Be.faceRecognitionNet.computeFaceDescriptor(e),XL=e=>Be.faceExpressionNet.predictExpressions(e),JL=e=>Be.ageGenderNet.predictAgeAndGender(e),Hg=e=>Be.ssdMobilenetv1.load(e),ZL=e=>Be.tinyFaceDetector.load(e),QL=e=>Be.tinyYolov2.load(e),eS=e=>Be.faceLandmark68Net.load(e),tS=e=>Be.faceLandmark68TinyNet.load(e),sS=e=>Be.faceRecognitionNet.load(e),nS=e=>Be.faceExpressionNet.load(e),iS=e=>Be.ageGenderNet.load(e),rS=Hg,oS=Gg,aS=qg;class HE extends hn{constructor(e,t,s){super();this.parentTask=e,this.input=t,this.extractedFaces=s}}class qu extends HE{async run(){const e=await this.parentTask,t=await _a(e,this.input,async s=>await Promise.all(s.map(n=>Be.faceExpressionNet.predictExpressions(n))),this.extractedFaces);return e.map((s,n)=>Rc(s,t[n]))}withAgeAndGender(){return new Vu(this,this.input)}}class Hu extends HE{async run(){const e=await this.parentTask;if(!e)return;const t=await bc(e,this.input,s=>Be.faceExpressionNet.predictExpressions(s),this.extractedFaces);return Rc(e,t)}withAgeAndGender(){return new Gu(this,this.input)}}class Lc extends qu{withAgeAndGender(){return new wc(this,this.input)}withFaceDescriptors(){return new ir(this,this.input)}}class Sc extends Hu{withAgeAndGender(){return new xc(this,this.input)}withFaceDescriptor(){return new rr(this,this.input)}}class YE extends hn{constructor(e,t,s){super();this.parentTask=e,this.input=t,this.extractedFaces=s}}class Vu extends YE{async run(){const e=await this.parentTask,t=await _a(e,this.input,async s=>await Promise.all(s.map(n=>Be.ageGenderNet.predictAgeAndGender(n))),this.extractedFaces);return e.map((s,n)=>{const{age:i,gender:r,genderProbability:o}=t[n];return Ec(Cc(s,r,o),i)})}withFaceExpressions(){return new qu(this,this.input)}}class Gu extends YE{async run(){const e=await this.parentTask;if(!e)return;const{age:t,gender:s,genderProbability:n}=await bc(e,this.input,i=>Be.ageGenderNet.predictAgeAndGender(i),this.extractedFaces);return Ec(Cc(e,s,n),t)}withFaceExpressions(){return new Hu(this,this.input)}}class wc extends Vu{withFaceExpressions(){return new Lc(this,this.input)}withFaceDescriptors(){return new ir(this,this.input)}}class xc extends Gu{withFaceExpressions(){return new Sc(this,this.input)}withFaceDescriptor(){return new rr(this,this.input)}}class hh extends hn{constructor(e,t){super();this.parentTask=e,this.input=t}}class ir extends hh{async run(){const e=await this.parentTask,t=await _a(e,this.input,s=>Promise.all(s.map(n=>Be.faceRecognitionNet.computeFaceDescriptor(n))),null,s=>s.landmarks.align(null,{useDlibAlignment:!0}));return t.map((s,n)=>Oc(e[n],s))}withFaceExpressions(){return new Lc(this,this.input)}withAgeAndGender(){return new wc(this,this.input)}}class rr extends hh{async run(){const e=await this.parentTask;if(!e)return;const t=await bc(e,this.input,s=>Be.faceRecognitionNet.computeFaceDescriptor(s),null,s=>s.landmarks.align(null,{useDlibAlignment:!0}));return Oc(e,t)}withFaceExpressions(){return new Sc(this,this.input)}withAgeAndGender(){return new xc(this,this.input)}}class ch extends hn{constructor(e,t,s){super();this.parentTask=e,this.input=t,this.useTinyLandmarkNet=s}get landmarkNet(){return this.useTinyLandmarkNet?Be.faceLandmark68TinyNet:Be.faceLandmark68Net}}class ph extends ch{async run(){const e=await this.parentTask,t=e.map(i=>i.detection),s=this.input instanceof me?await Co(this.input,t):await No(this.input,t),n=await Promise.all(s.map(i=>this.landmarkNet.detectLandmarks(i)));return s.forEach(i=>i instanceof me&&i.dispose()),e.map((i,r)=>Ao(i,n[r]))}withFaceExpressions(){return new Lc(this,this.input)}withAgeAndGender(){return new wc(this,this.input)}withFaceDescriptors(){return new ir(this,this.input)}}class uh extends ch{async run(){const e=await this.parentTask;if(!e)return;const{detection:t}=e,s=this.input instanceof me?await Co(this.input,[t]):await No(this.input,[t]),n=await this.landmarkNet.detectLandmarks(s[0]);return s.forEach(i=>i instanceof me&&i.dispose()),Ao(e,n)}withFaceExpressions(){return new Sc(this,this.input)}withAgeAndGender(){return new xc(this,this.input)}withFaceDescriptor(){return new rr(this,this.input)}}class ah extends hn{constructor(e,t=new pn){super();this.input=e,this.options=t}}class Nc extends ah{async run(){const{input:e,options:t}=this,s=t instanceof sh?n=>Be.tinyFaceDetector.locateFaces(n,t):t instanceof pn?n=>Be.ssdMobilenetv1.locateFaces(n,t):t instanceof Xn?n=>Be.tinyYolov2.locateFaces(n,t):null;if(!s)throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | MtcnnOptions | TinyYolov2Options");return s(e)}runAndExtendWithFaceDetections(){return new Promise(async e=>{const t=await this.run();return e(t.map(s=>ar({},s)))})}withFaceLandmarks(e=!1){return new ph(this.runAndExtendWithFaceDetections(),this.input,e)}withFaceExpressions(){return new qu(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Vu(this.runAndExtendWithFaceDetections(),this.input)}}class lh extends ah{async run(){const e=await new Nc(this.input,this.options);let t=e[0];return e.forEach(s=>{s.score>t.score&&(t=s)}),t}runAndExtendWithFaceDetection(){return new Promise(async e=>{const t=await this.run();return e(t?ar({},t):void 0)})}withFaceLandmarks(e=!1){return new uh(this.runAndExtendWithFaceDetection(),this.input,e)}withFaceExpressions(){return new Hu(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Gu(this.runAndExtendWithFaceDetection(),this.input)}}function lS(e,t=new pn){return new lh(e,t)}function Ac(e,t=new pn){return new Nc(e,t)}async function Yg(e,t){return console.warn("allFacesSsdMobilenetv1 is deprecated and will be removed soon, use the high level api instead"),await Ac(e,new pn(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function cS(e,t={}){return console.warn("allFacesTinyYolov2 is deprecated and will be removed soon, use the high level api instead"),await Ac(e,new Xn(t)).withFaceLandmarks().withFaceDescriptors()}const pS=Yg;function yh(e,t){if(e.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");const s=Array.from(e),n=Array.from(t);return Math.sqrt(s.map((i,r)=>i-n[r]).reduce((i,r)=>i+Math.pow(r,2),0))}class Kg{constructor(e,t=.6){this._distanceThreshold=t;const s=Array.isArray(e)?e:[e];if(!s.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let n=1;const i=()=>`person ${n++}`;this._labeledDescriptors=s.map(r=>{if(r instanceof hr)return r;if(r instanceof Float32Array)return new hr(i(),[r]);if(r.descriptor&&r.descriptor instanceof Float32Array)return new hr(i(),[r.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(e,t){return t.map(s=>yh(s,e)).reduce((s,n)=>s+n,0)/(t.length||1)}matchDescriptor(e){return this.labeledDescriptors.map(({descriptors:t,label:s})=>new Dc(s,this.computeMeanDistance(e,t))).reduce((t,s)=>t.distancee.toJSON())}}static fromJSON(e){const t=e.labeledDescriptors.map(s=>hr.fromJSON(s));return new Kg(t,e.distanceThreshold)}}function PL(e){const t=new Ua;return t.extractWeights(e),t}function Vg(e,t){const{width:s,height:n}=new Ts(t.width,t.height);if(s<=0||n<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:s,height:n})}`);if(Array.isArray(e))return e.map(i=>Vg(i,{width:s,height:n}));if(or(e)){const i=e.detection.forSize(s,n),r=e.unshiftedLandmarks.forSize(i.box.width,i.box.height);return Ao(ar(e,i),r)}return Mn(e)?ar(e,e.detection.forSize(s,n)):e instanceof Hs||e instanceof ht?e.forSize(s,n):e}var UL="0.5.3";class WL{fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Browser's encoder only supports utf-8, but got ${t}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}}return xS();})(); +`,yG=Io(gG),tE={kernelName:ti,backendName:"webgl",kernelFunc:yG};const bG="return x * x;",wG=Io(bG),sE={kernelName:Go,backendName:"webgl",kernelFunc:wG};const nE="return (a - b) * (a - b);",xG=cc(nE,nE),iE={kernelName:si,backendName:"webgl",kernelFunc:xG};const LG="return tan(x);",SG=Io(LG),rE={kernelName:ni,backendName:"webgl",kernelFunc:SG};const oE={kernelName:_i,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:s})=>{const{x:n}=e,{perm:i}=t,r=s,o=n.shape.length,a=new Array(o);for(let c=0;c_o,Acos:()=>dr,Acosh:()=>mr,AdadeltaOptimizer:()=>ca,AdagradOptimizer:()=>pa,AdamOptimizer:()=>ua,AdamaxOptimizer:()=>ha,Add:()=>Zn,AddN:()=>Mc,All:()=>ty,Any:()=>sy,ArgMax:()=>Uc,ArgMin:()=>$c,Asin:()=>fr,Asinh:()=>gr,Atan:()=>yr,Atan2:()=>ko,Atanh:()=>br,AvgPool:()=>Ti,AvgPool3D:()=>Wc,AvgPool3DBackprop:()=>ny,AvgPoolBackprop:()=>Do,BatchMatMul:()=>zc,BatchToSpaceND:()=>Pc,BroadcastTo:()=>Bc,Callback:()=>fw,CallbackList:()=>Hb,Cast:()=>Ai,Ceil:()=>wr,ClipByValue:()=>xr,Complex:()=>jc,Concat:()=>Fo,Conv2D:()=>Vc,Conv2DBackpropFilter:()=>iy,Conv2DBackpropInput:()=>Gc,Conv3D:()=>qc,Conv3DBackpropFilterV2:()=>ry,Conv3DBackpropInputV2:()=>oy,Cos:()=>Qn,Cosh:()=>Lr,CropAndResize:()=>ay,Cumsum:()=>Hc,CustomCallback:()=>Kb,DataStorage:()=>Fc,DepthToSpace:()=>ly,DepthwiseConv2dNative:()=>Yc,DepthwiseConv2dNativeBackpropFilter:()=>cy,DepthwiseConv2dNativeBackpropInput:()=>py,Diag:()=>uy,Dilation2D:()=>Mo,Dilation2DBackpropFilter:()=>Ha,Dilation2DBackpropInput:()=>qa,Div:()=>ei,ENV:()=>Jg,EarlyStopping:()=>gw,Elu:()=>Sr,EluGrad:()=>hy,Environment:()=>Xg,Equal:()=>dy,Erf:()=>Ir,Exp:()=>vr,Expm1:()=>Tr,FFT:()=>Kc,Fill:()=>my,FlipLeftRight:()=>Uo,Floor:()=>Ar,FloorDiv:()=>Xc,FromPixels:()=>Xa,FusedBatchNorm:()=>Ni,FusedConv2D:()=>Ah,FusedDepthwiseConv2D:()=>Nh,GatherNd:()=>fy,GatherV2:()=>Jc,GraphModel:()=>Pw,Greater:()=>gy,GreaterEqual:()=>Zc,History:()=>Yb,IFFT:()=>Qc,Identity:()=>Ci,Imag:()=>ep,InputSpec:()=>st,IsFinite:()=>Nr,IsInf:()=>Cr,IsNan:()=>Rr,KernelBackend:()=>Eo,LRN:()=>sp,LRNBackprop:()=>Sy,LayerVariable:()=>nm,LayersModel:()=>nn,Less:()=>yy,LessEqual:()=>by,LinSpace:()=>wy,Log:()=>Or,Log1p:()=>Er,LogSoftmax:()=>tp,LogicalAnd:()=>xy,LogicalNot:()=>Ya,LogicalOr:()=>Ly,Max:()=>Ri,MaxPool:()=>Oi,MaxPool3D:()=>ip,MaxPool3DBackprop:()=>Iy,MaxPoolBackprop:()=>$o,MaxPoolWithArgmax:()=>Wo,Maximum:()=>np,Mean:()=>g_,Min:()=>rp,Minimum:()=>op,Mod:()=>ap,MomentumOptimizer:()=>da,Multiply:()=>_r,Negate:()=>lp,NonMaxSuppressionV3:()=>cp,NonMaxSuppressionV4:()=>zo,NonMaxSuppressionV5:()=>Po,NotEqual:()=>Ka,OP_SCOPE_SUFFIX:()=>Xy,OneHot:()=>up,OnesLike:()=>pp,Optimizer:()=>gs,PadV2:()=>Bo,Pool:()=>y_,Pow:()=>hp,Prelu:()=>dp,Prod:()=>vy,RMSPropOptimizer:()=>ma,RNN:()=>rn,Range:()=>Ty,Rank:()=>By,Real:()=>mp,Reciprocal:()=>kr,Reduction:()=>gt,Relu:()=>fp,Relu6:()=>bp,Reshape:()=>Ei,ResizeBilinear:()=>yp,ResizeBilinearGrad:()=>Ny,ResizeNearestNeighbor:()=>gp,ResizeNearestNeighborGrad:()=>Ay,Reverse:()=>wp,RotateWithOffset:()=>Ho,Round:()=>Dr,Rsqrt:()=>Fr,SGDOptimizer:()=>zi,ScatterNd:()=>Cy,SelectV2:()=>xp,Selu:()=>Mr,Sequential:()=>mo,Sigmoid:()=>Wr,Sign:()=>$r,Sin:()=>ti,Sinh:()=>Ur,Slice:()=>jo,Softmax:()=>Ip,Softplus:()=>zr,SpaceToBatchND:()=>Vo,SparseToDense:()=>Ry,SplitV:()=>Sp,Sqrt:()=>Pr,Square:()=>Go,SquaredDifference:()=>si,Step:()=>Vr,StridedSlice:()=>Oy,Sub:()=>Br,Sum:()=>Lp,SymbolicTensor:()=>xs,Tan:()=>ni,Tanh:()=>jr,Tensor:()=>me,TensorBuffer:()=>dn,Tile:()=>vp,TopK:()=>Ey,Transpose:()=>_i,Unique:()=>qo,Unpack:()=>Tp,UnsortedSegmentSum:()=>Ap,Variable:()=>ci,ZerosLike:()=>Np,_FusedMatMul:()=>Th,abs:()=>et,acos:()=>Uh,acosh:()=>$h,add:()=>$,addN:()=>Wh,addStrict:()=>kU,all:()=>hl,any:()=>Zo,argMax:()=>Qo,argMin:()=>zh,asin:()=>Ph,asinh:()=>Bh,atan:()=>jh,atan2:()=>Vh,atanh:()=>Gh,avgPool:()=>ds,avgPool3d:()=>ml,backend:()=>mb,backend_util:()=>U,basicLSTMCell:()=>hI,batchNorm:()=>Xs,batchNorm2d:()=>Yh,batchNorm3d:()=>Kh,batchNorm4d:()=>Xh,batchToSpaceND:()=>Yr,booleanMaskAsync:()=>uU,broadcastTo:()=>ta,browser:()=>Gr,buffer:()=>ge,callbacks:()=>$N,cast:()=>G,ceil:()=>Jh,clipByValue:()=>xt,clone:()=>Fs,complex:()=>Gt,concat:()=>be,concat1d:()=>Zh,concat2d:()=>Qh,concat3d:()=>ed,concat4d:()=>td,constraints:()=>zb,conv1d:()=>fl,conv2d:()=>rt,conv2dTranspose:()=>yl,conv3d:()=>bl,conv3dTranspose:()=>mI,copyRegisteredKernels:()=>x_,cos:()=>Kr,cosh:()=>wl,cosineWindow:()=>Jp,cumsum:()=>xl,customGrad:()=>fs,data:()=>Yw,deprecationWarn:()=>It,depthToSpace:()=>nd,depthwiseConv2d:()=>fn,deregisterOp:()=>PN,device_util:()=>rl,diag:()=>fI,dilation2d:()=>id,disableDeprecationWarnings:()=>jk,dispose:()=>ce,disposeVariables:()=>Vk,div:()=>Z,divNoNan:()=>rd,divStrict:()=>DU,dot:()=>gI,dropout:()=>Tb,elu:()=>gn,enableDebugMode:()=>Bk,enableProdMode:()=>Pk,enclosingPowerOfTwo:()=>Ab,engine:()=>Us,env:()=>W,equal:()=>as,equalStrict:()=>bU,erf:()=>od,exp:()=>ut,expandDims:()=>Mt,expm1:()=>ad,eye:()=>sa,fft:()=>so,fill:()=>Wt,findBackend:()=>Xk,findBackendFactory:()=>Jk,floor:()=>ui,floorDiv:()=>ul,fused:()=>xn,gather:()=>hi,gatherND:()=>vb,gather_util:()=>XS,getBackend:()=>Yk,getGradient:()=>Ch,getKernel:()=>Rp,getKernelsForBackend:()=>Op,grad:()=>_F,grads:()=>kF,greater:()=>Ut,greaterEqual:()=>ms,greaterEqualStrict:()=>wU,greaterStrict:()=>xU,ifft:()=>Wi,imag:()=>yn,image:()=>en,inTopKAsync:()=>XU,initializers:()=>Gb,input:()=>wm,io:()=>Rt,irfft:()=>kl,isFinite:()=>bI,isInf:()=>wI,isNaN:()=>xI,keep:()=>pt,kernel_impls:()=>vt,layers:()=>lw,leakyRelu:()=>Ll,less:()=>Xr,lessEqual:()=>Ws,lessEqualStrict:()=>LU,lessStrict:()=>SU,linalg:()=>Cb,linspace:()=>cd,loadGraphModel:()=>gC,loadLayersModel:()=>iN,localResponseNormalization:()=>pd,log:()=>zt,log1p:()=>Sl,logSigmoid:()=>LI,logSoftmax:()=>Il,logSumExp:()=>dd,logicalAnd:()=>Yt,logicalNot:()=>Jr,logicalOr:()=>vl,logicalXor:()=>SI,losses:()=>B$,matMul:()=>Te,math:()=>KS,max:()=>Lt,maxPool:()=>ft,maxPool3d:()=>Tl,maxPoolWithArgmax:()=>md,maximum:()=>Ht,maximumStrict:()=>FU,mean:()=>Xe,memory:()=>pl,metrics:()=>hw,min:()=>Ui,minimum:()=>bn,minimumStrict:()=>MU,mod:()=>Al,modStrict:()=>UU,model:()=>sN,models:()=>dw,moments:()=>na,movingAverage:()=>VU,mul:()=>R,mulStrict:()=>$U,multiRNNCell:()=>II,multinomial:()=>fd,neg:()=>ke,nextFrame:()=>Zp,norm:()=>Kp,notEqual:()=>Js,notEqualStrict:()=>IU,oneHot:()=>pi,ones:()=>Kt,onesLike:()=>Ot,op:()=>S,outerProduct:()=>vI,pad:()=>Pt,pad1d:()=>TI,pad2d:()=>AI,pad3d:()=>NI,pad4d:()=>CI,pool:()=>RI,pow:()=>es,powStrict:()=>WU,prelu:()=>Qr,print:()=>Fh,prod:()=>Nl,profile:()=>Gk,rand:()=>OI,randomGamma:()=>kI,randomNormal:()=>qp,randomUniform:()=>wn,range:()=>$i,ready:()=>Hk,real:()=>Zs,reciprocal:()=>yd,registerBackend:()=>Vp,registerCallbackConstructor:()=>rN,registerGradient:()=>ky,registerKernel:()=>Za,registerOp:()=>zN,regularizers:()=>mw,relu:()=>Fe,relu6:()=>bd,removeBackend:()=>Kk,reshape:()=>O,reverse:()=>Et,reverse1d:()=>DI,reverse2d:()=>FI,reverse3d:()=>MI,reverse4d:()=>UI,rfft:()=>no,round:()=>wd,rsqrt:()=>Cl,scalar:()=>j,scatterND:()=>Ib,scatter_util:()=>ZS,selu:()=>Rl,separableConv2d:()=>eo,sequential:()=>nN,serialization:()=>V,setBackend:()=>pI,setPlatform:()=>Zk,setdiff1dAsync:()=>xd,sigmoid:()=>os,sign:()=>Ld,signal:()=>P$,sin:()=>Ol,sinh:()=>El,slice:()=>he,slice1d:()=>_l,slice2d:()=>Hp,slice3d:()=>to,slice4d:()=>ia,slice_util:()=>Ms,softmax:()=>ts,softplus:()=>di,spaceToBatchND:()=>Zr,sparseToDense:()=>Xp,spectral:()=>z$,split:()=>Bt,sqrt:()=>Je,square:()=>xe,squaredDifference:()=>io,squaredDifferenceStrict:()=>zU,squeeze:()=>Qs,stack:()=>Ge,step:()=>mi,stridedSlice:()=>Sd,sub:()=>X,subStrict:()=>PU,sum:()=>te,sumOutType:()=>Mp,tan:()=>Id,tanh:()=>Mi,tensor:()=>ze,tensor1d:()=>Oe,tensor2d:()=>ls,tensor3d:()=>ll,tensor4d:()=>ss,tensor5d:()=>$I,tensor6d:()=>WI,tensor_util:()=>mn,test_util:()=>lI,tidy:()=>C,tile:()=>$s,time:()=>qk,topk:()=>vd,train:()=>ao,transpose:()=>se,truncatedNormal:()=>ro,unique:()=>Yp,unregisterGradient:()=>w_,unregisterKernel:()=>b_,unsortedSegmentSum:()=>Td,unstack:()=>qe,upcastType:()=>Ft,util:()=>N,valueAndGrad:()=>DF,valueAndGrads:()=>FF,variable:()=>Ad,variableGrads:()=>hd,version:()=>TG,version_converter:()=>kf,version_core:()=>db,version_layers:()=>uo,where:()=>mt,whereAsync:()=>Dl,zeros:()=>ye,zerosLike:()=>re});const TG={"tfjs-core":db,"tfjs-backend-cpu":hx,"tfjs-backend-webgl":sL,"tfjs-data":Hf,"tfjs-layers":uo,"tfjs-converter":kf,tfjs:lE};function er(e,t,s=!1){if(e.beginPath(),t.slice(1).forEach(({x:n,y:i},r)=>{const o=t[r];e.moveTo(o.x,o.y),e.lineTo(n,i)}),s){const n=t[t.length-1],i=t[0];if(!n||!i)return;e.moveTo(n.x,n.y),e.lineTo(i.x,i.y)}e.stroke()}class Ts{constructor(e,t){if(!Yn(e)||!Yn(t))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:e,height:t})}`);this._width=e,this._height=t}get width(){return this._width}get height(){return this._height}reverse(){return new Ts(1/this.width,1/this.height)}}const Qu={};Ee(Qu,{computeReshapedDimensions:()=>rL,getCenterPoint:()=>Ra,isDimensions:()=>xg,isEven:()=>wg,isFloat:()=>iL,isTensor:()=>Na,isTensor1D:()=>AG,isTensor2D:()=>nL,isTensor3D:()=>tr,isTensor4D:()=>ln,isValidNumber:()=>Yn,isValidProbablitiy:()=>uc,range:()=>Si,round:()=>Ca});function Na(e,t){return e instanceof me&&e.shape.length===t}function AG(e){return Na(e,1)}function nL(e){return Na(e,2)}function tr(e){return Na(e,3)}function ln(e){return Na(e,4)}function iL(e){return e%1!==0}function wg(e){return e%2===0}function Ca(e,t=2){const s=Math.pow(10,t);return Math.floor(e*s)/s}function xg(e){return e&&e.width&&e.height}function rL({width:e,height:t},s){const n=s/Math.max(t,e);return new Ts(Math.round(e*n),Math.round(t*n))}function Ra(e){return e.reduce((t,s)=>t.add(s),new _e(0,0)).div(new _e(e.length,e.length))}function Si(e,t,s){return Array(e).fill(0).map((n,i)=>t+i*s)}function Yn(e){return!!e&&e!==Infinity&&e!==-Infinity&&!isNaN(e)||e===0}function uc(e){return Yn(e)&&0<=e&&e<=1}class _e{constructor(e,t){this._x=e,this._y=t}get x(){return this._x}get y(){return this._y}add(e){return new _e(this.x+e.x,this.y+e.y)}sub(e){return new _e(this.x-e.x,this.y-e.y)}mul(e){return new _e(this.x*e.x,this.y*e.y)}div(e){return new _e(this.x/e.x,this.y/e.y)}abs(){return new _e(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(Math.pow(this.x,2)+Math.pow(this.y,2))}floor(){return new _e(Math.floor(this.x),Math.floor(this.y))}}class it{constructor(e,t=!0){const s=e||{},n=[s.left,s.top,s.right,s.bottom].every(Yn),i=[s.x,s.y,s.width,s.height].every(Yn);if(!i&&!n)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(s)}`);const[r,o,a,l]=i?[s.x,s.y,s.width,s.height]:[s.left,s.top,s.right-s.left,s.bottom-s.top];it.assertIsValidBox({x:r,y:o,width:a,height:l},"Box.constructor",t),this._x=r,this._y=o,this._width=a,this._height=l}static isRect(e){return!!e&&[e.x,e.y,e.width,e.height].every(Yn)}static assertIsValidBox(e,t,s=!1){if(!it.isRect(e))throw new Error(`${t} - invalid box: ${JSON.stringify(e)}, expected object with properties x, y, width, height`);if(!s&&(e.width<0||e.height<0))throw new Error(`${t} - width (${e.width}) and height (${e.height}) must be positive numbers`)}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new _e(this.left,this.top)}get topRight(){return new _e(this.right,this.top)}get bottomLeft(){return new _e(this.left,this.bottom)}get bottomRight(){return new _e(this.right,this.bottom)}round(){const[e,t,s,n]=[this.x,this.y,this.width,this.height].map(i=>Math.round(i));return new it({x:e,y:t,width:s,height:n})}floor(){const[e,t,s,n]=[this.x,this.y,this.width,this.height].map(i=>Math.floor(i));return new it({x:e,y:t,width:s,height:n})}toSquare(){let{x:e,y:t,width:s,height:n}=this;const i=Math.abs(s-n);return st&&(o=-p+t+s,p=t),u>e&&(a=-u+e+n,u=e),l<1&&(a=2-l,l=1),c<1&&(a=2-c,c=1),{dy:r,edy:a,dx:i,edx:o,y:c,ey:u,x:l,ex:p,w:s,h:n}}calibrate(e){return new it({left:this.left+e.left*this.width,top:this.top+e.top*this.height,right:this.right+e.right*this.width,bottom:this.bottom+e.bottom*this.height}).toSquare().round()}}class Ga extends it{constructor(e,t,s,n,i=!1){super({left:e,top:t,right:s,bottom:n},i)}}class Oo{constructor(e,t,s,n,i){this._imageDims=new Ts(i.width,i.height),this._score=e,this._classScore=t,this._className=s,this._box=new it(n).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new it(this._box).rescale(this.imageDims.reverse())}forSize(e,t){return new Oo(this.score,this.classScore,this.className,this.relativeBox,{width:e,height:t})}}class ht extends Oo{constructor(e,t,s){super(e,e,"",t,s)}forSize(e,t){const{score:s,relativeBox:n,imageDims:i}=super.forSize(e,t);return new ht(s,n,i)}}function oh(e,t,s=!0){const n=Math.max(0,Math.min(e.right,t.right)-Math.max(e.left,t.left)),i=Math.max(0,Math.min(e.bottom,t.bottom)-Math.max(e.top,t.top)),r=n*i;return s?r/(e.area+t.area-r):r/Math.min(e.area,t.area)}function rh(e){const t=e.map(a=>a.x),s=e.map(a=>a.y),n=t.reduce((a,l)=>llaa({score:o,boxIndex:a})).sort((o,a)=>o.score-a.score).map(o=>o.boxIndex);const r=[];for(;i.length>0;){const o=i.pop();r.push(o);const a=i,l=[];for(let c=0;cl[p]<=s)}return r}function un(e,t){return C(()=>{const[s,n,i]=t,r=Wt([...e.shape.slice(0,3),1],s),o=Wt([...e.shape.slice(0,3),1],n),a=Wt([...e.shape.slice(0,3),1],i),l=be([r,o,a],3);return X(e,l)})}function nh(e,t=!1){return C(()=>{const[s,n]=e.shape.slice(1);if(s===n)return e;const i=Math.abs(s-n),r=Math.round(i*(t?.5:1)),o=s>n?2:1,a=h=>{const d=e.shape.slice();return d[o]=h,Wt(d,0)},l=a(r),c=i-l.shape[o],p=t&&c?a(c):null,u=[p,e,l].filter(h=>!!h).map(h=>G(h,"float32"));return be(u,o)})}function jL(e){const t=e.slice();for(let s=t.length-1;s>0;s--){const n=Math.floor(Math.random()*(s+1)),i=t[s];t[s]=t[n],t[n]=i}return t}function $a(e){return 1/(1+Math.exp(-e))}function VL(e){return Math.log(e/(1-e))}class ja extends it{constructor(e,t,s,n,i=!1){super({x:e,y:t,width:s,height:n},i)}}const NG=.5,CG=.43,RG=.45;class Hs{constructor(e,t,s=new _e(0,0)){const{width:n,height:i}=t;this._imgDims=new Ts(n,i),this._shift=s,this._positions=e.map(r=>r.mul(new _e(n,i)).add(s))}get shift(){return new _e(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(e=>e.sub(this._shift).div(new _e(this.imageWidth,this.imageHeight)))}forSize(e,t){return new this.constructor(this.relativePositions,{width:e,height:t})}shiftBy(e,t){return new this.constructor(this.relativePositions,this._imgDims,new _e(e,t))}shiftByPoint(e){return this.shiftBy(e.x,e.y)}align(e,t={}){if(e){const i=e instanceof ht?e.box.floor():new it(e);return this.shiftBy(i.x,i.y).align(null,t)}const{useDlibAlignment:s,minBoxPadding:n}=Object.assign({},{useDlibAlignment:!1,minBoxPadding:.2},t);return s?this.alignDlib():this.alignMinBbox(n)}alignDlib(){const e=this.getRefPointsForAlignment(),[t,s,n]=e,i=p=>n.sub(p).magnitude(),r=(i(t)+i(s))/2,o=Math.floor(r/RG),a=Ra(e),l=Math.floor(Math.max(0,a.x-NG*o)),c=Math.floor(Math.max(0,a.y-CG*o));return new ja(l,c,Math.min(o,this.imageWidth+l),Math.min(o,this.imageHeight+c))}alignMinBbox(e){const t=rh(this.positions);return t.pad(t.width*e,t.height*e)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}}class bS extends Hs{getRefPointsForAlignment(){const e=this.positions;return[e[0],e[1],Ra([e[3],e[4]])]}}class Va extends Hs{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(Ra)}}class Dc{constructor(e,t){this._label=e,this._distance=t}get label(){return this._label}get distance(){return this._distance}toString(e=!0){return`${this.label}${e?` (${Ca(this.distance)})`:""}`}}class kc extends it{constructor(e,t){super(e);this._label=t}static assertIsValidLabeledBox(e,t){if(it.assertIsValidBox(e,t),!Yn(e.label))throw new Error(`${t} - expected property label (${e.label}) to be a number`)}get label(){return this._label}}class hr{constructor(e,t){if(!(typeof e=="string"))throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(t)||t.some(s=>!(s instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=e,this._descriptors=t}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(e=>Array.from(e))}}static fromJSON(e){const t=e.descriptors.map(s=>new Float32Array(s));return new hr(e.label,t)}}class yS extends kc{constructor(e,t,s,n){super(e,t);this._score=s,this._classScore=n}static assertIsValidPredictedBox(e,t){if(kc.assertIsValidLabeledBox(e,t),!uc(e.score)||!uc(e.classScore))throw new Error(`${t} - expected properties score (${e.score}) and (${e.classScore}) to be a number between [0, 1]`)}get score(){return this._score}get classScore(){return this._classScore}}function Mn(e){return e.detection instanceof ht}function ar(e,t){const s={detection:t};return Object.assign({},e,s)}function oL(){const e=window.fetch||function(){throw new Error("fetch - missing fetch implementation for browser environment")},t=function(){throw new Error("readFile - filesystem not available for browser environment")};return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),fetch:e,readFile:t}}function Lg(e){let t="";if(!e)try{e=require("fs")}catch(n){t=n.toString()}const s=e?function(n){return new Promise((i,r)=>{e.readFile(n,function(o,a){return o?r(o):i(a)})})}:function(){throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)};return{readFile:s}}function aL(){const e=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,s=function(){if(e)return new e;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},n=function(){if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},i=global.fetch||function(){throw new Error("fetch - missing fetch implementation for nodejs environment")},r=Lg();return{Canvas:e||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:s,createImageElement:n,fetch:i,...r}}function lL(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}const cL=vc(ML());let Jt;function OG(){if(!Jt)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return Jt}function pL(e){Jt=e}function uL(){if(lL())return pL(oL());if(cL.isNodejs())return pL(aL())}function EG(e){if(Jt||uL(),!Jt)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");const{Canvas:t=Jt.Canvas,Image:s=Jt.Image}=e;Jt.Canvas=t,Jt.Image=s,Jt.createCanvasElement=e.createCanvasElement||(()=>new t),Jt.createImageElement=e.createImageElement||(()=>new s),Jt.ImageData=e.ImageData||Jt.ImageData,Jt.Video=e.Video||Jt.Video,Jt.fetch=e.fetch||Jt.fetch,Jt.readFile=e.readFile||Jt.readFile}const Ve={getEnv:OG,setEnv:pL,initialize:uL,createBrowserEnv:oL,createFileSystem:Lg,createNodejsEnv:aL,monkeyPatch:EG,isBrowser:lL,isNodejs:cL.isNodejs};uL();function cr(e){return!Ve.isNodejs()&&typeof e=="string"?document.getElementById(e):e}function us(e){const{Canvas:t,CanvasRenderingContext2D:s}=Ve.getEnv();if(e instanceof s)return e;const n=cr(e);if(!(n instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");const i=n.getContext("2d");if(!i)throw new Error("resolveContext2d - canvas 2d context is null");return i}var Ii;(function(e){e.TOP_LEFT="TOP_LEFT",e.TOP_RIGHT="TOP_RIGHT",e.BOTTOM_LEFT="BOTTOM_LEFT",e.BOTTOM_RIGHT="BOTTOM_RIGHT"})(Ii||(Ii={}));class Sg{constructor(e={}){const{anchorPosition:t,backgroundColor:s,fontColor:n,fontSize:i,fontStyle:r,padding:o}=e;this.anchorPosition=t||Ii.TOP_LEFT,this.backgroundColor=s||"rgba(0, 0, 0, 0.5)",this.fontColor=n||"rgba(255, 255, 255, 1)",this.fontSize=i||14,this.fontStyle=r||"Georgia",this.padding=o||4}}class hc{constructor(e,t,s={}){this.text=typeof e=="string"?[e]:e instanceof hc?e.text:e,this.anchor=t,this.options=new Sg(s)}measureWidth(e){const{padding:t}=this.options;return this.text.map(s=>e.measureText(s).width).reduce((s,n)=>s{const d=a+p.x,m=a+p.y+(h+1)*r;s.fillText(u,d,m)})}}class cE{constructor(e={}){const{boxColor:t,lineWidth:s,label:n,drawLabelOptions:i}=e;this.boxColor=t||"rgba(0, 0, 255, 1)",this.lineWidth=s||2,this.label=n;const r={anchorPosition:Ii.BOTTOM_LEFT,backgroundColor:this.boxColor};this.drawLabelOptions=new Sg(Object.assign({},r,i))}}class hL{constructor(e,t={}){this.box=new it(e),this.options=new cE(t)}draw(e){const t=us(e),{boxColor:s,lineWidth:n}=this.options,{x:i,y:r,width:o,height:a}=this.box;t.strokeStyle=s,t.lineWidth=n,t.strokeRect(i,r,o,a);const{label:l}=this.options;l&&new hc([l],{x:i-n/2,y:r},this.options.drawLabelOptions).draw(e)}}function _G(e,t){const s=Array.isArray(t)?t:[t];s.forEach(n=>{const i=n instanceof ht?n.score:Mn(n)?n.detection.score:void 0,r=n instanceof ht?n.box:Mn(n)?n.detection.box:new it(n),o=i?`${Ca(i)}`:void 0;new hL(r,{label:o}).draw(e)})}function Pa(e){const{Image:t,Video:s}=Ve.getEnv();return e instanceof t&&e.complete||e instanceof s&&e.readyState>=3}function Ih(e){return new Promise((t,s)=>{if(e instanceof Ve.getEnv().Canvas||Pa(e))return t(null);function n(r){if(!r.currentTarget)return;r.currentTarget.removeEventListener("load",n),r.currentTarget.removeEventListener("error",i),t(r)}function i(r){if(!r.currentTarget)return;r.currentTarget.removeEventListener("load",n),r.currentTarget.removeEventListener("error",i),s(r)}e.addEventListener("load",n),e.addEventListener("error",i)})}function Sh(e){return new Promise((t,s)=>{if(!(e instanceof Blob))return s("bufferToImage - expected buf to be of type: Blob");const n=new FileReader;n.onload=()=>{if(typeof n.result!="string")return s("bufferToImage - expected reader.result to be a string, in onload");const i=Ve.getEnv().createImageElement();i.onload=()=>t(i),i.onerror=s,i.src=n.result},n.onerror=s,n.readAsDataURL(e)})}function pr(e){const{Image:t,Video:s}=Ve.getEnv();return e instanceof t?new Ts(e.naturalWidth,e.naturalHeight):e instanceof s?new Ts(e.videoWidth,e.videoHeight):new Ts(e.width,e.height)}function Ro({width:e,height:t}){const{createCanvasElement:s}=Ve.getEnv(),n=s();return n.width=e,n.height=t,n}function Ba(e,t){const{ImageData:s}=Ve.getEnv();if(!(e instanceof s)&&!Pa(e))throw new Error("createCanvasFromMedia - media has not finished loading yet");const{width:n,height:i}=t||pr(e),r=Ro({width:n,height:i});return e instanceof s?us(r).putImageData(e,0,0):us(r).drawImage(e,0,0,n,i),r}async function xh(e,t){const s=t||Ve.getEnv().createCanvasElement(),[n,i,r]=e.shape.slice(ln(e)?1:0),o=C(()=>e.as3D(n,i,r).toInt());return await Gr.toPixels(o,s),o.dispose(),s}function _c(e){const{Image:t,Canvas:s,Video:n}=Ve.getEnv();return e instanceof t||e instanceof s||e instanceof n}function wh(e,t,s=!1){const{Image:n,Canvas:i}=Ve.getEnv();if(!(e instanceof n||e instanceof i))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");const r=pr(e),o=t/Math.max(r.height,r.width),a=o*r.width,l=o*r.height,c=Ro({width:t,height:t}),p=e instanceof i?e:Ba(e),u=Math.abs(a-l)/2,h=s&&a{if(tr(s)){this._imageTensors[n]=s,this._inputDimensions[n]=s.shape;return}if(ln(s)){const r=s.shape[0];if(r!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${r} passed, but not supported in input array`);this._imageTensors[n]=s,this._inputDimensions[n]=s.shape.slice(1);return}const i=s instanceof Ve.getEnv().Canvas?s:Ba(s);this._canvases[n]=i,this._inputDimensions[n]=[i.height,i.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return Si(this.batchSize,0,1).map((e,t)=>this.getReshapedInputDimensions(t))}getInput(e){return this.canvases[e]||this.imageTensors[e]}getInputDimensions(e){return this._inputDimensions[e]}getInputHeight(e){return this._inputDimensions[e][0]}getInputWidth(e){return this._inputDimensions[e][1]}getReshapedInputDimensions(e){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");const t=this.getInputWidth(e),s=this.getInputHeight(e);return rL({width:t,height:s},this.inputSize)}toBatchTensor(e,t=!0){return this._inputSize=e,C(()=>{const s=Si(this.batchSize,0,1).map(i=>{const r=this.getInput(i);if(r instanceof me){let o=ln(r)?r:r.expandDims();return o=nh(o,t),(o.shape[1]!==e||o.shape[2]!==e)&&(o=en.resizeBilinear(o,[e,e])),o.as3D(e,e,3)}if(r instanceof Ve.getEnv().Canvas)return Gr.fromPixels(wh(r,e,t));throw new Error(`toBatchTensor - at batchIdx ${i}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${r}`)}),n=Ge(s.map(i=>G(i,"float32"))).as4D(this.batchSize,e,e,3);return n})}}async function nt(e){if(e instanceof vi)return e;let t=Array.isArray(e)?e:[e];if(!t.length)throw new Error("toNetInput - empty array passed as input");const s=i=>Array.isArray(e)?` at input index ${i}:`:"",n=t.map(cr);return n.forEach((i,r)=>{if(!_c(i)&&!tr(i)&&!ln(i))throw typeof t[r]=="string"?new Error(`toNetInput -${s(r)} string passed, but could not resolve HTMLElement for element id ${t[r]}`):new Error(`toNetInput -${s(r)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(ln(i)){const o=i.shape[0];if(o!==1)throw new Error(`toNetInput -${s(r)} tf.Tensor4D with batchSize ${o} passed, but not supported in input array`)}}),await Promise.all(n.map(i=>_c(i)&&Ih(i))),new vi(n,Array.isArray(e))}async function No(e,t){const{Canvas:s}=Ve.getEnv();let n=e;if(!(e instanceof s)){const o=await nt(e);if(o.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");const a=o.getInput(0);n=a instanceof s?a:await xh(a)}const i=us(n),r=t.map(o=>o instanceof ht?o.forSize(n.width,n.height).box.floor():o).map(o=>o.clipAtImageBorders(n.width,n.height));return r.map(({x:o,y:a,width:l,height:c})=>{const p=Ro({width:l,height:c});return us(p).putImageData(i.getImageData(o,a,l,c),0,0),p})}async function Co(e,t){if(!tr(e)&&!ln(e))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(ln(e)&&e.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return C(()=>{const[s,n,i]=e.shape.slice(ln(e)?1:0),r=t.map(a=>a instanceof ht?a.forSize(n,s).box:a).map(a=>a.clipAtImageBorders(n,s)),o=r.map(({x:a,y:l,width:c,height:p})=>to(e.as3D(s,n,i),[l,a,0],[p,c,i]));return o})}async function ur(e,t){const s=Ve.getEnv().fetch,n=await s(e,t);if(!(n.status<400))throw new Error(`failed to fetch: (${n.status}) ${n.statusText}, from url: ${n.url}`);return n}async function gS(e){const t=await ur(e),s=await t.blob();if(!s.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${s.type}, for url: ${t.url}`);return Sh(s)}async function Lh(e){return(await ur(e)).json()}async function fS(e){return new Float32Array(await(await ur(e)).arrayBuffer())}function Ig(e,t){const s=`${t}-weights_manifest.json`;if(!e)return{modelBaseUri:"",manifestUri:s};if(e==="/")return{modelBaseUri:"/",manifestUri:`/${s}`};const n=e.startsWith("http://")?"http://":e.startsWith("https://")?"https://":"";e=e.replace(n,"");const i=e.split("/").filter(a=>a),r=e.endsWith(".json")?i[i.length-1]:s;let o=n+(e.endsWith(".json")?i.slice(0,i.length-1):i).join("/");return o=e.startsWith("/")?`/${o}`:o,{modelBaseUri:o,manifestUri:o==="/"?`/${r}`:`${o}/${r}`}}async function bh(e,t){const{manifestUri:s,modelBaseUri:n}=Ig(e,t);let i=await Lh(s);return Rt.loadWeights(i,n)}function mS(e,t,s=!1){const{width:n,height:i}=s?pr(t):t;return e.width=n,e.height=i,{width:n,height:i}}class Zt{constructor(e){this._name=e,this._params=void 0,this._paramMappings=[]}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(e){const{obj:t,objProp:s}=this.traversePropertyPath(e);return t[s]}reassignParamFromPath(e,t){const{obj:s,objProp:n}=this.traversePropertyPath(e);s[n].dispose(),s[n]=t}getParamList(){return this._paramMappings.map(({paramPath:e})=>({path:e,tensor:this.getParamFromPath(e)}))}getTrainableParams(){return this.getParamList().filter(e=>e.tensor instanceof ci)}getFrozenParams(){return this.getParamList().filter(e=>!(e.tensor instanceof ci))}variable(){this.getFrozenParams().forEach(({path:e,tensor:t})=>{this.reassignParamFromPath(e,t.variable())})}freeze(){this.getTrainableParams().forEach(({path:e,tensor:t})=>{const s=ze(t.dataSync());t.dispose(),this.reassignParamFromPath(e,s)})}dispose(e=!0){this.getParamList().forEach(t=>{if(e&&t.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${t.path}`);t.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:e})=>Array.from(e.dataSync())).reduce((e,t)=>e.concat(t)))}async load(e){if(e instanceof Float32Array){this.extractWeights(e);return}await this.loadFromUri(e)}async loadFromUri(e){if(e&&typeof e!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);const t=await bh(e,this.getDefaultModelName());this.loadFromWeightMap(t)}async loadFromDisk(e){if(e&&typeof e!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);const{readFile:t}=Ve.getEnv(),{manifestUri:s,modelBaseUri:n}=Ig(e,this.getDefaultModelName()),i=l=>Promise.all(l.map(c=>t(c).then(p=>p.buffer))),r=Rt.weightsLoaderFactory(i),o=JSON.parse((await t(s)).toString()),a=await r(o,n);this.loadFromWeightMap(a)}loadFromWeightMap(e){const{paramMappings:t,params:s}=this.extractParamsFromWeigthMap(e);this._paramMappings=t,this._params=s}extractWeights(e){const{paramMappings:t,params:s}=this.extractParams(e);this._paramMappings=t,this._params=s}traversePropertyPath(e){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");const t=e.split("/").reduce((i,r)=>{if(!i.nextObj.hasOwnProperty(r))throw new Error(`traversePropertyPath - object does not have property ${r}, for path ${e}`);return{obj:i.nextObj,objProp:r,nextObj:i.nextObj[r]}},{nextObj:this.params}),{obj:s,objProp:n}=t;if(!s||!n||!(s[n]instanceof me))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${e}`);return{obj:s,objProp:n}}}function _s(e,t,s){return C(()=>{let n=eo(e,t.depthwise_filter,t.pointwise_filter,s,"same");return n=$(n,t.bias),n})}function vg(e,t,s=!1){return C(()=>{const n=Fe(s?$(rt(e,t.conv0.filters,[2,2],"same"),t.conv0.bias):_s(e,t.conv0,[2,2])),i=_s(n,t.conv1,[1,1]),r=Fe($(n,i)),o=_s(r,t.conv2,[1,1]);return Fe($(n,$(i,o)))})}function Pu(e,t,s=!1,n=!0){return C(()=>{const i=Fe(s?$(rt(e,t.conv0.filters,n?[2,2]:[1,1],"same"),t.conv0.bias):_s(e,t.conv0,n?[2,2]:[1,1])),r=_s(i,t.conv1,[1,1]),o=Fe($(i,r)),a=_s(o,t.conv2,[1,1]),l=Fe($(i,$(r,a))),c=_s(l,t.conv3,[1,1]);return Fe($(i,$(r,$(a,c))))})}function Oa(e,t,s="same",n=!1){return C(()=>{const i=$(rt(e,t.filters,[1,1],s),t.bias);return n?Fe(i):i})}function Is(e,t){Object.keys(e).forEach(s=>{t.some(n=>n.originalPath===s)||e[s].dispose()})}function dc(e,t){return function(s,n,i,r){const o=ss(e(s*n*i*i),[i,i,s,n]),a=Oe(e(n));return t.push({paramPath:`${r}/filters`},{paramPath:`${r}/bias`}),{filters:o,bias:a}}}function Tg(e,t){return function(s,n,i){const r=ls(e(s*n),[s,n]),o=Oe(e(n));return t.push({paramPath:`${i}/weights`},{paramPath:`${i}/bias`}),{weights:r,bias:o}}}class dL{constructor(e,t,s){this.depthwise_filter=e,this.pointwise_filter=t,this.bias=s}}function mc(e,t){return function(s,n,i){const r=ss(e(3*3*s),[3,3,s,1]),o=ss(e(s*n),[1,1,s,n]),a=Oe(e(n));return t.push({paramPath:`${i}/depthwise_filter`},{paramPath:`${i}/pointwise_filter`},{paramPath:`${i}/bias`}),new dL(r,o,a)}}function fc(e){return function(t){const s=e(`${t}/depthwise_filter`,4),n=e(`${t}/pointwise_filter`,4),i=e(`${t}/bias`,1);return new dL(s,n,i)}}function Vs(e,t){return function(s,n,i){const r=e[s];if(!Na(r,n))throw new Error(`expected weightMap[${s}] to be a Tensor${n}D, instead have ${r}`);return t.push({originalPath:s,paramPath:i||s}),r}}function vs(e){let t=e;function s(i){const r=t.slice(0,i);return t=t.slice(i),r}function n(){return t}return{extractWeights:s,getRemainingWeights:n}}function Ag(e,t){const s=dc(e,t),n=mc(e,t);function i(o,a,l,c=!1){const p=c?s(o,a,3,`${l}/conv0`):n(o,a,`${l}/conv0`),u=n(a,a,`${l}/conv1`),h=n(a,a,`${l}/conv2`);return{conv0:p,conv1:u,conv2:h}}function r(o,a,l,c=!1){const{conv0:p,conv1:u,conv2:h}=i(o,a,l,c),d=n(a,a,`${l}/conv3`);return{conv0:p,conv1:u,conv2:h,conv3:d}}return{extractDenseBlock3Params:i,extractDenseBlock4Params:r}}function pE(e){const t=[],{extractWeights:s,getRemainingWeights:n}=vs(e),{extractDenseBlock4Params:i}=Ag(s,t),r=i(3,32,"dense0",!0),o=i(32,64,"dense1"),a=i(64,128,"dense2"),l=i(128,256,"dense3");if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:t,params:{dense0:r,dense1:o,dense2:a,dense3:l}}}function Ng(e){return function(t){const s=e(`${t}/filters`,4),n=e(`${t}/bias`,1);return{filters:s,bias:n}}}function Cg(e,t){const s=Vs(e,t),n=Ng(s),i=fc(s);function r(a,l=!1){const c=l?n(`${a}/conv0`):i(`${a}/conv0`),p=i(`${a}/conv1`),u=i(`${a}/conv2`);return{conv0:c,conv1:p,conv2:u}}function o(a,l=!1){const c=l?n(`${a}/conv0`):i(`${a}/conv0`),p=i(`${a}/conv1`),u=i(`${a}/conv2`),h=i(`${a}/conv3`);return{conv0:c,conv1:p,conv2:u,conv3:h}}return{extractDenseBlock3Params:r,extractDenseBlock4Params:o}}function uE(e){const t=[],{extractDenseBlock4Params:s}=Cg(e,t),n={dense0:s("dense0",!0),dense1:s("dense1"),dense2:s("dense2"),dense3:s("dense3")};return Is(e,t),{params:n,paramMappings:t}}class Rg extends Zt{constructor(){super("FaceFeatureExtractor")}forwardInput(e){const{params:t}=this;if(!t)throw new Error("FaceFeatureExtractor - load model before inference");return C(()=>{const s=e.toBatchTensor(112,!0),n=[122.782,117.001,104.298],i=un(s,n).div(j(255));let r=Pu(i,t.dense0,!0);return r=Pu(r,t.dense1),r=Pu(r,t.dense2),r=Pu(r,t.dense3),r=ds(r,[7,7],[2,2],"valid"),r})}async forward(e){return this.forwardInput(await nt(e))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeigthMap(e){return uE(e)}extractParams(e){return pE(e)}}function Bu(e,t){return C(()=>$(Te(e,t.weights),t.bias))}function hE(e,t,s){const n=[],{extractWeights:i,getRemainingWeights:r}=vs(e),o=Tg(i,n),a=o(t,s,"fc");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:n,params:{fc:a}}}function dE(e){const t=[],s=Vs(e,t);function n(r){const o=s(`${r}/weights`,2),a=s(`${r}/bias`,1);return{weights:o,bias:a}}const i={fc:n("fc")};return Is(e,t),{params:i,paramMappings:t}}function Og(e){const t={},s={};return Object.keys(e).forEach(n=>{const i=n.startsWith("fc")?s:t;i[n]=e[n]}),{featureExtractorMap:t,classifierMap:s}}class Eg extends Zt{constructor(e,t){super(e);this._faceFeatureExtractor=t}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(e){const{params:t}=this;if(!t)throw new Error(`${this._name} - load model before inference`);return C(()=>{const s=e instanceof vi?this.faceFeatureExtractor.forwardInput(e):e;return Bu(s.as2D(s.shape[0],-1),t.fc)})}dispose(e=!0){this.faceFeatureExtractor.dispose(e),super.dispose(e)}loadClassifierParams(e){const{params:t,paramMappings:s}=this.extractClassifierParams(e);this._params=t,this._paramMappings=s}extractClassifierParams(e){return hE(e,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeigthMap(e){const{featureExtractorMap:t,classifierMap:s}=Og(e);return this.faceFeatureExtractor.loadFromWeightMap(t),dE(s)}extractParams(e){const t=this.getClassifierChannelsIn(),s=this.getClassifierChannelsOut(),n=s*t+s,i=e.slice(0,e.length-n),r=e.slice(e.length-n);return this.faceFeatureExtractor.extractWeights(i),this.extractClassifierParams(r)}}const fh=["neutral","happy","sad","angry","fearful","disgusted","surprised"];class lr{constructor(e){if(e.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${e.length}`);fh.forEach((t,s)=>{this[t]=e[s]})}asSortedArray(){return fh.map(e=>({expression:e,probability:this[e]})).sort((e,t)=>t.probability-e.probability)}}class gh extends Eg{constructor(e=new Rg){super("FaceExpressionNet",e)}forwardInput(e){return C(()=>ts(this.runNet(e)))}async forward(e){return this.forwardInput(await nt(e))}async predictExpressions(e){const t=await nt(e),s=await this.forwardInput(t),n=await Promise.all(qe(s).map(async r=>{const o=await r.data();return r.dispose(),o}));s.dispose();const i=n.map(r=>new lr(r));return t.isBatchInput?i:i[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}}function dh(e){return e.expressions instanceof lr}function Rc(e,t){const s={expressions:t};return Object.assign({},e,s)}function kG(e,t,s=.1,n){const i=Array.isArray(t)?t:[t];i.forEach(r=>{const o=r instanceof lr?r:dh(r)?r.expressions:void 0;if(!o)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");const a=o.asSortedArray(),l=a.filter(u=>u.probability>s),c=Mn(r)?r.detection.box.bottomLeft:n||new _e(0,0),p=new hc(l.map(u=>`${u.expression} (${Ca(u.probability)})`),c);p.draw(e)})}function or(e){return Mn(e)&&e.landmarks instanceof Hs&&e.unshiftedLandmarks instanceof Hs&&e.alignedRect instanceof ht}function Ao(e,t){const{box:s}=e.detection,n=t.shiftBy(s.x,s.y),i=n.align(),{imageDims:r}=e.detection,o=new ht(e.detection.score,i.rescale(r.reverse()),r),a={landmarks:n,unshiftedLandmarks:t,alignedRect:o};return Object.assign({},e,a)}class mE{constructor(e={}){const{drawLines:t=!0,drawPoints:s=!0,lineWidth:n,lineColor:i,pointSize:r,pointColor:o}=e;this.drawLines=t,this.drawPoints=s,this.lineWidth=n||1,this.pointSize=r||2,this.lineColor=i||"rgba(0, 255, 255, 1)",this.pointColor=o||"rgba(255, 0, 255, 1)"}}class fE{constructor(e,t={}){this.faceLandmarks=e,this.options=new mE(t)}draw(e){const t=us(e),{drawLines:s,drawPoints:n,lineWidth:i,lineColor:r,pointSize:o,pointColor:a}=this.options;if(s&&this.faceLandmarks instanceof Va&&(t.strokeStyle=r,t.lineWidth=i,er(t,this.faceLandmarks.getJawOutline()),er(t,this.faceLandmarks.getLeftEyeBrow()),er(t,this.faceLandmarks.getRightEyeBrow()),er(t,this.faceLandmarks.getNose()),er(t,this.faceLandmarks.getLeftEye(),!0),er(t,this.faceLandmarks.getRightEye(),!0),er(t,this.faceLandmarks.getMouth(),!0)),n){t.strokeStyle=a,t.fillStyle=a;const l=c=>{t.beginPath(),t.arc(c.x,c.y,o,0,2*Math.PI),t.fill()};this.faceLandmarks.positions.forEach(l)}}}function DG(e,t){const s=Array.isArray(t)?t:[t];s.forEach(n=>{const i=n instanceof Hs?n:or(n)?n.landmarks:void 0;if(!i)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new fE(i).draw(e)})}const Zu={};Ee(Zu,{AnchorPosition:()=>Ii,DrawBox:()=>hL,DrawBoxOptions:()=>cE,DrawFaceLandmarks:()=>fE,DrawFaceLandmarksOptions:()=>mE,DrawTextField:()=>hc,DrawTextFieldOptions:()=>Sg,drawContour:()=>er,drawDetections:()=>_G,drawFaceExpressions:()=>kG,drawFaceLandmarks:()=>DG});function FG(e,t){const s=dc(e,t),n=mc(e,t);function i(o,a,l){const c=n(o,a,`${l}/separable_conv0`),p=n(a,a,`${l}/separable_conv1`),u=s(o,a,1,`${l}/expansion_conv`);return{separable_conv0:c,separable_conv1:p,expansion_conv:u}}function r(o,a){const l=n(o,o,`${a}/separable_conv0`),c=n(o,o,`${a}/separable_conv1`),p=n(o,o,`${a}/separable_conv2`);return{separable_conv0:l,separable_conv1:c,separable_conv2:p}}return{extractConvParams:s,extractSeparableConvParams:n,extractReductionBlockParams:i,extractMainBlockParams:r}}function gE(e,t){const s=[],{extractWeights:n,getRemainingWeights:i}=vs(e),{extractConvParams:r,extractSeparableConvParams:o,extractReductionBlockParams:a,extractMainBlockParams:l}=FG(n,s),c=r(3,32,3,"entry_flow/conv_in"),p=a(32,64,"entry_flow/reduction_block_0"),u=a(64,128,"entry_flow/reduction_block_1"),h={conv_in:c,reduction_block_0:p,reduction_block_1:u},d={};Si(t,0,1).forEach(y=>{d[`main_block_${y}`]=l(128,`middle_flow/main_block_${y}`)});const m=a(128,256,"exit_flow/reduction_block"),f=o(256,512,"exit_flow/separable_conv"),g={reduction_block:m,separable_conv:f};if(i().length!==0)throw new Error(`weights remaing after extract: ${i().length}`);return{paramMappings:s,params:{entry_flow:h,middle_flow:d,exit_flow:g}}}function MG(e,t){const s=Vs(e,t),n=Ng(s),i=fc(s);function r(a){const l=i(`${a}/separable_conv0`),c=i(`${a}/separable_conv1`),p=n(`${a}/expansion_conv`);return{separable_conv0:l,separable_conv1:c,expansion_conv:p}}function o(a){const l=i(`${a}/separable_conv0`),c=i(`${a}/separable_conv1`),p=i(`${a}/separable_conv2`);return{separable_conv0:l,separable_conv1:c,separable_conv2:p}}return{extractConvParams:n,extractSeparableConvParams:i,extractReductionBlockParams:r,extractMainBlockParams:o}}function yE(e,t){const s=[],{extractConvParams:n,extractSeparableConvParams:i,extractReductionBlockParams:r,extractMainBlockParams:o}=MG(e,s),a=n("entry_flow/conv_in"),l=r("entry_flow/reduction_block_0"),c=r("entry_flow/reduction_block_1"),p={conv_in:a,reduction_block_0:l,reduction_block_1:c},u={};Si(t,0,1).forEach(f=>{u[`main_block_${f}`]=o(`middle_flow/main_block_${f}`)});const h=r("exit_flow/reduction_block"),d=i("exit_flow/separable_conv"),m={reduction_block:h,separable_conv:d};return Is(e,s),{params:{entry_flow:p,middle_flow:u,exit_flow:m},paramMappings:s}}function bE(e,t,s){return $(rt(e,t.filters,s,"same"),t.bias)}function mL(e,t,s=!0){let n=s?Fe(e):e;return n=_s(n,t.separable_conv0,[1,1]),n=_s(Fe(n),t.separable_conv1,[1,1]),n=ft(n,[3,3],[2,2],"same"),n=$(n,bE(e,t.expansion_conv,[2,2])),n}function UG(e,t){let s=_s(Fe(e),t.separable_conv0,[1,1]);return s=_s(Fe(s),t.separable_conv1,[1,1]),s=_s(Fe(s),t.separable_conv2,[1,1]),s=$(s,e),s}class wE extends Zt{constructor(e){super("TinyXception");this._numMainBlocks=e}forwardInput(e){const{params:t}=this;if(!t)throw new Error("TinyXception - load model before inference");return C(()=>{const s=e.toBatchTensor(112,!0),n=[122.782,117.001,104.298],i=un(s,n).div(j(256));let r=Fe(bE(i,t.entry_flow.conv_in,[2,2]));return r=mL(r,t.entry_flow.reduction_block_0,!1),r=mL(r,t.entry_flow.reduction_block_1),Si(this._numMainBlocks,0,1).forEach(o=>{r=UG(r,t.middle_flow[`main_block_${o}`])}),r=mL(r,t.exit_flow.reduction_block),r=Fe(_s(r,t.exit_flow.separable_conv,[1,1])),r})}async forward(e){return this.forwardInput(await nt(e))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeigthMap(e){return yE(e,this._numMainBlocks)}extractParams(e){return gE(e,this._numMainBlocks)}}function xE(e){const t=[],{extractWeights:s,getRemainingWeights:n}=vs(e),i=Tg(s,t),r=i(512,1,"fc/age"),o=i(512,2,"fc/gender");if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:t,params:{fc:{age:r,gender:o}}}}function LE(e){const t=[],s=Vs(e,t);function n(r){const o=s(`${r}/weights`,2),a=s(`${r}/bias`,1);return{weights:o,bias:a}}const i={fc:{age:n("fc/age"),gender:n("fc/gender")}};return Is(e,t),{params:i,paramMappings:t}}var Jn;(function(e){e.FEMALE="female",e.MALE="male"})(Jn||(Jn={}));class vh extends Zt{constructor(e=new wE(2)){super("AgeGenderNet");this._faceFeatureExtractor=e}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(e){const{params:t}=this;if(!t)throw new Error(`${this._name} - load model before inference`);return C(()=>{const s=e instanceof vi?this.faceFeatureExtractor.forwardInput(e):e,n=ds(s,[7,7],[2,2],"valid").as2D(s.shape[0],-1),i=Bu(n,t.fc.age).as1D(),r=Bu(n,t.fc.gender);return{age:i,gender:r}})}forwardInput(e){return C(()=>{const{age:t,gender:s}=this.runNet(e);return{age:t,gender:ts(s)}})}async forward(e){return this.forwardInput(await nt(e))}async predictAgeAndGender(e){const t=await nt(e),s=await this.forwardInput(t),n=qe(s.age),i=qe(s.gender),r=n.map((a,l)=>({ageTensor:a,genderTensor:i[l]})),o=await Promise.all(r.map(async({ageTensor:a,genderTensor:l})=>{const c=(await a.data())[0],p=(await l.data())[0],u=p>.5,h=u?Jn.MALE:Jn.FEMALE,d=u?p:1-p;return a.dispose(),l.dispose(),{age:c,gender:h,genderProbability:d}}));return s.age.dispose(),s.gender.dispose(),t.isBatchInput?o:o[0]}getDefaultModelName(){return"age_gender_model"}dispose(e=!0){this.faceFeatureExtractor.dispose(e),super.dispose(e)}loadClassifierParams(e){const{params:t,paramMappings:s}=this.extractClassifierParams(e);this._params=t,this._paramMappings=s}extractClassifierParams(e){return xE(e)}extractParamsFromWeigthMap(e){const{featureExtractorMap:t,classifierMap:s}=Og(e);return this.faceFeatureExtractor.loadFromWeightMap(t),LE(s)}extractParams(e){const t=512*1+1+(512*2+2),s=e.slice(0,e.length-t),n=e.slice(e.length-t);return this.faceFeatureExtractor.extractWeights(s),this.extractClassifierParams(n)}}class _g extends Eg{postProcess(e,t,s){const n=s.map(({width:r,height:o})=>{const a=t/Math.max(o,r);return{width:r*a,height:o*a}}),i=n.length;return C(()=>{const r=(p,u)=>Ge([Wt([68],p),Wt([68],u)],1).as2D(1,136).as1D(),o=(p,u)=>{const{width:h,height:d}=n[p];return u(h,d)?Math.abs(h-d)/2:0},a=p=>o(p,(u,h)=>uo(p,(u,h)=>hr(a(u),l(u))))).div(Ge(Array.from(Array(i),(p,u)=>r(n[u].width,n[u].height))));return c})}forwardInput(e){return C(()=>{const t=this.runNet(e);return this.postProcess(t,e.inputSize,e.inputDimensions.map(([s,n])=>({height:s,width:n})))})}async forward(e){return this.forwardInput(await nt(e))}async detectLandmarks(e){const t=await nt(e),s=C(()=>qe(this.forwardInput(t))),n=await Promise.all(s.map(async(i,r)=>{const o=Array.from(await i.data()),a=o.filter((c,p)=>wg(p)),l=o.filter((c,p)=>!wg(p));return new Va(Array(68).fill(0).map((c,p)=>new _e(a[p],l[p])),{height:t.getInputHeight(r),width:t.getInputWidth(r)})}));return s.forEach(i=>i.dispose()),t.isBatchInput?n:n[0]}getClassifierChannelsOut(){return 136}}class za extends _g{constructor(e=new Rg){super("FaceLandmark68Net",e)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}}function SE(e){const t=[],{extractDenseBlock3Params:s}=Cg(e,t),n={dense0:s("dense0",!0),dense1:s("dense1"),dense2:s("dense2")};return Is(e,t),{params:n,paramMappings:t}}function IE(e){const t=[],{extractWeights:s,getRemainingWeights:n}=vs(e),{extractDenseBlock3Params:i}=Ag(s,t),r=i(3,32,"dense0",!0),o=i(32,64,"dense1"),a=i(64,128,"dense2");if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:t,params:{dense0:r,dense1:o,dense2:a}}}class vE extends Zt{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(e){const{params:t}=this;if(!t)throw new Error("TinyFaceFeatureExtractor - load model before inference");return C(()=>{const s=e.toBatchTensor(112,!0),n=[122.782,117.001,104.298],i=un(s,n).div(j(255));let r=vg(i,t.dense0,!0);return r=vg(r,t.dense1),r=vg(r,t.dense2),r=ds(r,[14,14],[2,2],"valid"),r})}async forward(e){return this.forwardInput(await nt(e))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeigthMap(e){return SE(e)}extractParams(e){return IE(e)}}class mh extends _g{constructor(e=new vE){super("FaceLandmark68TinyNet",e)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}}class dS extends za{}function TE(e,t){return $(R(e,t.weights),t.biases)}function fL(e,t,s,n,i="same"){const{filters:r,bias:o}=t.conv;let a=rt(e,r,s,i);return a=$(a,o),a=TE(a,t.scale),n?Fe(a):a}function AE(e,t){return fL(e,t,[1,1],!0)}function gL(e,t){return fL(e,t,[1,1],!1)}function kg(e,t){return fL(e,t,[2,2],!0,"valid")}function $G(e,t){function s(a,l,c){const p=e(a),u=p.length/(l*c*c);if(iL(u))throw new Error(`depth has to be an integer: ${u}, weights.length: ${p.length}, numFilters: ${l}, filterSize: ${c}`);return C(()=>se(ss(p,[l,u,c,c]),[2,3,1,0]))}function n(a,l,c,p){const u=s(a,l,c),h=Oe(e(l));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:u,bias:h}}function i(a,l){const c=Oe(e(a)),p=Oe(e(a));return t.push({paramPath:`${l}/weights`},{paramPath:`${l}/biases`}),{weights:c,biases:p}}function r(a,l,c,p){const u=n(a,l,c,`${p}/conv`),h=i(l,`${p}/scale`);return{conv:u,scale:h}}function o(a,l,c,p,u=!1){const h=r((u?.5:1)*a,l,c,`${p}/conv1`),d=r(a,l,c,`${p}/conv2`);return{conv1:h,conv2:d}}return{extractConvLayerParams:r,extractResidualLayerParams:o}}function NE(e){const{extractWeights:t,getRemainingWeights:s}=vs(e),n=[],{extractConvLayerParams:i,extractResidualLayerParams:r}=$G(t,n),o=i(4704,32,7,"conv32_down"),a=r(9216,32,3,"conv32_1"),l=r(9216,32,3,"conv32_2"),c=r(9216,32,3,"conv32_3"),p=r(36864,64,3,"conv64_down",!0),u=r(36864,64,3,"conv64_1"),h=r(36864,64,3,"conv64_2"),d=r(36864,64,3,"conv64_3"),m=r(147456,128,3,"conv128_down",!0),f=r(147456,128,3,"conv128_1"),g=r(147456,128,3,"conv128_2"),y=r(589824,256,3,"conv256_down",!0),w=r(589824,256,3,"conv256_1"),x=r(589824,256,3,"conv256_2"),T=r(589824,256,3,"conv256_down_out"),A=C(()=>se(ls(t(256*128),[128,256]),[1,0]));if(n.push({paramPath:"fc"}),s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);const _={conv32_down:o,conv32_1:a,conv32_2:l,conv32_3:c,conv64_down:p,conv64_1:u,conv64_2:h,conv64_3:d,conv128_down:m,conv128_1:f,conv128_2:g,conv256_down:y,conv256_1:w,conv256_2:x,conv256_down_out:T,fc:A};return{params:_,paramMappings:n}}function WG(e,t){const s=Vs(e,t);function n(o){const a=s(`${o}/scale/weights`,1),l=s(`${o}/scale/biases`,1);return{weights:a,biases:l}}function i(o){const a=s(`${o}/conv/filters`,4),l=s(`${o}/conv/bias`,1),c=n(o);return{conv:{filters:a,bias:l},scale:c}}function r(o){return{conv1:i(`${o}/conv1`),conv2:i(`${o}/conv2`)}}return{extractConvLayerParams:i,extractResidualLayerParams:r}}function CE(e){const t=[],{extractConvLayerParams:s,extractResidualLayerParams:n}=WG(e,t),i=s("conv32_down"),r=n("conv32_1"),o=n("conv32_2"),a=n("conv32_3"),l=n("conv64_down"),c=n("conv64_1"),p=n("conv64_2"),u=n("conv64_3"),h=n("conv128_down"),d=n("conv128_1"),m=n("conv128_2"),f=n("conv256_down"),g=n("conv256_1"),y=n("conv256_2"),w=n("conv256_down_out"),x=e.fc;if(t.push({originalPath:"fc",paramPath:"fc"}),!nL(x))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${x}`);const T={conv32_down:i,conv32_1:r,conv32_2:o,conv32_3:a,conv64_down:l,conv64_1:c,conv64_2:p,conv64_3:u,conv128_down:h,conv128_1:d,conv128_2:m,conv256_down:f,conv256_1:g,conv256_2:y,conv256_down_out:w,fc:x};return Is(e,t),{params:T,paramMappings:t}}function Kn(e,t){let s=AE(e,t.conv1);return s=gL(s,t.conv2),s=$(s,e),s=Fe(s),s}function ju(e,t){let s=kg(e,t.conv1);s=gL(s,t.conv2);let n=ds(e,2,2,"valid");const i=ye(n.shape),r=n.shape[3]!==s.shape[3],o=n.shape[1]!==s.shape[1]||n.shape[2]!==s.shape[2];if(o){const a=[...s.shape];a[1]=1;const l=ye(a);s=be([s,l],1);const c=[...s.shape];c[2]=1;const p=ye(c);s=be([s,p],2)}return n=r?be([n,i],3):n,s=$(n,s),s=Fe(s),s}class Wa extends Zt{constructor(){super("FaceRecognitionNet")}forwardInput(e){const{params:t}=this;if(!t)throw new Error("FaceRecognitionNet - load model before inference");return C(()=>{const s=G(e.toBatchTensor(150,!0),"float32"),n=[122.782,117.001,104.298],i=un(s,n).div(j(256));let r=kg(i,t.conv32_down);r=ft(r,3,2,"valid"),r=Kn(r,t.conv32_1),r=Kn(r,t.conv32_2),r=Kn(r,t.conv32_3),r=ju(r,t.conv64_down),r=Kn(r,t.conv64_1),r=Kn(r,t.conv64_2),r=Kn(r,t.conv64_3),r=ju(r,t.conv128_down),r=Kn(r,t.conv128_1),r=Kn(r,t.conv128_2),r=ju(r,t.conv256_down),r=Kn(r,t.conv256_1),r=Kn(r,t.conv256_2),r=ju(r,t.conv256_down_out);const o=r.mean([1,2]),a=Te(o,t.fc);return a})}async forward(e){return this.forwardInput(await nt(e))}async computeFaceDescriptor(e){const t=await nt(e),s=C(()=>qe(this.forwardInput(t))),n=await Promise.all(s.map(i=>i.data()));return s.forEach(i=>i.dispose()),t.isBatchInput?n:n[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeigthMap(e){return CE(e)}extractParams(e){return NE(e)}}function hS(e){const t=new Wa;return t.extractWeights(e),t}function Oc(e,t){const s={descriptor:t};return Object.assign({},e,s)}function uS(e){return typeof e.age=="number"}function Ec(e,t){const s={age:t};return Object.assign({},e,s)}function pS(e){return(e.gender===Jn.MALE||e.gender===Jn.FEMALE)&&uc(e.genderProbability)}function Cc(e,t,s){const n={gender:t,genderProbability:s};return Object.assign({},e,n)}function zG(e,t){function s(l,c){const p=ss(e(3*3*l),[3,3,l,1]),u=Oe(e(l)),h=Oe(e(l)),d=Oe(e(l)),m=Oe(e(l));return t.push({paramPath:`${c}/filters`},{paramPath:`${c}/batch_norm_scale`},{paramPath:`${c}/batch_norm_offset`},{paramPath:`${c}/batch_norm_mean`},{paramPath:`${c}/batch_norm_variance`}),{filters:p,batch_norm_scale:u,batch_norm_offset:h,batch_norm_mean:d,batch_norm_variance:m}}function n(l,c,p,u,h){const d=ss(e(l*c*p*p),[p,p,l,c]),m=Oe(e(c));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/${h?"batch_norm_offset":"bias"}`}),{filters:d,bias:m}}function i(l,c,p,u){const{filters:h,bias:d}=n(l,c,p,u,!0);return{filters:h,batch_norm_offset:d}}function r(l,c,p){const u=s(l,`${p}/depthwise_conv`),h=i(l,c,1,`${p}/pointwise_conv`);return{depthwise_conv:u,pointwise_conv:h}}function o(){const l=i(3,32,3,"mobilenetv1/conv_0"),c=r(32,64,"mobilenetv1/conv_1"),p=r(64,128,"mobilenetv1/conv_2"),u=r(128,128,"mobilenetv1/conv_3"),h=r(128,256,"mobilenetv1/conv_4"),d=r(256,256,"mobilenetv1/conv_5"),m=r(256,512,"mobilenetv1/conv_6"),f=r(512,512,"mobilenetv1/conv_7"),g=r(512,512,"mobilenetv1/conv_8"),y=r(512,512,"mobilenetv1/conv_9"),w=r(512,512,"mobilenetv1/conv_10"),x=r(512,512,"mobilenetv1/conv_11"),T=r(512,1024,"mobilenetv1/conv_12"),A=r(1024,1024,"mobilenetv1/conv_13");return{conv_0:l,conv_1:c,conv_2:p,conv_3:u,conv_4:h,conv_5:d,conv_6:m,conv_7:f,conv_8:g,conv_9:y,conv_10:w,conv_11:x,conv_12:T,conv_13:A}}function a(){const l=i(1024,256,1,"prediction_layer/conv_0"),c=i(256,512,3,"prediction_layer/conv_1"),p=i(512,128,1,"prediction_layer/conv_2"),u=i(128,256,3,"prediction_layer/conv_3"),h=i(256,128,1,"prediction_layer/conv_4"),d=i(128,256,3,"prediction_layer/conv_5"),m=i(256,64,1,"prediction_layer/conv_6"),f=i(64,128,3,"prediction_layer/conv_7"),g=n(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),y=n(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),w=n(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),x=n(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),T=n(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),A=n(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),_=n(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),E=n(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),F=n(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),D=n(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),M=n(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),P=n(128,18,1,"prediction_layer/box_predictor_5/class_predictor"),B={box_encoding_predictor:g,class_predictor:y},Y={box_encoding_predictor:w,class_predictor:x},q={box_encoding_predictor:T,class_predictor:A},K={box_encoding_predictor:_,class_predictor:E},H={box_encoding_predictor:F,class_predictor:D},Q={box_encoding_predictor:M,class_predictor:P};return{conv_0:l,conv_1:c,conv_2:p,conv_3:u,conv_4:h,conv_5:d,conv_6:m,conv_7:f,box_predictor_0:B,box_predictor_1:Y,box_predictor_2:q,box_predictor_3:K,box_predictor_4:H,box_predictor_5:Q}}return{extractMobilenetV1Params:o,extractPredictionLayerParams:a}}function RE(e){const t=[],{extractWeights:s,getRemainingWeights:n}=vs(e),{extractMobilenetV1Params:i,extractPredictionLayerParams:r}=zG(s,t),o=i(),a=r(),l=ll(s(5118*4),[1,5118,4]),c={extra_dim:l};if(t.push({paramPath:"output_layer/extra_dim"}),n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{params:{mobilenetv1:o,prediction_layer:a,output_layer:c},paramMappings:t}}function PG(e,t){const s=Vs(e,t);function n(c,p,u){const h=s(`${c}/Conv2d_${p}_pointwise/weights`,4,`${u}/filters`),d=s(`${c}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${u}/batch_norm_offset`);return{filters:h,batch_norm_offset:d}}function i(c){const p=`mobilenetv1/conv_${c}`,u=`MobilenetV1/Conv2d_${c}_depthwise`,h=`${p}/depthwise_conv`,d=`${p}/pointwise_conv`,m=s(`${u}/depthwise_weights`,4,`${h}/filters`),f=s(`${u}/BatchNorm/gamma`,1,`${h}/batch_norm_scale`),g=s(`${u}/BatchNorm/beta`,1,`${h}/batch_norm_offset`),y=s(`${u}/BatchNorm/moving_mean`,1,`${h}/batch_norm_mean`),w=s(`${u}/BatchNorm/moving_variance`,1,`${h}/batch_norm_variance`);return{depthwise_conv:{filters:m,batch_norm_scale:f,batch_norm_offset:g,batch_norm_mean:y,batch_norm_variance:w},pointwise_conv:n("MobilenetV1",c,d)}}function r(){return{conv_0:n("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:i(1),conv_2:i(2),conv_3:i(3),conv_4:i(4),conv_5:i(5),conv_6:i(6),conv_7:i(7),conv_8:i(8),conv_9:i(9),conv_10:i(10),conv_11:i(11),conv_12:i(12),conv_13:i(13)}}function o(c,p){const u=s(`${c}/weights`,4,`${p}/filters`),h=s(`${c}/biases`,1,`${p}/bias`);return{filters:u,bias:h}}function a(c){const p=o(`Prediction/BoxPredictor_${c}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${c}/box_encoding_predictor`),u=o(`Prediction/BoxPredictor_${c}/ClassPredictor`,`prediction_layer/box_predictor_${c}/class_predictor`);return{box_encoding_predictor:p,class_predictor:u}}function l(){return{conv_0:n("Prediction",0,"prediction_layer/conv_0"),conv_1:n("Prediction",1,"prediction_layer/conv_1"),conv_2:n("Prediction",2,"prediction_layer/conv_2"),conv_3:n("Prediction",3,"prediction_layer/conv_3"),conv_4:n("Prediction",4,"prediction_layer/conv_4"),conv_5:n("Prediction",5,"prediction_layer/conv_5"),conv_6:n("Prediction",6,"prediction_layer/conv_6"),conv_7:n("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:a(0),box_predictor_1:a(1),box_predictor_2:a(2),box_predictor_3:a(3),box_predictor_4:a(4),box_predictor_5:a(5)}}return{extractMobilenetV1Params:r,extractPredictionLayerParams:l}}function OE(e){const t=[],{extractMobilenetV1Params:s,extractPredictionLayerParams:n}=PG(e,t),i=e["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!tr(i))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${i}`);const r={mobilenetv1:s(),prediction_layer:n(),output_layer:{extra_dim:i}};return Is(e,t),{params:r,paramMappings:t}}function Dn(e,t,s){return C(()=>{let n=rt(e,t.filters,s,"same");return n=$(n,t.batch_norm_offset),xt(n,0,6)})}const BG=.0010000000474974513;function jG(e,t,s){return C(()=>{let n=fn(e,t.filters,s,"same");return n=Xs(n,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,BG),xt(n,0,6)})}function VG(e){return[2,4,6,12].some(t=>t===e)?[2,2]:[1,1]}function EE(e,t){return C(()=>{let s,n=Dn(e,t.conv_0,[2,2]);const i=[t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13];if(i.forEach((r,o)=>{const a=o+1,l=VG(a);n=jG(n,r.depthwise_conv,l),n=Dn(n,r.pointwise_conv,[1,1]),a===11&&(s=n)}),s===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:n,conv11:s}})}function _E(e,t,s,n,i){const r=e.shape[0],o=Math.min(s,r),a=t.map((p,u)=>({score:p,boxIndex:u})).filter(p=>p.score>i).sort((p,u)=>u.score-p.score),l=p=>p<=n?1:0,c=[];return a.forEach(p=>{if(c.length>=o)return;const u=p.score;for(let h=c.length-1;h>=0;--h){const d=GG(e,p.boxIndex,c[h]);if(d===0)continue;if(p.score*=l(d),p.score<=i)break}u===p.score&&c.push(p.boxIndex)}),c}function GG(e,t,s){const n=e.arraySync(),i=Math.min(n[t][0],n[t][2]),r=Math.min(n[t][1],n[t][3]),o=Math.max(n[t][0],n[t][2]),a=Math.max(n[t][1],n[t][3]),l=Math.min(n[s][0],n[s][2]),c=Math.min(n[s][1],n[s][3]),p=Math.max(n[s][0],n[s][2]),u=Math.max(n[s][1],n[s][3]),h=(o-i)*(a-r),d=(p-l)*(u-c);if(h<=0||d<=0)return 0;const m=Math.max(i,l),f=Math.max(r,c),g=Math.min(o,p),y=Math.min(a,u),w=Math.max(g-m,0)*Math.max(y-f,0);return w/(h+d-w)}function qG(e){const t=qe(se(e,[1,0])),s=[X(t[2],t[0]),X(t[3],t[1])],n=[$(t[0],Z(s[0],j(2))),$(t[1],Z(s[1],j(2)))];return{sizes:s,centers:n}}function HG(e,t){const{sizes:s,centers:n}=qG(e),i=qe(se(t,[1,0])),r=Z(R(ut(Z(i[2],j(5))),s[0]),j(2)),o=$(R(Z(i[0],j(10)),s[0]),n[0]),a=Z(R(ut(Z(i[3],j(5))),s[1]),j(2)),l=$(R(Z(i[1],j(10)),s[1]),n[1]);return se(Ge([X(o,r),X(l,a),$(o,r),$(l,a)]),[1,0])}function kE(e,t,s){return C(()=>{const n=e.shape[0];let i=HG(O($s(s.extra_dim,[n,1,1]),[-1,4]),O(e,[-1,4]));i=O(i,[n,i.shape[0]/n,4]);const r=os(he(t,[0,0,1],[-1,-1,-1]));let o=he(r,[0,0,0],[-1,-1,1]);o=O(o,[n,o.shape[1]]);const a=qe(i),l=qe(o);return{boxes:a,scores:l}})}function Ea(e,t){return C(()=>{const s=e.shape[0],n=O(Oa(e,t.box_encoding_predictor),[s,-1,1,4]),i=O(Oa(e,t.class_predictor),[s,-1,3]);return{boxPredictionEncoding:n,classPrediction:i}})}function DE(e,t,s){return C(()=>{const n=Dn(e,s.conv_0,[1,1]),i=Dn(n,s.conv_1,[2,2]),r=Dn(i,s.conv_2,[1,1]),o=Dn(r,s.conv_3,[2,2]),a=Dn(o,s.conv_4,[1,1]),l=Dn(a,s.conv_5,[2,2]),c=Dn(l,s.conv_6,[1,1]),p=Dn(c,s.conv_7,[2,2]),u=Ea(t,s.box_predictor_0),h=Ea(e,s.box_predictor_1),d=Ea(i,s.box_predictor_2),m=Ea(o,s.box_predictor_3),f=Ea(l,s.box_predictor_4),g=Ea(p,s.box_predictor_5),y=be([u.boxPredictionEncoding,h.boxPredictionEncoding,d.boxPredictionEncoding,m.boxPredictionEncoding,f.boxPredictionEncoding,g.boxPredictionEncoding],1),w=be([u.classPrediction,h.classPrediction,d.classPrediction,m.classPrediction,f.classPrediction,g.classPrediction],1);return{boxPredictions:y,classPredictions:w}})}class pn{constructor({minConfidence:e,maxResults:t}={}){if(this._name="SsdMobilenetv1Options",this._minConfidence=e||.5,this._maxResults=t||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}}class To extends Zt{constructor(){super("SsdMobilenetv1")}forwardInput(e){const{params:t}=this;if(!t)throw new Error("SsdMobilenetv1 - load model before inference");return C(()=>{const s=G(e.toBatchTensor(512,!1),"float32"),n=X(R(s,j(.007843137718737125)),j(1)),i=EE(n,t.mobilenetv1),{boxPredictions:r,classPredictions:o}=DE(i.out,i.conv11,t.prediction_layer);return kE(r,o,t.output_layer)})}async forward(e){return this.forwardInput(await nt(e))}async locateFaces(e,t={}){const{maxResults:s,minConfidence:n}=new pn(t),i=await nt(e),{boxes:r,scores:o}=this.forwardInput(i),a=r[0],l=o[0];for(let w=1;w{const[x,T]=[Math.max(0,g[w][0]),Math.min(1,g[w][2])].map(E=>E*f),[A,_]=[Math.max(0,g[w][1]),Math.min(1,g[w][3])].map(E=>E*m);return new ht(c[w],new ja(A,x,_-A,T-x),{height:i.getInputHeight(0),width:i.getInputWidth(0)})});return a.dispose(),l.dispose(),y}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeigthMap(e){return OE(e)}extractParams(e){return RE(e)}}function jg(e){const t=new To;return t.extractWeights(e),t}function PL(e){return jg(e)}class BL extends To{}const FE=.4,ME=[new _e(.738768,.874946),new _e(2.42204,2.65704),new _e(4.30971,7.04493),new _e(10.246,4.59428),new _e(12.6868,11.8741)],UE=[new _e(1.603231,2.094468),new _e(6.041143,7.080126),new _e(2.882459,3.518061),new _e(4.266906,5.178857),new _e(9.041765,10.66308)],$E=[117.001,114.697,97.404],WE="tiny_yolov2_model",zE="tiny_yolov2_separable_conv_model";const Dg=e=>typeof e=="number";function eh(e){if(!e)throw new Error(`invalid config: ${e}`);if(typeof e.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${e.withSeparableConvs}`);if(!Dg(e.iouThreshold)||e.iouThreshold<0||e.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${e.iouThreshold}`);if(!Array.isArray(e.classes)||!e.classes.length||!e.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(e.classes)}`);if(!Array.isArray(e.anchors)||!e.anchors.length||!e.anchors.map(t=>t||{}).every(t=>Dg(t.x)&&Dg(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(e.anchors)}`);if(e.meanRgb&&(!Array.isArray(e.meanRgb)||e.meanRgb.length!==3||!e.meanRgb.every(Dg)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(e.meanRgb)}`)}function gc(e){return C(()=>{const t=R(e,j(.10000000149011612));return $(Fe(X(e,t)),t)})}function sr(e,t){return C(()=>{let s=Pt(e,[[0,0],[1,1],[1,1],[0,0]]);return s=rt(s,t.conv.filters,[1,1],"valid"),s=X(s,t.bn.sub),s=R(s,t.bn.truediv),s=$(s,t.conv.bias),gc(s)})}function nr(e,t){return C(()=>{let s=Pt(e,[[0,0],[1,1],[1,1],[0,0]]);return s=eo(s,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),s=$(s,t.bias),gc(s)})}function YG(e,t){const s=dc(e,t);function n(o,a){const l=Oe(e(o)),c=Oe(e(o));return t.push({paramPath:`${a}/sub`},{paramPath:`${a}/truediv`}),{sub:l,truediv:c}}function i(o,a,l){const c=s(o,a,3,`${l}/conv`),p=n(a,`${l}/bn`);return{conv:c,bn:p}}const r=mc(e,t);return{extractConvParams:s,extractConvWithBatchNormParams:i,extractSeparableConvParams:r}}function PE(e,t,s,n){const{extractWeights:i,getRemainingWeights:r}=vs(e),o=[],{extractConvParams:a,extractConvWithBatchNormParams:l,extractSeparableConvParams:c}=YG(i,o);let p;if(t.withSeparableConvs){const[u,h,d,m,f,g,y,w,x]=n,T=t.isFirstLayerConv2d?a(u,h,3,"conv0"):c(u,h,"conv0"),A=c(h,d,"conv1"),_=c(d,m,"conv2"),E=c(m,f,"conv3"),F=c(f,g,"conv4"),D=c(g,y,"conv5"),M=w?c(y,w,"conv6"):void 0,P=x?c(w,x,"conv7"):void 0,B=a(x||w||y,5*s,1,"conv8");p={conv0:T,conv1:A,conv2:_,conv3:E,conv4:F,conv5:D,conv6:M,conv7:P,conv8:B}}else{const[u,h,d,m,f,g,y,w,x]=n,T=l(u,h,"conv0"),A=l(h,d,"conv1"),_=l(d,m,"conv2"),E=l(m,f,"conv3"),F=l(f,g,"conv4"),D=l(g,y,"conv5"),M=l(y,w,"conv6"),P=l(w,x,"conv7"),B=a(x,5*s,1,"conv8");p={conv0:T,conv1:A,conv2:_,conv3:E,conv4:F,conv5:D,conv6:M,conv7:P,conv8:B}}if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{params:p,paramMappings:o}}function KG(e,t){const s=Vs(e,t);function n(a){const l=s(`${a}/sub`,1),c=s(`${a}/truediv`,1);return{sub:l,truediv:c}}function i(a){const l=s(`${a}/filters`,4),c=s(`${a}/bias`,1);return{filters:l,bias:c}}function r(a){const l=i(`${a}/conv`),c=n(`${a}/bn`);return{conv:l,bn:c}}const o=fc(s);return{extractConvParams:i,extractConvWithBatchNormParams:r,extractSeparableConvParams:o}}function BE(e,t){const s=[],{extractConvParams:n,extractConvWithBatchNormParams:i,extractSeparableConvParams:r}=KG(e,s);let o;if(t.withSeparableConvs){const a=t.filterSizes&&t.filterSizes.length||9;o={conv0:t.isFirstLayerConv2d?n("conv0"):r("conv0"),conv1:r("conv1"),conv2:r("conv2"),conv3:r("conv3"),conv4:r("conv4"),conv5:r("conv5"),conv6:a>7?r("conv6"):void 0,conv7:a>8?r("conv7"):void 0,conv8:n("conv8")}}else o={conv0:i("conv0"),conv1:i("conv1"),conv2:i("conv2"),conv3:i("conv3"),conv4:i("conv4"),conv5:i("conv5"),conv6:i("conv6"),conv7:i("conv7"),conv8:n("conv8")};return Is(e,s),{params:o,paramMappings:s}}var th;(function(e){e[e.XS=224]="XS",e[e.SM=320]="SM",e[e.MD=416]="MD",e[e.LG=608]="LG"})(th||(th={}));class Xn{constructor({inputSize:e,scoreThreshold:t}={}){if(this._name="TinyYolov2Options",this._inputSize=e||416,this._scoreThreshold=t||.5,typeof this._inputSize!="number"||this._inputSize%32!==0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}}class yc extends Zt{constructor(e){super("TinyYolov2");eh(e),this._config=e}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(e,t){let s=sr(e,t.conv0);return s=ft(s,[2,2],[2,2],"same"),s=sr(s,t.conv1),s=ft(s,[2,2],[2,2],"same"),s=sr(s,t.conv2),s=ft(s,[2,2],[2,2],"same"),s=sr(s,t.conv3),s=ft(s,[2,2],[2,2],"same"),s=sr(s,t.conv4),s=ft(s,[2,2],[2,2],"same"),s=sr(s,t.conv5),s=ft(s,[2,2],[1,1],"same"),s=sr(s,t.conv6),s=sr(s,t.conv7),Oa(s,t.conv8,"valid",!1)}runMobilenet(e,t){let s=this.config.isFirstLayerConv2d?gc(Oa(e,t.conv0,"valid",!1)):nr(e,t.conv0);return s=ft(s,[2,2],[2,2],"same"),s=nr(s,t.conv1),s=ft(s,[2,2],[2,2],"same"),s=nr(s,t.conv2),s=ft(s,[2,2],[2,2],"same"),s=nr(s,t.conv3),s=ft(s,[2,2],[2,2],"same"),s=nr(s,t.conv4),s=ft(s,[2,2],[2,2],"same"),s=nr(s,t.conv5),s=ft(s,[2,2],[1,1],"same"),s=t.conv6?nr(s,t.conv6):s,s=t.conv7?nr(s,t.conv7):s,Oa(s,t.conv8,"valid",!1)}forwardInput(e,t){const{params:s}=this;if(!s)throw new Error("TinyYolov2 - load model before inference");return C(()=>{let n=G(e.toBatchTensor(t,!1),"float32");return n=this.config.meanRgb?un(n,this.config.meanRgb):n,n=n.div(j(256)),this.config.withSeparableConvs?this.runMobilenet(n,s):this.runTinyYolov2(n,s)})}async forward(e,t){return await this.forwardInput(await nt(e),t)}async detect(e,t={}){const{inputSize:s,scoreThreshold:n}=new Xn(t),i=await nt(e),r=await this.forwardInput(i,s),o=C(()=>qe(r)[0].expandDims()),a={width:i.getInputWidth(0),height:i.getInputHeight(0)},l=await this.extractBoxes(o,i.getReshapedInputDimensions(0),n);r.dispose(),o.dispose();const c=l.map(f=>f.box),p=l.map(f=>f.score),u=l.map(f=>f.classScore),h=l.map(f=>this.config.classes[f.label]),d=ih(c.map(f=>f.rescale(s)),p,this.config.iouThreshold,!0),m=d.map(f=>new Oo(p[f],u[f],h[f],c[f],a));return m}getDefaultModelName(){return""}extractParamsFromWeigthMap(e){return BE(e,this.config)}extractParams(e){const t=this.config.filterSizes||yc.DEFAULT_FILTER_SIZES,s=t?t.length:void 0;if(s!==7&&s!==8&&s!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${s} filterSizes in config`);return PE(e,this.config,this.boxEncodingSize,t)}async extractBoxes(e,t,s){const{width:n,height:i}=t,r=Math.max(n,i),o=r/n,a=r/i,l=e.shape[1],c=this.config.anchors.length,[p,u,h]=C(()=>{const g=e.reshape([l,l,c,this.boxEncodingSize]),y=g.slice([0,0,0,0],[l,l,c,4]),w=g.slice([0,0,0,4],[l,l,c,1]),x=this.withClassScores?ts(g.slice([0,0,0,5],[l,l,c,this.config.classes.length]),3):j(0);return[y,w,x]}),d=[],m=await u.array(),f=await p.array();for(let g=0;gs){const T=(y+$a(f[g][y][w][0]))/l*o,A=(g+$a(f[g][y][w][1]))/l*a,_=Math.exp(f[g][y][w][2])*this.config.anchors[w].x/l*o,E=Math.exp(f[g][y][w][3])*this.config.anchors[w].y/l*a,F=T-_/2,D=A-E/2,M={row:g,col:y,anchor:w},{classScore:P,label:B}=this.withClassScores?await this.extractPredictedClass(h,M):{classScore:1,label:0};d.push({box:new Ga(F,D,F+_,D+E),score:x,classScore:x*P,label:B,...M})}}return p.dispose(),u.dispose(),h.dispose(),d}async extractPredictedClass(e,t){const{row:s,col:n,anchor:i}=t,r=await e.array();return Array(this.config.classes.length).fill(0).map((o,a)=>r[s][n][i][a]).map((o,a)=>({classScore:o,label:a})).reduce((o,a)=>o.classScore>a.classScore?o:a)}}yc.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];class Ma extends yc{constructor(e=!0){const t=Object.assign({},{withSeparableConvs:e,iouThreshold:FE,classes:["face"]},e?{anchors:UE,meanRgb:$E}:{anchors:ME,withClassScores:!0});super(t)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(e,t){const s=await this.detect(e,t);return s.map(n=>new ht(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?zE:WE}extractParamsFromWeigthMap(e){return super.extractParamsFromWeigthMap(e)}}function WL(e,t=!0){const s=new Ma(t);return s.extractWeights(e),s}class sh extends Xn{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}}class hn{async then(e){return e(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}}async function _a(e,t,s,n,i=({alignedRect:r})=>r){const r=e.map(l=>or(l)?i(l):l.detection),o=n||(t instanceof me?await Co(t,r):await No(t,r)),a=await s(o);return o.forEach(l=>l instanceof me&&l.dispose()),a}async function bc(e,t,s,n,i){return _a([e],t,async r=>s(r[0]),n,i)}const jE=.4,VE=[new _e(1.603231,2.094468),new _e(6.041143,7.080126),new _e(2.882459,3.518061),new _e(4.266906,5.178857),new _e(9.041765,10.66308)],GE=[117.001,114.697,97.404];class Ua extends yc{constructor(){const e={withSeparableConvs:!0,iouThreshold:jE,classes:["face"],anchors:VE,meanRgb:GE,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(e)}get anchors(){return this.config.anchors}async locateFaces(e,t){const s=await this.detect(e,t);return s.map(n=>new ht(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeigthMap(e){return super.extractParamsFromWeigthMap(e)}}const Be={ssdMobilenetv1:new To,tinyFaceDetector:new Ua,tinyYolov2:new Ma,faceLandmark68Net:new za,faceLandmark68TinyNet:new mh,faceRecognitionNet:new Wa,faceExpressionNet:new gh,ageGenderNet:new vh},Gg=(e,t)=>Be.ssdMobilenetv1.locateFaces(e,t),GL=(e,t)=>Be.tinyFaceDetector.locateFaces(e,t),qL=(e,t)=>Be.tinyYolov2.locateFaces(e,t),qg=e=>Be.faceLandmark68Net.detectLandmarks(e),HL=e=>Be.faceLandmark68TinyNet.detectLandmarks(e),YL=e=>Be.faceRecognitionNet.computeFaceDescriptor(e),KL=e=>Be.faceExpressionNet.predictExpressions(e),XL=e=>Be.ageGenderNet.predictAgeAndGender(e),Hg=e=>Be.ssdMobilenetv1.load(e),JL=e=>Be.tinyFaceDetector.load(e),ZL=e=>Be.tinyYolov2.load(e),QL=e=>Be.faceLandmark68Net.load(e),eS=e=>Be.faceLandmark68TinyNet.load(e),tS=e=>Be.faceRecognitionNet.load(e),sS=e=>Be.faceExpressionNet.load(e),nS=e=>Be.ageGenderNet.load(e),iS=Hg,rS=Gg,oS=qg;class qE extends hn{constructor(e,t,s){super();this.parentTask=e,this.input=t,this.extractedFaces=s}}class qu extends qE{async run(){const e=await this.parentTask,t=await _a(e,this.input,async s=>await Promise.all(s.map(n=>Be.faceExpressionNet.predictExpressions(n))),this.extractedFaces);return e.map((s,n)=>Rc(s,t[n]))}withAgeAndGender(){return new Vu(this,this.input)}}class Hu extends qE{async run(){const e=await this.parentTask;if(!e)return;const t=await bc(e,this.input,s=>Be.faceExpressionNet.predictExpressions(s),this.extractedFaces);return Rc(e,t)}withAgeAndGender(){return new Gu(this,this.input)}}class Lc extends qu{withAgeAndGender(){return new wc(this,this.input)}withFaceDescriptors(){return new ir(this,this.input)}}class Sc extends Hu{withAgeAndGender(){return new xc(this,this.input)}withFaceDescriptor(){return new rr(this,this.input)}}class HE extends hn{constructor(e,t,s){super();this.parentTask=e,this.input=t,this.extractedFaces=s}}class Vu extends HE{async run(){const e=await this.parentTask,t=await _a(e,this.input,async s=>await Promise.all(s.map(n=>Be.ageGenderNet.predictAgeAndGender(n))),this.extractedFaces);return e.map((s,n)=>{const{age:i,gender:r,genderProbability:o}=t[n];return Ec(Cc(s,r,o),i)})}withFaceExpressions(){return new qu(this,this.input)}}class Gu extends HE{async run(){const e=await this.parentTask;if(!e)return;const{age:t,gender:s,genderProbability:n}=await bc(e,this.input,i=>Be.ageGenderNet.predictAgeAndGender(i),this.extractedFaces);return Ec(Cc(e,s,n),t)}withFaceExpressions(){return new Hu(this,this.input)}}class wc extends Vu{withFaceExpressions(){return new Lc(this,this.input)}withFaceDescriptors(){return new ir(this,this.input)}}class xc extends Gu{withFaceExpressions(){return new Sc(this,this.input)}withFaceDescriptor(){return new rr(this,this.input)}}class hh extends hn{constructor(e,t){super();this.parentTask=e,this.input=t}}class ir extends hh{async run(){const e=await this.parentTask,t=await _a(e,this.input,s=>Promise.all(s.map(n=>Be.faceRecognitionNet.computeFaceDescriptor(n))),null,s=>s.landmarks.align(null,{useDlibAlignment:!0}));return t.map((s,n)=>Oc(e[n],s))}withFaceExpressions(){return new Lc(this,this.input)}withAgeAndGender(){return new wc(this,this.input)}}class rr extends hh{async run(){const e=await this.parentTask;if(!e)return;const t=await bc(e,this.input,s=>Be.faceRecognitionNet.computeFaceDescriptor(s),null,s=>s.landmarks.align(null,{useDlibAlignment:!0}));return Oc(e,t)}withFaceExpressions(){return new Sc(this,this.input)}withAgeAndGender(){return new xc(this,this.input)}}class ch extends hn{constructor(e,t,s){super();this.parentTask=e,this.input=t,this.useTinyLandmarkNet=s}get landmarkNet(){return this.useTinyLandmarkNet?Be.faceLandmark68TinyNet:Be.faceLandmark68Net}}class ph extends ch{async run(){const e=await this.parentTask,t=e.map(i=>i.detection),s=this.input instanceof me?await Co(this.input,t):await No(this.input,t),n=await Promise.all(s.map(i=>this.landmarkNet.detectLandmarks(i)));return s.forEach(i=>i instanceof me&&i.dispose()),e.map((i,r)=>Ao(i,n[r]))}withFaceExpressions(){return new Lc(this,this.input)}withAgeAndGender(){return new wc(this,this.input)}withFaceDescriptors(){return new ir(this,this.input)}}class uh extends ch{async run(){const e=await this.parentTask;if(!e)return;const{detection:t}=e,s=this.input instanceof me?await Co(this.input,[t]):await No(this.input,[t]),n=await this.landmarkNet.detectLandmarks(s[0]);return s.forEach(i=>i instanceof me&&i.dispose()),Ao(e,n)}withFaceExpressions(){return new Sc(this,this.input)}withAgeAndGender(){return new xc(this,this.input)}withFaceDescriptor(){return new rr(this,this.input)}}class ah extends hn{constructor(e,t=new pn){super();this.input=e,this.options=t}}class Nc extends ah{async run(){const{input:e,options:t}=this,s=t instanceof sh?n=>Be.tinyFaceDetector.locateFaces(n,t):t instanceof pn?n=>Be.ssdMobilenetv1.locateFaces(n,t):t instanceof Xn?n=>Be.tinyYolov2.locateFaces(n,t):null;if(!s)throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | MtcnnOptions | TinyYolov2Options");return s(e)}runAndExtendWithFaceDetections(){return new Promise(async e=>{const t=await this.run();return e(t.map(s=>ar({},s)))})}withFaceLandmarks(e=!1){return new ph(this.runAndExtendWithFaceDetections(),this.input,e)}withFaceExpressions(){return new qu(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Vu(this.runAndExtendWithFaceDetections(),this.input)}}class lh extends ah{async run(){const e=await new Nc(this.input,this.options);let t=e[0];return e.forEach(s=>{s.score>t.score&&(t=s)}),t}runAndExtendWithFaceDetection(){return new Promise(async e=>{const t=await this.run();return e(t?ar({},t):void 0)})}withFaceLandmarks(e=!1){return new uh(this.runAndExtendWithFaceDetection(),this.input,e)}withFaceExpressions(){return new Hu(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Gu(this.runAndExtendWithFaceDetection(),this.input)}}function aS(e,t=new pn){return new lh(e,t)}function Ac(e,t=new pn){return new Nc(e,t)}async function Yg(e,t){return console.warn("allFacesSsdMobilenetv1 is deprecated and will be removed soon, use the high level api instead"),await Ac(e,new pn(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function lS(e,t={}){return console.warn("allFacesTinyYolov2 is deprecated and will be removed soon, use the high level api instead"),await Ac(e,new Xn(t)).withFaceLandmarks().withFaceDescriptors()}const cS=Yg;function yh(e,t){if(e.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");const s=Array.from(e),n=Array.from(t);return Math.sqrt(s.map((i,r)=>i-n[r]).reduce((i,r)=>i+Math.pow(r,2),0))}class Kg{constructor(e,t=.6){this._distanceThreshold=t;const s=Array.isArray(e)?e:[e];if(!s.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let n=1;const i=()=>`person ${n++}`;this._labeledDescriptors=s.map(r=>{if(r instanceof hr)return r;if(r instanceof Float32Array)return new hr(i(),[r]);if(r.descriptor&&r.descriptor instanceof Float32Array)return new hr(i(),[r.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(e,t){return t.map(s=>yh(s,e)).reduce((s,n)=>s+n,0)/(t.length||1)}matchDescriptor(e){return this.labeledDescriptors.map(({descriptors:t,label:s})=>new Dc(s,this.computeMeanDistance(e,t))).reduce((t,s)=>t.distancee.toJSON())}}static fromJSON(e){const t=e.labeledDescriptors.map(s=>hr.fromJSON(s));return new Kg(t,e.distanceThreshold)}}function zL(e){const t=new Ua;return t.extractWeights(e),t}function Vg(e,t){const{width:s,height:n}=new Ts(t.width,t.height);if(s<=0||n<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:s,height:n})}`);if(Array.isArray(e))return e.map(i=>Vg(i,{width:s,height:n}));if(or(e)){const i=e.detection.forSize(s,n),r=e.unshiftedLandmarks.forSize(i.box.width,i.box.height);return Ao(ar(e,i),r)}return Mn(e)?ar(e,e.detection.forSize(s,n)):e instanceof Hs||e instanceof ht?e.forSize(s,n):e}var UL="0.6.2";return wS();})(); /** * @license * Copyright 2017 Google LLC. All Rights Reserved. diff --git a/dist/face-api.js.map b/dist/face-api.js.map index 23bba94..dbea777 100644 --- a/dist/face-api.js.map +++ b/dist/face-api.js.map @@ -1,7 +1,7 @@ { "version": 3, - "sources": ["node_modules/seedrandom/lib/alea.js", "node_modules/seedrandom/lib/xor128.js", "node_modules/seedrandom/lib/xorwow.js", "node_modules/seedrandom/lib/xorshift7.js", "node_modules/seedrandom/lib/xor4096.js", "node_modules/seedrandom/lib/tychei.js", "disabled:crypto", "node_modules/seedrandom/seedrandom.js", "node_modules/seedrandom/index.js", "disabled:string_decoder", "disabled:fs", "build/src/env/../../../src/env/isNodejs.ts", "build/src/../../src/index.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/backend.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/environment.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/global_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/kernel_names.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/kernel_registry.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/profiler.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tape.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tensor_format.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tensor.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/types.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tensor_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/engine.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/device_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/flags.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tensor_util_env.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/operation.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/complex.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor_ops_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/types.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/io_utils.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/router_registry.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/model_management.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/buffer.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/cast.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/clone.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/print.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/base_side_effects.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/browser_files.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/progress.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/weights_loader.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/http.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/passthrough.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/io.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reshape.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/mat_mul.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/one_hot.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/transpose.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/confusion_matrix.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/math.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/browser.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/gather_nd_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/scatter_nd_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/serialization.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/test_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/version.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/globals.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/add.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/floorDiv.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/div.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/mul.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/abs.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/acos.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/acosh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/add_n.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/axis_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/all.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/any.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/arg_max.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/arg_min.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/asin.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/asinh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/atan.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/atan2.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/atanh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/avg_pool.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/avg_pool_3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sigmoid.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tanh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/basic_lstm_cell.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batch_to_space_nd.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/broadcast_to.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/ceil.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/clip_by_value.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv2d_backprop_input.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv2d_transpose.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv3d_backprop_input.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv3d_transpose.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/cos.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/cosh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/cumsum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/depth_to_space.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/depthwise_conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/diag.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/dilation2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/broadcast_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/equal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/where.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/zeros_like.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/div_no_nan.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/dot.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/elu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/erf.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/exp.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/expand_dims.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/expm1.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tile.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/eye.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fill.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/floor.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reduce_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/segment_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/gather.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/greater.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/greater_equal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/imag.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/is_finite.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/is_inf.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/is_nan.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/maximum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/scalar.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/leaky_relu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/less.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/less_equal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/linspace.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/local_response_normalization.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log1p.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/gradients.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/neg.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/softplus.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log_sigmoid.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sub.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log_softmax.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log_sum_exp.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/logical_and.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/logical_not.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/logical_or.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/logical_xor.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool_3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool_with_argmax.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/zeros.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/ones.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/mean.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/min.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/minimum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/mod.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/square.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/moments.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/multi_rnn_cell.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/multinomial.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/not_equal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/real.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/ones_like.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/outer_product.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/space_to_batch_nd.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pool.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pow.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/prelu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/prod.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rand.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rand_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/random_gamma.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/random_normal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/random_uniform.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/range.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reciprocal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/relu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/relu6.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse_1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse_2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse_3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse_4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/round.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rsqrt.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/selu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/separable_conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/setdiff1d_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sign.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sin.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sinh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/softmax.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/spectral/../../../src/ops/spectral/fft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/spectral/../../../src/ops/spectral/ifft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/spectral/../../../src/ops/spectral/irfft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/split_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/split.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/spectral/../../../src/ops/spectral/rfft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sqrt.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/squared_difference.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/squeeze.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/stack.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/step.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/strided_slice.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tan.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor5d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor6d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/topk.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/truncated_normal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/unique.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/unsorted_segment_sum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/unstack.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/variable.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/where_impl.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/where_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/boolean_mask.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/compare.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/binary_ops.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/norm.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/moving_average.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/scatter_nd.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sparse_to_dense_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sparse_to_dense.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/gather_nd.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/dropout_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/dropout.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/signal_ops_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/in_top_k.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv2d_backprop_filter.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fused_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/fused/../../../src/ops/fused/conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/depthwise_conv2d_native_backprop_filter.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/depthwise_conv2d_native_backprop_input.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/fused/../../../src/ops/fused/depthwise_conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/fused/../../../src/ops/fused/mat_mul.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fused_ops.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/signal/../../../src/ops/signal/hamming_window.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/signal/../../../src/ops/signal/hann_window.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/signal/../../../src/ops/signal/frame.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/signal/../../../src/ops/signal/stft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/image/../../../src/ops/image/crop_and_resize.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/image/../../../src/ops/image/flip_left_right.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/image/../../../src/ops/image/rotate_with_offset.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/nonmax_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/image/../../../src/ops/image/non_max_suppression.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/array_util.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/non_max_suppression_impl.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/image/../../../src/ops/image/non_max_suppression_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/image/../../../src/ops/image/non_max_suppression_with_score.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/image/../../../src/ops/image/non_max_suppression_with_score_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/image/../../../src/ops/image/non_max_suppression_padded.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/image/../../../src/ops/image/non_max_suppression_padded_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/image/../../../src/ops/image/resize_bilinear.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/image/../../../src/ops/image/resize_nearest_neighbor.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/linalg/../../../src/ops/linalg/band_part.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/linalg/../../../src/ops/linalg/gram_schmidt.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/linalg/../../../src/ops/linalg/qr.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/loss_ops_utils.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/losses/../../../src/ops/losses/compute_weighted_loss.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/losses/../../../src/ops/losses/absolute_difference.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/losses/../../../src/ops/losses/cosine_distance.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/losses/../../../src/ops/losses/hinge_loss.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/losses/../../../src/ops/losses/huber_loss.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/losses/../../../src/ops/losses/log_loss.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/losses/../../../src/ops/losses/mean_squared_error.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/losses/../../../src/ops/losses/sigmoid_cross_entropy.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/losses/../../../src/ops/losses/softmax_cross_entropy.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/ops.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/adadelta_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/adagrad_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/adam_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/adamax_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/sgd_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/momentum_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/rmsprop_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/optimizer_constructors.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/train.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/browser_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rotate_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/array_ops_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/selu_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/erf_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/log.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/complex_util.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/backend_util.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/split_shared.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/tile_impl.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/topk_impl.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/kernel_impls.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Abs_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Acos_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Acosh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Add_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/AddN_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ArgMax_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ArgMin_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Asin_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Asinh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Atan2_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Atan_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Atanh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/avg_pool_3d_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/AvgPool3D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/avg_pool_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/AvgPool_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/BatchMatMul_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/BatchToSpaceND_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/BroadcastTo_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Cast_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Ceil_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ClipByValue_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Concat_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Conv2D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Conv2DBackpropInput_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv3d_backprop_filter.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Conv3D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Cos_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Cosh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Cumsum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/DepthwiseConv2dNative_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Dilation2D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Div_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Elu_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Erf_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Exp_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Expm1_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Floor_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/FloorDiv_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/FusedBatchNorm_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/GatherV2_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/GreaterEqual_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Identity_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/IsFinite_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/IsInf_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/IsNan_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Log1p_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Log_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/LogSoftmax_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/local_response_normalization_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/LRN_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/min_max_grad_util.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Max_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Maximum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool_3d_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/MaxPool3D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/MaxPool_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Min_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Minimum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Mod_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Multiply_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Negate_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/OneHot_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/OnesLike_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/PadV2_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Pow_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Prelu_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Reciprocal_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Relu6_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Relu_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Reshape_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ResizeBilinear_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ResizeNearestNeighbor_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Reverse_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Round_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Rsqrt_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/SelectV2_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Selu_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sigmoid_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sign_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sin_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sinh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Slice_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Softmax_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Softplus_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/SpaceToBatchND_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/SplitV_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sqrt_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Square_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/SquaredDifference_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Step_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sub_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Tan_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Tanh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Tile_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Transpose_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Unpack_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/UnsortedSegmentSum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ZerosLike_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/register_all_gradients.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/index.ts", "node_modules/@tensorflow/tfjs-layers/dist/backend/../../src/backend/common.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/errors.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/generic_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/constraints.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports_constraints.ts", "node_modules/@tensorflow/tfjs-layers/dist/keras_format/../../src/keras_format/common.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/common.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/math_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/backend/../../src/backend/tfjs_backend.ts", "node_modules/@tensorflow/tfjs-layers/dist/keras_format/../../src/keras_format/initializer_config.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/initializers.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports_initializers.ts", "node_modules/@tensorflow/tfjs-layers/dist/backend/../../src/backend/state.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/types_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/variable_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/variables.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/topology.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/input_layer.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/logs.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/base_callbacks.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/serialization.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/losses.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/metrics.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/optimizers.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/user_defined_metadata.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/layer_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/serialization_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/version.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/executor.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/container.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/training_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/training_dataset.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/training_tensors.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/training.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/models.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/activations.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/regularizers.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/advanced_activations.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/conv_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/convolutional.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/convolutional_depthwise.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/recurrent.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/convolutional_recurrent.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/core.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/embeddings.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/merge.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/noise.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/normalization.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/padding.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/pooling.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/wrappers.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports_layers.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports_metrics.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports_models.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports_regularizers.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/callbacks.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/index.ts", "node_modules/@tensorflow/tfjs-converter/dist/data/../../src/data/compiled_api.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/custom_op/../../../src/operations/custom_op/register.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/utils.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/arithmetic.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/basic_math.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/control.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/convolution.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/creation.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/dynamic.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/evaluation.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/graph.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/image.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/logical.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/matrices.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/normalization.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/reduction.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/slice_join.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/spectral.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/transformation.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/../../src/operations/operation_mapper.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/custom_op/../../../src/operations/custom_op/node_value_impl.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/arithmetic_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/basic_math_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/tensor_utils.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/tensor_array.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/tensor_list.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/control_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/convolution_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/creation_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/dynamic_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/evaluation_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/graph_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/image_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/logical_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/matrices_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/normalization_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/reduction_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/slice_join_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/spectral_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/transformation_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/../../src/operations/operation_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/execution_context.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/model_analysis.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/graph_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/graph_model.ts", "node_modules/@tensorflow/tfjs-converter/dist/../src/version.ts", "node_modules/@tensorflow/tfjs-converter/dist/../src/index.ts", "node_modules/@tensorflow/tfjs-data/dist/util/../../src/util/deep_map.ts", "node_modules/@tensorflow/tfjs-data/dist/util/../../src/util/deep_clone.ts", "node_modules/@tensorflow/tfjs-data/dist/util/../../src/util/ring_buffer.ts", "node_modules/@tensorflow/tfjs-data/dist/util/../../src/util/growing_ring_buffer.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/lazy_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/../src/dataset.ts", "node_modules/@tensorflow/tfjs-data/dist/datasets/../../src/datasets/text_line_dataset.ts", "node_modules/@tensorflow/tfjs-data/dist/datasets/../../src/datasets/csv_dataset.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/microphone_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/webcam_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/../src/datasource.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/string_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/byte_chunk_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/file_chunk_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/url_chunk_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/util/../../src/util/source_util.ts", "node_modules/@tensorflow/tfjs-data/dist/sources/../../src/sources/file_data_source.ts", "node_modules/@tensorflow/tfjs-data/dist/sources/../../src/sources/url_data_source.ts", "node_modules/@tensorflow/tfjs-data/dist/../src/readers.ts", "node_modules/@tensorflow/tfjs-data/dist/../src/version.ts", "node_modules/@tensorflow/tfjs-data/dist/../src/index.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/cpu_util.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/backend_cpu.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Abs.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/../../src/utils/binary_impl.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Complex.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Identity.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Real.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Cast.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/../../src/utils/kernel_utils.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Add.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/../../src/utils/unary_impl.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/../../src/utils/unary_utils.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Ceil.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Exp.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Expm1.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Floor.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Log.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Max_impl.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Multiply.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Rsqrt.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Slice.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Sub.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Transpose_impl.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Unique_impl.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/shared.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/version.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/base.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Acos.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Acosh.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Asin.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Asinh.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Atan.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Atanh.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/../../src/utils/pool_utils.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/AvgPool.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/AvgPoolBackprop.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/BatchNorm.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Clip.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Imag.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Reshape.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Concat.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Cos.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Cosh.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Dilation2D.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Dilation2DBackpropFilter.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Dilation2DBackpropInput.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Div.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Elu.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Erf.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/../../src/utils/fft_utils.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/FFT.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/FlipLeftRight.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/IFFT.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/IsFinite.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/IsInf.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/IsNaN.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Log1p.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/LogicalNot.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Max.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/MaxPool.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/MaxPoolBackprop.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/MaxPoolWithArgmax_impl.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/MaxPoolWithArgmax.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/NonMaxSuppressionV4.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/NonMaxSuppressionV5.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/NotEqual.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/PadV2.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Reciprocal.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/RotateWithOffset.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Round.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Selu.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Sigmoid.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Sign.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Sin.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Sinh.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Softplus.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Transpose.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/SpaceToBatchND.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Sqrt.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Square.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/SquaredDifference.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Step.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Tan.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Tanh.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Unique.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/register_all_kernels.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/index.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/canvas_util.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/tex_util.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/webgl_util.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/flags_webgl.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/../../src/kernel_utils/shared.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/addn_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/addn_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/argminmax_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/packing_util.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/glsl_version.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/shader_compiler_util.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/shader_compiler.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/argminmax_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/avg_pool_backprop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/binaryop_complex_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/binaryop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/binaryop_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/clip_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/clip_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/complex_abs_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/concat_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/concat_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/conv_backprop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/conv_backprop_gpu_depthwise.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/conv_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/conv_gpu_depthwise.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/conv_packed_gpu_depthwise.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/crop_and_resize_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/cumsum_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/decode_matrix_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/decode_matrix_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/depth_to_space_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/diag_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/encode_float_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/encode_float_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/encode_matrix_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/encode_matrix_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/fft_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/fill_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/gather_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/gather_nd_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/gpgpu_util.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/gpgpu_context.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/gpgpu_math.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/im2col_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/lrn_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/lrn_grad_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/lrn_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/max_pool_backprop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/mulmat_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/multinomial_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/onehot_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/pack_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/pad_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/pad_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/pool_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/reduce_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/reshape_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/resize_bilinear_backprop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/resize_bilinear_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/resize_bilinear_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/resize_nearest_neighbor_backprop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/resize_nearest_neighbor_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/reverse_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/reverse_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/scatter_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/segment_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/select_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/slice_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/slice_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/strided_slice_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/texture_manager.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/tile_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/unaryop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/unaryop_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/unpack_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/backend_webgl.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/version.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/webgl.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/base.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/../../src/kernel_utils/kernel_funcs_utils.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Atan2.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Identity.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/AvgPool.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/AvgPoolBackprop.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/batchnorm_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/batchnorm_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/BatchNorm.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Cos.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Div.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/flip_left_right_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/FlipLeftRight.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels_utils/../../../src/kernels/FromPixels_utils/from_pixels_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels_utils/../../../src/kernels/FromPixels_utils/from_pixels_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/FromPixels.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/../../src/kernel_utils/reduce.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/../../src/kernel_utils/reshape.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Reshape.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Max_impl.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/transpose_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/transpose_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Transpose_impl.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Max.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/MaxPool.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/MaxPoolBackprop.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/MaxPoolWithArgmax_impl.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/MaxPoolWithArgmax.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/NonMaxSuppressionV3.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/NonMaxSuppressionV4.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/NonMaxSuppressionV5.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/rotate_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/RotateWithOffset.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Sin.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Square.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/SquaredDifference.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Tan.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Transpose.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Unique.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/register_all_kernels.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/index.ts", "node_modules/@tensorflow/tfjs/dist/../src/version.ts", "node_modules/@tensorflow/tfjs/dist/../src/index.ts", "build/src/draw/../../../src/draw/drawContour.ts", "build/src/classes/../../../src/classes/Dimensions.ts", "build/src/utils/../../../src/utils/index.ts", "build/src/classes/../../../src/classes/Point.ts", "build/src/classes/../../../src/classes/Box.ts", "build/src/classes/../../../src/classes/BoundingBox.ts", "build/src/classes/../../../src/classes/ObjectDetection.ts", "build/src/classes/../../../src/classes/FaceDetection.ts", "build/src/ops/../../../src/ops/iou.ts", "build/src/ops/../../../src/ops/minBbox.ts", "build/src/ops/../../../src/ops/nonMaxSuppression.ts", "build/src/ops/../../../src/ops/normalize.ts", "build/src/ops/../../../src/ops/padToSquare.ts", "build/src/ops/../../../src/ops/shuffleArray.ts", "build/src/ops/../../../src/ops/index.ts", "build/src/classes/../../../src/classes/Rect.ts", "build/src/classes/../../../src/classes/FaceLandmarks.ts", "build/src/classes/../../../src/classes/FaceLandmarks5.ts", "build/src/classes/../../../src/classes/FaceLandmarks68.ts", "build/src/classes/../../../src/classes/FaceMatch.ts", "build/src/classes/../../../src/classes/LabeledBox.ts", "build/src/classes/../../../src/classes/LabeledFaceDescriptors.ts", "build/src/classes/../../../src/classes/PredictedBox.ts", "build/src/factories/../../../src/factories/WithFaceDetection.ts", "build/src/env/../../../src/env/createBrowserEnv.ts", "build/src/env/../../../src/env/createFileSystem.ts", "build/src/env/../../../src/env/createNodejsEnv.ts", "build/src/env/../../../src/env/isBrowser.ts", "build/src/env/../../../src/env/index.ts", "build/src/dom/../../../src/dom/resolveInput.ts", "build/src/dom/../../../src/dom/getContext2dOrThrow.ts", "build/src/draw/../../../src/draw/DrawTextField.ts", "build/src/draw/../../../src/draw/DrawBox.ts", "build/src/draw/../../../src/draw/drawDetections.ts", "build/src/dom/../../../src/dom/isMediaLoaded.ts", "build/src/dom/../../../src/dom/awaitMediaLoaded.ts", "build/src/dom/../../../src/dom/bufferToImage.ts", "build/src/dom/../../../src/dom/getMediaDimensions.ts", "build/src/dom/../../../src/dom/createCanvas.ts", "build/src/dom/../../../src/dom/imageTensorToCanvas.ts", "build/src/dom/../../../src/dom/isMediaElement.ts", "build/src/dom/../../../src/dom/imageToSquare.ts", "build/src/dom/../../../src/dom/NetInput.ts", "build/src/dom/../../../src/dom/toNetInput.ts", "build/src/dom/../../../src/dom/extractFaces.ts", "build/src/dom/../../../src/dom/extractFaceTensors.ts", "build/src/dom/../../../src/dom/fetchOrThrow.ts", "build/src/dom/../../../src/dom/fetchImage.ts", "build/src/dom/../../../src/dom/fetchJson.ts", "build/src/dom/../../../src/dom/fetchNetWeights.ts", "build/src/common/../../../src/common/getModelUris.ts", "build/src/dom/../../../src/dom/loadWeightMap.ts", "build/src/dom/../../../src/dom/matchDimensions.ts", "build/src/../../src/NeuralNetwork.ts", "build/src/common/../../../src/common/depthwiseSeparableConv.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/denseBlock.ts", "build/src/common/../../../src/common/convLayer.ts", "build/src/common/../../../src/common/disposeUnusedWeightTensors.ts", "build/src/common/../../../src/common/extractConvParamsFactory.ts", "build/src/common/../../../src/common/extractFCParamsFactory.ts", "build/src/common/../../../src/common/types.ts", "build/src/common/../../../src/common/extractSeparableConvParamsFactory.ts", "build/src/common/../../../src/common/extractWeightEntryFactory.ts", "build/src/common/../../../src/common/extractWeightsFactory.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/extractorsFactory.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/extractParams.ts", "build/src/common/../../../src/common/loadConvParamsFactory.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/loadParamsFactory.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/extractParamsFromWeigthMap.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/FaceFeatureExtractor.ts", "build/src/common/../../../src/common/fullyConnectedLayer.ts", "build/src/faceProcessor/../../../src/faceProcessor/extractParams.ts", "build/src/faceProcessor/../../../src/faceProcessor/extractParamsFromWeigthMap.ts", "build/src/faceProcessor/../../../src/faceProcessor/util.ts", "build/src/faceProcessor/../../../src/faceProcessor/FaceProcessor.ts", "build/src/faceExpressionNet/../../../src/faceExpressionNet/FaceExpressions.ts", "build/src/faceExpressionNet/../../../src/faceExpressionNet/FaceExpressionNet.ts", "build/src/factories/../../../src/factories/WithFaceExpressions.ts", "build/src/draw/../../../src/draw/drawFaceExpressions.ts", "build/src/factories/../../../src/factories/WithFaceLandmarks.ts", "build/src/draw/../../../src/draw/DrawFaceLandmarks.ts", "build/src/draw/../../../src/draw/index.ts", "build/src/xception/../../../src/xception/extractParams.ts", "build/src/xception/../../../src/xception/extractParamsFromWeigthMap.ts", "build/src/xception/../../../src/xception/TinyXception.ts", "build/src/ageGenderNet/../../../src/ageGenderNet/extractParams.ts", "build/src/ageGenderNet/../../../src/ageGenderNet/extractParamsFromWeigthMap.ts", "build/src/ageGenderNet/../../../src/ageGenderNet/types.ts", "build/src/ageGenderNet/../../../src/ageGenderNet/AgeGenderNet.ts", "build/src/faceLandmarkNet/../../../src/faceLandmarkNet/FaceLandmark68NetBase.ts", "build/src/faceLandmarkNet/../../../src/faceLandmarkNet/FaceLandmark68Net.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/extractParamsFromWeigthMapTiny.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/extractParamsTiny.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts", "build/src/faceLandmarkNet/../../../src/faceLandmarkNet/FaceLandmark68TinyNet.ts", "build/src/faceLandmarkNet/../../../src/faceLandmarkNet/index.ts", "build/src/faceRecognitionNet/../../../src/faceRecognitionNet/scaleLayer.ts", "build/src/faceRecognitionNet/../../../src/faceRecognitionNet/convLayer.ts", "build/src/faceRecognitionNet/../../../src/faceRecognitionNet/extractParams.ts", "build/src/faceRecognitionNet/../../../src/faceRecognitionNet/extractParamsFromWeigthMap.ts", "build/src/faceRecognitionNet/../../../src/faceRecognitionNet/residualLayer.ts", "build/src/faceRecognitionNet/../../../src/faceRecognitionNet/FaceRecognitionNet.ts", "build/src/faceRecognitionNet/../../../src/faceRecognitionNet/index.ts", "build/src/factories/../../../src/factories/WithFaceDescriptor.ts", "build/src/factories/../../../src/factories/WithAge.ts", "build/src/factories/../../../src/factories/WithGender.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/extractParams.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/extractParamsFromWeigthMap.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/pointwiseConvLayer.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/mobileNetV1.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/nonMaxSuppression.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/outputLayer.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/boxPredictionLayer.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/predictionLayer.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/SsdMobilenetv1Options.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/SsdMobilenetv1.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/index.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/const.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/config.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/leaky.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/convWithBatchNorm.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/depthwiseSeparableConv.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/extractParams.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/extractParamsFromWeigthMap.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/TinyYolov2Options.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/TinyYolov2Base.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/TinyYolov2.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/index.ts", "build/src/tinyFaceDetector/../../../src/tinyFaceDetector/TinyFaceDetectorOptions.ts", "build/src/globalApi/../../../src/globalApi/ComposableTask.ts", "build/src/globalApi/../../../src/globalApi/extractFacesAndComputeResults.ts", "build/src/tinyFaceDetector/../../../src/tinyFaceDetector/const.ts", "build/src/tinyFaceDetector/../../../src/tinyFaceDetector/TinyFaceDetector.ts", "build/src/globalApi/../../../src/globalApi/nets.ts", "build/src/globalApi/../../../src/globalApi/PredictFaceExpressionsTask.ts", "build/src/globalApi/../../../src/globalApi/PredictAgeAndGenderTask.ts", "build/src/globalApi/../../../src/globalApi/ComputeFaceDescriptorsTasks.ts", "build/src/globalApi/../../../src/globalApi/DetectFaceLandmarksTasks.ts", "build/src/globalApi/../../../src/globalApi/DetectFacesTasks.ts", "build/src/globalApi/../../../src/globalApi/detectFaces.ts", "build/src/globalApi/../../../src/globalApi/allFaces.ts", "build/src/../../src/euclideanDistance.ts", "build/src/globalApi/../../../src/globalApi/FaceMatcher.ts", "build/src/tinyFaceDetector/../../../src/tinyFaceDetector/index.ts", "build/src/../../src/resizeResults.ts", "build/src/../../src/Platform.ts"], - "sourcesContent": ["// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null], - "mappings": "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,GACZ,SAAU,AAAC,GACF,EAAC,EAAG,IAAM,GAAU,MCzB/B,AAkHA,KAAM,IAA4B,CAChC,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGF,SAAW,KAAkB,IAC3B,GAAiB,GCxNnB,ACAA,AAaA,GAAI,IAKE,cACJ,MAAI,KAAY,MACd,IAAW,KAAU,WAEhB,GAcH,cACJ,MAAO,eCrCT,AAuBM,gBAA8B,OAClC,YAAY,GACV,MAAM,GAEN,OAAO,eAAe,KAAM,GAAe,YAOzC,gBAA4B,OAChC,YAAY,GACV,MAAM,GAEN,OAAO,eAAe,KAAM,GAAa,YAOvC,eAA0B,OAC9B,YAAY,GACV,MAAM,GAEN,OAAO,eAAe,KAAM,EAAW,YAOrC,gBAAmC,OACvC,YAAY,GACV,MAAM,GAEN,OAAO,eAAe,KAAM,GAAoB,YAO9C,gBAA8B,OAClC,YAAY,GACV,MAAM,GAEN,OAAO,eAAe,KAAM,GAAe,YAOzC,gBAA0B,OAC9B,YAAY,GACV,MAAM,GAEN,OAAO,eAAe,KAAM,GAAW,YClF3C,AAuBM,YAAuB,EAAY,GACvC,GAAI,MAAM,QAAQ,IAEhB,GAAI,GAAkB,GACtB,OAAS,GAAI,EAAG,EAAI,EAAW,IAC7B,EAAW,EAAS,OAAO,GAE7B,MAAO,QAEP,KAAM,GAAW,GAAI,OAAM,GAC3B,SAAS,KAAK,GACP,GAIL,YA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", + "sources": ["node_modules/seedrandom/lib/alea.js", "node_modules/seedrandom/lib/xor128.js", "node_modules/seedrandom/lib/xorwow.js", "node_modules/seedrandom/lib/xorshift7.js", "node_modules/seedrandom/lib/xor4096.js", "node_modules/seedrandom/lib/tychei.js", "disabled:crypto", "node_modules/seedrandom/seedrandom.js", "node_modules/seedrandom/index.js", "disabled:string_decoder", "disabled:fs", "build/src/env/../../../src/env/isNodejs.ts", "build/src/../../src/index.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/backend.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/environment.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/global_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/kernel_names.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/kernel_registry.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/profiler.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tape.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tensor_format.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tensor.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/types.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tensor_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/engine.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/device_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/flags.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/tensor_util_env.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/operation.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/complex.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor_ops_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/types.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/io_utils.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/router_registry.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/model_management.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/buffer.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/cast.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/clone.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/print.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/base_side_effects.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/browser_files.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/progress.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/weights_loader.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/http.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/passthrough.ts", "node_modules/@tensorflow/tfjs-core/dist/io/../../src/io/io.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reshape.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/mat_mul.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/one_hot.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/transpose.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/confusion_matrix.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/math.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/browser.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/gather_nd_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/scatter_nd_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/serialization.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/test_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/version.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/globals.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/add.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/floorDiv.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/div.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/mul.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/abs.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/acos.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/acosh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/add_n.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/axis_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/all.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/any.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/arg_max.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/arg_min.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/asin.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/asinh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/atan.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/atan2.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/atanh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/avg_pool.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/avg_pool_3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sigmoid.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tanh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/basic_lstm_cell.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batch_to_space_nd.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/batchnorm4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/broadcast_to.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/ceil.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/clip_by_value.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/concat_4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv2d_backprop_input.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv2d_transpose.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv3d_backprop_input.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv3d_transpose.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/cos.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/cosh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/cumsum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/depth_to_space.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/depthwise_conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/diag.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/dilation2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/broadcast_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/equal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/where.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/zeros_like.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/div_no_nan.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/dot.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/elu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/erf.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/exp.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/expand_dims.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/expm1.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tile.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/eye.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fill.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/floor.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reduce_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/segment_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/gather.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/greater.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/greater_equal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/imag.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/is_finite.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/is_inf.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/is_nan.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/maximum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/scalar.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/leaky_relu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/less.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/less_equal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/linspace.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/local_response_normalization.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log1p.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/gradients.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/neg.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/softplus.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log_sigmoid.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sub.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log_softmax.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/log_sum_exp.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/logical_and.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/logical_not.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/logical_or.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/logical_xor.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool_3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool_with_argmax.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/zeros.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/ones.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/mean.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/min.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/minimum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/mod.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/square.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/moments.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/multi_rnn_cell.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/multinomial.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/not_equal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/real.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/ones_like.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/outer_product.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pad4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/space_to_batch_nd.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pool.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/pow.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/prelu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/prod.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rand.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rand_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/random_gamma.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/random_normal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/random_uniform.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/range.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reciprocal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/relu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/relu6.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse_1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse_2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse_3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/reverse_4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/round.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rsqrt.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/selu.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/separable_conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/setdiff1d_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sign.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sin.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sinh.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice1d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice3d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/slice4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/softmax.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/spectral/../../../src/ops/spectral/fft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/spectral/../../../src/ops/spectral/ifft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/spectral/../../../src/ops/spectral/irfft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/split_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/split.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/spectral/../../../src/ops/spectral/rfft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sqrt.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/squared_difference.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/squeeze.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/stack.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/step.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/strided_slice.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tan.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor4d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor5d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/tensor6d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/topk.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/truncated_normal.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/unique.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/unsorted_segment_sum.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/unstack.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/variable.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/where_impl.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/where_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/boolean_mask.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/compare.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/binary_ops.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/norm.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/moving_average.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/scatter_nd.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sparse_to_dense_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/sparse_to_dense.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/gather_nd.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/dropout_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/dropout.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/signal_ops_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/in_top_k.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv2d_backprop_filter.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fused_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/fused/../../../src/ops/fused/conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/depthwise_conv2d_native_backprop_filter.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/depthwise_conv2d_native_backprop_input.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/fused/../../../src/ops/fused/depthwise_conv2d.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/fused/../../../src/ops/fused/mat_mul.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/fused_ops.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/signal/../../../src/ops/signal/hamming_window.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/signal/../../../src/ops/signal/hann_window.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/signal/../../../src/ops/signal/frame.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/signal/../../../src/ops/signal/stft.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/image/../../../src/ops/image/crop_and_resize.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/image/../../../src/ops/image/flip_left_right.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/image/../../../src/ops/image/rotate_with_offset.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/nonmax_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/image/../../../src/ops/image/non_max_suppression.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/array_util.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/non_max_suppression_impl.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/image/../../../src/ops/image/non_max_suppression_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/image/../../../src/ops/image/non_max_suppression_with_score.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/image/../../../src/ops/image/non_max_suppression_with_score_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/image/../../../src/ops/image/non_max_suppression_padded.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/image/../../../src/ops/image/non_max_suppression_padded_async.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/image/../../../src/ops/image/resize_bilinear.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/image/../../../src/ops/image/resize_nearest_neighbor.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/linalg/../../../src/ops/linalg/band_part.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/linalg/../../../src/ops/linalg/gram_schmidt.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/linalg/../../../src/ops/linalg/qr.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/loss_ops_utils.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/losses/../../../src/ops/losses/compute_weighted_loss.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/losses/../../../src/ops/losses/absolute_difference.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/losses/../../../src/ops/losses/cosine_distance.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/losses/../../../src/ops/losses/hinge_loss.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/losses/../../../src/ops/losses/huber_loss.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/losses/../../../src/ops/losses/log_loss.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/losses/../../../src/ops/losses/mean_squared_error.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/losses/../../../src/ops/losses/sigmoid_cross_entropy.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/losses/../../../src/ops/losses/softmax_cross_entropy.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/ops.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/adadelta_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/adagrad_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/adam_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/adamax_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/sgd_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/momentum_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/rmsprop_optimizer.ts", "node_modules/@tensorflow/tfjs-core/dist/optimizers/../../src/optimizers/optimizer_constructors.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/train.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/browser_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/rotate_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/array_ops_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/selu_util.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/erf_util.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/log.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/complex_util.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/backend_util.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/split_shared.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/tile_impl.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/topk_impl.ts", "node_modules/@tensorflow/tfjs-core/dist/backends/../../src/backends/kernel_impls.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Abs_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Acos_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Acosh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Add_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/AddN_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ArgMax_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ArgMin_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Asin_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Asinh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Atan2_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Atan_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Atanh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/avg_pool_3d_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/AvgPool3D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/avg_pool_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/AvgPool_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/BatchMatMul_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/BatchToSpaceND_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/BroadcastTo_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Cast_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Ceil_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ClipByValue_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Concat_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Conv2D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Conv2DBackpropInput_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/conv3d_backprop_filter.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Conv3D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Cos_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Cosh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Cumsum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/DepthwiseConv2dNative_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Dilation2D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Div_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Elu_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Erf_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Exp_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Expm1_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Floor_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/FloorDiv_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/FusedBatchNorm_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/GatherV2_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/GreaterEqual_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Identity_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/IsFinite_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/IsInf_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/IsNan_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Log1p_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Log_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/LogSoftmax_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/local_response_normalization_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/LRN_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/min_max_grad_util.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Max_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Maximum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool_3d_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/MaxPool3D_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/ops/../../src/ops/max_pool_backprop.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/MaxPool_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Min_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Minimum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Mod_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Multiply_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Negate_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/OneHot_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/OnesLike_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/PadV2_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Pow_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Prelu_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Reciprocal_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Relu6_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Relu_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Reshape_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ResizeBilinear_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ResizeNearestNeighbor_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Reverse_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Round_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Rsqrt_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/SelectV2_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Selu_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sigmoid_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sign_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sin_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sinh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Slice_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Softmax_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Softplus_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/SpaceToBatchND_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/SplitV_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sqrt_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Square_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/SquaredDifference_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Step_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sub_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Sum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Tan_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Tanh_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Tile_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Transpose_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/Unpack_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/UnsortedSegmentSum_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/gradients/../../src/gradients/ZerosLike_grad.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/register_all_gradients.ts", "node_modules/@tensorflow/tfjs-core/dist/../src/index.ts", "node_modules/@tensorflow/tfjs-layers/dist/backend/../../src/backend/common.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/errors.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/generic_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/constraints.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports_constraints.ts", "node_modules/@tensorflow/tfjs-layers/dist/keras_format/../../src/keras_format/common.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/common.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/math_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/backend/../../src/backend/tfjs_backend.ts", "node_modules/@tensorflow/tfjs-layers/dist/keras_format/../../src/keras_format/initializer_config.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/initializers.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports_initializers.ts", "node_modules/@tensorflow/tfjs-layers/dist/backend/../../src/backend/state.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/types_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/variable_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/variables.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/topology.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/input_layer.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/logs.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/base_callbacks.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/serialization.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/losses.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/metrics.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/optimizers.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/user_defined_metadata.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/layer_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/serialization_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/version.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/executor.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/container.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/training_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/training_dataset.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/training_tensors.ts", "node_modules/@tensorflow/tfjs-layers/dist/engine/../../src/engine/training.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/models.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/activations.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/regularizers.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/advanced_activations.ts", "node_modules/@tensorflow/tfjs-layers/dist/utils/../../src/utils/conv_utils.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/convolutional.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/convolutional_depthwise.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/recurrent.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/convolutional_recurrent.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/core.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/embeddings.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/merge.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/noise.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/normalization.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/padding.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/pooling.ts", "node_modules/@tensorflow/tfjs-layers/dist/layers/../../src/layers/wrappers.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports_layers.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports_metrics.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports_models.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/exports_regularizers.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/callbacks.ts", "node_modules/@tensorflow/tfjs-layers/dist/../src/index.ts", "node_modules/@tensorflow/tfjs-converter/dist/data/../../src/data/compiled_api.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/custom_op/../../../src/operations/custom_op/register.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/utils.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/arithmetic.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/basic_math.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/control.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/convolution.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/creation.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/dynamic.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/evaluation.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/graph.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/image.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/logical.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/matrices.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/normalization.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/reduction.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/slice_join.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/spectral.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/op_list/../../../src/operations/op_list/transformation.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/../../src/operations/operation_mapper.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/custom_op/../../../src/operations/custom_op/node_value_impl.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/arithmetic_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/basic_math_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/tensor_utils.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/tensor_array.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/tensor_list.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/control_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/convolution_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/creation_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/dynamic_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/evaluation_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/graph_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/image_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/logical_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/matrices_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/normalization_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/reduction_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/slice_join_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/spectral_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/executors/../../../src/operations/executors/transformation_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/operations/../../src/operations/operation_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/execution_context.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/model_analysis.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/graph_executor.ts", "node_modules/@tensorflow/tfjs-converter/dist/executor/../../src/executor/graph_model.ts", "node_modules/@tensorflow/tfjs-converter/dist/../src/version.ts", "node_modules/@tensorflow/tfjs-converter/dist/../src/index.ts", "node_modules/@tensorflow/tfjs-data/dist/util/../../src/util/deep_map.ts", "node_modules/@tensorflow/tfjs-data/dist/util/../../src/util/deep_clone.ts", "node_modules/@tensorflow/tfjs-data/dist/util/../../src/util/ring_buffer.ts", "node_modules/@tensorflow/tfjs-data/dist/util/../../src/util/growing_ring_buffer.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/lazy_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/../src/dataset.ts", "node_modules/@tensorflow/tfjs-data/dist/datasets/../../src/datasets/text_line_dataset.ts", "node_modules/@tensorflow/tfjs-data/dist/datasets/../../src/datasets/csv_dataset.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/microphone_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/webcam_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/../src/datasource.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/string_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/byte_chunk_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/file_chunk_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/iterators/../../src/iterators/url_chunk_iterator.ts", "node_modules/@tensorflow/tfjs-data/dist/util/../../src/util/source_util.ts", "node_modules/@tensorflow/tfjs-data/dist/sources/../../src/sources/file_data_source.ts", "node_modules/@tensorflow/tfjs-data/dist/sources/../../src/sources/url_data_source.ts", "node_modules/@tensorflow/tfjs-data/dist/../src/readers.ts", "node_modules/@tensorflow/tfjs-data/dist/../src/version.ts", "node_modules/@tensorflow/tfjs-data/dist/../src/index.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/cpu_util.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/backend_cpu.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Abs.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/../../src/utils/binary_impl.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Complex.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Identity.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Real.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Cast.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/../../src/utils/kernel_utils.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Add.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/../../src/utils/unary_impl.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/../../src/utils/unary_utils.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Ceil.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Exp.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Expm1.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Floor.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Log.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Max_impl.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Multiply.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Rsqrt.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Slice.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Sub.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Transpose_impl.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Unique_impl.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/shared.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/version.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/base.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Acos.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Acosh.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Asin.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Asinh.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Atan.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Atanh.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/../../src/utils/pool_utils.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/AvgPool.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/AvgPoolBackprop.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/BatchNorm.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Clip.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Imag.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Reshape.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Concat.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Cos.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Cosh.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Dilation2D.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Dilation2DBackpropFilter.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Dilation2DBackpropInput.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Div.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Elu.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Erf.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/utils/../../src/utils/fft_utils.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/FFT.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/FlipLeftRight.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/IFFT.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/IsFinite.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/IsInf.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/IsNaN.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Log1p.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/LogicalNot.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Max.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/MaxPool.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/MaxPoolBackprop.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/MaxPoolWithArgmax_impl.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/MaxPoolWithArgmax.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/NonMaxSuppressionV4.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/NonMaxSuppressionV5.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/NotEqual.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/PadV2.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Reciprocal.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/RotateWithOffset.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Round.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Selu.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Sigmoid.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Sign.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Sin.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Sinh.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Softplus.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Transpose.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/SpaceToBatchND.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Sqrt.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Square.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/SquaredDifference.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Step.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Tan.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Tanh.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/kernels/../../src/kernels/Unique.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/register_all_kernels.ts", "node_modules/@tensorflow/tfjs-backend-cpu/dist/../src/index.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/canvas_util.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/tex_util.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/webgl_util.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/flags_webgl.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/../../src/kernel_utils/shared.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/addn_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/addn_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/argminmax_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/packing_util.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/glsl_version.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/shader_compiler_util.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/shader_compiler.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/argminmax_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/avg_pool_backprop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/binaryop_complex_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/binaryop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/binaryop_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/clip_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/clip_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/complex_abs_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/concat_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/concat_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/conv_backprop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/conv_backprop_gpu_depthwise.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/conv_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/conv_gpu_depthwise.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/conv_packed_gpu_depthwise.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/crop_and_resize_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/cumsum_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/decode_matrix_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/decode_matrix_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/depth_to_space_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/diag_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/encode_float_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/encode_float_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/encode_matrix_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/encode_matrix_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/fft_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/fill_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/gather_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/gather_nd_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/gpgpu_util.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/gpgpu_context.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/gpgpu_math.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/im2col_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/lrn_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/lrn_grad_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/lrn_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/max_pool_backprop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/mulmat_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/multinomial_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/onehot_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/pack_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/pad_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/pad_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/pool_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/reduce_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/reshape_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/resize_bilinear_backprop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/resize_bilinear_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/resize_bilinear_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/resize_nearest_neighbor_backprop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/resize_nearest_neighbor_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/reverse_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/reverse_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/scatter_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/segment_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/select_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/slice_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/slice_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/strided_slice_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/texture_manager.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/tile_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/unaryop_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/unaryop_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/unpack_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/backend_webgl.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/version.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/webgl.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/base.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/../../src/kernel_utils/kernel_funcs_utils.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Atan2.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Identity.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/AvgPool.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/AvgPoolBackprop.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/batchnorm_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/batchnorm_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/BatchNorm.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Cos.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Div.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/flip_left_right_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/FlipLeftRight.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels_utils/../../../src/kernels/FromPixels_utils/from_pixels_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/FromPixels_utils/../../../src/kernels/FromPixels_utils/from_pixels_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/FromPixels.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/../../src/kernel_utils/reduce.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernel_utils/../../src/kernel_utils/reshape.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Reshape.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Max_impl.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/transpose_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/transpose_packed_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Transpose_impl.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Max.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/MaxPool.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/MaxPoolBackprop.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/MaxPoolWithArgmax_impl.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/MaxPoolWithArgmax.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/NonMaxSuppressionV3.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/NonMaxSuppressionV4.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/NonMaxSuppressionV5.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/rotate_gpu.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/RotateWithOffset.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Sin.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Square.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/SquaredDifference.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Tan.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Transpose.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/kernels/../../src/kernels/Unique.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/register_all_kernels.ts", "node_modules/@tensorflow/tfjs-backend-webgl/dist/../src/index.ts", "node_modules/@tensorflow/tfjs/dist/../src/version.ts", "node_modules/@tensorflow/tfjs/dist/../src/index.ts", "build/src/draw/../../../src/draw/drawContour.ts", "build/src/classes/../../../src/classes/Dimensions.ts", "build/src/utils/../../../src/utils/index.ts", "build/src/classes/../../../src/classes/Point.ts", "build/src/classes/../../../src/classes/Box.ts", "build/src/classes/../../../src/classes/BoundingBox.ts", "build/src/classes/../../../src/classes/ObjectDetection.ts", "build/src/classes/../../../src/classes/FaceDetection.ts", "build/src/ops/../../../src/ops/iou.ts", "build/src/ops/../../../src/ops/minBbox.ts", "build/src/ops/../../../src/ops/nonMaxSuppression.ts", "build/src/ops/../../../src/ops/normalize.ts", "build/src/ops/../../../src/ops/padToSquare.ts", "build/src/ops/../../../src/ops/shuffleArray.ts", "build/src/ops/../../../src/ops/index.ts", "build/src/classes/../../../src/classes/Rect.ts", "build/src/classes/../../../src/classes/FaceLandmarks.ts", "build/src/classes/../../../src/classes/FaceLandmarks5.ts", "build/src/classes/../../../src/classes/FaceLandmarks68.ts", "build/src/classes/../../../src/classes/FaceMatch.ts", "build/src/classes/../../../src/classes/LabeledBox.ts", "build/src/classes/../../../src/classes/LabeledFaceDescriptors.ts", "build/src/classes/../../../src/classes/PredictedBox.ts", "build/src/factories/../../../src/factories/WithFaceDetection.ts", "build/src/env/../../../src/env/createBrowserEnv.ts", "build/src/env/../../../src/env/createFileSystem.ts", "build/src/env/../../../src/env/createNodejsEnv.ts", "build/src/env/../../../src/env/isBrowser.ts", "build/src/env/../../../src/env/index.ts", "build/src/dom/../../../src/dom/resolveInput.ts", "build/src/dom/../../../src/dom/getContext2dOrThrow.ts", "build/src/draw/../../../src/draw/DrawTextField.ts", "build/src/draw/../../../src/draw/DrawBox.ts", "build/src/draw/../../../src/draw/drawDetections.ts", "build/src/dom/../../../src/dom/isMediaLoaded.ts", "build/src/dom/../../../src/dom/awaitMediaLoaded.ts", "build/src/dom/../../../src/dom/bufferToImage.ts", "build/src/dom/../../../src/dom/getMediaDimensions.ts", "build/src/dom/../../../src/dom/createCanvas.ts", "build/src/dom/../../../src/dom/imageTensorToCanvas.ts", "build/src/dom/../../../src/dom/isMediaElement.ts", "build/src/dom/../../../src/dom/imageToSquare.ts", "build/src/dom/../../../src/dom/NetInput.ts", "build/src/dom/../../../src/dom/toNetInput.ts", "build/src/dom/../../../src/dom/extractFaces.ts", "build/src/dom/../../../src/dom/extractFaceTensors.ts", "build/src/dom/../../../src/dom/fetchOrThrow.ts", "build/src/dom/../../../src/dom/fetchImage.ts", "build/src/dom/../../../src/dom/fetchJson.ts", "build/src/dom/../../../src/dom/fetchNetWeights.ts", "build/src/common/../../../src/common/getModelUris.ts", "build/src/dom/../../../src/dom/loadWeightMap.ts", "build/src/dom/../../../src/dom/matchDimensions.ts", "build/src/../../src/NeuralNetwork.ts", "build/src/common/../../../src/common/depthwiseSeparableConv.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/denseBlock.ts", "build/src/common/../../../src/common/convLayer.ts", "build/src/common/../../../src/common/disposeUnusedWeightTensors.ts", "build/src/common/../../../src/common/extractConvParamsFactory.ts", "build/src/common/../../../src/common/extractFCParamsFactory.ts", "build/src/common/../../../src/common/types.ts", "build/src/common/../../../src/common/extractSeparableConvParamsFactory.ts", "build/src/common/../../../src/common/extractWeightEntryFactory.ts", "build/src/common/../../../src/common/extractWeightsFactory.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/extractorsFactory.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/extractParams.ts", "build/src/common/../../../src/common/loadConvParamsFactory.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/loadParamsFactory.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/extractParamsFromWeigthMap.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/FaceFeatureExtractor.ts", "build/src/common/../../../src/common/fullyConnectedLayer.ts", "build/src/faceProcessor/../../../src/faceProcessor/extractParams.ts", "build/src/faceProcessor/../../../src/faceProcessor/extractParamsFromWeigthMap.ts", "build/src/faceProcessor/../../../src/faceProcessor/util.ts", "build/src/faceProcessor/../../../src/faceProcessor/FaceProcessor.ts", "build/src/faceExpressionNet/../../../src/faceExpressionNet/FaceExpressions.ts", "build/src/faceExpressionNet/../../../src/faceExpressionNet/FaceExpressionNet.ts", "build/src/factories/../../../src/factories/WithFaceExpressions.ts", "build/src/draw/../../../src/draw/drawFaceExpressions.ts", "build/src/factories/../../../src/factories/WithFaceLandmarks.ts", "build/src/draw/../../../src/draw/DrawFaceLandmarks.ts", "build/src/draw/../../../src/draw/index.ts", "build/src/xception/../../../src/xception/extractParams.ts", "build/src/xception/../../../src/xception/extractParamsFromWeigthMap.ts", "build/src/xception/../../../src/xception/TinyXception.ts", "build/src/ageGenderNet/../../../src/ageGenderNet/extractParams.ts", "build/src/ageGenderNet/../../../src/ageGenderNet/extractParamsFromWeigthMap.ts", "build/src/ageGenderNet/../../../src/ageGenderNet/types.ts", "build/src/ageGenderNet/../../../src/ageGenderNet/AgeGenderNet.ts", "build/src/faceLandmarkNet/../../../src/faceLandmarkNet/FaceLandmark68NetBase.ts", "build/src/faceLandmarkNet/../../../src/faceLandmarkNet/FaceLandmark68Net.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/extractParamsFromWeigthMapTiny.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/extractParamsTiny.ts", "build/src/faceFeatureExtractor/../../../src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts", "build/src/faceLandmarkNet/../../../src/faceLandmarkNet/FaceLandmark68TinyNet.ts", "build/src/faceLandmarkNet/../../../src/faceLandmarkNet/index.ts", "build/src/faceRecognitionNet/../../../src/faceRecognitionNet/scaleLayer.ts", "build/src/faceRecognitionNet/../../../src/faceRecognitionNet/convLayer.ts", "build/src/faceRecognitionNet/../../../src/faceRecognitionNet/extractParams.ts", "build/src/faceRecognitionNet/../../../src/faceRecognitionNet/extractParamsFromWeigthMap.ts", "build/src/faceRecognitionNet/../../../src/faceRecognitionNet/residualLayer.ts", "build/src/faceRecognitionNet/../../../src/faceRecognitionNet/FaceRecognitionNet.ts", "build/src/faceRecognitionNet/../../../src/faceRecognitionNet/index.ts", "build/src/factories/../../../src/factories/WithFaceDescriptor.ts", "build/src/factories/../../../src/factories/WithAge.ts", "build/src/factories/../../../src/factories/WithGender.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/extractParams.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/extractParamsFromWeigthMap.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/pointwiseConvLayer.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/mobileNetV1.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/nonMaxSuppression.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/outputLayer.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/boxPredictionLayer.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/predictionLayer.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/SsdMobilenetv1Options.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/SsdMobilenetv1.ts", "build/src/ssdMobilenetv1/../../../src/ssdMobilenetv1/index.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/const.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/config.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/leaky.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/convWithBatchNorm.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/depthwiseSeparableConv.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/extractParams.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/extractParamsFromWeigthMap.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/TinyYolov2Options.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/TinyYolov2Base.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/TinyYolov2.ts", "build/src/tinyYolov2/../../../src/tinyYolov2/index.ts", "build/src/tinyFaceDetector/../../../src/tinyFaceDetector/TinyFaceDetectorOptions.ts", "build/src/globalApi/../../../src/globalApi/ComposableTask.ts", "build/src/globalApi/../../../src/globalApi/extractFacesAndComputeResults.ts", "build/src/tinyFaceDetector/../../../src/tinyFaceDetector/const.ts", "build/src/tinyFaceDetector/../../../src/tinyFaceDetector/TinyFaceDetector.ts", "build/src/globalApi/../../../src/globalApi/nets.ts", "build/src/globalApi/../../../src/globalApi/PredictFaceExpressionsTask.ts", "build/src/globalApi/../../../src/globalApi/PredictAgeAndGenderTask.ts", "build/src/globalApi/../../../src/globalApi/ComputeFaceDescriptorsTasks.ts", "build/src/globalApi/../../../src/globalApi/DetectFaceLandmarksTasks.ts", "build/src/globalApi/../../../src/globalApi/DetectFacesTasks.ts", "build/src/globalApi/../../../src/globalApi/detectFaces.ts", "build/src/globalApi/../../../src/globalApi/allFaces.ts", "build/src/../../src/euclideanDistance.ts", "build/src/globalApi/../../../src/globalApi/FaceMatcher.ts", "build/src/tinyFaceDetector/../../../src/tinyFaceDetector/index.ts", "build/src/../../src/resizeResults.ts"], + "sourcesContent": ["// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null], + "mappings": "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GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,IAGF,SAAW,KAAkB,IAC3B,GAAiB,GCxNnB,ACAA,AAaA,GAAI,IAKE,cACJ,MAAI,KAAY,MACd,IAAW,KAAU,WAEhB,GAcH,cACJ,MAAO,eCrCT,AAuBM,gBAA8B,OAClC,YAAY,GACV,MAAM,GAEN,OAAO,eAAe,KAAM,GAAe,YAOzC,gBAA4B,OAChC,YAAY,GACV,MAAM,GAEN,OAAO,eAAe,KAAM,GAAa,YAOvC,eAA0B,OAC9B,YAAY,GACV,MAAM,GAEN,OAAO,eAAe,KAAM,EAAW,YAOrC,gBAAmC,OACvC,YAAY,GACV,MAAM,GAEN,OAAO,eAAe,KAAM,GAAoB,YAO9C,gBAA8B,OAClC,YAAY,GACV,MAAM,GAEN,OAAO,eAAe,KAAM,GAAe,YAOzC,gBAA0B,OAC9B,YAAY,GACV,MAAM,GAEN,OAAO,eAAe,KAAM,GAAW,YClF3C,AAuBM,YAAuB,EAAY,GACvC,GAAI,MAAM,QAAQ,IAEhB,GAAI,GAAkB,GACtB,OAAS,GAAI,EAAG,EAAI,EAAW,IAC7B,EAAW,EAAS,OAAO,GAE7B,MAAO,QAEP,KAAM,GAAW,GAAI,OAAM,GAC3B,SAAS,KAAK,GACP,GAIL,YAAiB,EAAc,GACnC,GAAI,CAAC,EACH,KAAM,IAAI,IAAe,GAOvB,YAAmB,EAAY,GACnC,GAAI,GAA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", "names": [] } diff --git a/example/index.html b/example/index.html index b09db81..7a0b5a9 100644 --- a/example/index.html +++ b/example/index.html @@ -6,181 +6,10 @@ - - + - +
- diff --git a/example/index.js b/example/index.js new file mode 100644 index 0000000..e0674de --- /dev/null +++ b/example/index.js @@ -0,0 +1,165 @@ +import * as faceapi from '../dist/face-api.esm.js'; + +// configuration options +const modelPath = 'https://vladmandic.github.io/face-api/model/'; // path to model folder that will be loaded using http +const imgSize = 512; // maximum image size in pixels +const minScore = 0.1; // minimum score +const maxResults = 5; // maximum number of results to return +const samples = ['sample (1).jpg', 'sample (2).jpg', 'sample (3).jpg', 'sample (4).jpg', 'sample (5).jpg', 'sample (6).jpg']; // sample images to be loaded using http + +// helper function to pretty-print json object to string +function str(json) { + let text = ''; + text += json ? JSON.stringify(json).replace(/{|}|"|\[|\]/g, '').replace(/,/g, ', ') : ''; + text += ''; + return text; +} + +// helper function to print strings to html document as a log +function log(...txt) { + // eslint-disable-next-line no-console + console.log(...txt); + document.getElementById('log').innerHTML += `
${txt}`; +} + +// helper function to draw detected faces +function faces(name, title, id, data) { + // create canvas to draw on + const img = document.getElementById(id); + const canvas = document.createElement('canvas'); + canvas.style.position = 'absolute'; + canvas.style.left = `${img.offsetLeft}px`; + canvas.style.top = `${img.offsetTop}px`; + canvas.width = img.width; + canvas.height = img.height; + const ctx = canvas.getContext('2d'); + // draw title + ctx.font = '1rem sans-serif'; + ctx.fillStyle = 'black'; + ctx.fillText(name, 2, 15); + ctx.fillText(title, 2, 35); + for (const person of data) { + // draw box around each face + ctx.lineWidth = 3; + ctx.strokeStyle = 'deepskyblue'; + ctx.fillStyle = 'deepskyblue'; + ctx.globalAlpha = 0.4; + ctx.beginPath(); + ctx.rect(person.detection.box.x, person.detection.box.y, person.detection.box.width, person.detection.box.height); + ctx.stroke(); + ctx.globalAlpha = 1; + ctx.fillText(`${Math.round(100 * person.genderProbability)}% ${person.gender}`, person.detection.box.x, person.detection.box.y - 18); + ctx.fillText(`${Math.round(person.age)} years`, person.detection.box.x, person.detection.box.y - 2); + // draw face points for each face + ctx.fillStyle = 'lightblue'; + ctx.globalAlpha = 0.5; + const pointSize = 2; + for (const pt of person.landmarks.positions) { + ctx.beginPath(); + ctx.arc(pt.x, pt.y, pointSize, 0, 2 * Math.PI); + ctx.fill(); + } + } + // add canvas to document + document.body.appendChild(canvas); +} + +// helper function to draw processed image and its results +function print(title, img, data) { + // eslint-disable-next-line no-console + console.log('Results:', title, img, data); + const el = new Image(); + el.id = Math.floor(Math.random() * 100000); + el.src = img; + el.width = imgSize; + el.onload = () => faces(img, title, el.id, data); + document.body.appendChild(el); +} + +// loads image and draws it on resized canvas so we alwys have correct image size regardless of source +async function image(url) { + return new Promise((resolve) => { + const img = new Image(); + // wait until image is actually loaded + img.addEventListener('load', () => { + // resize image so larger axis is not bigger than limit + const ratio = 1.0 * img.height / img.width; + img.width = ratio <= 1 ? imgSize : 1.0 * imgSize / ratio; + img.height = ratio >= 1 ? imgSize : 1.0 * imgSize * ratio; + // create canvas and draw loaded image + const canvas = document.createElement('canvas'); + canvas.height = img.height; + canvas.width = img.width; + const ctx = canvas.getContext('2d'); + ctx.drawImage(img, 0, 0, img.width, img.height); + // return generated canvas to be used by tfjs during detection + resolve(canvas); + }); + // load image + img.src = url; + }); +} + +async function main() { + // initialize tfjs + log('FaceAPI Test'); + await faceapi.tf.setBackend('webgl'); + await faceapi.tf.enableProdMode(); + await faceapi.tf.ENV.set('DEBUG', false); + await faceapi.tf.ready(); + + // check version + log(`Version: TensorFlow/JS ${str(faceapi.tf?.version_core || '(not loaded)')} FaceAPI ${str(faceapi?.version || '(not loaded)')} Backend: ${str(faceapi.tf?.getBackend() || '(not loaded)')}`); + log(`Flags: ${JSON.stringify(faceapi.tf.ENV.flags)}`); + + // load face-api models + log('Loading FaceAPI models'); + await faceapi.nets.tinyFaceDetector.load(modelPath); + await faceapi.nets.ssdMobilenetv1.load(modelPath); + await faceapi.nets.ageGenderNet.load(modelPath); + await faceapi.nets.faceLandmark68Net.load(modelPath); + await faceapi.nets.faceRecognitionNet.load(modelPath); + await faceapi.nets.faceExpressionNet.load(modelPath); + const optionsTinyFace = new faceapi.TinyFaceDetectorOptions({ inputSize: imgSize, scoreThreshold: minScore }); + const optionsSSDMobileNet = new faceapi.SsdMobilenetv1Options({ minConfidence: minScore, maxResults }); + + // check tf engine state + const engine = await faceapi.tf.engine(); + log(`TF Engine State: ${str(engine.state)}`); + + // loop through all images and try to process them + log(`Start processing: ${samples.length} images ...
`); + for (const img of samples) { + // new line + document.body.appendChild(document.createElement('br')); + // load and resize image + const canvas = await image(img); + try { + // actual model execution + const dataTinyYolo = await faceapi + .detectAllFaces(canvas, optionsTinyFace) + .withFaceLandmarks() + .withFaceExpressions() + .withFaceDescriptors() + .withAgeAndGender(); + // print results to screen + print('TinyFace Detector', img, dataTinyYolo); + // actual model execution + const dataSSDMobileNet = await faceapi + .detectAllFaces(canvas, optionsSSDMobileNet) + .withFaceLandmarks() + .withFaceExpressions() + .withFaceDescriptors() + .withAgeAndGender(); + // print results to screen + print('SSD MobileNet', img, dataSSDMobileNet); + } catch (err) { + log(`Image: ${img} Error during processing ${str(err)}`); + // eslint-disable-next-line no-console + console.error(err); + } + } +} + +// start processing as soon as page is loaded +window.onload = main; diff --git a/package-lock.json b/package-lock.json index 84cfdc0..09ec18d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -442,9 +442,9 @@ "dev": true }, "typescript": { - "version": "4.1.0-dev.20201011", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.0-dev.20201011.tgz", - "integrity": "sha512-+Lfj2Q+dXFAJbfB1jQQRlhTssgl0CQVo8a+CNzlNXsnC1cN1yoH40wkEjWd6uB8NGkamxKda1xrEb2miJtpP5g==", + "version": "4.1.0-dev.20201012", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.0-dev.20201012.tgz", + "integrity": "sha512-afzjHTxmS6JszBOz3CkQqlP+5ZlvZ/ACbRJMXJWhEYfHPCDHdQGZVEMbdnYICM1KfgN2SUpubWJsWvyxkoNmHA==", "dev": true }, "wrap-ansi": { diff --git a/package.json b/package.json index 8b12972..42838b2 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ }, "type": "module", "scripts": { - "build-esm": "esbuild --bundle --format=esm --target=esnext --platform=browser --sourcemap --outfile=./dist/face-api.esm.js --external:@tensorflow/tfjs --log-level=error --tsconfig=./tsconfig.json build/src/index.js", + "build-esm": "esbuild --bundle --format=esm --target=esnext --platform=browser --sourcemap --outfile=./dist/face-api.esm.js --minify --log-level=error --tsconfig=./tsconfig.json build/src/index.js", "build-iife": "esbuild --bundle --format=iife --target=esnext --platform=browser --sourcemap --outfile=./dist/face-api.js --global-name=faceapi --minify --log-level=error --tsconfig=./tsconfig.json build/src/index.js", "build": "rimraf build/ dist/ && tsc && npm run build-esm && npm run build-iife" }, diff --git a/src/index.ts b/src/index.ts index 1dfacdb..7370b78 100644 --- a/src/index.ts +++ b/src/index.ts @@ -28,5 +28,5 @@ const node = (typeof process !== 'undefined'); const browser = (typeof navigator !== 'undefined') && (typeof navigator.userAgent !== 'undefined'); export const version = { faceapi: pkg.version, node, browser }; -import {PlatformBrowser} from './Platform'; -if (!tf.env().platform && tf.env().get('IS_BROWSER')) tf.env().setPlatform('browser', new PlatformBrowser); +// import {PlatformBrowser} from './Platform'; +// if (!tf.env().platform && tf.env().get('IS_BROWSER')) tf.env().setPlatform('browser', new PlatformBrowser);