(e,n)
| 211 | |
| 212 | },{}],34:[function(require,module,exports){ |
| 213 | "use strict";function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function _possibleConstructorReturn(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function _inherits(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function t(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}return function(e,n,r){return n&&t(e.prototype,n),r&&t(e,r),e}}(),_matrix=require("./matrix"),_matrix2=_interopRequireDefault(_matrix),_randomMatrix=require("./matrix/random-matrix"),_randomMatrix2=_interopRequireDefault(_randomMatrix),_equation=require("./matrix/equation"),_equation2=_interopRequireDefault(_equation),_rnn=require("./rnn"),_rnn2=_interopRequireDefault(_rnn),_zeros=require("../utilities/zeros"),_zeros2=_interopRequireDefault(_zeros),_softmax=require("./matrix/softmax"),_softmax2=_interopRequireDefault(_softmax),_random=require("../utilities/random"),_sampleI=require("./matrix/sample-i"),_sampleI2=_interopRequireDefault(_sampleI),_maxI=require("./matrix/max-i"),_maxI2=_interopRequireDefault(_maxI),RNNTimeStep=function(t){function e(){return _classCallCheck(this,e),_possibleConstructorReturn(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return _inherits(e,t),_createClass(e,[{key:"createInputMatrix",value:function(){this.model.input=new _randomMatrix2.default(this.inputSize,1,.08)}},{key:"createOutputMatrix",value:function(){var t=this.model,e=this.outputSize,n=this.hiddenLayers[this.hiddenLayers.length-1];t.outputConnector=new _randomMatrix2.default(e,n,.08),t.output=new _matrix2.default(e,1)}},{key:"bindEquation",value:function(){var t=this.model,e=this.hiddenLayers,n=t.hiddenLayers,r=new _equation2.default,a=[],i=t.equationConnections.length>0?t.equationConnections[t.equationConnections.length-1]:this.initialLayerInputs,o=this.getEquation(r,r.input(t.input),i[0],n[0]);a.push(o);for(var u=1,s=e.length;u<s;u++)o=this.getEquation(r,o,i[u],n[u]),a.push(o);t.equationConnections.push(a),r.add(r.multiply(t.outputConnector,o),t.output),t.equations.push(r)}},{key:"runInput",value:function(t){this.runs++;for(var e=this.model,n=0,r=void 0;e.equations.length<t.length-1;)this.bindEquation();var a=[];if(1===this.inputSize)for(var i=0,o=t.length-1;i<o;i++){r=e.equations[i];for(var u=t[i],s=t[i+1],l=r.runInput([u]),p=0;p<l.weights.length;p++){var f=l.weights[p]-s;n+=Math.abs(f),l.deltas[p]=f,a.push(l.weights)}}else for(var h=0,c=t.length-1;h<c;h++){r=e.equations[h];for(var d=t[h],m=t[h+1],g=r.runInput(d),_=0;_<g.weights.length;_++){var v=g.weights[_]-m[_];n+=Math.abs(v),g.deltas[_]=v,a.push(g.weights)}}return this.totalCost=n,n}},{key:"runBackpropagate",value:function(){for(var t=this.model.equations.length-1;t>-1;t--)this.model.equations[t].runBackpropagate()}},{key:"run",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];if(!this.isRunnable)return null;for(var e=this.model;e.equations.length<t.length;)this.bindEquation();var n=void 0;if(1===this.inputSize)for(var r=0;r<t.length;r++){var a=e.equations[r].runInput([t[r]]);n=a.weights}else for(var i=0;i<t.length;i++){var o=e.equations[i].runInput(t[i]);n=o.weights}return 1===this.outputSize?n[0]:n}},{key:"toFunction",value:function(){function t(t,n){for(var r=0,a=s.length;r<a;r++){var i=s[r];if(r===n){var o=e(t);switch(t){case i.left:if(o>-1)return"typeof prevStates["+o+"] === 'object' ? prevStates["+o+"].product : new Matrix("+t.rows+", "+t.columns+")";case i.right:if(o>-1)return"typeof prevStates["+o+"] === 'object' ? prevStates["+o+"].product : new Matrix("+t.rows+", "+t.columns+")";case i.product:return"new Matrix("+t.rows+", "+t.columns+")";default:throw Error("unknown state")}}if(t===i.product)return"states["+r+"].product";if(t===i.right)return"states["+r+"].right";if(t===i.left)return"states["+r+"].left"}}function e(t){for(var e=a.equationConnections[0],n=i[0].states,r=0,o=n.length;r<o;r++)if(n[r].product===t)return r;return e.indexOf(t)}function n(e,n){if(!e||!e.rows||!e.columns)return"null";if(e===a.input)return"json.input";if(e===a.outputConnector)return"json.outputConnector";if(e===a.output)return"json.output";for(var r=0,i=a.hiddenLayers.length;r<i;r++){var o=a.hiddenLayers[r];for(var u in o)if(o.hasOwnProperty(u)&&o[u]===e)return"json.hiddenLayers["+r+"]."+u}return t(e,n)}function r(t){return t=t.toString().split("{"),t.shift(),t=t.join("{"),t=t.split("}"),t.pop(),t.join("}").split("\n").join("\n ").replace("product.weights = _this.inputValue;",1===o?"product.weights = [input[_i]];":"product.weights = input[_i];").replace("product.deltas[i] = 0;","").replace("product.deltas[column] = 0;","").replace("left.deltas[leftIndex] = 0;","").replace("right.deltas[rightIndex] = 0;","").replace("product.deltas = left.deltas.slice(0);","")}for(var a=this.model,i=this.model.equations,o=this.inputSize,u=i[1],s=u.states,l=JSON.stringify(this.toJSON()),p=[],f={},h=[],c=0,d=s.length;c<d;c++){var m=s[c];p.push("states["+c+"] = {\n name: '"+m.forwardFn.name+"',\n left: "+n(m.left,c)+",\n right: "+n(m.right,c)+",\n product: "+n(m.product,c)+"\n }");var g=m.forwardFn.name;f[g]||(f[g]=!0,h.push(" case '"+g+"':"+("forwardFn"!==g?" //compiled from "+function(t){return"src/recurrent/matrix/"+t.replace(/[A-Z]/g,function(t){return"-"+t.toLowerCase()})+".js"}(g):"")+"\n "+r(m.forwardFn.toString())+"\n break;"))}var _="\n if (typeof rawInput === 'undefined') rawInput = [];\n "+(null!==this.dataFormatter?this.dataFormatter.toFunctionString():"")+"\n \n var input = "+(null!==this.dataFormatter&&"function"==typeof this.formatDataIn?"formatDataIn(rawInput)":"rawInput")+";\n var json = "+l+";\n var output = [];\n var states = [];\n var prevStates;\n var state;\n for (let _i = 0; _i < input.length; _i++) {\n prevStates = states;\n states = [];\n "+p.join(";\n ")+";\n for (var stateIndex = 0, stateMax = "+p.length+"; stateIndex < stateMax; stateIndex++) {\n state = states[stateIndex];\n var product = state.product;\n var left = state.left;\n var right = state.right;\n \n switch (state.name) {\n"+h.join("\n")+"\n }\n }\n }\n "+(null!==this.dataFormatter&&"function"==typeof this.formatDataOut?"return formatDataOut(input, "+(1===this.outputSize?"state.product.weights[0]":"state.product.weights")+")":"return "+(1===this.outputSize?"state.product.weights[0]":"state.product.weights"))+";\n function Matrix(rows, columns) {\n this.rows = rows;\n this.columns = columns;\n this.weights = zeros(rows * columns);\n }\n "+(null!==this.dataFormatter&&"function"==typeof this.formatDataIn?"function formatDataIn(input, output) { "+r(this.formatDataIn.toString()).replace(/this[.]dataFormatter[\n\s]+[.]/g,"").replace(/this[.]dataFormatter[.]/g,"").replace(/this[.]dataFormatter/g,"true")+" }":"")+"\n "+(null!==this.dataFormatter&&"function"==typeof this.formatDataOut?"function formatDataOut(input, output) { "+r(this.formatDataOut.toString()).replace(/this[.]dataFormatter[\n\s]+[.]/g,"").replace(/this[.]dataFormatter[.]/g,"").replace(/this[.]dataFormatter/g,"true")+" }":"")+"\n "+_zeros2.default.toString()+"\n "+_softmax2.default.toString().replace("_2.default","Matrix")+"\n "+_random.randomF.toString()+"\n "+_sampleI2.default.toString()+"\n "+_maxI2.default.toString();return new Function("rawInput",_)}}]),e}(_rnn2.default);exports.default=RNNTimeStep,RNNTimeStep.defaults={inputSize:1,hiddenLayers:[20],outputSize:1,learningRate:.01,decayRate:.999,smoothEps:1e-8,regc:1e-6,clipval:5,dataFormatter:null},RNNTimeStep.trainDefaults=_rnn2.default.trainDefaults; |
| 214 | |
| 215 | },{"../utilities/random":42,"../utilities/zeros":46,"./matrix":16,"./matrix/equation":15,"./matrix/max-i":17,"./matrix/random-matrix":23,"./matrix/sample-i":28,"./matrix/softmax":31,"./rnn":35}],35:[function(require,module,exports){ |
| 216 | "use strict";function _interopRequireDefault(t){return t&&t.__esModule?t:{default:t}}function _classCallCheck(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(exports,"__esModule",{value:!0});var _createClass=function(){function t(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}return function(e,r,n){return r&&t(e.prototype,r),n&&t(e,n),e}}(),_matrix=require("./matrix"),_matrix2=_interopRequireDefault(_matrix),_randomMatrix=require("./matrix/random-matrix"),_randomMatrix2=_interopRequireDefault(_randomMatrix),_equation=require("./matrix/equation"),_equation2=_interopRequireDefault(_equation),_sampleI=require("./matrix/sample-i"),_sampleI2=_interopRequireDefault(_sampleI),_maxI=require("./matrix/max-i"),_maxI2=_interopRequireDefault(_maxI),_softmax=require("./matrix/softmax"),_softmax2=_interopRequireDefault(_softmax),_copy=require("./matrix/copy"),_copy2=_interopRequireDefault(_copy),_random=require("../utilities/random"),_zeros=require("../utilities/zeros"),_zeros2=_interopRequireDefault(_zeros),_dataFormatter=require("../utilities/data-formatter"),_dataFormatter2=_interopRequireDefault(_dataFormatter),RNN=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};_classCallCheck(this,t);var r=this.constructor.defaults;Object.assign(this,r,e),this.stepCache={},this.runs=0,this.totalCost=null,this.ratioClipped=null,this.model=null,this.inputLookup=null,this.outputLookup=null,e.json&&this.fromJSON(e.json)}return _createClass(t,[{key:"initialize",value:function(){this.model={input:null,hiddenLayers:[],output:null,equations:[],allMatrices:[],equationConnections:[],outputConnector:null},null!==this.dataFormatter&&(this.inputSize=this.inputRange=this.outputSize=this.dataFormatter.characters.length),this.mapModel()}},{key:"createHiddenLayers",value:function(){this.model.hiddenLayers.push(this.getModel(this.hiddenLayers[0],this.inputSize));for(var t=this.hiddenLayers[0],e=1;e<this.hiddenLayers.length;e++){var r=this.hiddenLayers[e];this.model.hiddenLayers.push(this.getModel(r,t)),t=r}}},{key:"getModel",value:function(t,e){return{weight:new _randomMatrix2.default(t,e,.08),transition:new _randomMatrix2.default(t,t,.08),bias:new _matrix2.default(t,1)}}},{key:"getEquation",value:function(t,e,r,n){var a=t.relu.bind(t),i=t.add.bind(t),o=t.multiply.bind(t);return a(i(i(o(n.weight,e),o(n.transition,r)),n.bias))}},{key:"createInputMatrix",value:function(){this.model.input=new _randomMatrix2.default(this.inputRange+1,this.inputSize,.08)}},{key:"createOutputMatrix",value:function(){var t=this.model,e=this.outputSize,r=this.hiddenLayers[this.hiddenLayers.length-1];t.outputConnector=new _randomMatrix2.default(e+1,r,.08),t.output=new _matrix2.default(e+1,1)}},{key:"bindEquation",value:function(){var t=this.model,e=new _equation2.default,r=[],n=t.equationConnections.length>0?t.equationConnections[t.equationConnections.length-1]:this.initialLayerInputs,a=this.getEquation(e,e.inputMatrixToRow(t.input),n[0],t.hiddenLayers[0]);r.push(a);for(var i=1,o=this.hiddenLayers.length;i<o;i++)a=this.getEquation(e,a,n[i],t.hiddenLayers[i]),r.push(a);t.equationConnections.push(r),e.add(e.multiply(t.outputConnector,a),t.output),t.equations.push(e)}},{key:"mapModel",value:function(){var t=this.model,e=t.hiddenLayers,r=t.allMatrices;if(this.initialLayerInputs=this.hiddenLayers.map(function(t){return new _matrix2.default(t,1)}),this.createInputMatrix(),!t.input)throw new Error("net.model.input not set");if(r.push(t.input),this.createHiddenLayers(),!t.hiddenLayers.length)throw new Error("net.hiddenLayers not set");for(var n=0,a=e.length;n<a;n++){var i=e[n];for(var o in i)i.hasOwnProperty(o)&&r.push(i[o])}if(this.createOutputMatrix(),!t.outputConnector)throw new Error("net.model.outputConnector not set");if(!t.output)throw new Error("net.model.output not set");r.push(t.outputConnector),r.push(t.output)}},{key:"trainPattern",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=this.runInput(t);return this.runBackpropagate(t),this.step(e),r}},{key:"runInput",value:function(t){this.runs++;for(var e=this.model,r=t.length,n=0,a=0,i=void 0;e.equations.length<=t.length+1;)this.bindEquation();for(var o=-1,u=t.length;o<u;o++){var s=o+1;i=e.equations[s];var l=-1===o?0:t[o]+1,h=o===r-1?0:t[o+1]+1,d=i.run(l),p=d,f=(0,_softmax2.default)(d);n+=-Math.log2(f.weights[h]),a+=-Math.log(f.weights[h]),p.deltas=f.weights.slice(0),p.deltas[h]-=1}return this.totalCost=a,Math.pow(2,n/(r-1))/100}},{key:"runBackpropagate",value:function(t){for(var e=t.length,r=this.model,n=r.equations;e>0;)n[e].runBackpropagate(t[e-1]+1),e--;n[0].runBackpropagate(0)}},{key:"step",value:function(){for(var t=(arguments.length>0&&void 0!==arguments[0]&&arguments[0],this.learningRate),e=this.regc,r=this.clipval,n=this.model,a=0,i=0,o=n.allMatrices,u=0;u<o.length;u++){var s=o[u],l=s.weights,h=s.deltas;u in this.stepCache||(this.stepCache[u]=(0,_zeros2.default)(s.rows*s.columns));for(var d=this.stepCache[u],p=0;p<l.length;p++){var f=h[p],c=l[p];d[p]=d[p]*this.decayRate+(1-this.decayRate)*f*f,f>r&&(f=r,a++),f<-r&&(f=-r,a++),i++,l[p]=c+-t*f/Math.sqrt(d[p]+this.smoothEps)-e*c}}this.ratioClipped=a/i}},{key:"run",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,n=this.maxPredictionLength+t.length+(this.dataFormatter?this.dataFormatter.specialIndexes.length:0);if(!this.isRunnable)return null;for(var a=this.formatDataIn(t),i=this.model,o=[],u=0;;){for(var s=0===u?0:u<a.length?a[u-1]+1:o[u-1];i.equations.length<=u;)this.bindEquation();var l=i.equations[u],h=l.run(s),d=new _matrix2.default(i.output.rows,i.output.columns);if((0,_copy2.default)(d,h),1!==r&&e)for(var p=0,f=d.weights.length;p<f;p++)d.weights[p]/=r;var c=(0,_softmax2.default)(d),m=e?(0,_sampleI2.default)(c):(0,_maxI2.default)(c);if(u++,0===m)break;if(u>=n)break;o.push(m)}return this.formatDataOut(a,o.slice(a.length).map(function(t){return t-1}))}},{key:"train",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e=Object.assign({},this.constructor.trainDefaults,e);var r=e.iterations,n=e.errorThresh,a=!0===e.log?console.log:e.log,i=e.logPeriod,o=e.learningRate||this.learningRate,u=e.callback,s=e.callbackPeriod,l=1/0,h=void 0;for(this.hasOwnProperty("setupData")&&(t=this.setupData(t)),this.model||this.initialize(),h=0;h<r&&l>n;h++){for(var d=0,p=0;p<t.length;p++){d+=this.trainPattern(t[p],o)}if(l=d/t.length,isNaN(l))throw new Error("network error rate is unexpected NaN, check network configurations and try again");a&&h%i==0&&a("iterations: "+h+", training error: "+l),u&&h%s==0&&u({error:l,iterations:h})}return{error:l,iterations:h}}},{key:"toJSON",value:function(){var t=this.constructor.defaults;this.model||this.initialize();var e=this.model,r={};for(var n in t)t.hasOwnProperty(n)&&(r[n]=this[n]);return{type:this.constructor.name,options:r,input:e.input.toJSON(),hiddenLayers:e.hiddenLayers.map(function(t){var e={};for(var r in t)e[r]=t[r].toJSON();return e}),outputConnector:this.model.outputConnector.toJSON(),output:this.model.output.toJSON()}}},{key:"toJSONString",value:function(){return JSON.stringify(this.toJSON())}},{key:"fromJSON",value:function(t){var e=this.constructor.defaults,r=t.options;this.model=null,this.hiddenLayers=null;var n=[],a=_matrix2.default.fromJSON(t.input);n.push(a);var i=[];(t.hiddenLayers||t.hiddenSizes).forEach(function(t){var e={};for(var r in t)e[r]=_matrix2.default.fromJSON(t[r]),n.push(e[r]);i.push(e)});var o=_matrix2.default.fromJSON(t.outputConnector);n.push(o);var u=_matrix2.default.fromJSON(t.output);n.push(u),Object.assign(this,e,r),r.hiddenSizes&&(this.hiddenLayers=r.hiddenSizes),r.hasOwnProperty("dataFormatter")&&null!==r.dataFormatter&&(this.dataFormatter=_dataFormatter2.default.fromJSON(r.dataFormatter)),this.model={input:a,hiddenLayers:i,output:u,allMatrices:n,outputConnector:o,equations:[],equationConnections:[]},this.initialLayerInputs=this.hiddenLayers.map(function(t){return new _matrix2.default(t,1)}),this.bindEquation()}},{key:"toFunction",value:function(){function t(t,r){for(var n=0,a=u.length;n<a;n++){var i=u[n];if(n===r){var o=e(t);switch(t){case i.left:if(o>-1)return"typeof prevStates["+o+"] === 'object' ? prevStates["+o+"].product : new Matrix("+t.rows+", "+t.columns+")";case i.right:if(o>-1)return"typeof prevStates["+o+"] === 'object' ? prevStates["+o+"].product : new Matrix("+t.rows+", "+t.columns+")";case i.product:return"new Matrix("+t.rows+", "+t.columns+")";default:throw Error("unknown state")}}if(t===i.product)return"states["+n+"].product";if(t===i.right)return"states["+n+"].right";if(t===i.left)return"states["+n+"].left"}}function e(t){for(var e=a.equationConnections[0],r=i[0].states,n=0,o=r.length;n<o;n++)if(r[n].product===t)return n;return e.indexOf(t)}function r(e,r){if(!e||!e.rows||!e.columns)return"null";if(e===a.input)return"json.input";if(e===a.outputConnector)return"json.outputConnector";if(e===a.output)return"json.output";for(var n=0,i=a.hiddenLayers.length;n<i;n++){var o=a.hiddenLayers[n];for(var u in o)if(o.hasOwnProperty(u)&&o[u]===e)return"json.hiddenLayers["+n+"]."+u}return t(e,r)}function n(t){return t=t.toString().split("{"),t.shift(),t=t.join("{"),t=t.split("}"),t.pop(),t.join("}").split("\n").join("\n ").replace("product.deltas[i] = 0;","").replace("product.deltas[column] = 0;","").replace("left.deltas[leftIndex] = 0;","").replace("right.deltas[rightIndex] = 0;","").replace("product.deltas = left.deltas.slice(0);","")}for(var a=this.model,i=this.model.equations,o=i[1],u=o.states,s=JSON.stringify(this.toJSON()),l=[],h={},d=[],p=0,f=u.length;p<f;p++){var c=u[p];l.push("states["+p+"] = {\n name: '"+c.forwardFn.name+"',\n left: "+r(c.left,p)+",\n right: "+r(c.right,p)+",\n product: "+r(c.product,p)+"\n }");var m=c.forwardFn.name;h[m]||(h[m]=!0,d.push(" case '"+m+"': //compiled from "+function(t){return"src/recurrent/matrix/"+t.replace(/[A-Z]/g,function(t){return"-"+t.toLowerCase()})+".js"}(m)+"\n "+n(c.forwardFn.toString())+"\n break;"))}var g="\n if (typeof rawInput === 'undefined') rawInput = [];\n if (typeof isSampleI === 'undefined') isSampleI = false;\n if (typeof temperature === 'undefined') temperature = 1;\n "+(null!==this.dataFormatter?this.dataFormatter.toFunctionString():"")+"\n \n var input = "+(null!==this.dataFormatter&&"function"==typeof this.formatDataIn?"formatDataIn(rawInput)":"rawInput")+";\n var json = "+s+";\n var maxPredictionLength = input.length + "+this.maxPredictionLength+";\n var _i = 0;\n var output = [];\n var states = [];\n var prevStates;\n while (true) {\n var previousIndex = (_i === 0\n ? 0\n : _i < input.length\n ? input[_i - 1] + 1\n : output[_i - 1])\n ;\n var rowPluckIndex = previousIndex;\n var state;\n prevStates = states;\n states = [];\n "+l.join(";\n ")+";\n for (var stateIndex = 0, stateMax = "+l.length+"; stateIndex < stateMax; stateIndex++) {\n state = states[stateIndex];\n var product = state.product;\n var left = state.left;\n var right = state.right;\n \n switch (state.name) {\n"+d.join("\n")+"\n }\n }\n \n var logProbabilities = state.product;\n if (temperature !== 1 && isSampleI) {\n for (var q = 0, nq = logProbabilities.weights.length; q < nq; q++) {\n logProbabilities.weights[q] /= temperature;\n }\n }\n\n var probs = softmax(logProbabilities);\n var nextIndex = isSampleI ? sampleI(probs) : maxI(probs);\n \n _i++;\n if (nextIndex === 0) {\n break;\n }\n if (_i >= maxPredictionLength) {\n break;\n }\n\n output.push(nextIndex);\n }\n "+(null!==this.dataFormatter&&"function"==typeof this.formatDataOut?"return formatDataOut(input, output.slice(input.length).map(function(value) { return value - 1; }))":"return output.slice(input.length).map(function(value) { return value - 1; })")+";\n function Matrix(rows, columns) {\n this.rows = rows;\n this.columns = columns;\n this.weights = zeros(rows * columns);\n }\n "+(null!==this.dataFormatter&&"function"==typeof this.formatDataIn?"function formatDataIn(input, output) { "+n(this.formatDataIn.toString()).replace(/this[.]dataFormatter[\n\s]+[.]/g,"").replace(/this[.]dataFormatter[.]/g,"").replace(/this[.]dataFormatter/g,"true")+" }":"")+"\n "+(null!==this.dataFormatter&&"function"==typeof this.formatDataOut?"function formatDataOut(input, output) { "+n(this.formatDataOut.toString()).replace(/this[.]dataFormatter[\n\s]+[.]/g,"").replace(/this[.]dataFormatter[.]/g,"").replace(/this[.]dataFormatter/g,"true")+" }":"")+"\n "+_zeros2.default.toString()+"\n "+_softmax2.default.toString().replace("_2.default","Matrix")+"\n "+_random.randomF.toString()+"\n "+_sampleI2.default.toString()+"\n "+_maxI2.default.toString();return new Function("rawInput","isSampleI","temperature",g)}},{key:"isRunnable",get:function(){return 0!==this.model.equations.length||(console.error("No equations bound, did you run train()?"),!1)}}]),t}();exports.default=RNN,RNN.defaults={inputSize:20,inputRange:20,hiddenLayers:[20,20],outputSize:20,learningRate:.01,decayRate:.999,smoothEps:1e-8,regc:1e-6,clipval:5,maxPredictionLength:100,setupData:function(t){if(!("string"==typeof t[0]||Array.isArray(t[0])||t[0].hasOwnProperty("input")&&t[0].hasOwnProperty("output")))return t;var e=[],r=[];if("string"==typeof t[0]||Array.isArray(t[0])){if(null===this.dataFormatter){for(var n=0;n<t.length;n++)e.push(t[n]);this.dataFormatter=new _dataFormatter2.default(e)}for(var a=0,i=t.length;a<i;a++)r.push(this.formatDataIn(t[a]))}else{if(null===this.dataFormatter){for(var o=0;o<t.length;o++)e.push(t[o].input),e.push(t[o].output);this.dataFormatter=_dataFormatter2.default.fromArrayInputOutput(e),this.dataFormatter.addUnrecognized()}for(var u=0,s=t.length;u<s;u++)r.push(this.formatDataIn(t[u].input,t[u].output))}return r},formatDataIn:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return null!==this.dataFormatter?this.dataFormatter.indexTable.hasOwnProperty("stop-input")?this.dataFormatter.toIndexesInputOutput(t,e):this.dataFormatter.toIndexes(t):t},formatDataOut:function(t,e){return null!==this.dataFormatter?this.dataFormatter.toCharacters(e).join(""):e},dataFormatter:null},RNN.trainDefaults={iterations:2e4,errorThresh:.005,log:!1,logPeriod:10,learningRate:.3,callback:null,callbackPeriod:10,keepNetworkIntact:!1}; |
no test coverage detected