1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[602],{57679:function(t,e,i){i.d(e,{$p:function(){return f},U7:function(){return y},_0:function(){return D},lx:function(){return k},nd:function(){return A}});var s=i(11302),r=i(24241),n=i(67122),l=i(44793),a=i(61515),u=i(94346),o=i(23478),h=i(83141),c=i(12426),p=i(56742),g=i(40002),d=i(8216),I=i(3562),z=i(72830);function k(t,e,i,s){if(Array.isArray(t)){if(null!=e||null!=i)throw new o.nu("When inputs is an array, neither initialState or constants should be provided");null!=s&&(i=t.slice(t.length-s,t.length),t=t.slice(0,t.length-s)),t.length>1&&(e=t.slice(1,t.length)),t=t[0]}function r(t){return null==t||Array.isArray(t)?t:[t]}return{inputs:t,initialState:e=r(e),constants:i=r(i)}}function A(t,e,i,r=!1,n,l,a=!1,u=!1){return s.tidy(()=>{let h,c,p;let d=e.shape.length;if(d<3)throw new o.nu(`Input should be at least 3D, but is ${d}D.`);let I=[1,0].concat(g.w6(2,d));if(e=s.transpose(e,I),null!=l)throw new o.nj("The rnn() functoin of the deeplearn.js backend does not support constants yet.");a&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),null!=n&&((n=s.cast(s.cast(n,"bool"),"float32")).rank===d-1&&(n=s.expandDims(n,-1)),n=s.transpose(n,I)),r&&(e=s.reverse(e,0),null!=n&&(n=s.reverse(n,0)));let z=[],k=i,A=e.shape[0],f=s.unstack(e);null!=n&&(c=s.unstack(n));for(let e=0;e<A;++e){let i=f[e],r=s.tidy(()=>t(i,k));if(null==n)h=r[0],k=r[1];else{let t=s.tidy(()=>{let t=c[e],i=s.sub(s.onesLike(t),t);return{output:s.add(s.mul(r[0],t),s.mul(k[0],i)),newStates:k.map((e,n)=>s.add(s.mul(r[1][n],t),s.mul(e,i)))}});h=t.output,k=t.newStates}u&&z.push(h)}return u&&(p=s.stack(z,1)),[h,p,k]})}class f extends u.mh{constructor(t){let e;if(super(t),null==t.cell)throw new o.nu("cell property is missing for the constructor of RNN.");if(null==(e=Array.isArray(t.cell)?new N({cells:t.cell}):t.cell).stateSize)throw new o.nu("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=e,this.returnSequences=null!=t.returnSequences&&t.returnSequences,this.returnState=null!=t.returnState&&t.returnState,this.goBackwards=null!=t.goBackwards&&t.goBackwards,this._stateful=null!=t.stateful&&t.stateful,this.unroll=null!=t.unroll&&t.unroll,this.supportsMasking=!0,this.inputSpec=[new u.Zg({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(null!=this.states_)return this.states_;{let t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return g.w6(0,t).map(t=>null)}}setStates(t){this.states_=t}computeOutputShape(t){let e;(0,d.XO)(t)&&(t=t[0]);let i=this.cell.stateSize;Array.isArray(i)||(i=[i]);let s=i[0];if(e=this.returnSequences?[t[0],t[1],s]:[t[0],s],!this.returnState)return e;{let s=[];for(let e of i)s.push([t[0],e]);return[e].concat(s)}}computeMask(t,e){return s.tidy(()=>{Array.isArray(e)&&(e=e[0]);let t=this.returnSequences?e:null;return this.returnState?[t].concat(this.states.map(t=>null)):t})}get states(){if(null!=this.states_)return this.states_;{let t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,e=[];for(let i=0;i<t;++i)e.push(null);return e}}set states(t){this.states_=t}build(t){let e;if(null!=this.numConstants)throw new o.nj("Constants support is not implemented in RNN yet.");(0,d.XO)(t)&&(t=t[0]);let i=this.stateful?t[0]:null,r=t.slice(2);this.inputSpec[0]=new u.Zg({shape:[i,null,...r]});let n=[t[0]].concat(t.slice(2));if(this.cell.build(n),e=Array.isArray(this.cell.stateSize)?this.cell.stateSize:[this.cell.stateSize],null!=this.stateSpec){if(!s.util.arraysEqual(this.stateSpec.map(t=>t.shape[t.shape.length-1]),e))throw new o.nu(`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=e.map(t=>new u.Zg({shape:[null,t]}));this.stateful&&this.resetStates()}resetStates(t,e=!1){(0,s.tidy)(()=>{if(!this.stateful)throw new o.j1("Cannot call resetStates() on an RNN Layer that is not stateful.");let i=this.inputSpec[0].shape[0];if(null==i)throw new o.nu("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(null==this.states_)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(t=>s.zeros([i,t])):this.states_=[s.zeros([i,this.cell.stateSize])];else if(null==t)s.dispose(this.states_),null!=this.keptStates&&(s.dispose(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(t=>s.zeros([i,t])):this.states_[0]=s.zeros([i,this.cell.stateSize]);else{if(Array.isArray(t)||(t=[t]),t.length!==this.states_.length)throw new o.nu(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${t.length} state value(s). Input received: ${t}`);!0===e?this.keptStates.push(this.states_.slice()):s.dispose(this.states_);for(let e=0;e<this.states_.length;++e){let r=t[e],n=[i,Array.isArray(this.cell.stateSize)?this.cell.stateSize[e]:this.cell.stateSize];if(!s.util.arraysEqual(r.shape,n))throw new o.nu(`State ${e} is incompatible with layer ${this.name}: expected shape=${n}, received shape=${r.shape}`);this.states_[e]=r}}this.states_=this.states_.map(t=>s.keep(t.clone()))})}apply(t,e){let i=null==e?null:e.initialState,s=null==e?null:e.constants;null==e&&(e={});let r=k(t,i,s,this.numConstants);t=r.inputs,i=r.initialState,s=r.constants;let n=[],l=[];
1if(null!=i){for(let t of(e.initialState=i,n=n.concat(i),this.stateSpec=[],i))this.stateSpec.push(new u.Zg({shape:t.shape}));l=l.concat(this.stateSpec)}if(null!=s&&(e.constants=s,n=n.concat(s),this.numConstants=s.length),!(n[0]instanceof u.Iy))return super.apply(t,e);{let i=[t].concat(n),s=this.inputSpec.concat(l),r=this.inputSpec;this.inputSpec=s;let a=super.apply(i,e);return this.inputSpec=r,a}}call(t,e){return(0,s.tidy)(()=>{let i=null==e?null:e.mask,s=null==e?null:e.training,r=null==e?null:e.initialState;t=(0,d.nQ)(t),null==r&&(r=this.stateful?this.states_:this.getInitialState(t));let n=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(r.length!==n)throw new o.nu(`RNN Layer has ${n} state(s) but was passed ${r.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");let l={training:s},a=A((t,e)=>{let i=this.cell.call([t].concat(e),l);return[i[0],i.slice(1)]},t,r,this.goBackwards,i,null,this.unroll,this.returnSequences),u=a[0],h=a[1],c=a[2];this.stateful&&this.resetStates(c,s);let p=this.returnSequences?h:u;return this.returnState?[p].concat(c):p})}getInitialState(t){return(0,s.tidy)(()=>{let e=s.zeros(t.shape);return(e=s.sum(e,[1,2]),e=n.dt(e),Array.isArray(this.cell.stateSize))?this.cell.stateSize.map(t=>t>1?n.Gg(e,[1,t]):e):this.cell.stateSize>1?[n.Gg(e,[1,this.cell.stateSize])]:[e]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),null!=this.cell&&this.cell.setFastWeightInitDuringBuild(t)}getConfig(){let t=super.getConfig(),e={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};null!=this.numConstants&&(e.numConstants=this.numConstants);let i=this.cell.getConfig();return this.getClassName()===f.className&&(e.cell={className:this.cell.getClassName(),config:i}),Object.assign(Object.assign(Object.assign({},i),t),e)}static fromConfig(t,e,i={}){let s=e.cell;return new t(Object.assign(e,{cell:(0,z.v)(s,i)}))}}f.className="RNN",s.serialization.registerClass(f);class C extends u.mh{}class S extends C{constructor(t){super(t),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=t.units,(0,p.iQ)(this.units,"units"),this.activation=(0,r.aI)(null==t.activation?this.DEFAULT_ACTIVATION:t.activation),this.useBias=null==t.useBias||t.useBias,this.kernelInitializer=(0,h.L5)(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=(0,h.L5)(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=(0,h.L5)(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=(0,c.EC)(t.kernelRegularizer),this.recurrentRegularizer=(0,c.EC)(t.recurrentRegularizer),this.biasRegularizer=(0,c.EC)(t.biasRegularizer),this.kernelConstraint=(0,a.Ad)(t.kernelConstraint),this.recurrentConstraint=(0,a.Ad)(t.recurrentConstraint),this.biasConstraint=(0,a.Ad)(t.biasConstraint),this.dropout=g.VV([1,g.Fp([0,null==t.dropout?0:t.dropout])]),this.recurrentDropout=g.VV([1,g.Fp([0,null==t.recurrentDropout?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){t=(0,d.Wf)(t),this.kernel=this.addWeight("kernel",[t[t.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(t,e){return(0,s.tidy)(()=>{let i;if(2!==t.length)throw new o.nu(`SimpleRNNCell expects 2 input Tensors, got ${t.length}.`);let r=t[1];t=t[0];let l=null!=e.training&&e.training;0<this.dropout&&this.dropout<1&&null==this.dropoutMask&&(this.dropoutMask=D({ones:()=>s.onesLike(t),rate:this.dropout,training:l,dropoutFunc:this.dropoutFunc})),0<this.recurrentDropout&&this.recurrentDropout<1&&null==this.recurrentDropoutMask&&(this.recurrentDropoutMask=D({ones:()=>s.onesLike(r),rate:this.recurrentDropout,training:l,dropoutFunc:this.dropoutFunc}));let a=this.dropoutMask,u=this.recurrentDropoutMask;i=null!=a?n.AK(s.mul(t,a),this.kernel.read()):n.AK(t,this.kernel.read()),null!=this.bias&&(i=n.a2(i,this.bias.read())),null!=u&&(r=s.mul(r,u));let h=s.add(i,n.AK(r,this.recurrentKernel.read()));return null!=this.activation&&(h=this.activation.apply(h)),[h,h]})}getConfig(){let t=super.getConfig(),e={units:this.units,activation:(0,r.GD)(this.activation),useBias:this.useBias,kernelInitializer:(0,h.Cx)(this.kernelInitializer),recurrentInitializer:(0,h.Cx)(this.recurrentInitializer),biasInitializer:(0,h.Cx)(this.biasInitializer),kernelRegularizer:(0,c.SG)(this.kernelRegularizer),recurrentRegularizer:(0,c.SG)(this.recurrentRegularizer),biasRegularizer:(0,c.SG)(this.biasRegularizer),activityRegularizer:(0,c.SG)(this.activityRegularizer),kernelConstraint:(0,a.xF)(this.kernelConstraint),recurrentConstraint:(0,a.xF)(this.recurrentConstraint),biasConstraint:(0,a.xF)(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign(Object.assign({},t),e)}}S.className="SimpleRNNCell",s.serialization.registerClass(S);class R extends f{constructor(t){t.cell=new S(t),super(t)}call(t,e){return(0,s.tidy)(()=>{null!=this.cell.dropoutMask&&(s.dispose(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(s.dispose(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let i=null==e?null:e.mask,r=null==e?null:e.training,n=null==e?null:e.initialState;return super.call(t,{mask:i,training:r,initialState:n})})}static fromConfig(t,e){return new t(e)}}R.className="SimpleRNN",s.serialization.registerClass(R);class m extends C{constructor(t){if(super(t),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",t.resetAfter)throw new o.nu("GRUCell does not support reset_after parameter set to true.");this.units=t.units,(0,p.iQ)(this.units,"units"),this.activation=(0,r.aI)(void 0===t.activation?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=(0,r.aI)(void 0===t.recurrentActivation?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=null==t.useBias||t.useBias,this.kernelInitializer=(0,h.L5)(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=(0,h.L5)(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=(0,h.L5)(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=(0,c.EC)(t.kernelRegularizer),this.recurrentRegularizer=(0,c.EC)(t.recurrentRegularizer),this.biasRegularizer=(0,c.EC)(t.biasRegularizer),this.kernelConstraint=(0,a.Ad)(t.kernelConstraint),this.recurrentConstraint=(0,a.Ad)(t.recurrentConstraint),this.biasConstraint=(0,a.Ad)(t.biasConstraint),this.dropout=g.VV([1,g.Fp([0,null==t.dropout?0:t.dropout])]),this.recurrentDropout=g.VV([1,g.Fp([0,null==t.recurrentDropout?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.implementation=t.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){let e=(t=(0,d.Wf)(t))[t.length-1];this.kernel=this.addWeight("kernel",[e,3*this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,3*this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[3*this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(t,e){return(0,s.tidy)(()=>{let i,r,l;if(2!==t.length)throw new o.nu(`GRUCell expects 2 input Tensors (inputs, h, c), got ${t.length}.`);let a=null!=e.training&&e.training,u=t[1];t=t[0],0<this.dropout&&this.dropout<1&&null==this.dropoutMask&&(this.dropoutMask=D({ones:()=>s.onesLike(t),rate:this.dropout,training:a,count:3,dropoutFunc:this.dropoutFunc})),0<this.recurrentDropout&&this.recurrentDropout<1&&null==this.recurrentDropoutMask&&(this.recurrentDropoutMask=D({ones:()=>s.onesLike(u),rate:this.recurrentDropout,training:a,count:3,dropoutFunc:this.dropoutFunc}));let h=this.dropoutMask,c=this.recurrentDropoutMask;0<this.dropout&&this.dropout<1&&(t=s.mul(t,h[0]));let p=n.AK(t,this.kernel.read());this.useBias&&(p=n.a2(p,this.bias.read())),0<this.recurrentDropout&&this.recurrentDropout<1&&(u=s.mul(u,c[0]));let g=this.recurrentKernel.read(),[d,I]=s.split(g,[2*this.units,this.units],g.rank-1),z=n.AK(u,d),[k,A,f]=s.split(p,3,p.rank-1),[C,S]=s.split(z,2,z.rank-1);i=this.recurrentActivation.apply(s.add(k,C)),r=this.recurrentActivation.apply(s.add(A,S));let R=n.AK(s.mul(r,u),I);l=this.activation.apply(s.add(f,R));let m=s.add(s.mul(i,u),s.mul(s.add(1,s.neg(i)),l));return[m,m]})}getConfig(){let t=super.getConfig(),e={units:this.units,activation:(0,r.GD)(this.activation),recurrentActivation:(0,r.GD)(this.recurrentActivation),useBias:this.useBias,kernelInitializer:(0,h.Cx)(this.kernelInitializer),recurrentInitializer:(0,h.Cx)(this.recurrentInitializer),biasInitializer:(0,h.Cx)(this.biasInitializer),kernelRegularizer:(0,c.SG)(this.kernelRegularizer),recurrentRegularizer:(0,c.SG)(this.recurrentRegularizer),biasRegularizer:(0,c.SG)(this.biasRegularizer),activityRegularizer:(0,c.SG)(this.activityRegularizer),kernelConstraint:(0,a.xF)(this.kernelConstraint),recurrentConstraint:(0,a.xF)(this.recurrentConstraint),biasConstraint:(0,a.xF)(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout,implementation:this.implementation,resetAfter:!1};return Object.assign(Object.assign({},t),e)}}m.className="GRUCell",s.serialization.registerClass(m);class b extends f{constructor(t){0===t.implementation&&console.warn("`implementation=0` has been deprecated, and now defaults to `implementation=1`. Please update your layer call."),t.cell=new m(t),super(t)}call(t,e){return(0,s.tidy)(()=>{null!=this.cell.dropoutMask&&(s.dispose(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(s.dispose(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let i=null==e?null:e.mask,r=null==e?null:e.training,n=null==e?null:e.initialState;return super.call(t,{mask:i,training:r,initialState:n})})}static fromConfig(t,e){return 0===e.implmentation&&(e.implementation=1),new t(e)}}b.className="GRU",s.serialization.registerClass(b);class y extends C{constructor(t){super(t),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=t.units,(0,p.iQ)(this.units,"units"),this.activation=(0,r.aI)(void 0===t.activation?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=(0,r.aI)(void 0===t.recurrentActivation?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=null==t.useBias||t.useBias,this.kernelInitializer=(0,h.L5)(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=(0,h.L5)(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=(0,h.L5)(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=t.unitForgetBias,this.kernelRegularizer=(0,c.EC)(t.kernelRegularizer),this.recurrentRegularizer=(0,c.EC)(t.recurrentRegularizer),this.biasRegularizer=(0,c.EC)(t.biasRegularizer),this.kernelConstraint=(0,a.Ad)(t.kernelConstraint),this.recurrentConstraint=(0,a.Ad)(t.recurrentConstraint),this.biasConstraint=(0,a.Ad)(t.biasConstraint),this.dropout=g.VV([1,g.Fp([0,null==t.dropout?0:t.dropout])]),this.recurrentDropout=g.VV([1,g.Fp([0,null==t.recurrentDropout?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.implementation=t.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){var e;let i;let s=(t=(0,d.Wf)(t))[t.length-1];if(this.kernel=this.addWeight("kernel",[s,4*this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,4*this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){if(this.unitForgetBias){let t=this.biasInitializer,s=this.units;i=new((e=class extends h.m7{apply(e,i){let r=t.apply([s]),l=new h.M6().apply([s]),a=t.a
1pply([2*s]);return n.GZ(n.GZ(r,l),a)}}).className="CustomInit",e)}else i=this.biasInitializer;this.bias=this.addWeight("bias",[4*this.units],null,i,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(t,e){return(0,s.tidy)(()=>{let i,r,l,a;let u=null!=e.training&&e.training;if(3!==t.length)throw new o.nu(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${t.length}.`);let h=t[1],c=t[2];t=t[0],0<this.dropout&&this.dropout<1&&null==this.dropoutMask&&(this.dropoutMask=D({ones:()=>s.onesLike(t),rate:this.dropout,training:u,count:4,dropoutFunc:this.dropoutFunc})),0<this.recurrentDropout&&this.recurrentDropout<1&&null==this.recurrentDropoutMask&&(this.recurrentDropoutMask=D({ones:()=>s.onesLike(h),rate:this.recurrentDropout,training:u,count:4,dropoutFunc:this.dropoutFunc}));let p=this.dropoutMask,g=this.recurrentDropoutMask;0<this.dropout&&this.dropout<1&&(t=s.mul(t,p[0]));let d=n.AK(t,this.kernel.read());0<this.recurrentDropout&&this.recurrentDropout<1&&(h=s.mul(h,g[0])),d=s.add(d,n.AK(h,this.recurrentKernel.read())),this.useBias&&(d=n.a2(d,this.bias.read()));let[I,z,k,A]=s.split(d,4,d.rank-1);i=this.recurrentActivation.apply(I),r=this.recurrentActivation.apply(z),l=s.add(s.mul(r,c),s.mul(i,this.activation.apply(k))),a=this.recurrentActivation.apply(A);let f=s.mul(a,this.activation.apply(l));return[f,f,l]})}getConfig(){let t=super.getConfig(),e={units:this.units,activation:(0,r.GD)(this.activation),recurrentActivation:(0,r.GD)(this.recurrentActivation),useBias:this.useBias,kernelInitializer:(0,h.Cx)(this.kernelInitializer),recurrentInitializer:(0,h.Cx)(this.recurrentInitializer),biasInitializer:(0,h.Cx)(this.biasInitializer),unitForgetBias:this.unitForgetBias,kernelRegularizer:(0,c.SG)(this.kernelRegularizer),recurrentRegularizer:(0,c.SG)(this.recurrentRegularizer),biasRegularizer:(0,c.SG)(this.biasRegularizer),activityRegularizer:(0,c.SG)(this.activityRegularizer),kernelConstraint:(0,a.xF)(this.kernelConstraint),recurrentConstraint:(0,a.xF)(this.recurrentConstraint),biasConstraint:(0,a.xF)(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout,implementation:this.implementation};return Object.assign(Object.assign({},t),e)}}y.className="LSTMCell",s.serialization.registerClass(y);class E extends f{constructor(t){0===t.implementation&&console.warn("`implementation=0` has been deprecated, and now defaults to `implementation=1`. Please update your layer call."),t.cell=new y(t),super(t)}call(t,e){return(0,s.tidy)(()=>{null!=this.cell.dropoutMask&&(s.dispose(this.cell.dropoutMask),this.cell.dropoutMask=null),null!=this.cell.recurrentDropoutMask&&(s.dispose(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let i=null==e?null:e.mask,r=null==e?null:e.training,n=null==e?null:e.initialState;return super.call(t,{mask:i,training:r,initialState:n})})}static fromConfig(t,e){return 0===e.implmentation&&(e.implementation=1),new t(e)}}E.className="LSTM",s.serialization.registerClass(E);class N extends C{constructor(t){super(t),this.cells=t.cells}get stateSize(){let t=[];for(let e of this.cells.slice().reverse())Array.isArray(e.stateSize)?t.push(...e.stateSize):t.push(e.stateSize);return t}call(t,e){return(0,s.tidy)(()=>{let i;let s=t.slice(1),r=[];for(let t of this.cells.slice().reverse())Array.isArray(t.stateSize)?r.push(s.splice(0,t.stateSize.length)):r.push(s.splice(0,1));r.reverse();let n=[];for(let l=0;l<this.cells.length;++l){let a=this.cells[l];s=r[l],i=0===l?[t[0]].concat(s):[i[0]].concat(s),i=a.call(i,e),n.push(i.slice(1))}for(let t of(s=[],n.slice().reverse()))s.push(...t);return[i[0]].concat(s)})}build(t){let e;(0,d.XO)(t)&&(t=t[0]),this.cells.forEach((i,s)=>{(0,l.f4)(`RNNCell_${s}`,()=>{i.build(t),e=Array.isArray(i.stateSize)?i.stateSize[0]:i.stateSize,t=[t[0],e]})}),this.built=!0}getConfig(){let t=super.getConfig(),e=this.cells.map(t=>({className:t.getClassName(),config:t.getConfig()}));return Object.assign(Object.assign({},t),{cells:e})}static fromConfig(t,e,i={}){let s=[];for(let t of e.cells)s.push((0,z.v)(t,i));return new t({cells:s})}get trainableWeights(){if(!this.trainable)return[];let t=[];for(let e of this.cells)t.push(...e.trainableWeights);return t}get nonTrainableWeights(){let t=[];for(let e of this.cells)t.push(...e.nonTrainableWeights);if(!this.trainable){let e=[];for(let t of this.cells)e.push(...t.trainableWeights);return e.concat(t)}return t}getWeights(){let t=[];for(let e of this.cells)t.push(...e.weights);return(0,I.FQ)(t)}setWeights(t){let e=[];for(let i of this.cells){let s=i.weights.length,r=t.splice(s);for(let t=0;t<i.weights.length;++t)e.push([i.weights[t],r[t]])}(0,I.zb)(e)}}function D(t){let{ones:e,rate:i,training:r=!1,count:l=1,dropoutFunc:a}=t,u=()=>null!=a?a(e(),i):n.rv(e(),i),o=()=>n.KC(u,e,r);return!l||l<=1?s.keep(o().clone()):Array(l).fill(void 0).map(o).map(t=>s.keep(t.clone()))}N.className="StackedRNNCells",s.serialization.registerClass(N)}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.