-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathrnn.min.js
1 lines (1 loc) · 1.78 KB
/
rnn.min.js
1
"use strict";function _i(r){return r&&null!=r&&""!=r}function _t(){var r=new Date,o=r.getHours(),n=r.getMinutes(),e=r.getSeconds();return o=(10>o?"0":"")+o,n=(10>n?"0":"")+n,e=(10>e?"0":"")+e,"["+o+"h:"+n+"m:"+e+"s]"}function log(r){console.log(_t()+" "+r)}function _x(){console.log("\n ################\n # RNN.js START #\n ################\n");var r=function(r,o){switch(r){case 1:log("Error: No inputs specified!");break;case 2:o=_i(o)?_p(o,!1):"err",log("Error: Not all inputs are integers! Failed to parse: "+o)}console.log(),process.exit(1)},o=process.argv.slice(2);_i(o)?function(o){var n=[];o.forEach(function(r){isNaN(r)&&n.push(r)}),0>=n.length?_r(o):r(2,n)}(o):r(1)}function _e(r){for(var o=[,],n=0;1>n;n++){o[n]=Array(r);for(var e=0;r>e;e++)o[n][e]=0}return o}function _p(r,o){return r=JSON.stringify(r).replace(/\[|\]/g,""),o?r.replace(/\,/g,"\n"):r.replace(/\,/g,", ")}function _r(r){var o=null,n=null,e=new Date;log("Rate: "+rate),log("Norm: "+norm),log("Iterations: "+rept),console.log(),log("Input: "+_p(r,!1));var t=Math.random()-norm,a=Math.random()-norm,l=Math.random()-norm;console.log(),log("Random: "+t+" | "+a+" | "+l),n=r.length;for(var s=_e(n),c=_e(n),i=function(r,o,n){var e=r[0][o+1],t=n[o+1];return e-t},u=function(r,o,n,e){var t=o[0][n+1];return r*t*((1-t)*e)},g=0;rept>g;g++){for(var f=0;n-1>f;f++)s[0][f]=t*r[f]+a*c[0][f]+l,c[0][f+1]=1/(1+Math.exp(-1*s[0][f]));for(var f=0;n-1>f;f++)for(var p,_=0;f+1>_;_++)p=f-_,o=0==_?i(c,p,r):u(a,c,p,o),t-=rate*o*r[p],a-=rate*o*c[0][p],l-=rate*o}console.log();for(var f=0;n-1>f;f++)s[0][f]=t*r[f]+a*c[0][f]+l,c[0][f+1]=1/(1+Math.exp(-1*s[0][f]));log("Outputs:\n\n"+_p(c,!0)),console.log();var v=new Date;log("Took "+(v-e)+"MS"),console.log("\n ###############\n # RNN.js STOP #\n ###############\n"),process.exit(0)}var rate=.05,norm=.5,rept=1e5;_x()