diff --git a/demos/dist/bundle.js b/demos/dist/bundle.js index 6a9c2e1..9ccc7b8 100644 --- a/demos/dist/bundle.js +++ b/demos/dist/bundle.js @@ -1,8 +1,8 @@ !function(e){function n(a){if(t[a])return t[a].exports;var o=t[a]={i:a,l:!1,exports:{}};return e[a].call(o.exports,o,o.exports,n),o.l=!0,o.exports}var t={};return n.m=e,n.c=t,n.i=function(e){return e},n.d=function(e,n,t){Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:t})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},n.p="",n(n.s=234)}([function(e,n,t){"use strict";function a(e){return"[object Array]"===k.call(e)}function o(e){return"[object ArrayBuffer]"===k.call(e)}function r(e){return"undefined"!=typeof FormData&&e instanceof FormData}function i(e){var n;return n="undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer}function s(e){return"string"==typeof e}function l(e){return"number"==typeof e}function c(e){return"undefined"==typeof e}function u(e){return null!==e&&"object"==typeof e}function d(e){return"[object Date]"===k.call(e)}function m(e){return"[object File]"===k.call(e)}function f(e){return"[object Blob]"===k.call(e)}function p(e){return"[object Function]"===k.call(e)}function h(e){return u(e)&&p(e.pipe)}function b(e){return"undefined"!=typeof URLSearchParams&&e instanceof URLSearchParams}function g(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}function v(){return"undefined"!=typeof window&&"undefined"!=typeof document&&"function"==typeof document.createElement}function x(e,n){if(null!==e&&"undefined"!=typeof e)if("object"==typeof e||a(e)||(e=[e]),a(e))for(var t=0,o=e.length;t=0&&v.splice(n,1)}function i(e){var n=document.createElement("style");return n.type="text/css",o(e,n),n}function s(e){var n=document.createElement("link");return n.rel="stylesheet",o(e,n),n}function l(e,n){var t,a,o;if(n.singleton){var l=g++;t=b||(b=i(n)),a=c.bind(null,t,l,!1),o=c.bind(null,t,l,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(t=s(n),a=d.bind(null,t),o=function(){r(t),t.href&&URL.revokeObjectURL(t.href)}):(t=i(n),a=u.bind(null,t),o=function(){r(t)});return a(e),function(n){if(n){if(n.css===e.css&&n.media===e.media&&n.sourceMap===e.sourceMap)return;a(e=n)}else o()}}function c(e,n,t,a){var o=t?"":a.css;if(e.styleSheet)e.styleSheet.cssText=x(n,o);else{var r=document.createTextNode(o),i=e.childNodes;i[n]&&e.removeChild(i[n]),i.length?e.insertBefore(r,i[n]):e.appendChild(r)}}function u(e,n){var t=n.css,a=n.media;if(a&&e.setAttribute("media",a),e.styleSheet)e.styleSheet.cssText=t;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(t))}}function d(e,n){var t=n.css,a=n.sourceMap;a&&(t+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(a))))+" */");var o=new Blob([t],{type:"text/css"}),r=e.href;e.href=URL.createObjectURL(o),r&&URL.revokeObjectURL(r)}var m={},f=function(e){var n;return function(){return"undefined"==typeof n&&(n=e.apply(this,arguments)),n}},p=f(function(){return/msie [6-9]\b/.test(window.navigator.userAgent.toLowerCase())}),h=f(function(){return document.head||document.getElementsByTagName("head")[0]}),b=null,g=0,v=[];e.exports=function(e,n){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");n=n||{},"undefined"==typeof n.singleton&&(n.singleton=p()),"undefined"==typeof n.insertAt&&(n.insertAt="bottom");var o=a(e);return t(o,n),function(e){for(var r=[],i=0;i0&&(li&&(i=l),cs&&(s=c))}o-=20,i+=20,r-=20,s+=20;var d=i-o+1,m=s-r+1;if(dm){var h=Math.floor((d-m)/2),b=d-m-h;s+=b,r-=h}d=i-o+1,m=s-r+1;for(var g=new Uint8ClampedArray(d*m*4),v=o;v<=i;v++)for(var x=r;x<=s;x++)if(v>=0&&v=0&&xt&&(t=e.data[a]);return{min:n,max:t}}function c(e){for(var n=l(e),t=n.min,a=n.max,o=new Uint8ClampedArray(4*e.size),r=0,i=o.length;r3&&void 0!==arguments[3]?arguments[3]:[0,0,0],o=n*t*4,r=new Uint8ClampedArray(o),i=0;i1&&void 0!==arguments[1]?arguments[1]:5,t=(0,w.default)(e)?Array.prototype.slice.call(e):e,a=(0,N.default)((0,L.default)(t.map(function(e,n){return[e,n]}),function(e){return e[0]})),o=(0,z.default)(a,n).map(function(e){var n=E.imagenetClasses[e[1]];return{id:n[0],name:n[1].replace(/_/," "),probability:e[0]}});return o}Object.defineProperty(n,"__esModule",{value:!0});var p=function(){function e(e,n){var t=[],a=!0,o=!1,r=void 0;try{for(var i,s=e[Symbol.iterator]();!(a=(i=s.next()).done)&&(t.push(i.value),!n||t.length!==n);a=!0);}catch(e){o=!0,r=e}finally{try{!a&&s.return&&s.return()}finally{if(o)throw r}}return t}return function(n,t){if(Array.isArray(n))return n;if(Symbol.iterator in Object(n))return e(n,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}();n.getMidpoint=o,n.getCoordinates=r,n.centerCrop=i,n.tensorStats=s,n.tensorMinMax=l,n.image1Dtensor=c,n.image2Dtensor=u,n.image2Darray=d,n.unroll3Dtensor=m,n.imagenetClassesTopK=f;var h=t(217),b=a(h),g=t(213),v=a(g),x=t(202),_=a(x),y=t(29),w=a(y),k=t(210),N=a(k),C=t(211),L=a(C),S=t(214),z=a(S),E=t(90)},function(e,n,t){function a(e){var n=-1,t=e?e.length:0;for(this.clear();++nMath.abs(this.stride[1]))?[1,0]:[0,1]}})"):3===n&&r.push("var s0=Math.abs(this.stride[0]),s1=Math.abs(this.stride[1]),s2=Math.abs(this.stride[2]);if(s0>s1){if(s1>s2){return [2,1,0];}else if(s0>s2){return [1,2,0];}else{return [1,0,2];}}else if(s0>s2){return [2,0,1];}else if(s2>s1){return [0,1,2];}else{return [0,2,1];}}})")):r.push("ORDER})")),r.push("proto.set=function "+t+"_set("+c.join(",")+",v){"),a?r.push("return this.data.set("+u+",v)}"):r.push("return this.data["+u+"]=v}"),r.push("proto.get=function "+t+"_get("+c.join(",")+"){"),a?r.push("return this.data.get("+u+")}"):r.push("return this.data["+u+"]}"),r.push("proto.index=function "+t+"_index(",c.join(),"){return "+u+"}"),r.push("proto.hi=function "+t+"_hi("+c.join(",")+"){return new "+t+"(this.data,"+s.map(function(e){return["(typeof i",e,"!=='number'||i",e,"<0)?this.shape[",e,"]:i",e,"|0"].join("")}).join(",")+","+s.map(function(e){return"this.stride["+e+"]"}).join(",")+",this.offset)}");var p=s.map(function(e){return"a"+e+"=this.shape["+e+"]"}),h=s.map(function(e){return"c"+e+"=this.stride["+e+"]"});r.push("proto.lo=function "+t+"_lo("+c.join(",")+"){var b=this.offset,d=0,"+p.join(",")+","+h.join(","));for(var b=0;b=0){d=i"+b+"|0;b+=c"+b+"*d;a"+b+"-=d}");r.push("return new "+t+"(this.data,"+s.map(function(e){return"a"+e}).join(",")+","+s.map(function(e){return"c"+e}).join(",")+",b)}"),r.push("proto.step=function "+t+"_step("+c.join(",")+"){var "+s.map(function(e){return"a"+e+"=this.shape["+e+"]"}).join(",")+","+s.map(function(e){return"b"+e+"=this.stride["+e+"]"}).join(",")+",c=this.offset,d=0,ceil=Math.ceil");for(var b=0;b=0){c=(c+this.stride["+b+"]*i"+b+")|0}else{a.push(this.shape["+b+"]);b.push(this.stride["+b+"])}");r.push("var ctor=CTOR_LIST[a.length+1];return ctor(this.data,a,b,c)}"),r.push("return function construct_"+t+"(data,shape,stride,offset){return new "+t+"(data,"+s.map(function(e){return"shape["+e+"]"}).join(",")+","+s.map(function(e){return"stride["+e+"]"}).join(",")+",offset)}");var i=new Function("CTOR_LIST","ORDER",r.join("\n"));return i(d[e],o)}function i(e){if(c(e))return"buffer";if(u)switch(Object.prototype.toString.call(e)){case"[object Float64Array]":return"float64";case"[object Float32Array]":return"float32";case"[object Int8Array]":return"int8";case"[object Int16Array]":return"int16";case"[object Int32Array]":return"int32";case"[object Uint8Array]":return"uint8";case"[object Uint16Array]":return"uint16";case"[object Uint32Array]":return"uint32";case"[object Uint8ClampedArray]":return"uint8_clamped"}return Array.isArray(e)?"array":"generic"}function s(e,n,t,a){if(void 0===e){var o=d.array[0];return o([])}"number"==typeof e&&(e=[e]),void 0===n&&(n=[e.length]);var s=n.length;if(void 0===t){t=new Array(s);for(var l=s-1,c=1;l>=0;--l)t[l]=c,c*=n[l]}if(void 0===a){a=0;for(var l=0;l-1&&e%1==0&&e-1&&e%1==0&&e<=a}var a=9007199254740991;e.exports=t},function(e,n,t){var a=t(131),o=t(46),r=t(185),i=r&&r.isTypedArray,s=i?o(i):a;e.exports=s},function(e,n,t){function a(e){if(!e)return 0===e?e:0;if(e=o(e),e===r||e===-r){var n=e<0?-1:1;return n*i}return e===e?e:0}var o=t(58),r=1/0,i=1.7976931348623157e308;e.exports=a},function(e,n,t){"use strict";function a(e){if(!e)return s;for(var n=0;n>",rrshift:">>>"};!function(){for(var e in l){var t=l[e];n[e]=r({args:["array","array","array"],body:{args:["a","b","c"],body:"a=b"+t+"c"},funcName:e}),n[e+"eq"]=r({args:["array","array"],body:{args:["a","b"],body:"a"+t+"=b"},rvalue:!0,funcName:e+"eq"}),n[e+"s"]=r({args:["array","array","scalar"],body:{args:["a","b","s"],body:"a=b"+t+"s"},funcName:e+"s"}),n[e+"seq"]=r({args:["array","scalar"],body:{args:["a","s"],body:"a"+t+"=s"},rvalue:!0,funcName:e+"seq"})}}();var c={not:"!",bnot:"~",neg:"-",recip:"1.0/"};!function(){for(var e in c){var t=c[e];n[e]=r({args:["array","array"],body:{args:["a","b"],body:"a="+t+"b"},funcName:e}),n[e+"eq"]=r({args:["array"],body:{args:["a"],body:"a="+t+"a"},rvalue:!0,count:2,funcName:e+"eq"})}}();var u={and:"&&",or:"||",eq:"===",neq:"!==",lt:"<",gt:">",leq:"<=",geq:">="};!function(){for(var e in u){var t=u[e];n[e]=r({args:["array","array","array"],body:{args:["a","b","c"],body:"a=b"+t+"c"},funcName:e}),n[e+"s"]=r({args:["array","array","scalar"],body:{args:["a","b","s"],body:"a=b"+t+"s"},funcName:e+"s"}),n[e+"eq"]=r({args:["array","array"],body:{args:["a","b"],body:"a=a"+t+"b"},rvalue:!0,count:2,funcName:e+"eq"}),n[e+"seq"]=r({args:["array","scalar"],body:{args:["a","s"],body:"a=a"+t+"s"},rvalue:!0,count:2,funcName:e+"seq"})}}();var d=["abs","acos","asin","atan","ceil","cos","exp","floor","log","round","sin","sqrt","tan"];!function(){for(var e=0;ethis_s){this_s=-a}else if(a>this_s){this_s=a}",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"norminf"}),n.norm1=i({args:["array"],pre:{args:[],localVars:[],thisVars:["this_s"],body:"this_s=0"},body:{args:[{name:"a",lvalue:!1,rvalue:!0,count:3}],body:"this_s+=a<0?-a:a",localVars:[],thisVars:["this_s"]},post:{args:[],localVars:[],thisVars:["this_s"],body:"return this_s"},funcName:"norm1"}),n.sup=i({args:["array"],pre:{body:"this_h=-Infinity",args:[],thisVars:["this_h"],localVars:[]},body:{body:"if(_inline_1_arg0_>this_h)this_h=_inline_1_arg0_",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:2}],thisVars:["this_h"],localVars:[]},post:{body:"return this_h",args:[],thisVars:["this_h"],localVars:[]}}),n.inf=i({args:["array"],pre:{body:"this_h=Infinity",args:[],thisVars:["this_h"],localVars:[]},body:{body:"if(_inline_1_arg0_this_v){this_v=_inline_1_arg1_;for(var _inline_1_k=0;_inline_1_k<_inline_1_arg0_.length;++_inline_1_k){this_i[_inline_1_k]=_inline_1_arg0_[_inline_1_k]}}}",args:[{name:"_inline_1_arg0_",lvalue:!1,rvalue:!0,count:2},{name:"_inline_1_arg1_",lvalue:!1,rvalue:!0,count:2}],thisVars:["this_i","this_v"],localVars:["_inline_1_k"]},post:{body:"{return this_i}",args:[],thisVars:["this_i"],localVars:[]}}),n.random=r({args:["array"],pre:{args:[],body:"this_f=Math.random",thisVars:["this_f"]},body:{args:["a"],body:"a=this_f()",thisVars:["this_f"]},funcName:"random"}),n.assign=r({args:["array","array"],body:{args:["a","b"],body:"a=b"},funcName:"assign"}),n.assigns=r({args:["array","scalar"],body:{args:["a","b"],body:"a=b"},funcName:"assigns"}),n.equals=i({args:["array","array"],pre:s,body:{args:[{name:"x",lvalue:!1,rvalue:!0,count:1},{name:"y",lvalue:!1,rvalue:!0,count:1}],body:"if(x!==y){return false}",localVars:[],thisVars:[]},post:{args:[],localVars:[],thisVars:[],body:"return true"},funcName:"equals"})},function(e,n,t){"use strict";var a=t(0),o=t(70),r=t(73),i=t(79),s=t(77),l=t(35),c="undefined"!=typeof window&&window.btoa||t(72);e.exports=function(e){return new Promise(function(n,u){var d=e.data,m=e.headers;a.isFormData(d)&&delete m["Content-Type"];var f=new XMLHttpRequest,p="onreadystatechange",h=!1;if("undefined"==typeof window||!window.XDomainRequest||"withCredentials"in f||s(e.url)||(f=new window.XDomainRequest,p="onload",h=!0,f.onprogress=function(){},f.ontimeout=function(){}),e.auth){var b=e.auth.username||"",g=e.auth.password||"";m.Authorization="Basic "+c(b+":"+g)}if(f.open(e.method.toUpperCase(),r(e.url,e.params,e.paramsSerializer),!0),f.timeout=e.timeout,f[p]=function(){if(f&&(4===f.readyState||h)&&(0!==f.status||f.responseURL&&0===f.responseURL.indexOf("file:"))){var t="getAllResponseHeaders"in f?i(f.getAllResponseHeaders()):null,a=e.responseType&&"text"!==e.responseType?f.response:f.responseText,r={data:a,status:1223===f.status?204:f.status,statusText:1223===f.status?"No Content":f.statusText,headers:t,config:e,request:f};o(n,u,r),f=null}},f.onerror=function(){u(l("Network Error",e)),f=null},f.ontimeout=function(){u(l("timeout of "+e.timeout+"ms exceeded",e,"ECONNABORTED")),f=null},a.isStandardBrowserEnv()){var v=t(75),x=(e.withCredentials||s(e.url))&&e.xsrfCookieName?v.read(e.xsrfCookieName):void 0;x&&(m[e.xsrfHeaderName]=x)}if("setRequestHeader"in f&&a.forEach(m,function(e,n){"undefined"==typeof d&&"content-type"===n.toLowerCase()?delete m[n]:f.setRequestHeader(n,e)}),e.withCredentials&&(f.withCredentials=!0),e.responseType)try{f.responseType=e.responseType}catch(e){if("json"!==f.responseType)throw e}"function"==typeof e.onDownloadProgress&&f.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&f.upload&&f.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then(function(e){f.abort(),u(e),f=null}),void 0===d&&(d=null),f.send(d)})}},function(e,n){"use strict";function t(e){this.message=e}t.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},t.prototype.__CANCEL__=!0,e.exports=t},function(e,n){"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},function(e,n,t){"use strict";var a=t(69);e.exports=function(e,n,t,o){var r=new Error(e);return a(r,n,t,o)}},function(e,n,t){"use strict";(function(n){function a(e,n){!r.isUndefined(e)&&r.isUndefined(e["Content-Type"])&&(e["Content-Type"]=n)}function o(){var e;return"undefined"!=typeof XMLHttpRequest?e=t(32):"undefined"!=typeof n&&(e=t(32)),e}var r=t(0),i=t(78),s=/^\)\]\}',?\n/,l={"Content-Type":"application/x-www-form-urlencoded"};e.exports={adapter:o(),transformRequest:[function(e,n){return i(n,"Content-Type"),r.isFormData(e)||r.isArrayBuffer(e)||r.isStream(e)||r.isFile(e)||r.isBlob(e)?e:r.isArrayBufferView(e)?e.buffer:r.isURLSearchParams(e)?(a(n,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):r.isObject(e)?(a(n,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function(e){if("string"==typeof e){e=e.replace(s,"");try{e=JSON.parse(e)}catch(e){}}return e}],headers:{common:{Accept:"application/json, text/plain, */*"},patch:r.merge(l),post:r.merge(l),put:r.merge(l)},timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(e){return e>=200&&e<300}}}).call(n,t(218))},function(e,n){"use strict";e.exports=function(e,n){return function(){for(var t=new Array(arguments.length),a=0;a0)throw new Error("cwise: pre() block may not reference array args");if(o0)throw new Error("cwise: post() block may not reference array args")}else if("scalar"===i)n.scalarArgs.push(o),n.shimArgs.push("scalar"+o);else if("index"===i){if(n.indexArgs.push(o),o0)throw new Error("cwise: pre() block may not reference array index");if(o0)throw new Error("cwise: post() block may not reference array index")}else if("shape"===i){if(n.shapeArgs.push(o),ot.length)throw new Error("cwise: Too many arguments in pre() block");if(n.body.args.length>t.length)throw new Error("cwise: Too many arguments in body() block");if(n.post.args.length>t.length)throw new Error("cwise: Too many arguments in post() block");return n.debug=!!e.printCode||!!e.debug,n.funcName=e.funcName||"cwise",n.blockSize=e.blockSize||64,r(n)}var r=t(102);e.exports=o},function(e,n,t){function a(e){var n=this.__data__=new o(e);this.size=n.size}var o=t(12),r=t(193),i=t(194),s=t(195),l=t(196),c=t(197);a.prototype.clear=r,a.prototype.delete=i,a.prototype.get=s,a.prototype.has=l,a.prototype.set=c,e.exports=a},function(e,n){function t(e,n){for(var t=-1,a=e?e.length:0,o=Array(a);++t0&&t(u)?n>1?a(u,n-1,t,i,s):o(s,u):i||(s[s.length]=u)}return s}var o=t(119),r=t(168);e.exports=a},function(e,n,t){function a(e,n){n=r(n,e)?[n]:o(n);for(var t=0,a=n.length;null!=e&&tm))return!1;var p=u.get(e);if(p&&u.get(n))return p==n;var h=-1,b=!0,g=c&s?new o:void 0;for(u.set(e,n),u.set(n,e);++h=n||t<0||L&&a>=_}function f(){var e=r();return m(e)?p(e):void(w=setTimeout(f,d(e)))}function p(e){return w=void 0,S&&v?a(e):(v=x=void 0,y)}function h(){void 0!==w&&clearTimeout(w),N=0,v=k=x=w=void 0}function b(){return void 0===w?y:p(r())}function g(){var e=r(),t=m(e);if(v=arguments,x=this,k=e,t){if(void 0===w)return u(k);if(L)return w=setTimeout(f,n),a(k)}return void 0===w&&(w=setTimeout(f,n)),y}var v,x,_,y,w,k,N=0,C=!1,L=!1,S=!0;if("function"!=typeof e)throw new TypeError(s);return n=i(n)||0,o(t)&&(C=!!t.leading,L="maxWait"in t,_=L?l(i(t.maxWait)||0,n):_,S="trailing"in t?!!t.trailing:S),g.cancel=h,g.flush=b,g}var o=t(6),r=t(206),i=t(58),s="Expected a function",l=Math.max,c=Math.min;e.exports=a},function(e,n,t){function a(e,n,t){var a=e?e.length:0;if(!a)return-1;var l=null==t?0:i(t);return l<0&&(l=s(a+l,0)),o(e,r(n,3),l)}var o=t(122),r=t(14),i=t(57),s=Math.max;e.exports=a},function(e,n,t){(function(e){var a=t(1),o=t(212),r="object"==typeof n&&n&&!n.nodeType&&n,i=r&&"object"==typeof e&&e&&!e.nodeType&&e,s=i&&i.exports===r,l=s?a.Buffer:void 0,c=l?l.isBuffer:void 0,u=c||o;e.exports=u}).call(n,t(61)(e))},function(e,n,t){function a(e){var n=o(e)?c.call(e):"";return n==r||n==i||n==s}var o=t(6),r="[object Function]",i="[object GeneratorFunction]",s="[object Proxy]",l=Object.prototype,c=l.toString;e.exports=a},function(e,n,t){function a(e){var n=o(e),t=n%1;return n===n?t?n-t:n:0}var o=t(30);e.exports=a},function(e,n,t){function a(e){if("number"==typeof e)return e;if(r(e))return i;if(o(e)){var n="function"==typeof e.valueOf?e.valueOf():e;e=o(n)?n+"":n}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(s,"");var t=c.test(e);return t||u.test(e)?d(e.slice(2),t?2:8):l.test(e)?i:+e}var o=t(6),r=t(10),i=NaN,s=/^\s+|\s+$/g,l=/^[-+]0x[0-9a-f]+$/i,c=/^0b[01]+$/i,u=/^0o[0-7]+$/i,d=parseInt;e.exports=a},function(e,n){"use strict";function t(e,n){for(var t=1,a=e.length,o=e[0],r=e[0],i=1;i-1?d.currentView=t:d.currentView="home"}t(229);var o=t(85),r=t(81),i=t(86),s=t(87),l=t(89),c=t(84),u=t(82);Vue.component("menu",o.Menu),Vue.component("home",r.Home),Vue.component("mnist-cnn",i.MnistCnn),Vue.component("mnist-vae",s.MnistVae),Vue.component("resnet50",l.ResNet50),Vue.component("inception-v3",c.InceptionV3),Vue.component("imdb-bidirectional-lstm",u.ImdbBidirectionalLstm),Vue.use(VueMdl.default);var d=new Vue({el:"#app",data:function(){return{currentView:"home",hasWebgl:!0}},created:function(){var e=document.createElement("canvas"),n=e.getContext("webgl")||e.getContext("experimental-webgl");n&&n instanceof WebGLRenderingContext?this.hasWebgl=!0:this.hasWebgl=!1}});window.addEventListener("load",a),window.addEventListener("hashchange",a)},function(e,n,t){e.exports=t(64)},function(e,n,t){"use strict";function a(e){var n=new i(e),t=r(i.prototype.request,n);return o.extend(t,i.prototype,n),o.extend(t,n),t}var o=t(0),r=t(37),i=t(66),s=a();s.Axios=i,s.create=function(e){return a(e)},s.Cancel=t(33),s.CancelToken=t(65),s.isCancel=t(34),s.all=function(e){return Promise.all(e)},s.spread=t(80),e.exports=s,e.exports.default=s},function(e,n,t){"use strict";function a(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var n;this.promise=new Promise(function(e){n=e});var t=this;e(function(e){t.reason||(t.reason=new o(e),n(t.reason))})}var o=t(33);a.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},a.source=function(){var e,n=new a(function(n){e=n});return{token:n,cancel:e}},e.exports=a},function(e,n,t){"use strict";function a(e){this.defaults=r.merge(o,e),this.interceptors={request:new i,response:new i}}var o=t(36),r=t(0),i=t(67),s=t(68),l=t(76),c=t(74);a.prototype.request=function(e){"string"==typeof e&&(e=r.merge({url:arguments[0]},arguments[1])),e=r.merge(o,this.defaults,{method:"get"},e),e.baseURL&&!l(e.url)&&(e.url=c(e.baseURL,e.url));var n=[s,void 0],t=Promise.resolve(e);for(this.interceptors.request.forEach(function(e){n.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function(e){n.push(e.fulfilled,e.rejected)});n.length;)t=t.then(n.shift(),n.shift());return t},r.forEach(["delete","get","head"],function(e){a.prototype[e]=function(n,t){return this.request(r.merge(t||{},{method:e,url:n}))}}),r.forEach(["post","put","patch"],function(e){a.prototype[e]=function(n,t,a){return this.request(r.merge(a||{},{method:e,url:n,data:t}))}}),e.exports=a},function(e,n,t){"use strict";function a(){this.handlers=[]}var o=t(0);a.prototype.use=function(e,n){return this.handlers.push({fulfilled:e,rejected:n}),this.handlers.length-1},a.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},a.prototype.forEach=function(e){o.forEach(this.handlers,function(n){null!==n&&e(n)})},e.exports=a},function(e,n,t){"use strict";function a(e){e.cancelToken&&e.cancelToken.throwIfRequested()}var o=t(0),r=t(71),i=t(34),s=t(36);e.exports=function(e){a(e),e.headers=e.headers||{},e.data=r(e.data,e.headers,e.transformRequest),e.headers=o.merge(e.headers.common||{},e.headers[e.method]||{},e.headers||{}),o.forEach(["delete","get","head","post","put","patch","common"],function(n){delete e.headers[n]});var n=e.adapter||s.adapter;return n(e).then(function(n){return a(e),n.data=r(n.data,n.headers,e.transformResponse),n},function(n){return i(n)||(a(e),n&&n.response&&(n.response.data=r(n.response.data,n.response.headers,e.transformResponse))),Promise.reject(n)})}},function(e,n){"use strict";e.exports=function(e,n,t,a){return e.config=n,t&&(e.code=t),e.response=a,e}},function(e,n,t){"use strict";var a=t(35);e.exports=function(e,n,t){var o=t.config.validateStatus;t.status&&o&&!o(t.status)?n(a("Request failed with status code "+t.status,t.config,null,t)):e(t)}},function(e,n,t){"use strict";var a=t(0);e.exports=function(e,n,t){return a.forEach(t,function(t){e=t(e,n)}),e}},function(e,n){"use strict";function t(){this.message="String contains an invalid character"}function a(e){for(var n,a,r=String(e),i="",s=0,l=o;r.charAt(0|s)||(l="=",s%1);i+=l.charAt(63&n>>8-s%1*8)){if(a=r.charCodeAt(s+=.75),a>255)throw new t;n=n<<8|a}return i}var o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";t.prototype=new Error,t.prototype.code=5,t.prototype.name="InvalidCharacterError",e.exports=a},function(e,n,t){"use strict";function a(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}var o=t(0);e.exports=function(e,n,t){if(!n)return e;var r;if(t)r=t(n);else if(o.isURLSearchParams(n))r=n.toString();else{var i=[];o.forEach(n,function(e,n){null!==e&&"undefined"!=typeof e&&(o.isArray(e)&&(n+="[]"),o.isArray(e)||(e=[e]),o.forEach(e,function(e){o.isDate(e)?e=e.toISOString():o.isObject(e)&&(e=JSON.stringify(e)),i.push(a(n)+"="+a(e))}))}),r=i.join("&")}return r&&(e+=(e.indexOf("?")===-1?"?":"&")+r),e}},function(e,n){"use strict";e.exports=function(e,n){return e.replace(/\/+$/,"")+"/"+n.replace(/^\/+/,"")}},function(e,n,t){"use strict";var a=t(0);e.exports=a.isStandardBrowserEnv()?function(){return{write:function(e,n,t,o,r,i){var s=[];s.push(e+"="+encodeURIComponent(n)),a.isNumber(t)&&s.push("expires="+new Date(t).toGMTString()),a.isString(o)&&s.push("path="+o),a.isString(r)&&s.push("domain="+r),i===!0&&s.push("secure"),document.cookie=s.join("; ")},read:function(e){var n=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return n?decodeURIComponent(n[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()},function(e,n){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},function(e,n,t){"use strict";var a=t(0);e.exports=a.isStandardBrowserEnv()?function(){function e(e){var n=e;return t&&(o.setAttribute("href",n),n=o.href),o.setAttribute("href",n),{href:o.href,protocol:o.protocol?o.protocol.replace(/:$/,""):"",host:o.host,search:o.search?o.search.replace(/^\?/,""):"",hash:o.hash?o.hash.replace(/^#/,""):"",hostname:o.hostname,port:o.port,pathname:"/"===o.pathname.charAt(0)?o.pathname:"/"+o.pathname}}var n,t=/(msie|trident)/i.test(navigator.userAgent),o=document.createElement("a");return n=e(window.location.href),function(t){var o=a.isString(t)?e(t):t;return o.protocol===n.protocol&&o.host===n.host}}():function(){return function(){return!0}}()},function(e,n,t){"use strict";var a=t(0);e.exports=function(e,n){a.forEach(e,function(t,a){a!==n&&a.toUpperCase()===n.toUpperCase()&&(e[n]=t,delete e[a])})}},function(e,n,t){"use strict";var a=t(0);e.exports=function(e){var n,t,o,r={};return e?(a.forEach(e.split("\n"),function(e){o=e.indexOf(":"),n=a.trim(e.substr(0,o)).toLowerCase(),t=a.trim(e.substr(o+1)),n&&(r[n]=r[n]?r[n]+", "+t:t)}),r):r}},function(e,n){"use strict";e.exports=function(e){return function(n){return e.apply(null,n)}}},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.Home=void 0,t(226);var a=[{title:"Basic Convnet for MNIST",imagePath:"demos/assets/mnist-cnn.png"},{title:"Convolutional Variational Autoencoder, trained on MNIST",imagePath:"demos/assets/mnist-vae.png"},{title:"50-layer Residual Network, trained on ImageNet",imagePath:"demos/assets/resnet50.png"},{title:"Inception V3, trained on ImageNet",imagePath:"demos/assets/inception-v3.png"},{title:"Bidirectional LSTM for IMDB sentiment classification",imagePath:"demos/assets/imdb-bidirectional-lstm.png"}],o=a;n.Home=Vue.extend({template:t(219),data:function(){return{demoInfo:o}}})},function(e,n,t){"use strict";function a(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(n,"__esModule",{value:!0}),n.ImdbBidirectionalLstm=void 0,t(227);var o=t(63),r=a(o),i=t(53),s=a(i),l=t(208),c=a(l),u=t(54),d=a(u),m=t(31),f=a(m),p=t(91),h=a(p),b={model:"demos/data/imdb_bidirectional_lstm/imdb_bidirectional_lstm.json",weights:"https://transcranial.github.io/keras-js-demos-data/imdb_bidirectional_lstm/imdb_bidirectional_lstm_weights.buf",metadata:"demos/data/imdb_bidirectional_lstm/imdb_bidirectional_lstm_metadata.json"},g={filepaths:b},v={wordIndex:"/demos/data/imdb_bidirectional_lstm/imdb_dataset_word_index_top20000.json",wordDict:"/demos/data/imdb_bidirectional_lstm/imdb_dataset_word_dict_top20000.json",testSamples:"/demos/data/imdb_bidirectional_lstm/imdb_dataset_test.json"},x=v,_=200,y=1,w=2,k=3,N=[{name:"embedding_1",className:"Embedding",details:"200 time steps, dim 20000 -> 64"},{name:"bidirectional_1",className:"Bidirectional [LSTM]",details:"200 time steps, dim 64 -> 32, concat merge, tanh activation, hard sigmoid inner activation"},{name:"dropout_1",className:"Dropout",details:"p=0.5 (active during training)"},{name:"dense_1",className:"Dense",details:"output dim 1, sigmoid activation"}];n.ImdbBidirectionalLstm=Vue.extend({props:["hasWebgl"],template:t(220),data:function(){return{showInfoPanel:!0,useGpu:!1,model:new KerasJS.Model(Object.assign({gpu:!1},g)),modelLoading:!0,modelRunning:!1,input:new Float32Array(_),output:new Float32Array(1),inputText:"",inputTextParsed:[],stepwiseOutput:[],wordIndex:{},wordDict:{},testSamples:[],isSampleText:!1,sampleTextLabel:null,architectureDiagramLayers:N}},computed:{loadingProgress:function(){return this.model.getLoadingProgress()},outputColor:function(){return this.output[0]>0&&this.output[0]<.5?"rgba(242, 38, 19, "+(1-this.output[0])+")":this.output[0]>=.5?"rgba(27, 188, 155, "+this.output[0]+")":"#69707a"},stepwiseOutputColor:function(){return this.stepwiseOutput.map(function(e){return e>0&&e<.5?"rgba(242, 38, 19, "+(.5-e)+")":e>=.5?"rgba(27, 188, 155, "+(e-.5)+")":"white"})}},ready:function(){var e=this;this.model.ready().then(function(){e.modelLoading=!1,e.loadAdditionalData()})},methods:{closeInfoPanel:function(){this.showInfoPanel=!1},toggleGpu:function(){this.model.toggleGpu(!this.useGpu)},clear:function(e){this.inputText="",this.inputTextParsed=[],this.output=new Float32Array(1)},loadAdditionalData:function(){var e=this;this.modelLoading=!0;var n=["wordIndex","wordDict","testSamples"].map(function(e){return r.default.get(x[e])});r.default.all(n).then(r.default.spread(function(n,t,a){e.wordIndex=n.data,e.wordDict=t.data,e.testSamples=a.data,e.modelLoading=!1}))},randomSample:function(){var e=this;this.modelRunning=!0,this.isSampleText=!0;var n=(0,c.default)(0,this.testSamples.length-1),t=this.testSamples[n].values;this.sampleTextLabel=0===this.testSamples[n].label?"negative":"positive";var a=t.map(function(n){return 0===n||1===n?"":2===n?"":e.wordDict[n-k]});this.inputText=a.join(" ").trim(),this.inputTextParsed=a.filter(function(e){return!!e}),this.input=new Float32Array(t),this.model.predict({input:this.input}).then(function(n){e.output=n.output,e.stepwiseCalc(),e.modelRunning=!1})},inputChanged:(0,s.default)(function(){var e=this;if(!this.modelRunning){if(""===this.inputText.trim())return void(this.inputTextParsed=[]);this.modelRunning=!0,this.isSampleText=!1,this.inputTextParsed=this.inputText.trim().toLowerCase().split(/[\s\.,!?]+/gi),this.input=new Float32Array(_);var n=this.inputTextParsed.map(function(n){var t=e.wordIndex[n];return t?t+k:w});n=[y].concat(n),n=n.slice(-_);for(var t=Math.max(0,_-n.length),a=t;a<_;a++)this.input[a]=n[a-t];this.model.predict({input:this.input}).then(function(n){e.output=n.output,e.stepwiseCalc(),e.modelRunning=!1})}},200),stepwiseCalc:function(){var e=this.model.modelLayersMap.get("dense_1"),n=this.model.modelLayersMap.get("bidirectional_1").forwardLayer.hiddenStateSequence,t=this.model.modelLayersMap.get("bidirectional_1").backwardLayer.hiddenStateSequence,a=n.tensor.shape[1],o=t.tensor.shape[1],r=(0,d.default)(this.input,function(e){return e>=k});if(r!==-1){for(var i=[],s=r;s<_;s++){var l=new h.default([],[a+o]);f.default.assign(l.tensor.hi(a).lo(0),n.tensor.pick(s,null)),f.default.assign(l.tensor.hi(a+o).lo(a),t.tensor.pick(_-s-1,null)),i.push(e.call(l).tensor.data[0])}this.stepwiseOutput=i}}}})},function(e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});n.ARCHITECTURE_DIAGRAM=[{name:"convolution2d_1",className:"Convolution2D",details:"32 3x3 filters, 2x2 strides, border mode valid, ReLU",row:0,col:0},{name:"batchnormalization_1",className:"BatchNormalization",details:"channel axis features",row:1,col:0},{name:"convolution2d_2",className:"Convolution2D",details:"32 3x3 filters, 1x1 strides, border mode valid, ReLU",row:2,col:0},{name:"batchnormalization_2",className:"BatchNormalization",details:"channel axis features",row:3,col:0},{name:"convolution2d_3",className:"Convolution2D",details:"64 3x3 filters, 1x1 strides, border mode same, ReLU",row:4,col:0},{name:"batchnormalization_3",className:"BatchNormalization",details:"channel axis features",row:5,col:0},{name:"maxpooling2d_1",className:"MaxPooling2D",details:"3x3 pool size, 2x2 strides, border mode valid",row:6,col:0},{name:"convolution2d_4",className:"Convolution2D",details:"80 1x1 filters, 1x1 strides, border mode valid, ReLU",row:7,col:0},{name:"batchnormalization_4",className:"BatchNormalization",details:"channel axis features",row:8,col:0},{name:"convolution2d_5",className:"Convolution2D",details:"192 3x3 filters, 1x1 strides, border mode valid, ReLU",row:9,col:0},{name:"batchnormalization_5",className:"BatchNormalization",details:"channel axis features",row:10,col:0},{name:"maxpooling2d_2",className:"MaxPooling2D",details:"3x3 pool size, 2x2 strides, border mode valid",row:11,col:0},{name:"convolution2d_9",className:"Convolution2D",details:"64 1x1 filters, 1x1 strides, border mode same, ReLU",row:12,col:0},{name:"batchnormalization_9",className:"BatchNormalization",details:"channel axis features",row:13,col:0},{name:"convolution2d_7",className:"Convolution2D",details:"48 1x1 filters, 1x1 strides, border mode same, ReLU",row:12,col:1},{name:"convolution2d_10",className:"Convolution2D",details:"96 3x3 filters, 1x1 strides, border mode same, ReLU",row:14,col:2},{name:"batchnormalization_7",className:"BatchNormalization",details:"channel axis features",row:13,col:1},{name:"batchnormalization_10",className:"BatchNormalization",details:"channel axis features",row:15,col:2},{name:"averagepooling2d_1",className:"AveragePooling2D",details:"3x3 pool size, 1x1 strides, border mode same",row:12,col:3},{name:"convolution2d_6",className:"Convolution2D",details:"64 1x1 filters, 1x1 strides, border mode same, ReLU",row:12,col:2},{name:"convolution2d_8",className:"Convolution2D",details:"64 5x5 filters, 1x1 strides, border mode same, ReLU",row:14,col:1},{name:"convolution2d_11",className:"Convolution2D",details:"96 3x3 filters, 1x1 strides, border mode same, ReLU",row:16,col:2},{name:"convolution2d_12",className:"Convolution2D",details:"32 1x1 filters, 1x1 strides, border mode same, ReLU",row:13,col:3},{name:"batchnormalization_6",className:"BatchNormalization",details:"channel axis features",row:13,col:2},{name:"batchnormalization_8",className:"BatchNormalization",details:"channel axis features",row:15,col:1},{name:"batchnormalization_11",className:"BatchNormalization",details:"channel axis features",row:17,col:2},{name:"batchnormalization_12",className:"BatchNormalization",details:"channel axis features",row:14,col:3},{name:"mixed0",className:"Merge",details:"concat by channel axes",row:18,col:3},{name:"convolution2d_16",className:"Convolution2D",details:"64 1x1 filters, 1x1 strides, border mode same, ReLU",row:19,col:0},{name:"batchnormalization_16",className:"BatchNormalization",details:"channel axis features",row:20,col:0},{name:"convolution2d_14",className:"Convolution2D",details:"48 1x1 filters, 1x1 strides, border mode same, ReLU",row:19,col:1},{name:"convolution2d_17",className:"Convolution2D",details:"96 3x3 filters, 1x1 strides, border mode same, ReLU",row:21,col:2},{name:"batchnormalization_14",className:"BatchNormalization",details:"channel axis features",row:20,col:1},{name:"batchnormalization_17",className:"BatchNormalization",details:"channel axis features",row:22,col:2},{name:"averagepooling2d_2",className:"AveragePooling2D",details:"3x3 pool size, 1x1 strides, border mode same",row:19,col:3},{name:"convolution2d_13",className:"Convolution2D",details:"64 1x1 filters, 1x1 strides, border mode same, ReLU",row:19,col:2},{name:"convolution2d_15",className:"Convolution2D",details:"64 5x5 filters, 1x1 strides, border mode same, ReLU",row:21,col:1},{name:"convolution2d_18",className:"Convolution2D",details:"96 3x3 filters, 1x1 strides, border mode same, ReLU",row:23,col:2},{name:"convolution2d_19",className:"Convolution2D",details:"32 1x1 filters, 1x1 strides, border mode same, ReLU",row:20,col:3},{name:"batchnormalization_13",className:"BatchNormalization",details:"channel axis features",row:20,col:2},{name:"batchnormalization_15",className:"BatchNormalization",details:"channel axis features",row:22,col:1},{name:"batchnormalization_18",className:"BatchNormalization",details:"channel axis features",row:24,col:2},{name:"batchnormalization_19",className:"BatchNormalization",details:"channel axis features",row:21,col:3},{name:"mixed1",className:"Merge",details:"concat by channel axes",row:25,col:3},{name:"convolution2d_23",className:"Convolution2D",details:"64 1x1 filters, 1x1 strides, border mode same, ReLU",row:26,col:0},{name:"batchnormalization_23",className:"BatchNormalization",details:"channel axis features",row:27,col:0},{name:"convolution2d_21",className:"Convolution2D",details:"48 1x1 filters, 1x1 strides, border mode same, ReLU",row:26,col:1},{name:"convolution2d_24",className:"Convolution2D",details:"96 3x3 filters, 1x1 strides, border mode same, ReLU",row:28,col:2},{name:"batchnormalization_21",className:"BatchNormalization",details:"channel axis features",row:27,col:1},{name:"batchnormalization_24",className:"BatchNormalization",details:"channel axis features",row:29,col:2},{name:"averagepooling2d_3",className:"AveragePooling2D",details:"3x3 pool size, 1x1 strides, border mode same",row:26,col:3},{name:"convolution2d_20",className:"Convolution2D",details:"64 1x1 filters, 1x1 strides, border mode same, ReLU",row:26,col:2},{name:"convolution2d_22",className:"Convolution2D",details:"64 5x5 filters, 1x1 strides, border mode same, ReLU",row:28,col:1},{name:"convolution2d_25",className:"Convolution2D",details:"96 3x3 filters, 1x1 strides, border mode same, ReLU",row:30,col:2},{name:"convolution2d_26",className:"Convolution2D",details:"32 1x1 filters, 1x1 strides, border mode same, ReLU",row:27,col:3},{name:"batchnormalization_20",className:"BatchNormalization",details:"channel axis features",row:27,col:2},{name:"batchnormalization_22",className:"BatchNormalization",details:"channel axis features",row:29,col:1},{name:"batchnormalization_25",className:"BatchNormalization",details:"channel axis features",row:31,col:2},{name:"batchnormalization_26",className:"BatchNormalization",details:"channel axis features",row:28,col:3},{name:"mixed2",className:"Merge",details:"concat by channel axes",row:32,col:3},{name:"convolution2d_28",className:"Convolution2D",details:"64 1x1 filters, 1x1 strides, border mode same, ReLU",row:33,col:1},{name:"batchnormalization_28",className:"BatchNormalization",details:"channel axis features",row:34,col:1},{name:"convolution2d_29",className:"Convolution2D",details:"96 3x3 filters, 1x1 strides, border mode same, ReLU",row:35,col:1},{name:"batchnormalization_29",className:"BatchNormalization",details:"channel axis features",row:36,col:1},{name:"convolution2d_27",className:"Convolution2D",details:"384 3x3 filters, 2x2 strides, border mode valid, ReLU",row:33,col:0},{name:"convolution2d_30",className:"Convolution2D",details:"96 3x3 filters, 2x2 strides, border mode valid, ReLU",row:37,col:1},{name:"batchnormalization_27",className:"BatchNormalization",details:"channel axis features",row:34,col:0},{name:"batchnormalization_30",className:"BatchNormalization",details:"channel axis features",row:38,col:1},{name:"maxpooling2d_3",className:"MaxPooling2D",details:"3x3 pool size, 2x2 strides, border mode valid",row:33,col:2},{name:"mixed3",className:"Merge",details:"concat by channel axes",row:39,col:3},{name:"convolution2d_35",className:"Convolution2D",details:"128 1x1 filters, 1x1 strides, border mode same, ReLU",row:40,col:2},{name:"batchnormalization_35",className:"BatchNormalization",details:"channel axis features",row:41,col:2},{name:"convolution2d_36",className:"Convolution2D",details:"128 7x1 filters, 1x1 strides, border mode same, ReLU",row:42,col:2},{name:"batchnormalization_36",className:"BatchNormalization",details:"channel axis features",row:43,col:2},{name:"convolution2d_32",className:"Convolution2D",details:"128 1x1 filters, 1x1 strides, border mode same, ReLU",row:40,col:1},{name:"convolution2d_37",className:"Convolution2D",details:"128 1x7 filters, 1x1 strides, border mode same, ReLU",row:44,col:2},{name:"batchnormalization_32",className:"BatchNormalization",details:"channel axis features",row:41,col:1},{name:"batchnormalization_37",className:"BatchNormalization",details:"channel axis features",row:45,col:2},{name:"convolution2d_33",className:"Convolution2D",details:"128 1x7 filters, 1x1 strides, border mode same, ReLU",row:42,col:1},{name:"convolution2d_38",className:"Convolution2D",details:"128 7x1 filters, 1x1 strides, border mode same, ReLU",row:46,col:2},{name:"batchnormalization_33",className:"BatchNormalization",details:"channel axis features",row:43,col:1},{name:"batchnormalization_38",className:"BatchNormalization",details:"channel axis features",row:47,col:2},{name:"averagepooling2d_4",className:"AveragePooling2D",details:"3x3 pool size, 1x1 strides, border mode same",row:40,col:3},{name:"convolution2d_31",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:40,col:0},{name:"convolution2d_34",className:"Convolution2D",details:"192 7x1 filters, 1x1 strides, border mode same, ReLU",row:44,col:1},{name:"convolution2d_39",className:"Convolution2D",details:"192 1x7 filters, 1x1 strides, border mode same, ReLU",row:48,col:2},{name:"convolution2d_40",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:41,col:3},{name:"batchnormalization_31",className:"BatchNormalization",details:"channel axis features",row:41,col:0},{name:"batchnormalization_34",className:"BatchNormalization",details:"channel axis features",row:45,col:1},{name:"batchnormalization_39",className:"BatchNormalization",details:"channel axis features",row:49,col:2},{name:"batchnormalization_40",className:"BatchNormalization",details:"channel axis features",row:42,col:3},{name:"mixed4",className:"Merge",details:"concat by channel axes",row:50,col:3},{name:"convolution2d_45",className:"Convolution2D",details:"160 1x1 filters, 1x1 strides, border mode same, ReLU",row:51,col:2},{name:"batchnormalization_45",className:"BatchNormalization",details:"channel axis features",row:52,col:2},{name:"convolution2d_46",className:"Convolution2D",details:"160 7x1 filters, 1x1 strides, border mode same, ReLU",row:53,col:2},{name:"batchnormalization_46",className:"BatchNormalization",details:"channel axis features",row:54,col:2},{name:"convolution2d_42",className:"Convolution2D",details:"160 1x1 filters, 1x1 strides, border mode same, ReLU",row:51,col:1},{name:"convolution2d_47",className:"Convolution2D",details:"160 1x7 filters, 1x1 strides, border mode same, ReLU",row:55,col:2},{name:"batchnormalization_42",className:"BatchNormalization",details:"channel axis features",row:52,col:1},{name:"batchnormalization_47",className:"BatchNormalization",details:"channel axis features",row:56,col:2},{name:"convolution2d_43",className:"Convolution2D",details:"160 1x7 filters, 1x1 strides, border mode same, ReLU", -row:53,col:1},{name:"convolution2d_48",className:"Convolution2D",details:"160 7x1 filters, 1x1 strides, border mode same, ReLU",row:57,col:2},{name:"batchnormalization_43",className:"BatchNormalization",details:"channel axis features",row:54,col:1},{name:"batchnormalization_48",className:"BatchNormalization",details:"channel axis features",row:58,col:2},{name:"averagepooling2d_5",className:"AveragePooling2D",details:"3x3 pool size, 1x1 strides, border mode same",row:51,col:3},{name:"convolution2d_41",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:51,col:0},{name:"convolution2d_44",className:"Convolution2D",details:"192 7x1 filters, 1x1 strides, border mode same, ReLU",row:55,col:1},{name:"convolution2d_49",className:"Convolution2D",details:"192 1x7 filters, 1x1 strides, border mode same, ReLU",row:59,col:2},{name:"convolution2d_50",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:52,col:3},{name:"batchnormalization_41",className:"BatchNormalization",details:"channel axis features",row:52,col:0},{name:"batchnormalization_44",className:"BatchNormalization",details:"channel axis features",row:56,col:1},{name:"batchnormalization_49",className:"BatchNormalization",details:"channel axis features",row:60,col:2},{name:"batchnormalization_50",className:"BatchNormalization",details:"channel axis features",row:53,col:3},{name:"mixed5",className:"Merge",details:"concat by channel axes",row:61,col:3},{name:"convolution2d_55",className:"Convolution2D",details:"160 1x1 filters, 1x1 strides, border mode same, ReLU",row:62,col:2},{name:"batchnormalization_55",className:"BatchNormalization",details:"channel axis features",row:63,col:2},{name:"convolution2d_56",className:"Convolution2D",details:"160 7x1 filters, 1x1 strides, border mode same, ReLU",row:64,col:2},{name:"batchnormalization_56",className:"BatchNormalization",details:"channel axis features",row:65,col:2},{name:"convolution2d_52",className:"Convolution2D",details:"160 1x1 filters, 1x1 strides, border mode same, ReLU",row:62,col:1},{name:"convolution2d_57",className:"Convolution2D",details:"160 1x7 filters, 1x1 strides, border mode same, ReLU",row:66,col:2},{name:"batchnormalization_52",className:"BatchNormalization",details:"channel axis features",row:63,col:1},{name:"batchnormalization_57",className:"BatchNormalization",details:"channel axis features",row:67,col:2},{name:"convolution2d_53",className:"Convolution2D",details:"160 1x7 filters, 1x1 strides, border mode same, ReLU",row:64,col:1},{name:"convolution2d_58",className:"Convolution2D",details:"160 7x1 filters, 1x1 strides, border mode same, ReLU",row:68,col:2},{name:"batchnormalization_53",className:"BatchNormalization",details:"channel axis features",row:65,col:1},{name:"batchnormalization_58",className:"BatchNormalization",details:"channel axis features",row:69,col:2},{name:"averagepooling2d_6",className:"AveragePooling2D",details:"3x3 pool size, 1x1 strides, border mode same",row:62,col:3},{name:"convolution2d_51",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:62,col:0},{name:"convolution2d_54",className:"Convolution2D",details:"192 7x1 filters, 1x1 strides, border mode same, ReLU",row:66,col:1},{name:"convolution2d_59",className:"Convolution2D",details:"192 1x7 filters, 1x1 strides, border mode same, ReLU",row:70,col:2},{name:"convolution2d_60",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:63,col:3},{name:"batchnormalization_51",className:"BatchNormalization",details:"channel axis features",row:63,col:0},{name:"batchnormalization_54",className:"BatchNormalization",details:"channel axis features",row:67,col:1},{name:"batchnormalization_59",className:"BatchNormalization",details:"channel axis features",row:71,col:2},{name:"batchnormalization_60",className:"BatchNormalization",details:"channel axis features",row:64,col:3},{name:"mixed6",className:"Merge",details:"concat by channel axes",row:72,col:3},{name:"convolution2d_65",className:"Convolution2D",details:"160 1x1 filters, 1x1 strides, border mode same, ReLU",row:73,col:2},{name:"batchnormalization_65",className:"BatchNormalization",details:"channel axis features",row:74,col:2},{name:"convolution2d_66",className:"Convolution2D",details:"192 7x1 filters, 1x1 strides, border mode same, ReLU",row:75,col:2},{name:"batchnormalization_66",className:"BatchNormalization",details:"channel axis features",row:76,col:2},{name:"convolution2d_62",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:73,col:1},{name:"convolution2d_67",className:"Convolution2D",details:"192 1x7 filters, 1x1 strides, border mode same, ReLU",row:77,col:2},{name:"batchnormalization_62",className:"BatchNormalization",details:"channel axis features",row:74,col:1},{name:"batchnormalization_67",className:"BatchNormalization",details:"channel axis features",row:78,col:2},{name:"convolution2d_63",className:"Convolution2D",details:"192 1x7 filters, 1x1 strides, border mode same, ReLU",row:75,col:1},{name:"convolution2d_68",className:"Convolution2D",details:"192 7x1 filters, 1x1 strides, border mode same, ReLU",row:79,col:2},{name:"batchnormalization_63",className:"BatchNormalization",details:"channel axis features",row:76,col:1},{name:"batchnormalization_68",className:"BatchNormalization",details:"channel axis features",row:80,col:2},{name:"averagepooling2d_7",className:"AveragePooling2D",details:"3x3 pool size, 1x1 strides, border mode same",row:73,col:3},{name:"convolution2d_61",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:73,col:0},{name:"convolution2d_64",className:"Convolution2D",details:"192 7x1 filters, 1x1 strides, border mode same, ReLU",row:77,col:1},{name:"convolution2d_69",className:"Convolution2D",details:"192 1x7 filters, 1x1 strides, border mode same, ReLU",row:81,col:2},{name:"convolution2d_70",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:74,col:3},{name:"batchnormalization_61",className:"BatchNormalization",details:"channel axis features",row:74,col:0},{name:"batchnormalization_64",className:"BatchNormalization",details:"channel axis features",row:78,col:1},{name:"batchnormalization_69",className:"BatchNormalization",details:"channel axis features",row:82,col:2},{name:"batchnormalization_70",className:"BatchNormalization",details:"channel axis features",row:75,col:3},{name:"mixed7",className:"Merge",details:"concat by channel axes",row:83,col:3},{name:"convolution2d_73",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:84,col:1},{name:"batchnormalization_73",className:"BatchNormalization",details:"channel axis features",row:85,col:1},{name:"convolution2d_74",className:"Convolution2D",details:"192 1x7 filters, 1x1 strides, border mode same, ReLU",row:86,col:1},{name:"batchnormalization_74",className:"BatchNormalization",details:"channel axis features",row:87,col:1},{name:"convolution2d_71",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:84,col:0},{name:"convolution2d_75",className:"Convolution2D",details:"192 7x1 filters, 1x1 strides, border mode same, ReLU",row:88,col:1},{name:"batchnormalization_71",className:"BatchNormalization",details:"channel axis features",row:85,col:0},{name:"batchnormalization_75",className:"BatchNormalization",details:"channel axis features",row:89,col:1},{name:"convolution2d_72",className:"Convolution2D",details:"320 3x3 filters, 2x2 strides, border mode valid, ReLU",row:86,col:0},{name:"convolution2d_76",className:"Convolution2D",details:"192 3x3 filters, 2x2 strides, border mode valid, ReLU",row:90,col:1},{name:"batchnormalization_72",className:"BatchNormalization",details:"channel axis features",row:87,col:0},{name:"batchnormalization_76",className:"BatchNormalization",details:"channel axis features",row:91,col:1},{name:"averagepooling2d_8",className:"AveragePooling2D",details:"3x3 pool size, 2x2 strides, border mode valid",row:84,col:2},{name:"mixed8",className:"Merge",details:"concat by channel axes",row:92,col:3},{name:"convolution2d_81",className:"Convolution2D",details:"448 1x1 filters, 1x1 strides, border mode same, ReLU",row:93,col:2},{name:"batchnormalization_81",className:"BatchNormalization",details:"channel axis features",row:94,col:2},{name:"convolution2d_78",className:"Convolution2D",details:"384 1x1 filters, 1x1 strides, border mode same, ReLU",row:93,col:1},{name:"convolution2d_82",className:"Convolution2D",details:"384 3x3 filters, 1x1 strides, border mode same, ReLU",row:95,col:2},{name:"batchnormalization_78",className:"BatchNormalization",details:"channel axis features",row:94,col:1},{name:"batchnormalization_82",className:"BatchNormalization",details:"channel axis features",row:96,col:2},{name:"convolution2d_79",className:"Convolution2D",details:"384 1x3 filters, 1x1 strides, border mode same, ReLU",row:95,col:1,subcol:0},{name:"convolution2d_80",className:"Convolution2D",details:"384 3x1 filters, 1x1 strides, border mode same, ReLU",row:95,col:1,subcol:1},{name:"convolution2d_83",className:"Convolution2D",details:"384 1x3 filters, 1x1 strides, border mode same, ReLU",row:97,col:2,subcol:0},{name:"convolution2d_84",className:"Convolution2D",details:"384 3x1 filters, 1x1 strides, border mode same, ReLU",row:97,col:2,subcol:1},{name:"averagepooling2d_9",className:"AveragePooling2D",details:"3x3 pool size, 1x1 strides, border mode same",row:93,col:3},{name:"convolution2d_77",className:"Convolution2D",details:"320 1x1 filters, 1x1 strides, border mode same, ReLU",row:93,col:0},{name:"batchnormalization_79",className:"BatchNormalization",details:"channel axis features",row:96,col:1,subcol:0},{name:"batchnormalization_80",className:"BatchNormalization",details:"channel axis features",row:96,col:1,subcol:1},{name:"batchnormalization_83",className:"BatchNormalization",details:"channel axis features",row:98,col:2,subcol:0},{name:"batchnormalization_84",className:"BatchNormalization",details:"channel axis features",row:98,col:2,subcol:1},{name:"convolution2d_85",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:94,col:3},{name:"batchnormalization_77",className:"BatchNormalization",details:"channel axis features",row:94,col:0},{name:"mixed9_0",className:"Merge",details:"concat by channel axes",row:97,col:1},{name:"merge_1",className:"Merge",details:"concat by channel axes",row:99,col:2},{name:"batchnormalization_85",className:"BatchNormalization",details:"channel axis features",row:95,col:3},{name:"mixed9",className:"Merge",details:"concat by channel axes",row:100,col:3},{name:"convolution2d_90",className:"Convolution2D",details:"448 1x1 filters, 1x1 strides, border mode same, ReLU",row:101,col:2},{name:"batchnormalization_90",className:"BatchNormalization",details:"channel axis features",row:102,col:2},{name:"convolution2d_87",className:"Convolution2D",details:"384 1x1 filters, 1x1 strides, border mode same, ReLU",row:101,col:1},{name:"convolution2d_91",className:"Convolution2D",details:"384 3x3 filters, 1x1 strides, border mode same, ReLU",row:103,col:2},{name:"batchnormalization_87",className:"BatchNormalization",details:"channel axis features",row:102,col:1},{name:"batchnormalization_91",className:"BatchNormalization",details:"channel axis features",row:104,col:2},{name:"convolution2d_88",className:"Convolution2D",details:"384 1x3 filters, 1x1 strides, border mode same, ReLU",row:103,col:1,subcol:0},{name:"convolution2d_89",className:"Convolution2D",details:"384 3x1 filters, 1x1 strides, border mode same, ReLU",row:103,col:1,subcol:1},{name:"convolution2d_92",className:"Convolution2D",details:"384 1x3 filters, 1x1 strides, border mode same, ReLU",row:105,col:2,subcol:0},{name:"convolution2d_93",className:"Convolution2D",details:"384 3x1 filters, 1x1 strides, border mode same, ReLU",row:105,col:2,subcol:1},{name:"averagepooling2d_10",className:"AveragePooling2D",details:"3x3 pool size, 1x1 strides, border mode same",row:101,col:3},{name:"convolution2d_86",className:"Convolution2D",details:"320 1x1 filters, 1x1 strides, border mode same, ReLU",row:101,col:0},{name:"batchnormalization_88",className:"BatchNormalization",details:"channel axis features",row:104,col:1,subcol:0},{name:"batchnormalization_89",className:"BatchNormalization",details:"channel axis features",row:104,col:1,subcol:1},{name:"batchnormalization_92",className:"BatchNormalization",details:"channel axis features",row:106,col:2,subcol:0},{name:"batchnormalization_93",className:"BatchNormalization",details:"channel axis features",row:106,col:2,subcol:1},{name:"convolution2d_94",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:102,col:3},{name:"batchnormalization_86",className:"BatchNormalization",details:"channel axis features",row:102,col:0},{name:"mixed9_1",className:"Merge",details:"concat by channel axes",row:105,col:1},{name:"merge_2",className:"Merge",details:"concat by channel axes",row:107,col:2},{name:"batchnormalization_94",className:"BatchNormalization",details:"channel axis features",row:103,col:3},{name:"mixed10",className:"Merge",details:"concat by channel axes",row:108,col:3},{name:"avg_pool",className:"AveragePooling2D",details:"8x8 pool size, 8x8 strides, border mode valid",row:109,col:3},{name:"flatten",className:"Flatten",details:"",row:110,col:3},{name:"predictions",className:"Dense",details:"output dimensions 1000, softmax activation",row:111,col:3}],n.ARCHITECTURE_CONNECTIONS=[{from:"averagepooling2d_1",to:"predictions"},{from:"convolution2d_1",to:"maxpooling2d_2"},{from:"maxpooling2d_2",to:"batchnormalization_9"},{from:"maxpooling2d_2",to:"batchnormalization_11",corner:"top-right"},{from:"maxpooling2d_2",to:"batchnormalization_8",corner:"top-right"},{from:"maxpooling2d_2",to:"averagepooling2d_1",corner:"top-right"},{from:"batchnormalization_9",to:"mixed0",corner:"bottom-left"},{from:"batchnormalization_11",to:"mixed0",corner:"bottom-left"},{from:"batchnormalization_8",to:"mixed0",corner:"bottom-left"},{from:"mixed0",to:"convolution2d_16",corner:"bottom-right"},{from:"mixed0",to:"convolution2d_14",corner:"bottom-right"},{from:"mixed0",to:"convolution2d_13",corner:"bottom-right"},{from:"convolution2d_16",to:"mixed1",corner:"bottom-left"},{from:"convolution2d_14",to:"mixed1",corner:"bottom-left"},{from:"convolution2d_13",to:"mixed1",corner:"bottom-left"},{from:"mixed1",to:"convolution2d_23",corner:"bottom-right"},{from:"mixed1",to:"convolution2d_21",corner:"bottom-right"},{from:"mixed1",to:"convolution2d_20",corner:"bottom-right"},{from:"convolution2d_23",to:"mixed2",corner:"bottom-left"},{from:"convolution2d_21",to:"mixed2",corner:"bottom-left"},{from:"convolution2d_20",to:"mixed2",corner:"bottom-left"},{from:"mixed2",to:"convolution2d_27",corner:"bottom-right"},{from:"mixed2",to:"convolution2d_28",corner:"bottom-right"},{from:"mixed2",to:"maxpooling2d_3",corner:"bottom-right"},{from:"convolution2d_27",to:"mixed3",corner:"bottom-left"},{from:"convolution2d_28",to:"mixed3",corner:"bottom-left"},{from:"maxpooling2d_3",to:"mixed3",corner:"bottom-left"},{from:"mixed3",to:"convolution2d_31",corner:"bottom-right"},{from:"mixed3",to:"convolution2d_32",corner:"bottom-right"},{from:"mixed3",to:"convolution2d_35",corner:"bottom-right"},{from:"convolution2d_31",to:"mixed4",corner:"bottom-left"},{from:"convolution2d_32",to:"mixed4",corner:"bottom-left"},{from:"convolution2d_35",to:"mixed4",corner:"bottom-left"},{from:"mixed4",to:"convolution2d_41",corner:"bottom-right"},{from:"mixed4",to:"convolution2d_42",corner:"bottom-right"},{from:"mixed4",to:"convolution2d_45",corner:"bottom-right"},{from:"convolution2d_41",to:"mixed5",corner:"bottom-left"},{from:"convolution2d_42",to:"mixed5",corner:"bottom-left"},{from:"convolution2d_45",to:"mixed5",corner:"bottom-left"},{from:"mixed5",to:"convolution2d_51",corner:"bottom-right"},{from:"mixed5",to:"convolution2d_52",corner:"bottom-right"},{from:"mixed5",to:"convolution2d_55",corner:"bottom-right"},{from:"convolution2d_51",to:"mixed6",corner:"bottom-left"},{from:"convolution2d_52",to:"mixed6",corner:"bottom-left"},{from:"convolution2d_55",to:"mixed6",corner:"bottom-left"},{from:"mixed6",to:"convolution2d_61",corner:"bottom-right"},{from:"mixed6",to:"convolution2d_62",corner:"bottom-right"},{from:"mixed6",to:"convolution2d_65",corner:"bottom-right"},{from:"convolution2d_61",to:"mixed7",corner:"bottom-left"},{from:"convolution2d_62",to:"mixed7",corner:"bottom-left"},{from:"convolution2d_65",to:"mixed7",corner:"bottom-left"},{from:"mixed7",to:"convolution2d_71",corner:"bottom-right"},{from:"mixed7",to:"convolution2d_73",corner:"bottom-right"},{from:"mixed7",to:"averagepooling2d_8",corner:"bottom-right"},{from:"convolution2d_71",to:"mixed8",corner:"bottom-left"},{from:"convolution2d_73",to:"mixed8",corner:"bottom-left"},{from:"averagepooling2d_8",to:"mixed8",corner:"bottom-left"},{from:"mixed8",to:"convolution2d_77",corner:"bottom-right"},{from:"mixed8",to:"convolution2d_78",corner:"bottom-right"},{from:"mixed8",to:"convolution2d_81",corner:"bottom-right"},{from:"convolution2d_77",to:"mixed9",corner:"bottom-left"},{from:"convolution2d_78",to:"batchnormalization_78"},{from:"batchnormalization_78",to:"convolution2d_79"},{from:"batchnormalization_78",to:"convolution2d_80"},{from:"convolution2d_79",to:"batchnormalization_79"},{from:"convolution2d_80",to:"batchnormalization_80"},{from:"batchnormalization_79",to:"mixed9_0"},{from:"batchnormalization_80",to:"mixed9_0"},{from:"mixed9_0",to:"mixed9",corner:"bottom-left"},{from:"convolution2d_81",to:"batchnormalization_81"},{from:"batchnormalization_81",to:"convolution2d_82"},{from:"convolution2d_82",to:"batchnormalization_82"},{from:"batchnormalization_82",to:"convolution2d_83"},{from:"batchnormalization_82",to:"convolution2d_84"},{from:"convolution2d_83",to:"batchnormalization_83"},{from:"convolution2d_84",to:"batchnormalization_84"},{from:"batchnormalization_83",to:"merge_1"},{from:"batchnormalization_84",to:"merge_1"},{from:"merge_1",to:"mixed9",corner:"bottom-left"},{from:"mixed9",to:"convolution2d_86",corner:"bottom-right"},{from:"mixed9",to:"convolution2d_87",corner:"bottom-right"},{from:"mixed9",to:"convolution2d_90",corner:"bottom-right"},{from:"convolution2d_86",to:"mixed10",corner:"bottom-left"},{from:"convolution2d_87",to:"batchnormalization_87"},{from:"batchnormalization_87",to:"convolution2d_88"},{from:"batchnormalization_87",to:"convolution2d_89"},{from:"convolution2d_88",to:"batchnormalization_88"},{from:"convolution2d_89",to:"batchnormalization_89"},{from:"batchnormalization_88",to:"mixed9_1"},{from:"batchnormalization_89",to:"mixed9_1"},{from:"mixed9_1",to:"mixed10",corner:"bottom-left"},{from:"convolution2d_90",to:"batchnormalization_90"},{from:"batchnormalization_90",to:"convolution2d_91"},{from:"convolution2d_91",to:"batchnormalization_91"},{from:"batchnormalization_91",to:"convolution2d_92"},{from:"batchnormalization_91",to:"convolution2d_93"},{from:"convolution2d_92",to:"batchnormalization_92"},{from:"convolution2d_93",to:"batchnormalization_93"},{from:"batchnormalization_92",to:"merge_2"},{from:"batchnormalization_93",to:"merge_2"},{from:"merge_2",to:"mixed10",corner:"bottom-left"}]},function(e,n,t){"use strict";function a(e){if(e&&e.__esModule)return e;var n={};if(null!=e)for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(n[t]=e[t]);return n.default=e,n}function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(n,"__esModule",{value:!0}),n.InceptionV3=void 0,t(228);var r=t(20),i=o(r),s=t(31),l=o(s),c=t(200),u=o(c),d=t(11),m=a(d),f=t(38),p=t(83),h={model:"demos/data/inception_v3/inception_v3.json",weights:"https://transcranial.github.io/keras-js-demos-data/inception_v3/inception_v3_weights.buf",metadata:"demos/data/inception_v3/inception_v3_metadata.json"},b={filepaths:h};n.InceptionV3=Vue.extend({props:["hasWebgl"],template:t(221),data:function(){return{showInfoPanel:!0,useGpu:this.hasWebgl,model:new KerasJS.Model(Object.assign({gpu:this.hasWebgl,layerCallPauses:!0},b)),modelLoading:!0,modelRunning:!1,imageURLInput:null,imageURLSelect:null,imageURLSelectList:f.IMAGE_URLS,imageLoading:!1,imageLoadingError:!1,output:null,architectureDiagram:p.ARCHITECTURE_DIAGRAM,architectureConnections:p.ARCHITECTURE_CONNECTIONS,architectureDiagramPaths:[],showComputationFlow:!0}},computed:{loadingProgress:function(){return this.model.getLoadingProgress()},architectureDiagramRows:function(){for(var e=[],n=0;n<112;n++){for(var t=[],a=0;a<4;a++)t.push((0,u.default)(this.architectureDiagram,{row:n,col:a}));e.push(t)}return e},layersWithResults:function(){return this.model.layersWithResults},outputClasses:function(){if(!this.output){for(var e=[],n=0;n<5;n++)e.push({name:"-",probability:0});return e}return m.imagenetClassesTopK(this.output,5)}},ready:function(){var e=this;this.model.ready().then(function(){e.modelLoading=!1}),this.architectureDiagramPaths=[],setTimeout(function(){e.architectureConnections.forEach(function(n){var t=document.getElementsByClassName("architecture-container")[0],a=document.getElementById(n.from),o=document.getElementById(n.to),r=t.getBoundingClientRect(),i=a.getBoundingClientRect(),s=o.getBoundingClientRect(),l=r.left,c=r.top,u=i.left+i.width/2-l,d=i.top+i.height/2-c,m=s.left+s.width/2-l,f=s.top+s.height/2-c,p="M"+u+","+d+" L"+m+","+f;"top-right"===n.corner?p="M"+u+","+d+" L"+(m-10)+","+d+" Q"+m+","+d+" "+m+","+(d+10)+" L"+m+","+f:"bottom-left"===n.corner?p="M"+u+","+d+" L"+u+","+(f-10)+" Q"+u+","+f+" "+(u+10)+","+f+" L"+m+","+f:"top-left"===n.corner?p="M"+u+","+d+" L"+(m+10)+","+d+" Q"+m+","+d+" "+m+","+(d+10)+" L"+m+","+f:"bottom-right"===n.corner&&(p="M"+u+","+d+" L"+u+","+(d+20)+" Q"+u+","+(d+30)+" "+(u-10)+","+(d+30)+" L"+(m+10)+","+(d+30)+" Q"+m+","+(d+30)+" "+m+","+(d+40)+" L"+m+","+f),e.architectureDiagramPaths.push(p)})},1e3)},methods:{closeInfoPanel:function(){this.showInfoPanel=!1},toggleGpu:function(){this.model.toggleGpu(!this.useGpu)},toggleComputationFlow:function(){this.model.layerCallPauses=!this.showComputationFlow},imageURLInputChanged:function(e){this.imageURLSelect=null,this.loadImageToCanvas(this.imageURLInput)},imageURLSelectChanged:function(e){this.imageURLInput=this.imageURLSelect,this.loadImageToCanvas(this.imageURLSelect)},loadImageToCanvas:function(e){var n=this;return e?(this.imageLoading=!0,void loadImage(e,function(e){if("error"===e.type)n.imageLoadingError=!0,n.imageLoading=!1;else{var t=document.getElementById("input-canvas").getContext("2d");t.drawImage(e,0,0),n.imageLoadingError=!1,n.imageLoading=!1,n.modelRunning=!0,n.$nextTick(function(){var e=this;setTimeout(function(){e.runModel()},200)})}},{maxWidth:299,maxHeight:299,cover:!0,crop:!0,canvas:!0,crossOrigin:"Anonymous"})):void this.clearAll()},runModel:function(){var e=this,n=document.getElementById("input-canvas").getContext("2d"),t=n.getImageData(0,0,n.canvas.width,n.canvas.height),a=t.data,o=t.width,r=t.height,s=(0,i.default)(new Float32Array(a),[o,r,4]),c=(0,i.default)(new Float32Array(o*r*3),[o,r,3]);l.default.divseq(s,255),l.default.subseq(s,.5),l.default.mulseq(s,2),l.default.assign(c.pick(null,null,0),s.pick(null,null,0)),l.default.assign(c.pick(null,null,1),s.pick(null,null,1)),l.default.assign(c.pick(null,null,2),s.pick(null,null,2));var u={input_1:c.data};this.model.predict(u).then(function(n){e.output=n.predictions,e.modelRunning=!1})},clearAll:function(){this.modelRunning=!1,this.imageURLInput=null,this.imageURLSelect=null,this.imageLoading=!1,this.imageLoadingError=!1,this.output=null,this.model.layersWithResults=[];var e=document.getElementById("input-canvas").getContext("2d");e.clearRect(0,0,e.canvas.width,e.canvas.height)}}})},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.Menu=void 0,t(230);n.Menu=Vue.extend({props:["currentView"],template:t(222)})},function(e,n,t){"use strict";function a(e){if(e&&e.__esModule)return e;var n={};if(null!=e)for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(n[t]=e[t]);return n.default=e,n}function o(e){return e&&e.__esModule?e:{default:e}}function r(e){if(Array.isArray(e)){for(var n=0,t=Array(e.length);ne.output[n]?a:n},0)}},ready:function(){var e=this;this.model.ready().then(function(){e.modelLoading=!1,e.$nextTick(function(){this.getIntermediateResults()})})},methods:{closeInfoPanel:function(){this.showInfoPanel=!1},toggleGpu:function(){this.model.toggleGpu(!this.useGpu)},clear:function(e){this.clearIntermediateResults();var n=document.getElementById("input-canvas").getContext("2d");n.clearRect(0,0,n.canvas.width,n.canvas.height);var t=document.getElementById("input-canvas-centercrop").getContext("2d");t.clearRect(0,0,t.canvas.width,t.canvas.height);var a=document.getElementById("input-canvas-scaled").getContext("2d");a.clearRect(0,0,a.canvas.width,a.canvas.height),this.output=new Float32Array(10),this.drawing=!1,this.strokes=[]},activateDraw:function(e){this.drawing=!0,this.strokes.push([]);var n=this.strokes[this.strokes.length-1];n.push(m.getCoordinates(e))},draw:function(e){if(this.drawing){var n=document.getElementById("input-canvas").getContext("2d");n.lineWidth=20,n.lineJoin=n.lineCap="round",n.strokeStyle="#393E46",n.clearRect(0,0,n.canvas.width,n.canvas.height);var t=this.strokes[this.strokes.length-1];t.push(m.getCoordinates(e));for(var a=0,o=this.strokes.length;a2&&void 0!==arguments[2]?arguments[2]:{};o(this,e),this._type=a.type||Float32Array,n&&n.length&&(n instanceof this._type||n instanceof Array)?(d(n,t),this.tensor=(0,s.default)(n,t),this.tensor=(0,s.default)(new this._type(n),t)):!n.length&&t.length?this.tensor=(0,s.default)(new this._type(t.reduce(function(e,n){return e*n},1)),t):this.tensor=(0,s.default)(new this._type([]),[])}return r(e,[{key:"createWeblasTensor",value:function(){if(this.weblasTensor&&this.weblasTensor.delete(),this.weblasTensorsSplit&&this.weblasTensorsSplit.forEach(function(e){return e.delete()}),1===this.tensor.shape.length){var e=this.tensor.shape[0];if(e>u.MAX_TEXTURE_SIZE){this.weblasTensorsSplit=[];for(var n=Math.ceil(u.MAX_TEXTURE_SIZE/e),t=0;tu.MAX_TEXTURE_SIZE}))throw new Error("[Tensor] cannot create Tensor with both dimensions exceeding MAX_TEXTURE_SIZE");var s=this.tensor.shape[0],l=this.tensor.shape[1];if(s>u.MAX_TEXTURE_SIZE){this.weblasTensorsSplit=[];for(var c=Math.ceil(s/u.MAX_TEXTURE_SIZE),d=0;du.MAX_TEXTURE_SIZE){this.weblasTensorsSplit=[];for(var h=Math.ceil(l/u.MAX_TEXTURE_SIZE),b=0;b0)throw new Error("cwise: pre() block may not reference array args");if(o0)throw new Error("cwise: post() block may not reference array args")}else if("scalar"===i)n.scalarArgs.push(o),n.shimArgs.push("scalar"+o);else if("index"===i){if(n.indexArgs.push(o),o0)throw new Error("cwise: pre() block may not reference array index");if(o0)throw new Error("cwise: post() block may not reference array index")}else if("shape"===i){if(n.shapeArgs.push(o),ot.length)throw new Error("cwise: Too many arguments in pre() block");if(n.body.args.length>t.length)throw new Error("cwise: Too many arguments in body() block");if(n.post.args.length>t.length)throw new Error("cwise: Too many arguments in post() block");return n.debug=!!e.printCode||!!e.debug,n.funcName=e.funcName||"cwise",n.blockSize=e.blockSize||64,r(n)}var r=t(102);e.exports=o},function(e,n,t){function a(e){var n=this.__data__=new o(e);this.size=n.size}var o=t(12),r=t(193),i=t(194),s=t(195),l=t(196),c=t(197);a.prototype.clear=r,a.prototype.delete=i,a.prototype.get=s,a.prototype.has=l,a.prototype.set=c,e.exports=a},function(e,n){function t(e,n){for(var t=-1,a=e?e.length:0,o=Array(a);++t0&&t(u)?n>1?a(u,n-1,t,i,s):o(s,u):i||(s[s.length]=u)}return s}var o=t(119),r=t(168);e.exports=a},function(e,n,t){function a(e,n){n=r(n,e)?[n]:o(n);for(var t=0,a=n.length;null!=e&&tm))return!1;var p=u.get(e);if(p&&u.get(n))return p==n;var h=-1,b=!0,g=c&s?new o:void 0;for(u.set(e,n),u.set(n,e);++h=n||t<0||L&&a>=_}function f(){var e=r();return m(e)?p(e):void(w=setTimeout(f,d(e)))}function p(e){return w=void 0,S&&v?a(e):(v=x=void 0,y)}function h(){void 0!==w&&clearTimeout(w),N=0,v=k=x=w=void 0}function b(){return void 0===w?y:p(r())}function g(){var e=r(),t=m(e);if(v=arguments,x=this,k=e,t){if(void 0===w)return u(k);if(L)return w=setTimeout(f,n),a(k)}return void 0===w&&(w=setTimeout(f,n)),y}var v,x,_,y,w,k,N=0,C=!1,L=!1,S=!0;if("function"!=typeof e)throw new TypeError(s);return n=i(n)||0,o(t)&&(C=!!t.leading,L="maxWait"in t,_=L?l(i(t.maxWait)||0,n):_,S="trailing"in t?!!t.trailing:S),g.cancel=h,g.flush=b,g}var o=t(6),r=t(206),i=t(58),s="Expected a function",l=Math.max,c=Math.min;e.exports=a},function(e,n,t){function a(e,n,t){var a=e?e.length:0;if(!a)return-1;var l=null==t?0:i(t);return l<0&&(l=s(a+l,0)),o(e,r(n,3),l)}var o=t(122),r=t(14),i=t(57),s=Math.max;e.exports=a},function(e,n,t){(function(e){var a=t(1),o=t(212),r="object"==typeof n&&n&&!n.nodeType&&n,i=r&&"object"==typeof e&&e&&!e.nodeType&&e,s=i&&i.exports===r,l=s?a.Buffer:void 0,c=l?l.isBuffer:void 0,u=c||o;e.exports=u}).call(n,t(61)(e))},function(e,n,t){function a(e){var n=o(e)?c.call(e):"";return n==r||n==i||n==s}var o=t(6),r="[object Function]",i="[object GeneratorFunction]",s="[object Proxy]",l=Object.prototype,c=l.toString;e.exports=a},function(e,n,t){function a(e){var n=o(e),t=n%1;return n===n?t?n-t:n:0}var o=t(30);e.exports=a},function(e,n,t){function a(e){if("number"==typeof e)return e;if(r(e))return i;if(o(e)){var n="function"==typeof e.valueOf?e.valueOf():e;e=o(n)?n+"":n}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(s,"");var t=c.test(e);return t||u.test(e)?d(e.slice(2),t?2:8):l.test(e)?i:+e}var o=t(6),r=t(10),i=NaN,s=/^\s+|\s+$/g,l=/^[-+]0x[0-9a-f]+$/i,c=/^0b[01]+$/i,u=/^0o[0-7]+$/i,d=parseInt;e.exports=a},function(e,n){"use strict";function t(e,n){for(var t=1,a=e.length,o=e[0],r=e[0],i=1;i-1?d.currentView=t:d.currentView="home"}t(229);var o=t(85),r=t(81),i=t(86),s=t(87),l=t(89),c=t(84),u=t(82);Vue.component("menu",o.Menu),Vue.component("home",r.Home),Vue.component("mnist-cnn",i.MnistCnn),Vue.component("mnist-vae",s.MnistVae),Vue.component("resnet50",l.ResNet50),Vue.component("inception-v3",c.InceptionV3),Vue.component("imdb-bidirectional-lstm",u.ImdbBidirectionalLstm),Vue.use(VueMdl.default);var d=new Vue({el:"#app",data:function(){return{currentView:"home",hasWebgl:!0}},created:function(){var e=document.createElement("canvas"),n=e.getContext("webgl")||e.getContext("experimental-webgl");n&&n instanceof WebGLRenderingContext?this.hasWebgl=!0:this.hasWebgl=!1}});window.addEventListener("load",a),window.addEventListener("hashchange",a)},function(e,n,t){e.exports=t(64)},function(e,n,t){"use strict";function a(e){var n=new i(e),t=r(i.prototype.request,n);return o.extend(t,i.prototype,n),o.extend(t,n),t}var o=t(0),r=t(37),i=t(66),s=a();s.Axios=i,s.create=function(e){return a(e)},s.Cancel=t(33),s.CancelToken=t(65),s.isCancel=t(34),s.all=function(e){return Promise.all(e)},s.spread=t(80),e.exports=s,e.exports.default=s},function(e,n,t){"use strict";function a(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var n;this.promise=new Promise(function(e){n=e});var t=this;e(function(e){t.reason||(t.reason=new o(e),n(t.reason))})}var o=t(33);a.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},a.source=function(){var e,n=new a(function(n){e=n});return{token:n,cancel:e}},e.exports=a},function(e,n,t){"use strict";function a(e){this.defaults=r.merge(o,e),this.interceptors={request:new i,response:new i}}var o=t(36),r=t(0),i=t(67),s=t(68),l=t(76),c=t(74);a.prototype.request=function(e){"string"==typeof e&&(e=r.merge({url:arguments[0]},arguments[1])),e=r.merge(o,this.defaults,{method:"get"},e),e.baseURL&&!l(e.url)&&(e.url=c(e.baseURL,e.url));var n=[s,void 0],t=Promise.resolve(e);for(this.interceptors.request.forEach(function(e){n.unshift(e.fulfilled,e.rejected)}),this.interceptors.response.forEach(function(e){n.push(e.fulfilled,e.rejected)});n.length;)t=t.then(n.shift(),n.shift());return t},r.forEach(["delete","get","head"],function(e){a.prototype[e]=function(n,t){return this.request(r.merge(t||{},{method:e,url:n}))}}),r.forEach(["post","put","patch"],function(e){a.prototype[e]=function(n,t,a){return this.request(r.merge(a||{},{method:e,url:n,data:t}))}}),e.exports=a},function(e,n,t){"use strict";function a(){this.handlers=[]}var o=t(0);a.prototype.use=function(e,n){return this.handlers.push({fulfilled:e,rejected:n}),this.handlers.length-1},a.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},a.prototype.forEach=function(e){o.forEach(this.handlers,function(n){null!==n&&e(n)})},e.exports=a},function(e,n,t){"use strict";function a(e){e.cancelToken&&e.cancelToken.throwIfRequested()}var o=t(0),r=t(71),i=t(34),s=t(36);e.exports=function(e){a(e),e.headers=e.headers||{},e.data=r(e.data,e.headers,e.transformRequest),e.headers=o.merge(e.headers.common||{},e.headers[e.method]||{},e.headers||{}),o.forEach(["delete","get","head","post","put","patch","common"],function(n){delete e.headers[n]});var n=e.adapter||s.adapter;return n(e).then(function(n){return a(e),n.data=r(n.data,n.headers,e.transformResponse),n},function(n){return i(n)||(a(e),n&&n.response&&(n.response.data=r(n.response.data,n.response.headers,e.transformResponse))),Promise.reject(n)})}},function(e,n){"use strict";e.exports=function(e,n,t,a){return e.config=n,t&&(e.code=t),e.response=a,e}},function(e,n,t){"use strict";var a=t(35);e.exports=function(e,n,t){var o=t.config.validateStatus;t.status&&o&&!o(t.status)?n(a("Request failed with status code "+t.status,t.config,null,t)):e(t)}},function(e,n,t){"use strict";var a=t(0);e.exports=function(e,n,t){return a.forEach(t,function(t){e=t(e,n)}),e}},function(e,n){"use strict";function t(){this.message="String contains an invalid character"}function a(e){for(var n,a,r=String(e),i="",s=0,l=o;r.charAt(0|s)||(l="=",s%1);i+=l.charAt(63&n>>8-s%1*8)){if(a=r.charCodeAt(s+=.75),a>255)throw new t;n=n<<8|a}return i}var o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";t.prototype=new Error,t.prototype.code=5,t.prototype.name="InvalidCharacterError",e.exports=a},function(e,n,t){"use strict";function a(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}var o=t(0);e.exports=function(e,n,t){if(!n)return e;var r;if(t)r=t(n);else if(o.isURLSearchParams(n))r=n.toString();else{var i=[];o.forEach(n,function(e,n){null!==e&&"undefined"!=typeof e&&(o.isArray(e)&&(n+="[]"),o.isArray(e)||(e=[e]),o.forEach(e,function(e){o.isDate(e)?e=e.toISOString():o.isObject(e)&&(e=JSON.stringify(e)),i.push(a(n)+"="+a(e))}))}),r=i.join("&")}return r&&(e+=(e.indexOf("?")===-1?"?":"&")+r),e}},function(e,n){"use strict";e.exports=function(e,n){return e.replace(/\/+$/,"")+"/"+n.replace(/^\/+/,"")}},function(e,n,t){"use strict";var a=t(0);e.exports=a.isStandardBrowserEnv()?function(){return{write:function(e,n,t,o,r,i){var s=[];s.push(e+"="+encodeURIComponent(n)),a.isNumber(t)&&s.push("expires="+new Date(t).toGMTString()),a.isString(o)&&s.push("path="+o),a.isString(r)&&s.push("domain="+r),i===!0&&s.push("secure"),document.cookie=s.join("; ")},read:function(e){var n=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return n?decodeURIComponent(n[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()},function(e,n){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},function(e,n,t){"use strict";var a=t(0);e.exports=a.isStandardBrowserEnv()?function(){function e(e){var n=e;return t&&(o.setAttribute("href",n),n=o.href),o.setAttribute("href",n),{href:o.href,protocol:o.protocol?o.protocol.replace(/:$/,""):"",host:o.host,search:o.search?o.search.replace(/^\?/,""):"",hash:o.hash?o.hash.replace(/^#/,""):"",hostname:o.hostname,port:o.port,pathname:"/"===o.pathname.charAt(0)?o.pathname:"/"+o.pathname}}var n,t=/(msie|trident)/i.test(navigator.userAgent),o=document.createElement("a");return n=e(window.location.href),function(t){var o=a.isString(t)?e(t):t;return o.protocol===n.protocol&&o.host===n.host}}():function(){return function(){return!0}}()},function(e,n,t){"use strict";var a=t(0);e.exports=function(e,n){a.forEach(e,function(t,a){a!==n&&a.toUpperCase()===n.toUpperCase()&&(e[n]=t,delete e[a])})}},function(e,n,t){"use strict";var a=t(0);e.exports=function(e){var n,t,o,r={};return e?(a.forEach(e.split("\n"),function(e){o=e.indexOf(":"),n=a.trim(e.substr(0,o)).toLowerCase(),t=a.trim(e.substr(o+1)),n&&(r[n]=r[n]?r[n]+", "+t:t)}),r):r}},function(e,n){"use strict";e.exports=function(e){return function(n){return e.apply(null,n)}}},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.Home=void 0,t(226);var a=[{title:"Basic Convnet for MNIST",path:"mnist-cnn",imagePath:"demos/assets/mnist-cnn.png"},{title:"Convolutional Variational Autoencoder, trained on MNIST",path:"mnist-vae",imagePath:"demos/assets/mnist-vae.png"},{title:"50-layer Residual Network, trained on ImageNet",path:"resnet50",imagePath:"demos/assets/resnet50.png"},{title:"Inception V3, trained on ImageNet",path:"inception-v3",imagePath:"demos/assets/inception-v3.png"},{title:"Bidirectional LSTM for IMDB sentiment classification",path:"imdb-bidirectional-lstm",imagePath:"demos/assets/imdb-bidirectional-lstm.png"}],o=a;n.Home=Vue.extend({template:t(219),data:function(){return{demoInfo:o}}})},function(e,n,t){"use strict";function a(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(n,"__esModule",{value:!0}),n.ImdbBidirectionalLstm=void 0,t(227);var o=t(63),r=a(o),i=t(53),s=a(i),l=t(208),c=a(l),u=t(54),d=a(u),m=t(31),f=a(m),p=t(91),h=a(p),b={model:"demos/data/imdb_bidirectional_lstm/imdb_bidirectional_lstm.json",weights:"https://transcranial.github.io/keras-js-demos-data/imdb_bidirectional_lstm/imdb_bidirectional_lstm_weights.buf",metadata:"demos/data/imdb_bidirectional_lstm/imdb_bidirectional_lstm_metadata.json"},g={filepaths:b},v={wordIndex:"/demos/data/imdb_bidirectional_lstm/imdb_dataset_word_index_top20000.json",wordDict:"/demos/data/imdb_bidirectional_lstm/imdb_dataset_word_dict_top20000.json",testSamples:"/demos/data/imdb_bidirectional_lstm/imdb_dataset_test.json"},x=v,_=200,y=1,w=2,k=3,N=[{name:"embedding_1",className:"Embedding",details:"200 time steps, dim 20000 -> 64"},{name:"bidirectional_1",className:"Bidirectional [LSTM]",details:"200 time steps, dim 64 -> 32, concat merge, tanh activation, hard sigmoid inner activation"},{name:"dropout_1",className:"Dropout",details:"p=0.5 (active during training)"},{name:"dense_1",className:"Dense",details:"output dim 1, sigmoid activation"}];n.ImdbBidirectionalLstm=Vue.extend({props:["hasWebgl"],template:t(220),data:function(){return{showInfoPanel:!0,useGpu:!1,model:new KerasJS.Model(Object.assign({gpu:!1},g)),modelLoading:!0,modelRunning:!1,input:new Float32Array(_),output:new Float32Array(1),inputText:"",inputTextParsed:[],stepwiseOutput:[],wordIndex:{},wordDict:{},testSamples:[],isSampleText:!1,sampleTextLabel:null,architectureDiagramLayers:N}},computed:{loadingProgress:function(){return this.model.getLoadingProgress()},outputColor:function(){return this.output[0]>0&&this.output[0]<.5?"rgba(242, 38, 19, "+(1-this.output[0])+")":this.output[0]>=.5?"rgba(27, 188, 155, "+this.output[0]+")":"#69707a"},stepwiseOutputColor:function(){return this.stepwiseOutput.map(function(e){return e>0&&e<.5?"rgba(242, 38, 19, "+(.5-e)+")":e>=.5?"rgba(27, 188, 155, "+(e-.5)+")":"white"})}},ready:function(){var e=this;this.model.ready().then(function(){e.modelLoading=!1,e.loadAdditionalData()})},methods:{closeInfoPanel:function(){this.showInfoPanel=!1},toggleGpu:function(){this.model.toggleGpu(!this.useGpu)},clear:function(e){this.inputText="",this.inputTextParsed=[],this.output=new Float32Array(1)},loadAdditionalData:function(){var e=this;this.modelLoading=!0;var n=["wordIndex","wordDict","testSamples"].map(function(e){return r.default.get(x[e])});r.default.all(n).then(r.default.spread(function(n,t,a){e.wordIndex=n.data,e.wordDict=t.data,e.testSamples=a.data,e.modelLoading=!1}))},randomSample:function(){var e=this;this.modelRunning=!0,this.isSampleText=!0;var n=(0,c.default)(0,this.testSamples.length-1),t=this.testSamples[n].values;this.sampleTextLabel=0===this.testSamples[n].label?"negative":"positive";var a=t.map(function(n){return 0===n||1===n?"":2===n?"":e.wordDict[n-k]});this.inputText=a.join(" ").trim(),this.inputTextParsed=a.filter(function(e){return!!e}),this.input=new Float32Array(t),this.model.predict({input:this.input}).then(function(n){e.output=n.output,e.stepwiseCalc(),e.modelRunning=!1})},inputChanged:(0,s.default)(function(){var e=this;if(!this.modelRunning){if(""===this.inputText.trim())return void(this.inputTextParsed=[]);this.modelRunning=!0,this.isSampleText=!1,this.inputTextParsed=this.inputText.trim().toLowerCase().split(/[\s\.,!?]+/gi),this.input=new Float32Array(_);var n=this.inputTextParsed.map(function(n){var t=e.wordIndex[n];return t?t+k:w});n=[y].concat(n),n=n.slice(-_);for(var t=Math.max(0,_-n.length),a=t;a<_;a++)this.input[a]=n[a-t];this.model.predict({input:this.input}).then(function(n){e.output=n.output,e.stepwiseCalc(),e.modelRunning=!1})}},200),stepwiseCalc:function(){var e=this.model.modelLayersMap.get("dense_1"),n=this.model.modelLayersMap.get("bidirectional_1").forwardLayer.hiddenStateSequence,t=this.model.modelLayersMap.get("bidirectional_1").backwardLayer.hiddenStateSequence,a=n.tensor.shape[1],o=t.tensor.shape[1],r=(0,d.default)(this.input,function(e){return e>=k});if(r!==-1){for(var i=[],s=r;s<_;s++){var l=new h.default([],[a+o]);f.default.assign(l.tensor.hi(a).lo(0),n.tensor.pick(s,null)),f.default.assign(l.tensor.hi(a+o).lo(a),t.tensor.pick(_-s-1,null)),i.push(e.call(l).tensor.data[0])}this.stepwiseOutput=i}}}})},function(e,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});n.ARCHITECTURE_DIAGRAM=[{name:"convolution2d_1",className:"Convolution2D",details:"32 3x3 filters, 2x2 strides, border mode valid, ReLU",row:0,col:0},{name:"batchnormalization_1",className:"BatchNormalization",details:"channel axis features",row:1,col:0},{name:"convolution2d_2",className:"Convolution2D",details:"32 3x3 filters, 1x1 strides, border mode valid, ReLU",row:2,col:0},{name:"batchnormalization_2",className:"BatchNormalization",details:"channel axis features",row:3,col:0},{name:"convolution2d_3",className:"Convolution2D",details:"64 3x3 filters, 1x1 strides, border mode same, ReLU",row:4,col:0},{name:"batchnormalization_3",className:"BatchNormalization",details:"channel axis features",row:5,col:0},{name:"maxpooling2d_1",className:"MaxPooling2D",details:"3x3 pool size, 2x2 strides, border mode valid",row:6,col:0},{name:"convolution2d_4",className:"Convolution2D",details:"80 1x1 filters, 1x1 strides, border mode valid, ReLU",row:7,col:0},{name:"batchnormalization_4",className:"BatchNormalization",details:"channel axis features",row:8,col:0},{name:"convolution2d_5",className:"Convolution2D",details:"192 3x3 filters, 1x1 strides, border mode valid, ReLU",row:9,col:0},{name:"batchnormalization_5",className:"BatchNormalization",details:"channel axis features",row:10,col:0},{name:"maxpooling2d_2",className:"MaxPooling2D",details:"3x3 pool size, 2x2 strides, border mode valid",row:11,col:0},{name:"convolution2d_9",className:"Convolution2D",details:"64 1x1 filters, 1x1 strides, border mode same, ReLU",row:12,col:0},{name:"batchnormalization_9",className:"BatchNormalization",details:"channel axis features",row:13,col:0},{name:"convolution2d_7",className:"Convolution2D",details:"48 1x1 filters, 1x1 strides, border mode same, ReLU",row:12,col:1},{name:"convolution2d_10",className:"Convolution2D",details:"96 3x3 filters, 1x1 strides, border mode same, ReLU",row:14,col:2},{name:"batchnormalization_7",className:"BatchNormalization",details:"channel axis features",row:13,col:1},{name:"batchnormalization_10",className:"BatchNormalization",details:"channel axis features",row:15,col:2},{name:"averagepooling2d_1",className:"AveragePooling2D",details:"3x3 pool size, 1x1 strides, border mode same",row:12,col:3},{name:"convolution2d_6",className:"Convolution2D",details:"64 1x1 filters, 1x1 strides, border mode same, ReLU",row:12,col:2},{name:"convolution2d_8",className:"Convolution2D",details:"64 5x5 filters, 1x1 strides, border mode same, ReLU",row:14,col:1},{name:"convolution2d_11",className:"Convolution2D",details:"96 3x3 filters, 1x1 strides, border mode same, ReLU",row:16,col:2},{name:"convolution2d_12",className:"Convolution2D",details:"32 1x1 filters, 1x1 strides, border mode same, ReLU",row:13,col:3},{name:"batchnormalization_6",className:"BatchNormalization",details:"channel axis features",row:13,col:2},{name:"batchnormalization_8",className:"BatchNormalization",details:"channel axis features",row:15,col:1},{name:"batchnormalization_11",className:"BatchNormalization",details:"channel axis features",row:17,col:2},{name:"batchnormalization_12",className:"BatchNormalization",details:"channel axis features",row:14,col:3},{name:"mixed0",className:"Merge",details:"concat by channel axes",row:18,col:3},{name:"convolution2d_16",className:"Convolution2D",details:"64 1x1 filters, 1x1 strides, border mode same, ReLU",row:19,col:0},{name:"batchnormalization_16",className:"BatchNormalization",details:"channel axis features",row:20,col:0},{name:"convolution2d_14",className:"Convolution2D",details:"48 1x1 filters, 1x1 strides, border mode same, ReLU",row:19,col:1},{name:"convolution2d_17",className:"Convolution2D",details:"96 3x3 filters, 1x1 strides, border mode same, ReLU",row:21,col:2},{name:"batchnormalization_14",className:"BatchNormalization",details:"channel axis features",row:20,col:1},{name:"batchnormalization_17",className:"BatchNormalization",details:"channel axis features",row:22,col:2},{name:"averagepooling2d_2",className:"AveragePooling2D",details:"3x3 pool size, 1x1 strides, border mode same",row:19,col:3},{name:"convolution2d_13",className:"Convolution2D",details:"64 1x1 filters, 1x1 strides, border mode same, ReLU",row:19,col:2},{name:"convolution2d_15",className:"Convolution2D",details:"64 5x5 filters, 1x1 strides, border mode same, ReLU",row:21,col:1},{name:"convolution2d_18",className:"Convolution2D",details:"96 3x3 filters, 1x1 strides, border mode same, ReLU",row:23,col:2},{name:"convolution2d_19",className:"Convolution2D",details:"32 1x1 filters, 1x1 strides, border mode same, ReLU",row:20,col:3},{name:"batchnormalization_13",className:"BatchNormalization",details:"channel axis features",row:20,col:2},{name:"batchnormalization_15",className:"BatchNormalization",details:"channel axis features",row:22,col:1},{name:"batchnormalization_18",className:"BatchNormalization",details:"channel axis features",row:24,col:2},{name:"batchnormalization_19",className:"BatchNormalization",details:"channel axis features",row:21,col:3},{name:"mixed1",className:"Merge",details:"concat by channel axes",row:25,col:3},{name:"convolution2d_23",className:"Convolution2D",details:"64 1x1 filters, 1x1 strides, border mode same, ReLU",row:26,col:0},{name:"batchnormalization_23",className:"BatchNormalization",details:"channel axis features",row:27,col:0},{name:"convolution2d_21",className:"Convolution2D",details:"48 1x1 filters, 1x1 strides, border mode same, ReLU",row:26,col:1},{name:"convolution2d_24",className:"Convolution2D",details:"96 3x3 filters, 1x1 strides, border mode same, ReLU",row:28,col:2},{name:"batchnormalization_21",className:"BatchNormalization",details:"channel axis features",row:27,col:1},{name:"batchnormalization_24",className:"BatchNormalization",details:"channel axis features",row:29,col:2},{name:"averagepooling2d_3",className:"AveragePooling2D",details:"3x3 pool size, 1x1 strides, border mode same",row:26,col:3},{name:"convolution2d_20",className:"Convolution2D",details:"64 1x1 filters, 1x1 strides, border mode same, ReLU",row:26,col:2},{name:"convolution2d_22",className:"Convolution2D",details:"64 5x5 filters, 1x1 strides, border mode same, ReLU",row:28,col:1},{name:"convolution2d_25",className:"Convolution2D",details:"96 3x3 filters, 1x1 strides, border mode same, ReLU",row:30,col:2},{name:"convolution2d_26",className:"Convolution2D",details:"32 1x1 filters, 1x1 strides, border mode same, ReLU",row:27,col:3},{name:"batchnormalization_20",className:"BatchNormalization",details:"channel axis features",row:27,col:2},{name:"batchnormalization_22",className:"BatchNormalization",details:"channel axis features",row:29,col:1},{name:"batchnormalization_25",className:"BatchNormalization",details:"channel axis features",row:31,col:2},{name:"batchnormalization_26",className:"BatchNormalization",details:"channel axis features",row:28,col:3},{name:"mixed2",className:"Merge",details:"concat by channel axes",row:32,col:3},{name:"convolution2d_28",className:"Convolution2D",details:"64 1x1 filters, 1x1 strides, border mode same, ReLU",row:33,col:1},{name:"batchnormalization_28",className:"BatchNormalization",details:"channel axis features",row:34,col:1},{name:"convolution2d_29",className:"Convolution2D",details:"96 3x3 filters, 1x1 strides, border mode same, ReLU",row:35,col:1},{name:"batchnormalization_29",className:"BatchNormalization",details:"channel axis features",row:36,col:1},{name:"convolution2d_27",className:"Convolution2D",details:"384 3x3 filters, 2x2 strides, border mode valid, ReLU",row:33,col:0},{name:"convolution2d_30",className:"Convolution2D",details:"96 3x3 filters, 2x2 strides, border mode valid, ReLU",row:37,col:1},{name:"batchnormalization_27",className:"BatchNormalization",details:"channel axis features",row:34,col:0},{name:"batchnormalization_30",className:"BatchNormalization",details:"channel axis features",row:38,col:1},{name:"maxpooling2d_3",className:"MaxPooling2D",details:"3x3 pool size, 2x2 strides, border mode valid",row:33,col:2},{name:"mixed3",className:"Merge",details:"concat by channel axes",row:39,col:3},{name:"convolution2d_35",className:"Convolution2D",details:"128 1x1 filters, 1x1 strides, border mode same, ReLU",row:40,col:2},{name:"batchnormalization_35",className:"BatchNormalization",details:"channel axis features",row:41,col:2},{name:"convolution2d_36",className:"Convolution2D",details:"128 7x1 filters, 1x1 strides, border mode same, ReLU",row:42,col:2},{name:"batchnormalization_36",className:"BatchNormalization",details:"channel axis features",row:43,col:2},{name:"convolution2d_32",className:"Convolution2D",details:"128 1x1 filters, 1x1 strides, border mode same, ReLU",row:40,col:1},{name:"convolution2d_37",className:"Convolution2D",details:"128 1x7 filters, 1x1 strides, border mode same, ReLU",row:44,col:2},{name:"batchnormalization_32",className:"BatchNormalization",details:"channel axis features",row:41,col:1},{name:"batchnormalization_37",className:"BatchNormalization",details:"channel axis features",row:45,col:2},{name:"convolution2d_33",className:"Convolution2D",details:"128 1x7 filters, 1x1 strides, border mode same, ReLU",row:42,col:1},{name:"convolution2d_38",className:"Convolution2D",details:"128 7x1 filters, 1x1 strides, border mode same, ReLU",row:46,col:2},{name:"batchnormalization_33",className:"BatchNormalization",details:"channel axis features",row:43,col:1},{name:"batchnormalization_38",className:"BatchNormalization",details:"channel axis features",row:47,col:2},{name:"averagepooling2d_4",className:"AveragePooling2D",details:"3x3 pool size, 1x1 strides, border mode same",row:40,col:3},{name:"convolution2d_31",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:40,col:0},{name:"convolution2d_34",className:"Convolution2D",details:"192 7x1 filters, 1x1 strides, border mode same, ReLU",row:44,col:1},{name:"convolution2d_39",className:"Convolution2D",details:"192 1x7 filters, 1x1 strides, border mode same, ReLU",row:48,col:2},{name:"convolution2d_40",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:41,col:3},{name:"batchnormalization_31",className:"BatchNormalization",details:"channel axis features",row:41,col:0},{name:"batchnormalization_34",className:"BatchNormalization",details:"channel axis features",row:45,col:1},{name:"batchnormalization_39",className:"BatchNormalization",details:"channel axis features",row:49,col:2},{name:"batchnormalization_40",className:"BatchNormalization",details:"channel axis features",row:42,col:3},{name:"mixed4",className:"Merge",details:"concat by channel axes",row:50,col:3},{name:"convolution2d_45",className:"Convolution2D",details:"160 1x1 filters, 1x1 strides, border mode same, ReLU",row:51,col:2},{name:"batchnormalization_45",className:"BatchNormalization",details:"channel axis features",row:52,col:2},{name:"convolution2d_46",className:"Convolution2D",details:"160 7x1 filters, 1x1 strides, border mode same, ReLU",row:53,col:2},{name:"batchnormalization_46",className:"BatchNormalization",details:"channel axis features",row:54,col:2},{name:"convolution2d_42",className:"Convolution2D",details:"160 1x1 filters, 1x1 strides, border mode same, ReLU",row:51,col:1},{name:"convolution2d_47",className:"Convolution2D",details:"160 1x7 filters, 1x1 strides, border mode same, ReLU",row:55,col:2},{name:"batchnormalization_42",className:"BatchNormalization",details:"channel axis features",row:52,col:1},{name:"batchnormalization_47",className:"BatchNormalization",details:"channel axis features", +row:56,col:2},{name:"convolution2d_43",className:"Convolution2D",details:"160 1x7 filters, 1x1 strides, border mode same, ReLU",row:53,col:1},{name:"convolution2d_48",className:"Convolution2D",details:"160 7x1 filters, 1x1 strides, border mode same, ReLU",row:57,col:2},{name:"batchnormalization_43",className:"BatchNormalization",details:"channel axis features",row:54,col:1},{name:"batchnormalization_48",className:"BatchNormalization",details:"channel axis features",row:58,col:2},{name:"averagepooling2d_5",className:"AveragePooling2D",details:"3x3 pool size, 1x1 strides, border mode same",row:51,col:3},{name:"convolution2d_41",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:51,col:0},{name:"convolution2d_44",className:"Convolution2D",details:"192 7x1 filters, 1x1 strides, border mode same, ReLU",row:55,col:1},{name:"convolution2d_49",className:"Convolution2D",details:"192 1x7 filters, 1x1 strides, border mode same, ReLU",row:59,col:2},{name:"convolution2d_50",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:52,col:3},{name:"batchnormalization_41",className:"BatchNormalization",details:"channel axis features",row:52,col:0},{name:"batchnormalization_44",className:"BatchNormalization",details:"channel axis features",row:56,col:1},{name:"batchnormalization_49",className:"BatchNormalization",details:"channel axis features",row:60,col:2},{name:"batchnormalization_50",className:"BatchNormalization",details:"channel axis features",row:53,col:3},{name:"mixed5",className:"Merge",details:"concat by channel axes",row:61,col:3},{name:"convolution2d_55",className:"Convolution2D",details:"160 1x1 filters, 1x1 strides, border mode same, ReLU",row:62,col:2},{name:"batchnormalization_55",className:"BatchNormalization",details:"channel axis features",row:63,col:2},{name:"convolution2d_56",className:"Convolution2D",details:"160 7x1 filters, 1x1 strides, border mode same, ReLU",row:64,col:2},{name:"batchnormalization_56",className:"BatchNormalization",details:"channel axis features",row:65,col:2},{name:"convolution2d_52",className:"Convolution2D",details:"160 1x1 filters, 1x1 strides, border mode same, ReLU",row:62,col:1},{name:"convolution2d_57",className:"Convolution2D",details:"160 1x7 filters, 1x1 strides, border mode same, ReLU",row:66,col:2},{name:"batchnormalization_52",className:"BatchNormalization",details:"channel axis features",row:63,col:1},{name:"batchnormalization_57",className:"BatchNormalization",details:"channel axis features",row:67,col:2},{name:"convolution2d_53",className:"Convolution2D",details:"160 1x7 filters, 1x1 strides, border mode same, ReLU",row:64,col:1},{name:"convolution2d_58",className:"Convolution2D",details:"160 7x1 filters, 1x1 strides, border mode same, ReLU",row:68,col:2},{name:"batchnormalization_53",className:"BatchNormalization",details:"channel axis features",row:65,col:1},{name:"batchnormalization_58",className:"BatchNormalization",details:"channel axis features",row:69,col:2},{name:"averagepooling2d_6",className:"AveragePooling2D",details:"3x3 pool size, 1x1 strides, border mode same",row:62,col:3},{name:"convolution2d_51",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:62,col:0},{name:"convolution2d_54",className:"Convolution2D",details:"192 7x1 filters, 1x1 strides, border mode same, ReLU",row:66,col:1},{name:"convolution2d_59",className:"Convolution2D",details:"192 1x7 filters, 1x1 strides, border mode same, ReLU",row:70,col:2},{name:"convolution2d_60",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:63,col:3},{name:"batchnormalization_51",className:"BatchNormalization",details:"channel axis features",row:63,col:0},{name:"batchnormalization_54",className:"BatchNormalization",details:"channel axis features",row:67,col:1},{name:"batchnormalization_59",className:"BatchNormalization",details:"channel axis features",row:71,col:2},{name:"batchnormalization_60",className:"BatchNormalization",details:"channel axis features",row:64,col:3},{name:"mixed6",className:"Merge",details:"concat by channel axes",row:72,col:3},{name:"convolution2d_65",className:"Convolution2D",details:"160 1x1 filters, 1x1 strides, border mode same, ReLU",row:73,col:2},{name:"batchnormalization_65",className:"BatchNormalization",details:"channel axis features",row:74,col:2},{name:"convolution2d_66",className:"Convolution2D",details:"192 7x1 filters, 1x1 strides, border mode same, ReLU",row:75,col:2},{name:"batchnormalization_66",className:"BatchNormalization",details:"channel axis features",row:76,col:2},{name:"convolution2d_62",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:73,col:1},{name:"convolution2d_67",className:"Convolution2D",details:"192 1x7 filters, 1x1 strides, border mode same, ReLU",row:77,col:2},{name:"batchnormalization_62",className:"BatchNormalization",details:"channel axis features",row:74,col:1},{name:"batchnormalization_67",className:"BatchNormalization",details:"channel axis features",row:78,col:2},{name:"convolution2d_63",className:"Convolution2D",details:"192 1x7 filters, 1x1 strides, border mode same, ReLU",row:75,col:1},{name:"convolution2d_68",className:"Convolution2D",details:"192 7x1 filters, 1x1 strides, border mode same, ReLU",row:79,col:2},{name:"batchnormalization_63",className:"BatchNormalization",details:"channel axis features",row:76,col:1},{name:"batchnormalization_68",className:"BatchNormalization",details:"channel axis features",row:80,col:2},{name:"averagepooling2d_7",className:"AveragePooling2D",details:"3x3 pool size, 1x1 strides, border mode same",row:73,col:3},{name:"convolution2d_61",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:73,col:0},{name:"convolution2d_64",className:"Convolution2D",details:"192 7x1 filters, 1x1 strides, border mode same, ReLU",row:77,col:1},{name:"convolution2d_69",className:"Convolution2D",details:"192 1x7 filters, 1x1 strides, border mode same, ReLU",row:81,col:2},{name:"convolution2d_70",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:74,col:3},{name:"batchnormalization_61",className:"BatchNormalization",details:"channel axis features",row:74,col:0},{name:"batchnormalization_64",className:"BatchNormalization",details:"channel axis features",row:78,col:1},{name:"batchnormalization_69",className:"BatchNormalization",details:"channel axis features",row:82,col:2},{name:"batchnormalization_70",className:"BatchNormalization",details:"channel axis features",row:75,col:3},{name:"mixed7",className:"Merge",details:"concat by channel axes",row:83,col:3},{name:"convolution2d_73",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:84,col:1},{name:"batchnormalization_73",className:"BatchNormalization",details:"channel axis features",row:85,col:1},{name:"convolution2d_74",className:"Convolution2D",details:"192 1x7 filters, 1x1 strides, border mode same, ReLU",row:86,col:1},{name:"batchnormalization_74",className:"BatchNormalization",details:"channel axis features",row:87,col:1},{name:"convolution2d_71",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:84,col:0},{name:"convolution2d_75",className:"Convolution2D",details:"192 7x1 filters, 1x1 strides, border mode same, ReLU",row:88,col:1},{name:"batchnormalization_71",className:"BatchNormalization",details:"channel axis features",row:85,col:0},{name:"batchnormalization_75",className:"BatchNormalization",details:"channel axis features",row:89,col:1},{name:"convolution2d_72",className:"Convolution2D",details:"320 3x3 filters, 2x2 strides, border mode valid, ReLU",row:86,col:0},{name:"convolution2d_76",className:"Convolution2D",details:"192 3x3 filters, 2x2 strides, border mode valid, ReLU",row:90,col:1},{name:"batchnormalization_72",className:"BatchNormalization",details:"channel axis features",row:87,col:0},{name:"batchnormalization_76",className:"BatchNormalization",details:"channel axis features",row:91,col:1},{name:"averagepooling2d_8",className:"AveragePooling2D",details:"3x3 pool size, 2x2 strides, border mode valid",row:84,col:2},{name:"mixed8",className:"Merge",details:"concat by channel axes",row:92,col:3},{name:"convolution2d_81",className:"Convolution2D",details:"448 1x1 filters, 1x1 strides, border mode same, ReLU",row:93,col:2},{name:"batchnormalization_81",className:"BatchNormalization",details:"channel axis features",row:94,col:2},{name:"convolution2d_78",className:"Convolution2D",details:"384 1x1 filters, 1x1 strides, border mode same, ReLU",row:93,col:1},{name:"convolution2d_82",className:"Convolution2D",details:"384 3x3 filters, 1x1 strides, border mode same, ReLU",row:95,col:2},{name:"batchnormalization_78",className:"BatchNormalization",details:"channel axis features",row:94,col:1},{name:"batchnormalization_82",className:"BatchNormalization",details:"channel axis features",row:96,col:2},{name:"convolution2d_79",className:"Convolution2D",details:"384 1x3 filters, 1x1 strides, border mode same, ReLU",row:95,col:1,subcol:0},{name:"convolution2d_80",className:"Convolution2D",details:"384 3x1 filters, 1x1 strides, border mode same, ReLU",row:95,col:1,subcol:1},{name:"convolution2d_83",className:"Convolution2D",details:"384 1x3 filters, 1x1 strides, border mode same, ReLU",row:97,col:2,subcol:0},{name:"convolution2d_84",className:"Convolution2D",details:"384 3x1 filters, 1x1 strides, border mode same, ReLU",row:97,col:2,subcol:1},{name:"averagepooling2d_9",className:"AveragePooling2D",details:"3x3 pool size, 1x1 strides, border mode same",row:93,col:3},{name:"convolution2d_77",className:"Convolution2D",details:"320 1x1 filters, 1x1 strides, border mode same, ReLU",row:93,col:0},{name:"batchnormalization_79",className:"BatchNormalization",details:"channel axis features",row:96,col:1,subcol:0},{name:"batchnormalization_80",className:"BatchNormalization",details:"channel axis features",row:96,col:1,subcol:1},{name:"batchnormalization_83",className:"BatchNormalization",details:"channel axis features",row:98,col:2,subcol:0},{name:"batchnormalization_84",className:"BatchNormalization",details:"channel axis features",row:98,col:2,subcol:1},{name:"convolution2d_85",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:94,col:3},{name:"batchnormalization_77",className:"BatchNormalization",details:"channel axis features",row:94,col:0},{name:"mixed9_0",className:"Merge",details:"concat by channel axes",row:97,col:1},{name:"merge_1",className:"Merge",details:"concat by channel axes",row:99,col:2},{name:"batchnormalization_85",className:"BatchNormalization",details:"channel axis features",row:95,col:3},{name:"mixed9",className:"Merge",details:"concat by channel axes",row:100,col:3},{name:"convolution2d_90",className:"Convolution2D",details:"448 1x1 filters, 1x1 strides, border mode same, ReLU",row:101,col:2},{name:"batchnormalization_90",className:"BatchNormalization",details:"channel axis features",row:102,col:2},{name:"convolution2d_87",className:"Convolution2D",details:"384 1x1 filters, 1x1 strides, border mode same, ReLU",row:101,col:1},{name:"convolution2d_91",className:"Convolution2D",details:"384 3x3 filters, 1x1 strides, border mode same, ReLU",row:103,col:2},{name:"batchnormalization_87",className:"BatchNormalization",details:"channel axis features",row:102,col:1},{name:"batchnormalization_91",className:"BatchNormalization",details:"channel axis features",row:104,col:2},{name:"convolution2d_88",className:"Convolution2D",details:"384 1x3 filters, 1x1 strides, border mode same, ReLU",row:103,col:1,subcol:0},{name:"convolution2d_89",className:"Convolution2D",details:"384 3x1 filters, 1x1 strides, border mode same, ReLU",row:103,col:1,subcol:1},{name:"convolution2d_92",className:"Convolution2D",details:"384 1x3 filters, 1x1 strides, border mode same, ReLU",row:105,col:2,subcol:0},{name:"convolution2d_93",className:"Convolution2D",details:"384 3x1 filters, 1x1 strides, border mode same, ReLU",row:105,col:2,subcol:1},{name:"averagepooling2d_10",className:"AveragePooling2D",details:"3x3 pool size, 1x1 strides, border mode same",row:101,col:3},{name:"convolution2d_86",className:"Convolution2D",details:"320 1x1 filters, 1x1 strides, border mode same, ReLU",row:101,col:0},{name:"batchnormalization_88",className:"BatchNormalization",details:"channel axis features",row:104,col:1,subcol:0},{name:"batchnormalization_89",className:"BatchNormalization",details:"channel axis features",row:104,col:1,subcol:1},{name:"batchnormalization_92",className:"BatchNormalization",details:"channel axis features",row:106,col:2,subcol:0},{name:"batchnormalization_93",className:"BatchNormalization",details:"channel axis features",row:106,col:2,subcol:1},{name:"convolution2d_94",className:"Convolution2D",details:"192 1x1 filters, 1x1 strides, border mode same, ReLU",row:102,col:3},{name:"batchnormalization_86",className:"BatchNormalization",details:"channel axis features",row:102,col:0},{name:"mixed9_1",className:"Merge",details:"concat by channel axes",row:105,col:1},{name:"merge_2",className:"Merge",details:"concat by channel axes",row:107,col:2},{name:"batchnormalization_94",className:"BatchNormalization",details:"channel axis features",row:103,col:3},{name:"mixed10",className:"Merge",details:"concat by channel axes",row:108,col:3},{name:"avg_pool",className:"AveragePooling2D",details:"8x8 pool size, 8x8 strides, border mode valid",row:109,col:3},{name:"flatten",className:"Flatten",details:"",row:110,col:3},{name:"predictions",className:"Dense",details:"output dimensions 1000, softmax activation",row:111,col:3}],n.ARCHITECTURE_CONNECTIONS=[{from:"averagepooling2d_1",to:"predictions"},{from:"convolution2d_1",to:"maxpooling2d_2"},{from:"maxpooling2d_2",to:"batchnormalization_9"},{from:"maxpooling2d_2",to:"batchnormalization_11",corner:"top-right"},{from:"maxpooling2d_2",to:"batchnormalization_8",corner:"top-right"},{from:"maxpooling2d_2",to:"averagepooling2d_1",corner:"top-right"},{from:"batchnormalization_9",to:"mixed0",corner:"bottom-left"},{from:"batchnormalization_11",to:"mixed0",corner:"bottom-left"},{from:"batchnormalization_8",to:"mixed0",corner:"bottom-left"},{from:"mixed0",to:"convolution2d_16",corner:"bottom-right"},{from:"mixed0",to:"convolution2d_14",corner:"bottom-right"},{from:"mixed0",to:"convolution2d_13",corner:"bottom-right"},{from:"convolution2d_16",to:"mixed1",corner:"bottom-left"},{from:"convolution2d_14",to:"mixed1",corner:"bottom-left"},{from:"convolution2d_13",to:"mixed1",corner:"bottom-left"},{from:"mixed1",to:"convolution2d_23",corner:"bottom-right"},{from:"mixed1",to:"convolution2d_21",corner:"bottom-right"},{from:"mixed1",to:"convolution2d_20",corner:"bottom-right"},{from:"convolution2d_23",to:"mixed2",corner:"bottom-left"},{from:"convolution2d_21",to:"mixed2",corner:"bottom-left"},{from:"convolution2d_20",to:"mixed2",corner:"bottom-left"},{from:"mixed2",to:"convolution2d_27",corner:"bottom-right"},{from:"mixed2",to:"convolution2d_28",corner:"bottom-right"},{from:"mixed2",to:"maxpooling2d_3",corner:"bottom-right"},{from:"convolution2d_27",to:"mixed3",corner:"bottom-left"},{from:"convolution2d_28",to:"mixed3",corner:"bottom-left"},{from:"maxpooling2d_3",to:"mixed3",corner:"bottom-left"},{from:"mixed3",to:"convolution2d_31",corner:"bottom-right"},{from:"mixed3",to:"convolution2d_32",corner:"bottom-right"},{from:"mixed3",to:"convolution2d_35",corner:"bottom-right"},{from:"convolution2d_31",to:"mixed4",corner:"bottom-left"},{from:"convolution2d_32",to:"mixed4",corner:"bottom-left"},{from:"convolution2d_35",to:"mixed4",corner:"bottom-left"},{from:"mixed4",to:"convolution2d_41",corner:"bottom-right"},{from:"mixed4",to:"convolution2d_42",corner:"bottom-right"},{from:"mixed4",to:"convolution2d_45",corner:"bottom-right"},{from:"convolution2d_41",to:"mixed5",corner:"bottom-left"},{from:"convolution2d_42",to:"mixed5",corner:"bottom-left"},{from:"convolution2d_45",to:"mixed5",corner:"bottom-left"},{from:"mixed5",to:"convolution2d_51",corner:"bottom-right"},{from:"mixed5",to:"convolution2d_52",corner:"bottom-right"},{from:"mixed5",to:"convolution2d_55",corner:"bottom-right"},{from:"convolution2d_51",to:"mixed6",corner:"bottom-left"},{from:"convolution2d_52",to:"mixed6",corner:"bottom-left"},{from:"convolution2d_55",to:"mixed6",corner:"bottom-left"},{from:"mixed6",to:"convolution2d_61",corner:"bottom-right"},{from:"mixed6",to:"convolution2d_62",corner:"bottom-right"},{from:"mixed6",to:"convolution2d_65",corner:"bottom-right"},{from:"convolution2d_61",to:"mixed7",corner:"bottom-left"},{from:"convolution2d_62",to:"mixed7",corner:"bottom-left"},{from:"convolution2d_65",to:"mixed7",corner:"bottom-left"},{from:"mixed7",to:"convolution2d_71",corner:"bottom-right"},{from:"mixed7",to:"convolution2d_73",corner:"bottom-right"},{from:"mixed7",to:"averagepooling2d_8",corner:"bottom-right"},{from:"convolution2d_71",to:"mixed8",corner:"bottom-left"},{from:"convolution2d_73",to:"mixed8",corner:"bottom-left"},{from:"averagepooling2d_8",to:"mixed8",corner:"bottom-left"},{from:"mixed8",to:"convolution2d_77",corner:"bottom-right"},{from:"mixed8",to:"convolution2d_78",corner:"bottom-right"},{from:"mixed8",to:"convolution2d_81",corner:"bottom-right"},{from:"convolution2d_77",to:"mixed9",corner:"bottom-left"},{from:"convolution2d_78",to:"batchnormalization_78"},{from:"batchnormalization_78",to:"convolution2d_79"},{from:"batchnormalization_78",to:"convolution2d_80"},{from:"convolution2d_79",to:"batchnormalization_79"},{from:"convolution2d_80",to:"batchnormalization_80"},{from:"batchnormalization_79",to:"mixed9_0"},{from:"batchnormalization_80",to:"mixed9_0"},{from:"mixed9_0",to:"mixed9",corner:"bottom-left"},{from:"convolution2d_81",to:"batchnormalization_81"},{from:"batchnormalization_81",to:"convolution2d_82"},{from:"convolution2d_82",to:"batchnormalization_82"},{from:"batchnormalization_82",to:"convolution2d_83"},{from:"batchnormalization_82",to:"convolution2d_84"},{from:"convolution2d_83",to:"batchnormalization_83"},{from:"convolution2d_84",to:"batchnormalization_84"},{from:"batchnormalization_83",to:"merge_1"},{from:"batchnormalization_84",to:"merge_1"},{from:"merge_1",to:"mixed9",corner:"bottom-left"},{from:"mixed9",to:"convolution2d_86",corner:"bottom-right"},{from:"mixed9",to:"convolution2d_87",corner:"bottom-right"},{from:"mixed9",to:"convolution2d_90",corner:"bottom-right"},{from:"convolution2d_86",to:"mixed10",corner:"bottom-left"},{from:"convolution2d_87",to:"batchnormalization_87"},{from:"batchnormalization_87",to:"convolution2d_88"},{from:"batchnormalization_87",to:"convolution2d_89"},{from:"convolution2d_88",to:"batchnormalization_88"},{from:"convolution2d_89",to:"batchnormalization_89"},{from:"batchnormalization_88",to:"mixed9_1"},{from:"batchnormalization_89",to:"mixed9_1"},{from:"mixed9_1",to:"mixed10",corner:"bottom-left"},{from:"convolution2d_90",to:"batchnormalization_90"},{from:"batchnormalization_90",to:"convolution2d_91"},{from:"convolution2d_91",to:"batchnormalization_91"},{from:"batchnormalization_91",to:"convolution2d_92"},{from:"batchnormalization_91",to:"convolution2d_93"},{from:"convolution2d_92",to:"batchnormalization_92"},{from:"convolution2d_93",to:"batchnormalization_93"},{from:"batchnormalization_92",to:"merge_2"},{from:"batchnormalization_93",to:"merge_2"},{from:"merge_2",to:"mixed10",corner:"bottom-left"}]},function(e,n,t){"use strict";function a(e){if(e&&e.__esModule)return e;var n={};if(null!=e)for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(n[t]=e[t]);return n.default=e,n}function o(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(n,"__esModule",{value:!0}),n.InceptionV3=void 0,t(228);var r=t(20),i=o(r),s=t(31),l=o(s),c=t(200),u=o(c),d=t(11),m=a(d),f=t(38),p=t(83),h={model:"demos/data/inception_v3/inception_v3.json",weights:"https://transcranial.github.io/keras-js-demos-data/inception_v3/inception_v3_weights.buf",metadata:"demos/data/inception_v3/inception_v3_metadata.json"},b={filepaths:h};n.InceptionV3=Vue.extend({props:["hasWebgl"],template:t(221),data:function(){return{showInfoPanel:!0,useGpu:this.hasWebgl,model:new KerasJS.Model(Object.assign({gpu:this.hasWebgl,layerCallPauses:!0},b)),modelLoading:!0,modelRunning:!1,imageURLInput:null,imageURLSelect:null,imageURLSelectList:f.IMAGE_URLS,imageLoading:!1,imageLoadingError:!1,output:null,architectureDiagram:p.ARCHITECTURE_DIAGRAM,architectureConnections:p.ARCHITECTURE_CONNECTIONS,architectureDiagramPaths:[],showComputationFlow:!0}},computed:{loadingProgress:function(){return this.model.getLoadingProgress()},architectureDiagramRows:function(){for(var e=[],n=0;n<112;n++){for(var t=[],a=0;a<4;a++)t.push((0,u.default)(this.architectureDiagram,{row:n,col:a}));e.push(t)}return e},layersWithResults:function(){return this.model.layersWithResults},outputClasses:function(){if(!this.output){for(var e=[],n=0;n<5;n++)e.push({name:"-",probability:0});return e}return m.imagenetClassesTopK(this.output,5)}},ready:function(){var e=this;this.model.ready().then(function(){e.modelLoading=!1}),this.architectureDiagramPaths=[],setTimeout(function(){e.architectureConnections.forEach(function(n){var t=document.getElementsByClassName("architecture-container")[0],a=document.getElementById(n.from),o=document.getElementById(n.to),r=t.getBoundingClientRect(),i=a.getBoundingClientRect(),s=o.getBoundingClientRect(),l=r.left,c=r.top,u=i.left+i.width/2-l,d=i.top+i.height/2-c,m=s.left+s.width/2-l,f=s.top+s.height/2-c,p="M"+u+","+d+" L"+m+","+f;"top-right"===n.corner?p="M"+u+","+d+" L"+(m-10)+","+d+" Q"+m+","+d+" "+m+","+(d+10)+" L"+m+","+f:"bottom-left"===n.corner?p="M"+u+","+d+" L"+u+","+(f-10)+" Q"+u+","+f+" "+(u+10)+","+f+" L"+m+","+f:"top-left"===n.corner?p="M"+u+","+d+" L"+(m+10)+","+d+" Q"+m+","+d+" "+m+","+(d+10)+" L"+m+","+f:"bottom-right"===n.corner&&(p="M"+u+","+d+" L"+u+","+(d+20)+" Q"+u+","+(d+30)+" "+(u-10)+","+(d+30)+" L"+(m+10)+","+(d+30)+" Q"+m+","+(d+30)+" "+m+","+(d+40)+" L"+m+","+f),e.architectureDiagramPaths.push(p)})},1e3)},methods:{closeInfoPanel:function(){this.showInfoPanel=!1},toggleGpu:function(){this.model.toggleGpu(!this.useGpu)},toggleComputationFlow:function(){this.model.layerCallPauses=!this.showComputationFlow},imageURLInputChanged:function(e){this.imageURLSelect=null,this.loadImageToCanvas(this.imageURLInput)},imageURLSelectChanged:function(e){this.imageURLInput=this.imageURLSelect,this.loadImageToCanvas(this.imageURLSelect)},loadImageToCanvas:function(e){var n=this;return e?(this.imageLoading=!0,void loadImage(e,function(e){if("error"===e.type)n.imageLoadingError=!0,n.imageLoading=!1;else{var t=document.getElementById("input-canvas").getContext("2d");t.drawImage(e,0,0),n.imageLoadingError=!1,n.imageLoading=!1,n.modelRunning=!0,n.$nextTick(function(){var e=this;setTimeout(function(){e.runModel()},200)})}},{maxWidth:299,maxHeight:299,cover:!0,crop:!0,canvas:!0,crossOrigin:"Anonymous"})):void this.clearAll()},runModel:function(){var e=this,n=document.getElementById("input-canvas").getContext("2d"),t=n.getImageData(0,0,n.canvas.width,n.canvas.height),a=t.data,o=t.width,r=t.height,s=(0,i.default)(new Float32Array(a),[o,r,4]),c=(0,i.default)(new Float32Array(o*r*3),[o,r,3]);l.default.divseq(s,255),l.default.subseq(s,.5),l.default.mulseq(s,2),l.default.assign(c.pick(null,null,0),s.pick(null,null,0)),l.default.assign(c.pick(null,null,1),s.pick(null,null,1)),l.default.assign(c.pick(null,null,2),s.pick(null,null,2));var u={input_1:c.data};this.model.predict(u).then(function(n){e.output=n.predictions,e.modelRunning=!1})},clearAll:function(){this.modelRunning=!1,this.imageURLInput=null,this.imageURLSelect=null,this.imageLoading=!1,this.imageLoadingError=!1,this.output=null,this.model.layersWithResults=[];var e=document.getElementById("input-canvas").getContext("2d");e.clearRect(0,0,e.canvas.width,e.canvas.height)}}})},function(e,n,t){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),n.Menu=void 0,t(230);n.Menu=Vue.extend({props:["currentView"],template:t(222)})},function(e,n,t){"use strict";function a(e){if(e&&e.__esModule)return e;var n={};if(null!=e)for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(n[t]=e[t]);return n.default=e,n}function o(e){return e&&e.__esModule?e:{default:e}}function r(e){if(Array.isArray(e)){for(var n=0,t=Array(e.length);ne.output[n]?a:n},0)}},ready:function(){var e=this;this.model.ready().then(function(){e.modelLoading=!1,e.$nextTick(function(){this.getIntermediateResults()})})},methods:{closeInfoPanel:function(){this.showInfoPanel=!1},toggleGpu:function(){this.model.toggleGpu(!this.useGpu)},clear:function(e){this.clearIntermediateResults();var n=document.getElementById("input-canvas").getContext("2d");n.clearRect(0,0,n.canvas.width,n.canvas.height);var t=document.getElementById("input-canvas-centercrop").getContext("2d");t.clearRect(0,0,t.canvas.width,t.canvas.height);var a=document.getElementById("input-canvas-scaled").getContext("2d");a.clearRect(0,0,a.canvas.width,a.canvas.height),this.output=new Float32Array(10),this.drawing=!1,this.strokes=[]},activateDraw:function(e){this.drawing=!0,this.strokes.push([]);var n=this.strokes[this.strokes.length-1];n.push(m.getCoordinates(e))},draw:function(e){if(this.drawing){var n=document.getElementById("input-canvas").getContext("2d");n.lineWidth=20,n.lineJoin=n.lineCap="round",n.strokeStyle="#393E46",n.clearRect(0,0,n.canvas.width,n.canvas.height);var t=this.strokes[this.strokes.length-1];t.push(m.getCoordinates(e));for(var a=0,o=this.strokes.length;a2&&void 0!==arguments[2]?arguments[2]:{};o(this,e),this._type=a.type||Float32Array,n&&n.length&&(n instanceof this._type||n instanceof Array)?(d(n,t),this.tensor=(0,s.default)(n,t),this.tensor=(0,s.default)(new this._type(n),t)):!n.length&&t.length?this.tensor=(0,s.default)(new this._type(t.reduce(function(e,n){return e*n},1)),t):this.tensor=(0,s.default)(new this._type([]),[])}return r(e,[{key:"createWeblasTensor",value:function(){if(this.weblasTensor&&this.weblasTensor.delete(),this.weblasTensorsSplit&&this.weblasTensorsSplit.forEach(function(e){return e.delete()}),1===this.tensor.shape.length){var e=this.tensor.shape[0];if(e>u.MAX_TEXTURE_SIZE){this.weblasTensorsSplit=[];for(var n=Math.ceil(u.MAX_TEXTURE_SIZE/e),t=0;tu.MAX_TEXTURE_SIZE}))throw new Error("[Tensor] cannot create Tensor with both dimensions exceeding MAX_TEXTURE_SIZE");var s=this.tensor.shape[0],l=this.tensor.shape[1];if(s>u.MAX_TEXTURE_SIZE){this.weblasTensorsSplit=[];for(var c=Math.ceil(s/u.MAX_TEXTURE_SIZE),d=0;du.MAX_TEXTURE_SIZE){this.weblasTensorsSplit=[];for(var h=Math.ceil(l/u.MAX_TEXTURE_SIZE),b=0;b .mdl-switch {\n margin-bottom: 5px;\n}\n.demo.inception-v3 .top-container .controls > .mdl-switch .mdl-switch__label {\n font-size: 12px !important;\n}\n.demo.inception-v3 .columns.input-output {\n max-width: 800px;\n margin: 0 auto;\n}\n.demo.inception-v3 .columns.input-output .column {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.demo.inception-v3 .columns.input-output .column.input-column {\n position: relative;\n}\n.demo.inception-v3 .columns.input-output .column.input-column .loading-indicator {\n position: absolute;\n top: 0;\n left: -10px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-item-align: start;\n align-self: flex-start;\n}\n.demo.inception-v3 .columns.input-output .column.input-column .loading-indicator .mdl-spinner {\n margin: 20px;\n -ms-flex-item-align: center;\n -ms-grid-row-align: center;\n align-self: center;\n}\n.demo.inception-v3 .columns.input-output .column.input-column .loading-indicator .error {\n color: #D24D57;\n font-size: 14px;\n font-family: 'Fira Sans',sans-serif;\n margin: 20px;\n}\n.demo.inception-v3 .columns.input-output .column.input-column .canvas-container {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: flex-end;\n}\n.demo.inception-v3 .columns.input-output .column.input-column .canvas-container canvas {\n background: white;\n}\n.demo.inception-v3 .columns.input-output .column.output-column .output {\n width: 370px;\n height: 160px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.demo.inception-v3 .columns.input-output .column.output-column .output .output-class {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n padding: 6px 0;\n}\n.demo.inception-v3 .columns.input-output .column.output-column .output .output-class .output-label {\n text-align: right;\n width: 200px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-family: 'Share Tech Mono',sans-serif;\n font-size: 18px;\n color: #69707a;\n padding: 0 6px;\n border-right: 2px solid rgba(27, 188, 155, 0.3);\n}\n.demo.inception-v3 .columns.input-output .column.output-column .output .output-class .output-bar {\n height: 8px;\n -webkit-transition: width 0.2s ease-out;\n transition: width 0.2s ease-out;\n}\n.demo.inception-v3 .columns.input-output .column.output-column .output .output-class .output-value {\n text-align: left;\n margin-left: 5px;\n font-family: 'Share Tech Mono',sans-serif;\n font-size: 14px;\n color: #69707a;\n}\n.demo.inception-v3 .columns.input-output .column.output-column .output .output-class.predicted .output-label {\n color: #1BBC9B;\n border-left-color: #1BBC9B;\n}\n.demo.inception-v3 .columns.input-output .column.output-column .output .output-class.predicted .output-value {\n color: #1BBC9B;\n}\n.demo.inception-v3 .architecture-container {\n min-width: 800px;\n max-width: 1200px;\n margin: 0 auto;\n position: relative;\n}\n.demo.inception-v3 .architecture-container .layers-row {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n margin-bottom: 5px;\n position: relative;\n z-index: 1;\n}\n.demo.inception-v3 .architecture-container .layers-row .layer-column {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n padding: 5px;\n}\n.demo.inception-v3 .architecture-container .layers-row .layer-column .layer {\n display: inline-block;\n background: white;\n border: 2px solid white;\n border-radius: 5px;\n padding: 2px 10px 0px;\n margin: 3px;\n}\n.demo.inception-v3 .architecture-container .layers-row .layer-column .layer .layer-class-name {\n color: #1BBC9B;\n font-size: 14px;\n font-weight: bold;\n}\n.demo.inception-v3 .architecture-container .layers-row .layer-column .layer .layer-details {\n color: #999999;\n font-size: 12px;\n font-weight: bold;\n}\n.demo.inception-v3 .architecture-container .layers-row .layer-column .layer.has-result {\n border-color: #1BBC9B;\n}\n.demo.inception-v3 .architecture-container .architecture-connections {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n}\n.demo.inception-v3 .architecture-container .architecture-connections path {\n stroke-width: 4px;\n stroke: #AAAAAA;\n fill: none;\n}\n",""])},function(e,n,t){n=e.exports=t(3)(),n.push([e.i,"@import url(https://fonts.googleapis.com/css?family=Fira+Sans);",""]),n.push([e.i,"@import url(https://fonts.googleapis.com/css?family=Share+Tech+Mono);",""]),n.push([e.i,"@import url(https://fonts.googleapis.com/css?family=Nothing+You+Could+Do);",""]),n.push([e.i,"body {\n background: -webkit-linear-gradient(bottom, #CCCCCC, #F0F0F0);\n background: linear-gradient(0deg, #CCCCCC, #F0F0F0);\n color: #393E46;\n min-height: 100vh;\n font-family: 'Fira Sans',sans-serif;\n}\n\n.title {\n width: 100%;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.title span {\n color: #1BBC9B;\n margin-right: 20px;\n}\n\n.subtitle {\n color: #393E46;\n}\n\n.demo {\n padding: 50px 30px;\n}\n\n.demo .loading-progress {\n position: absolute;\n top: 0;\n right: 0;\n padding: 30px;\n color: #1BBC9B;\n font-size: 18px;\n font-family: 'Share Tech Mono',sans-serif;\n padding: 20px 50px;\n margin: 30px;\n background: rgba(255, 255, 255, 0.5);\n border-radius: 10px;\n}\n\n.demo .info-panel {\n width: 100%;\n max-width: 1200px;\n border-radius: 5px;\n background: white;\n color: #393E46;\n padding: 20px 20px 5px 20px;\n margin: 20px auto;\n box-shadow: 5px 5px #CCCCCC;\n}\n\n.demo .info-panel .info-panel-text {\n width: 100%;\n margin-bottom: 10px;\n font-size: 12px;\n}\n\n.demo .info-panel .info-panel-text a {\n color: #1BBC9B;\n -webkit-transition: color 0.2s ease-in;\n transition: color 0.2s ease-in\n}\n\n.demo .info-panel .info-panel-text a:hover{\n color: rgba(27, 188, 155, 0.6);\n}\n\n.demo .info-panel .info-panel-close {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: flex-end;\n}\n\n.demo .info-panel .info-panel-close .info-panel-close-btn {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n color: #69707a;\n -webkit-transition: color 0.2s ease-in;\n transition: color 0.2s ease-in\n}\n\n.demo .info-panel .info-panel-close .info-panel-close-btn:hover{\n color: rgba(27, 188, 155, 0.3);\n cursor: pointer;\n}\n\n/* MDL overrides */\n\n.demo .mdl-switch__label {\n font-size: 14px !important;\n color: #69707a;\n}\n\n/****************************************************************/\n\n.demo .mdl-switch.is-checked .mdl-switch__thumb {\n background: rgba(27, 188, 155, 0.6);\n}\n\n.demo .mdl-switch.is-checked .mdl-switch__track {\n background: rgba(27, 188, 155, 0.3);\n}\n\n.demo .mdl-textfield .mdl-textfield__input {\n border-bottom-color: rgba(27, 188, 155, 0.6);\n font-family: 'Share Tech Mono',sans-serif;\n font-size: 14px;\n}\n\n.demo .mdl-textfield .mdl-textfield__label {\n font-family: 'Share Tech Mono',sans-serif;\n color: rgba(27, 188, 155, 0.6);\n}\n\n.demo .mdl-textfield .mdl-icon-toggle__label {\n color: rgba(27, 188, 155, 0.6);\n}\n\n.demo .mdl-textfield.is-focused .mdl-textfield__input {\n border-color: #1BBC9B;\n}\n\n.demo .mdl-textfield.is-focused .mdl-textfield__label {\n color: #1BBC9B\n}\n\n.demo .mdl-textfield.is-focused .mdl-textfield__label::after{\n background-color: #1BBC9B;\n}\n\n.demo .mdl-textfield.is-focused .mdl-icon-toggle__label {\n color: #1BBC9B;\n}\n\n.demo .mdl-menu .mdl-menu__item {\n font-family: 'Share Tech Mono',sans-serif;\n font-size: 14px;\n color: #69707a\n}\n\n.demo .mdl-menu .mdl-menu__item:hover{\n background-color: rgba(27, 188, 155, 0.6);\n color: white;\n}\n",""])},function(e,n,t){n=e.exports=t(3)(),n.push([e.i,".menu {\n padding: 40px;\n margin: 20px;\n background: white;\n border-radius: 10px;\n box-shadow: 5px 5px #CCCCCC;\n}\n.menu h1 {\n color: #CCCCCC;\n font-family: 'Fira Sans',sans-serif;\n font-size: 1.5rem;\n}\n.menu .menu-list li {\n color: #69707a;\n border-left: 2px solid white;\n margin-bottom: 3px;\n}\n.menu .menu-list li.active {\n border-left: 2px solid #1BBC9B;\n}\n.menu .menu-list a {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n}\n.menu .menu-list a span.menu-item-heading {\n margin-right: 10px;\n}\n.menu .menu-list a span.menu-item-subheading {\n color: #999999;\n font-size: 0.8em;\n}\n.menu .menu-list a:hover {\n color: #1BBC9B;\n background-color: whitesmoke;\n}\n.menu .menu-list a:hover .github-logo {\n fill: #1BBC9B;\n}\n.menu .menu-list.github li, .menu .menu-list.contact li {\n padding: 5px 10px;\n}\n.menu .menu-list.github a, .menu .menu-list.contact a {\n color: #1BBC9B;\n padding: 0;\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n background-color: none;\n -webkit-transition: color 0.2s ease-in;\n transition: color 0.2s ease-in;\n}\n.menu .menu-list.github a .github-logo, .menu .menu-list.contact a .github-logo {\n fill: #1BBC9B;\n -webkit-transition: fill 0.2s ease-in;\n transition: fill 0.2s ease-in;\n}\n.menu .menu-list.github a:hover, .menu .menu-list.contact a:hover {\n color: rgba(27, 188, 155, 0.6);\n background: none;\n}\n.menu .menu-list.github a:hover .github-logo, .menu .menu-list.contact a:hover .github-logo {\n fill: rgba(27, 188, 155, 0.6);\n}\n",""])},function(e,n,t){n=e.exports=t(3)(),n.push([e.i,".demo.mnist-cnn .column {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.demo.mnist-cnn .column.input-column {\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: flex-end;\n}\n.demo.mnist-cnn .column.input-column .input-container {\n text-align: right;\n margin: 20px;\n position: relative;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.demo.mnist-cnn .column.input-column .input-container .input-label {\n font-family: 'Nothing You Could Do',cursive;\n font-size: 18px;\n color: #69707a;\n text-align: right;\n}\n.demo.mnist-cnn .column.input-column .input-container .input-label span.arrow {\n font-size: 36px;\n color: #CCCCCC;\n position: absolute;\n right: -32px;\n top: 8px;\n}\n.demo.mnist-cnn .column.input-column .input-container .canvas-container {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: flex-end;\n margin: 10px 0;\n border: 15px solid rgba(27, 188, 155, 0.3);\n -webkit-transition: border-color 0.2s ease-in;\n transition: border-color 0.2s ease-in;\n}\n.demo.mnist-cnn .column.input-column .input-container .canvas-container canvas {\n background: white\n}\n.demo.mnist-cnn .column.input-column .input-container .canvas-container canvas:hover {\n cursor: crosshair;\n}\n.demo.mnist-cnn .column.input-column .input-container .canvas-container:hover {\n border-color: rgba(27, 188, 155, 0.6);\n}\n.demo.mnist-cnn .column.input-column .input-container .input-buttons {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: flex-end;\n}\n.demo.mnist-cnn .column.input-column .input-container .input-buttons .input-clear-button {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n color: #69707a;\n -webkit-transition: color 0.2s ease-in;\n transition: color 0.2s ease-in;\n}\n.demo.mnist-cnn .column.input-column .input-container .input-buttons .input-clear-button .material-icons {\n margin-right: 5px;\n}\n.demo.mnist-cnn .column.input-column .input-container .input-buttons .input-clear-button:hover {\n color: rgba(27, 188, 155, 0.3);\n cursor: pointer;\n}\n.demo.mnist-cnn .column.controls-column {\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n -webkit-box-pack: start;\n -ms-flex-pack: start;\n justify-content: flex-start;\n padding-top: 80px;\n}\n.demo.mnist-cnn .column.output-column {\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.demo.mnist-cnn .column.output-column .output {\n height: 160px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -webkit-box-align: end;\n -ms-flex-align: end;\n align-items: flex-end;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: default;\n}\n.demo.mnist-cnn .column.output-column .output .output-class {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n padding: 0 6px;\n border-bottom: 2px solid rgba(27, 188, 155, 0.3);\n}\n.demo.mnist-cnn .column.output-column .output .output-class .output-label {\n font-family: 'Share Tech Mono',sans-serif;\n font-size: 1.5rem;\n color: #69707a;\n}\n.demo.mnist-cnn .column.output-column .output .output-class .output-bar {\n width: 8px;\n background: #EEEEEE;\n -webkit-transition: height 0.2s ease-out;\n transition: height 0.2s ease-out;\n}\n.demo.mnist-cnn .column.output-column .output .output-class.predicted {\n border-bottom-color: #1BBC9B;\n}\n.demo.mnist-cnn .column.output-column .output .output-class.predicted .output-label {\n color: #1BBC9B;\n}\n.demo.mnist-cnn .layer-results-container {\n position: relative;\n}\n.demo.mnist-cnn .layer-results-container .bg-line {\n position: absolute;\n z-index: 0;\n top: 0;\n left: 50%;\n background: white;\n width: 15px;\n height: 100%;\n}\n.demo.mnist-cnn .layer-results-container .layer-result {\n position: relative;\n z-index: 1;\n margin: 30px 20px;\n background: white;\n border-radius: 10px;\n padding: 20px;\n overflow-x: auto;\n}\n.demo.mnist-cnn .layer-results-container .layer-result .layer-result-heading {\n font-size: 1rem;\n color: #999999;\n margin-bottom: 10px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n font-size: 12px;\n}\n.demo.mnist-cnn .layer-results-container .layer-result .layer-result-heading span.layer-class {\n color: #1BBC9B;\n font-size: 14px;\n font-weight: bold;\n}\n.demo.mnist-cnn .layer-results-container .layer-result .layer-result-canvas-container {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n background: white;\n}\n.demo.mnist-cnn .layer-results-container .layer-result .layer-result-canvas-container canvas {\n border: 1px solid lightgray;\n margin: 1px;\n}\n",""])},function(e,n,t){n=e.exports=t(3)(),n.push([e.i,".demo.mnist-vae .column {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.demo.mnist-vae .column.input-column {\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: flex-end;\n}\n.demo.mnist-vae .column.input-column .input-container {\n text-align: right;\n margin: 20px;\n position: relative;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.demo.mnist-vae .column.input-column .input-container .input-label {\n font-family: 'Nothing You Could Do',cursive;\n font-size: 18px;\n color: #69707a;\n text-align: right;\n}\n.demo.mnist-vae .column.input-column .input-container .input-label span.arrow {\n font-size: 36px;\n color: #CCCCCC;\n position: absolute;\n right: -32px;\n top: 8px;\n}\n.demo.mnist-vae .column.input-column .input-container .canvas-container {\n position: relative;\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: flex-end;\n margin: 10px 0;\n border: 15px solid rgba(27, 188, 155, 0.3);\n -webkit-transition: border-color 0.2s ease-in;\n transition: border-color 0.2s ease-in;\n}\n.demo.mnist-vae .column.input-column .input-container .canvas-container canvas {\n background: white\n}\n.demo.mnist-vae .column.input-column .input-container .canvas-container canvas:hover {\n cursor: crosshair;\n}\n.demo.mnist-vae .column.input-column .input-container .canvas-container .axis {\n position: absolute;\n cursor: default;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: justify;\n -ms-flex-pack: justify;\n justify-content: space-between;\n font-family: 'Share Tech Mono',sans-serif;\n font-size: 14px;\n color: #1BBC9B;\n}\n.demo.mnist-vae .column.input-column .input-container .canvas-container .axis.x-axis {\n right: 0;\n bottom: -45px;\n width: 200px;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n}\n.demo.mnist-vae .column.input-column .input-container .canvas-container .axis.y-axis {\n top: 0;\n left: -55px;\n height: 200px;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n}\n.demo.mnist-vae .column.input-column .input-container .canvas-container:hover {\n border-color: rgba(27, 188, 155, 0.6);\n}\n.demo.mnist-vae .column.controls-column {\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n -webkit-box-pack: start;\n -ms-flex-pack: start;\n justify-content: flex-start;\n padding-top: 80px;\n}\n.demo.mnist-vae .column.controls-column .coordinates {\n margin-left: 5px;\n margin-top: 45px;\n font-family: 'Share Tech Mono',sans-serif;\n font-size: 20px;\n color: #69707a;\n}\n.demo.mnist-vae .column.output-column {\n -webkit-box-pack: start;\n -ms-flex-pack: start;\n justify-content: flex-start;\n}\n.demo.mnist-vae .column.output-column .output {\n border-radius: 10px;\n overflow: hidden;\n}\n.demo.mnist-vae .column.output-column .output canvas {\n background: white;\n}\n.demo.mnist-vae .layer-results-container {\n position: relative;\n}\n.demo.mnist-vae .layer-results-container .bg-line {\n position: absolute;\n z-index: 0;\n top: 0;\n left: 50%;\n background: white;\n width: 15px;\n height: 100%;\n}\n.demo.mnist-vae .layer-results-container .layer-result {\n position: relative;\n z-index: 1;\n margin: 30px 20px;\n background: white;\n border-radius: 10px;\n padding: 20px;\n overflow-x: auto;\n}\n.demo.mnist-vae .layer-results-container .layer-result .layer-result-heading {\n font-size: 1rem;\n color: #999999;\n margin-bottom: 10px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n font-size: 12px;\n}\n.demo.mnist-vae .layer-results-container .layer-result .layer-result-heading span.layer-class {\n color: #1BBC9B;\n font-size: 14px;\n font-weight: bold;\n}\n.demo.mnist-vae .layer-results-container .layer-result .layer-result-canvas-container {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -ms-flex-wrap: wrap;\n flex-wrap: wrap;\n background: white;\n}\n.demo.mnist-vae .layer-results-container .layer-result .layer-result-canvas-container canvas {\n border: 1px solid lightgray;\n margin: 1px;\n}\n",""])},function(e,n,t){n=e.exports=t(3)(),n.push([e.i,".demo.resnet50 .top-container {\n margin: 10px;\n position: relative;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n}\n.demo.resnet50 .top-container .input-container .input-label {\n font-family: 'Nothing You Could Do',cursive;\n font-size: 16px;\n color: #69707a;\n text-align: left;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n cursor: default;\n}\n.demo.resnet50 .top-container .input-container .image-url {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: start;\n -ms-flex-pack: start;\n justify-content: flex-start;\n position: relative;\n}\n.demo.resnet50 .top-container .input-container .image-url span {\n margin: 0 10px;\n font-family: 'Nothing You Could Do',cursive;\n font-size: 16px;\n color: #69707a;\n}\n.demo.resnet50 .top-container .controls {\n width: 250px;\n margin-left: 40px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center\n}\n.demo.resnet50 .top-container .controls > .mdl-switch {\n margin-bottom: 5px;\n}\n.demo.resnet50 .top-container .controls > .mdl-switch .mdl-switch__label {\n font-size: 12px !important;\n}\n.demo.resnet50 .columns.input-output {\n max-width: 800px;\n margin: 0 auto;\n}\n.demo.resnet50 .columns.input-output .column {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.demo.resnet50 .columns.input-output .column.input-column {\n position: relative;\n}\n.demo.resnet50 .columns.input-output .column.input-column .loading-indicator {\n position: absolute;\n top: 0;\n left: -10px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -ms-flex-item-align: start;\n align-self: flex-start;\n}\n.demo.resnet50 .columns.input-output .column.input-column .loading-indicator .mdl-spinner {\n margin: 20px;\n -ms-flex-item-align: center;\n -ms-grid-row-align: center;\n align-self: center;\n}\n.demo.resnet50 .columns.input-output .column.input-column .loading-indicator .error {\n color: #D24D57;\n font-size: 14px;\n font-family: 'Fira Sans',sans-serif;\n margin: 20px;\n}\n.demo.resnet50 .columns.input-output .column.input-column .canvas-container {\n display: -webkit-inline-box;\n display: -ms-inline-flexbox;\n display: inline-flex;\n -webkit-box-pack: end;\n -ms-flex-pack: end;\n justify-content: flex-end;\n}\n.demo.resnet50 .columns.input-output .column.input-column .canvas-container canvas {\n background: white;\n}\n.demo.resnet50 .columns.input-output .column.output-column .output {\n width: 370px;\n height: 160px;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: vertical;\n -webkit-box-direction: normal;\n -ms-flex-direction: column;\n flex-direction: column;\n -webkit-box-align: start;\n -ms-flex-align: start;\n align-items: flex-start;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n}\n.demo.resnet50 .columns.input-output .column.output-column .output .output-class {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n padding: 6px 0;\n}\n.demo.resnet50 .columns.input-output .column.output-column .output .output-class .output-label {\n text-align: right;\n width: 200px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n font-family: 'Share Tech Mono',sans-serif;\n font-size: 18px;\n color: #69707a;\n padding: 0 6px;\n border-right: 2px solid rgba(27, 188, 155, 0.3);\n}\n.demo.resnet50 .columns.input-output .column.output-column .output .output-class .output-bar {\n height: 8px;\n -webkit-transition: width 0.2s ease-out;\n transition: width 0.2s ease-out;\n}\n.demo.resnet50 .columns.input-output .column.output-column .output .output-class .output-value {\n text-align: left;\n margin-left: 5px;\n font-family: 'Share Tech Mono',sans-serif;\n font-size: 14px;\n color: #69707a;\n}\n.demo.resnet50 .columns.input-output .column.output-column .output .output-class.predicted .output-label {\n color: #1BBC9B;\n border-left-color: #1BBC9B;\n}\n.demo.resnet50 .columns.input-output .column.output-column .output .output-class.predicted .output-value {\n color: #1BBC9B;\n}\n.demo.resnet50 .architecture-container {\n min-width: 700px;\n max-width: 900px;\n margin: 0 auto;\n position: relative;\n}\n.demo.resnet50 .architecture-container .layers-row {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-orient: horizontal;\n -webkit-box-direction: normal;\n -ms-flex-direction: row;\n flex-direction: row;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n margin-bottom: 5px;\n position: relative;\n z-index: 1;\n}\n.demo.resnet50 .architecture-container .layers-row .layer-column {\n -webkit-box-flex: 1;\n -ms-flex: 1;\n flex: 1;\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n -webkit-box-align: center;\n -ms-flex-align: center;\n align-items: center;\n -webkit-box-pack: center;\n -ms-flex-pack: center;\n justify-content: center;\n padding: 5px;\n}\n.demo.resnet50 .architecture-container .layers-row .layer-column .layer {\n display: inline-block;\n background: white;\n border: 2px solid white;\n border-radius: 5px;\n padding: 2px 10px 0px;\n}\n.demo.resnet50 .architecture-container .layers-row .layer-column .layer .layer-class-name {\n color: #1BBC9B;\n font-size: 14px;\n font-weight: bold;\n}\n.demo.resnet50 .architecture-container .layers-row .layer-column .layer .layer-details {\n color: #999999;\n font-size: 12px;\n font-weight: bold;\n}\n.demo.resnet50 .architecture-container .layers-row .layer-column .layer.has-result {\n border-color: #1BBC9B;\n}\n.demo.resnet50 .architecture-container .architecture-connections {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 0;\n}\n.demo.resnet50 .architecture-container .architecture-connections path {\n stroke-width: 4px;\n stroke: #AAAAAA;\n fill: none;\n}\n",""]); },function(e,n,t){"use strict";function a(e,n,t){var a,o,r=e.length,i=n.arrayArgs.length,s=n.indexArgs.length>0,l=[],c=[],u=0,d=0;for(a=0;a=0;--a)u=e[a],l.push(["for(i",a,"=0;i",a,"0&&l.push(["index[",d,"]-=s",d].join("")),l.push(["++index[",u,"]"].join(""))),l.push("}")}return l.join("\n")}function o(e,n,t,o){for(var r=n.length,i=t.arrayArgs.length,s=t.blockSize,l=t.indexArgs.length>0,c=[],u=0;u0;){"].join("")),c.push(["if(j",u,"<",s,"){"].join("")),c.push(["s",n[u],"=j",u].join("")),c.push(["j",u,"=0"].join("")),c.push(["}else{s",n[u],"=",s].join("")),c.push(["j",u,"-=",s,"}"].join("")),l&&c.push(["index[",n[u],"]=j",u].join(""));for(var u=0;u0&&(t=t&&n[a]===n[a-1])}return t?n[0]:n.join("")}function l(e,n){for(var t=n[1].length-Math.abs(e.arrayBlockIndices[0])|0,l=new Array(e.arrayArgs.length),u=new Array(e.arrayArgs.length),d=0;d0&&y.push("shape=SS.slice(0)"),e.indexArgs.length>0){for(var w=new Array(t),d=0;d3&&_.push(i(e.pre,e,u));var L=i(e.body,e,u),S=r(b);S3&&_.push(i(e.post,e,u)),e.debug&&console.log("-----Generated cwise routine for ",n,":\n"+_.join("\n")+"\n----------");var z=[e.funcName||"unnamed","_cwise_loop_",l[0].join("s"),"m",S,s(u)].join(""),E=new Function(["function ",z,"(",x.join(","),"){",_.join("\n"),"} return ",z].join(""));return E()}var c=t(59);e.exports=l},function(e,n,t){"use strict";function a(e){var n=["'use strict'","var CACHED={}"],t=[],a=e.funcName+"_cwise_thunk";n.push(["return function ",a,"(",e.shimArgs.join(","),"){"].join(""));for(var r=[],i=[],s=[["array",e.arrayArgs[0],".shape.slice(",Math.max(0,e.arrayBlockIndices[0]),e.arrayBlockIndices[0]<0?","+e.arrayBlockIndices[0]+")":")"].join("")],l=[],c=[],u=0;u0&&(l.push("array"+e.arrayArgs[0]+".shape.length===array"+d+".shape.length+"+(Math.abs(e.arrayBlockIndices[0])-Math.abs(e.arrayBlockIndices[u]))),c.push("array"+e.arrayArgs[0]+".shape[shapeIndex+"+Math.max(0,e.arrayBlockIndices[0])+"]===array"+d+".shape[shapeIndex+"+Math.max(0,e.arrayBlockIndices[u])+"]"))}e.arrayArgs.length>1&&(n.push("if (!("+l.join(" && ")+")) throw new Error('cwise: Arrays do not all have the same dimensionality!')"),n.push("for(var shapeIndex=array"+e.arrayArgs[0]+".shape.length-"+Math.abs(e.arrayBlockIndices[0])+"; shapeIndex-->0;) {"),n.push("if (!("+c.join(" && ")+")) throw new Error('cwise: Arrays do not all have the same shape!')"),n.push("}"));for(var u=0;u=0){var c=v[l],u=f(a);u&N&&(c.lvalue=!0),u&C&&(c.rvalue=!0),++c.count,s(a,c.name)}else r(i)||s(a,n(i))}else if("Literal"===a.type)"string"==typeof a.value&&s(a,d(a.value));else{if("WithStatement"===a.type)throw new Error("cwise-parser: with() statements not allowed");for(var m=Object.keys(a),p=0,h=m.length;p0)return a(0|e,n);break;case"object":if("number"==typeof e.length)return t(e,n,0)}return[]}e.exports=o},function(e,n,t){var a,o,r;!function(t,i){"use strict";o=[n],a=i,r="function"==typeof a?a.apply(n,o):a,!(void 0!==r&&(e.exports=r))}(this,function(e){"use strict";function n(e,n){if(!e)throw new Error("ASSERT: "+n)}function t(e){return e>=48&&e<=57}function a(e){return"0123456789abcdefABCDEF".indexOf(e)>=0}function o(e){return"01234567".indexOf(e)>=0}function r(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&[5760,6158,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279].indexOf(e)>=0}function i(e){return 10===e||13===e||8232===e||8233===e}function s(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||92===e||e>=128&&rn.NonAsciiIdentifierStart.test(String.fromCharCode(e))}function l(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||92===e||e>=128&&rn.NonAsciiIdentifierPart.test(String.fromCharCode(e))}function c(e){switch(e){case"class":case"enum":case"export":case"extends":case"import":case"super":return!0;default:return!1}}function u(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"yield":case"let":return!0;default:return!1}}function d(e){return"eval"===e||"arguments"===e}function m(e){if(cn&&u(e))return!0;switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e||"let"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}}function f(e,t,a,o,r){var i;n("number"==typeof a,"Comment must have valid position"),bn.lastCommentStart>=a||(bn.lastCommentStart=a,i={type:e,value:t},gn.range&&(i.range=[a,o]),gn.loc&&(i.loc=r),gn.comments.push(i),gn.attachComment&&(gn.leadingComments.push(i),gn.trailingComments.push(i)))}function p(e){var n,t,a,o;for(n=un-e,t={start:{line:dn,column:un-mn-e}};un=fn&&V({},on.UnexpectedToken,"ILLEGAL");else if(42===t){if(47===ln.charCodeAt(un+1))return++un,++un,void(gn.comments&&(a=ln.slice(e+2,un-2),n.end={line:dn,column:un-mn},f("Block",a,e,un,n)));++un}else++un;V({},on.UnexpectedToken,"ILLEGAL")}function b(){var e,n;for(n=0===un;un>>="===a?(un+=4,{type:Qe.Punctuator,value:a,lineNumber:dn,lineStart:mn,start:o,end:un}):(t=a.substr(0,3),">>>"===t||"<<="===t||">>="===t?(un+=3,{type:Qe.Punctuator,value:t,lineNumber:dn,lineStart:mn,start:o,end:un}):(n=t.substr(0,2),i===n[1]&&"+-<>&|".indexOf(i)>=0||"=>"===n?(un+=2,{type:Qe.Punctuator,value:n,lineNumber:dn,lineStart:mn,start:o,end:un}):"<>=!+-*%&|^/".indexOf(i)>=0?(++un,{type:Qe.Punctuator,value:i,lineNumber:dn,lineStart:mn,start:o,end:un}):void V({},on.UnexpectedToken,"ILLEGAL")))}function w(e){for(var n="";un=0&&un0&&(a=gn.tokens[gn.tokens.length-1],a.range[0]===e&&"Punctuator"===a.type&&("/"!==a.value&&"/="!==a.value||gn.tokens.pop())),gn.tokens.push({type:"RegularExpression",value:t.literal,range:[e,un],loc:n})),t}function j(e){return e.type===Qe.Identifier||e.type===Qe.Keyword||e.type===Qe.BooleanLiteral||e.type===Qe.NullLiteral}function B(){var e,n;if(e=gn.tokens[gn.tokens.length-1],!e)return A();if("Punctuator"===e.type){if("]"===e.value)return y();if(")"===e.value)return n=gn.tokens[gn.openParenToken-1],!n||"Keyword"!==n.type||"if"!==n.value&&"while"!==n.value&&"for"!==n.value&&"with"!==n.value?y():A();if("}"===e.value){if(gn.tokens[gn.openCurlyToken-3]&&"Keyword"===gn.tokens[gn.openCurlyToken-3].type){if(n=gn.tokens[gn.openCurlyToken-4],!n)return y()}else{if(!gn.tokens[gn.openCurlyToken-4]||"Keyword"!==gn.tokens[gn.openCurlyToken-4].type)return y();if(n=gn.tokens[gn.openCurlyToken-5],!n)return A()}return nn.indexOf(n.value)>=0?y():A()}return A()}return"Keyword"===e.type&&"this"!==e.value?A():y()}function I(){var e;return b(),un>=fn?{type:Qe.EOF,lineNumber:dn,lineStart:mn,start:un,end:un}:(e=ln.charCodeAt(un),s(e)?_():40===e||41===e||59===e?y():39===e||34===e?L():46===e?t(ln.charCodeAt(un+1))?C():y():t(e)?C():gn.tokenize&&47===e?B():y())}function D(){var e,n,t;return b(),e={start:{line:dn,column:un-mn}},n=I(),e.end={line:dn,column:un-mn},n.type!==Qe.EOF&&(t=ln.slice(n.start,n.end),gn.tokens.push({type:en[n.type],value:t,range:[n.start,n.end],loc:e})),n}function U(){var e;return e=hn,un=e.end,dn=e.lineNumber,mn=e.lineStart,hn="undefined"!=typeof gn.tokens?D():I(),un=e.end,dn=e.lineNumber,mn=e.lineStart,e}function T(){var e,n,t;e=un,n=dn,t=mn,hn="undefined"!=typeof gn.tokens?D():I(),un=e,dn=n,mn=t}function M(e,n){this.line=e,this.column=n}function P(e,n,t,a){this.start=new M(e,n),this.end=new M(t,a)}function O(){var e,n,t,a;return e=un,n=dn,t=mn,b(),a=dn!==n,un=e,dn=n,mn=t,a}function V(e,t){var a,o=Array.prototype.slice.call(arguments,2),r=t.replace(/%(\d)/g,function(e,t){return n(t>="===e||">>>="===e||"&="===e||"^="===e||"|="===e)}function K(){var e,n=un,t=dn,a=mn,o=hn;return 59===ln.charCodeAt(un)||X(";")?void U():(e=dn,b(),dn!==e?(un=n,dn=t,mn=a,void(hn=o)):void(hn.type===Qe.EOF||X("}")||q(hn)))}function Y(e){return e.type===tn.Identifier||e.type===tn.MemberExpression}function J(){var e,n=[];for(e=hn,G("[");!X("]");)X(",")?(U(),n.push(null)):(n.push(be()),X("]")||G(","));return U(),pn.markEnd(pn.createArrayExpression(n),e)}function Z(e,n){var t,a,o;return t=cn,o=hn,a=qe(),n&&cn&&d(e[0].name)&&F(n,on.StrictParamName),cn=t,pn.markEnd(pn.createFunctionExpression(null,e,[],a),o)}function Q(){var e,n;return n=hn,e=U(),e.type===Qe.StringLiteral||e.type===Qe.NumericLiteral?(cn&&e.octal&&F(e,on.StrictOctalLiteral),pn.markEnd(pn.createLiteral(e),n)):pn.markEnd(pn.createIdentifier(e.value),n)}function ee(){var e,n,t,a,o,r;return e=hn,r=hn,e.type===Qe.Identifier?(t=Q(),"get"!==e.value||X(":")?"set"!==e.value||X(":")?(G(":"),a=be(),pn.markEnd(pn.createProperty("init",t,a),r)):(n=Q(),G("("),e=hn,e.type!==Qe.Identifier?(G(")"),F(e,on.UnexpectedToken,e.value),a=Z([])):(o=[_e()],G(")"),a=Z(o,e)),pn.markEnd(pn.createProperty("set",n,a),r)):(n=Q(),G("("),G(")"),a=Z([]),pn.markEnd(pn.createProperty("get",n,a),r))):e.type!==Qe.EOF&&e.type!==Qe.Punctuator?(n=Q(),G(":"),a=be(),pn.markEnd(pn.createProperty("init",n,a),r)):void q(e)}function ne(){var e,n,t,a,o,r=[],i={},s=String;for(o=hn,G("{");!X("}");)e=ee(),n=e.key.type===tn.Identifier?e.key.name:s(e.key.value),a="init"===e.kind?an.Data:"get"===e.kind?an.Get:an.Set,t="$"+n,Object.prototype.hasOwnProperty.call(i,t)?(i[t]===an.Data?cn&&a===an.Data?F({},on.StrictDuplicateProperty):a!==an.Data&&F({},on.AccessorDataProperty):a===an.Data?F({},on.AccessorDataProperty):i[t]&a&&F({},on.AccessorGetSet),i[t]|=a):i[t]=a,r.push(e),X("}")||G(",");return G("}"),pn.markEnd(pn.createObjectExpression(r),o)}function te(){var e;return G("("),e=ge(),G(")"),e}function ae(){var e,n,t,a;if(X("("))return te();if(X("["))return J();if(X("{"))return ne();if(e=hn.type,a=hn,e===Qe.Identifier)t=pn.createIdentifier(U().value);else if(e===Qe.StringLiteral||e===Qe.NumericLiteral)cn&&hn.octal&&F(hn,on.StrictOctalLiteral),t=pn.createLiteral(U());else if(e===Qe.Keyword){if(H("function"))return Xe();H("this")?(U(),t=pn.createThisExpression()):q(U())}else e===Qe.BooleanLiteral?(n=U(),n.value="true"===n.value,t=pn.createLiteral(n)):e===Qe.NullLiteral?(n=U(),n.value=null,t=pn.createLiteral(n)):X("/")||X("/=")?(t="undefined"!=typeof gn.tokens?pn.createLiteral(A()):pn.createLiteral(R()),T()):q(U());return pn.markEnd(t,a)}function oe(){var e=[];if(G("("),!X(")"))for(;un":case"<=":case">=":case"instanceof":t=7;break;case"in":t=n?7:0;break;case"<<":case">>":case">>>":t=8;break;case"+":case"-":t=9;break;case"*":case"/":case"%":t=11}return t}function pe(){var e,n,t,a,o,r,i,s,l,c;if(e=hn,l=me(),a=hn,o=fe(a,bn.allowIn),0===o)return l;for(a.prec=o,U(),n=[e,hn],i=me(),r=[l,a,i];(o=fe(hn,bn.allowIn))>0;){for(;r.length>2&&o<=r[r.length-2].prec;)i=r.pop(),s=r.pop().value,l=r.pop(),t=pn.createBinaryExpression(s,l,i),n.pop(),e=n[n.length-1],pn.markEnd(t,e),r.push(t);a=U(),a.prec=o,r.push(a),n.push(hn),t=me(),r.push(t)}for(c=r.length-1,t=r[c],n.pop();c>1;)t=pn.createBinaryExpression(r[c-1].value,r[c-2],t),c-=2,e=n.pop(),pn.markEnd(t,e);return t}function he(){var e,n,t,a,o;return o=hn,e=pe(),X("?")&&(U(),n=bn.allowIn,bn.allowIn=!0,t=be(),bn.allowIn=n,G(":"),a=be(),e=pn.createConditionalExpression(e,t,a),pn.markEnd(e,o)),e}function be(){var e,n,t,a,o;return e=hn,o=hn,a=n=he(),$()&&(Y(n)||F({},on.InvalidLHSInAssignment),cn&&n.type===tn.Identifier&&d(n.name)&&F(e,on.StrictLHSAssignment),e=U(),t=be(),a=pn.markEnd(pn.createAssignmentExpression(e.value,n,t),o)),a}function ge(){var e,n=hn;if(e=be(),X(",")){for(e=pn.createSequenceExpression([e]);un0?1:0,mn=0,fn=ln.length,hn=null,bn={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1,lastCommentStart:-1},gn={},n=n||{},n.tokens=!0,gn.tokens=[],gn.tokenize=!0,gn.openParenToken=-1,gn.openCurlyToken=-1,gn.range="boolean"==typeof n.range&&n.range,gn.loc="boolean"==typeof n.loc&&n.loc,"boolean"==typeof n.comment&&n.comment&&(gn.comments=[]),"boolean"==typeof n.tolerant&&n.tolerant&&(gn.errors=[]);try{if(T(),hn.type===Qe.EOF)return gn.tokens;for(a=U();hn.type!==Qe.EOF;)try{a=U()}catch(e){if(a=hn,gn.errors){gn.errors.push(e);break}throw e}Ye(),o=gn.tokens,"undefined"!=typeof gn.comments&&(o.comments=gn.comments),"undefined"!=typeof gn.errors&&(o.errors=gn.errors)}catch(e){throw e}finally{gn={}}return o}function Ze(e,n){var t,a;a=String,"string"==typeof e||e instanceof String||(e=a(e)),pn=sn,ln=e,un=0,dn=ln.length>0?1:0,mn=0,fn=ln.length,hn=null,bn={allowIn:!0,labelSet:{},inFunctionBody:!1,inIteration:!1,inSwitch:!1,lastCommentStart:-1},gn={},"undefined"!=typeof n&&(gn.range="boolean"==typeof n.range&&n.range,gn.loc="boolean"==typeof n.loc&&n.loc,gn.attachComment="boolean"==typeof n.attachComment&&n.attachComment,gn.loc&&null!==n.source&&void 0!==n.source&&(gn.source=a(n.source)),"boolean"==typeof n.tokens&&n.tokens&&(gn.tokens=[]),"boolean"==typeof n.comment&&n.comment&&(gn.comments=[]),"boolean"==typeof n.tolerant&&n.tolerant&&(gn.errors=[]),gn.attachComment&&(gn.range=!0,gn.comments=[],gn.bottomRightStack=[],gn.trailingComments=[],gn.leadingComments=[]));try{t=Ke(),"undefined"!=typeof gn.comments&&(t.comments=gn.comments),"undefined"!=typeof gn.tokens&&(Ye(),t.tokens=gn.tokens),"undefined"!=typeof gn.errors&&(t.errors=gn.errors)}catch(e){throw e}finally{gn={}}return t}var Qe,en,nn,tn,an,on,rn,sn,ln,cn,un,dn,mn,fn,pn,hn,bn,gn;Qe={BooleanLiteral:1,EOF:2,Identifier:3,Keyword:4,NullLiteral:5,NumericLiteral:6,Punctuator:7,StringLiteral:8,RegularExpression:9},en={},en[Qe.BooleanLiteral]="Boolean",en[Qe.EOF]="",en[Qe.Identifier]="Identifier",en[Qe.Keyword]="Keyword",en[Qe.NullLiteral]="Null",en[Qe.NumericLiteral]="Numeric",en[Qe.Punctuator]="Punctuator",en[Qe.StringLiteral]="String",en[Qe.RegularExpression]="RegularExpression",nn=["(","{","[","in","typeof","instanceof","new","return","case","delete","throw","void","=","+=","-=","*=","/=","%=","<<=",">>=",">>>=","&=","|=","^=",",","+","-","*","/","%","++","--","<<",">>",">>>","&","|","^","!","~","&&","||","?",":","===","==",">=","<=","<",">","!=","!=="],tn={AssignmentExpression:"AssignmentExpression",ArrayExpression:"ArrayExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DoWhileStatement:"DoWhileStatement",DebuggerStatement:"DebuggerStatement",EmptyStatement:"EmptyStatement",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",Identifier:"Identifier",IfStatement:"IfStatement",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",Program:"Program",Property:"Property",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement"},an={Data:1,Get:2,Set:4},on={UnexpectedToken:"Unexpected token %0",UnexpectedNumber:"Unexpected number",UnexpectedString:"Unexpected string",UnexpectedIdentifier:"Unexpected identifier",UnexpectedReserved:"Unexpected reserved word",UnexpectedEOS:"Unexpected end of input",NewlineAfterThrow:"Illegal newline after throw",InvalidRegExp:"Invalid regular expression",UnterminatedRegExp:"Invalid regular expression: missing /",InvalidLHSInAssignment:"Invalid left-hand side in assignment",InvalidLHSInForIn:"Invalid left-hand side in for-in",MultipleDefaultsInSwitch:"More than one default clause in switch statement",NoCatchOrFinally:"Missing catch or finally after try",UnknownLabel:"Undefined label '%0'",Redeclaration:"%0 '%1' has already been declared",IllegalContinue:"Illegal continue statement",IllegalBreak:"Illegal break statement",IllegalReturn:"Illegal return statement",StrictModeWith:"Strict mode code may not include a with statement",StrictCatchVariable:"Catch variable may not be eval or arguments in strict mode",StrictVarName:"Variable name may not be eval or arguments in strict mode",StrictParamName:"Parameter name eval or arguments is not allowed in strict mode",StrictParamDupe:"Strict mode function may not have duplicate parameter names",StrictFunctionName:"Function name may not be eval or arguments in strict mode",StrictOctalLiteral:"Octal literals are not allowed in strict mode.",StrictDelete:"Delete of an unqualified identifier in strict mode.",StrictDuplicateProperty:"Duplicate data property in object literal not allowed in strict mode",AccessorDataProperty:"Object literal may not have data and accessor property with the same name",AccessorGetSet:"Object literal may not have multiple get/set accessors with the same name",StrictLHSAssignment:"Assignment to eval or arguments is not allowed in strict mode",StrictLHSPostfix:"Postfix increment/decrement may not have eval or arguments operand in strict mode",StrictLHSPrefix:"Prefix increment/decrement may not have eval or arguments operand in strict mode",StrictReservedWord:"Use of future reserved word in strict mode"},rn={NonAsciiIdentifierStart:new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԧԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࢠࢢ-ࢬऄ-हऽॐक़-ॡॱ-ॷॹ-ॿঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-ళవ-హఽౘౙౠౡಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൠൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢨᢪᢰ-ᣵᤀ-ᤜᥐ-ᥭᥰ-ᥴᦀ-ᦫᧁ-ᧇᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚗꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꪀ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]"),NonAsciiIdentifierPart:new RegExp("[ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮ̀-ʹͶͷͺ-ͽΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁ҃-҇Ҋ-ԧԱ-Ֆՙա-և֑-ׇֽֿׁׂׅׄא-תװ-ײؐ-ؚؠ-٩ٮ-ۓە-ۜ۟-۪ۨ-ۼۿܐ-݊ݍ-ޱ߀-ߵߺࠀ-࠭ࡀ-࡛ࢠࢢ-ࢬࣤ-ࣾऀ-ॣ०-९ॱ-ॷॹ-ॿঁ-ঃঅ-ঌএঐও-নপ-রলশ-হ়-ৄেৈো-ৎৗড়ঢ়য়-ৣ০-ৱਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-ੵઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૯ଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ଼-ୄେୈୋ-୍ୖୗଡ଼ଢ଼ୟ-ୣ୦-୯ୱஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-்ௐௗ௦-௯ఁ-ఃఅ-ఌఎ-ఐఒ-నప-ళవ-హఽ-ౄె-ైొ-్ౕౖౘౙౠ-ౣ౦-౯ಂಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-್ೕೖೞೠ-ೣ೦-೯ೱೲംഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൎൗൠ-ൣ൦-൯ൺ-ൿංඃඅ-ඖක-නඳ-රලව-ෆ්ා-ුූෘ-ෟෲෳก-ฺเ-๎๐-๙ກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆ່-ໍ໐-໙ໜ-ໟༀ༘༙༠-༩༹༵༷༾-ཇཉ-ཬཱ-྄྆-ྗྙ-ྼ࿆က-၉ၐ-ႝႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፟ᎀ-ᎏᎠ-Ᏼᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛰᜀ-ᜌᜎ-᜔ᜠ-᜴ᝀ-ᝓᝠ-ᝬᝮ-ᝰᝲᝳក-៓ៗៜ៝០-៩᠋-᠍᠐-᠙ᠠ-ᡷᢀ-ᢪᢰ-ᣵᤀ-ᤜᤠ-ᤫᤰ-᤻᥆-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉ᧐-᧙ᨀ-ᨛᨠ-ᩞ᩠-᩿᩼-᪉᪐-᪙ᪧᬀ-ᭋ᭐-᭙᭫-᭳ᮀ-᯳ᰀ-᰷᱀-᱉ᱍ-ᱽ᳐-᳔᳒-ᳶᴀ-ᷦ᷼-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼ‌‍‿⁀⁔ⁱⁿₐ-ₜ⃐-⃥⃜⃡-⃰ℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯ⵿-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⷠ-ⷿⸯ々-〇〡-〯〱-〵〸-〼ぁ-ゖ゙゚ゝ-ゟァ-ヺー-ヿㄅ-ㄭㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿌ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘫꙀ-꙯ꙴ-꙽ꙿ-ꚗꚟ-꛱ꜗ-ꜟꜢ-ꞈꞋ-ꞎꞐ-ꞓꞠ-Ɦꟸ-ꠧꡀ-ꡳꢀ-꣄꣐-꣙꣠-ꣷꣻ꤀-꤭ꤰ-꥓ꥠ-ꥼꦀ-꧀ꧏ-꧙ꨀ-ꨶꩀ-ꩍ꩐-꩙ꩠ-ꩶꩺꩻꪀ-ꫂꫛ-ꫝꫠ-ꫯꫲ-꫶ꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯪ꯬꯭꯰-꯹가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻ︀-️︠-︦︳︴﹍-﹏ﹰ-ﹴﹶ-ﻼ0-9A-Z_a-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ]")},sn={name:"SyntaxTree",processComment:function(e){var n,t;if(!(e.type===tn.Program&&e.body.length>0)){for(gn.trailingComments.length>0?gn.trailingComments[0].range[0]>=e.range[1]?(t=gn.trailingComments,gn.trailingComments=[]):gn.trailingComments.length=0:gn.bottomRightStack.length>0&&gn.bottomRightStack[gn.bottomRightStack.length-1].trailingComments&&gn.bottomRightStack[gn.bottomRightStack.length-1].trailingComments[0].range[0]>=e.range[1]&&(t=gn.bottomRightStack[gn.bottomRightStack.length-1].trailingComments,delete gn.bottomRightStack[gn.bottomRightStack.length-1].trailingComments);gn.bottomRightStack.length>0&&gn.bottomRightStack[gn.bottomRightStack.length-1].range[0]>=e.range[0];)n=gn.bottomRightStack.pop();n?n.leadingComments&&n.leadingComments[n.leadingComments.length-1].range[1]<=e.range[0]&&(e.leadingComments=n.leadingComments,delete n.leadingComments):gn.leadingComments.length>0&&gn.leadingComments[gn.leadingComments.length-1].range[1]<=e.range[0]&&(e.leadingComments=gn.leadingComments,gn.leadingComments=[]),t&&(e.trailingComments=t),gn.bottomRightStack.push(e)}},markEnd:function(e,n){return gn.range&&(e.range=[n.start,un]),gn.loc&&(e.loc=new P(void 0===n.startLineNumber?n.lineNumber:n.startLineNumber,n.start-(void 0===n.startLineStart?n.lineStart:n.startLineStart),dn,un-mn),this.postProcess(e)),gn.attachComment&&this.processComment(e),e},postProcess:function(e){return gn.source&&(e.loc.source=gn.source),e},createArrayExpression:function(e){return{type:tn.ArrayExpression,elements:e}},createAssignmentExpression:function(e,n,t){return{type:tn.AssignmentExpression,operator:e,left:n,right:t}},createBinaryExpression:function(e,n,t){var a="||"===e||"&&"===e?tn.LogicalExpression:tn.BinaryExpression;return{type:a,operator:e,left:n,right:t}},createBlockStatement:function(e){return{type:tn.BlockStatement,body:e}},createBreakStatement:function(e){return{type:tn.BreakStatement,label:e}},createCallExpression:function(e,n){return{type:tn.CallExpression,callee:e,arguments:n}},createCatchClause:function(e,n){return{type:tn.CatchClause,param:e,body:n}},createConditionalExpression:function(e,n,t){return{type:tn.ConditionalExpression,test:e,consequent:n,alternate:t}},createContinueStatement:function(e){return{type:tn.ContinueStatement,label:e}},createDebuggerStatement:function(){return{type:tn.DebuggerStatement}},createDoWhileStatement:function(e,n){return{type:tn.DoWhileStatement,body:e,test:n}},createEmptyStatement:function(){return{type:tn.EmptyStatement}},createExpressionStatement:function(e){return{type:tn.ExpressionStatement,expression:e}},createForStatement:function(e,n,t,a){return{type:tn.ForStatement,init:e,test:n,update:t,body:a}},createForInStatement:function(e,n,t){return{type:tn.ForInStatement,left:e,right:n,body:t,each:!1}},createFunctionDeclaration:function(e,n,t,a){return{type:tn.FunctionDeclaration,id:e,params:n,defaults:t,body:a,rest:null,generator:!1,expression:!1}},createFunctionExpression:function(e,n,t,a){return{type:tn.FunctionExpression,id:e,params:n,defaults:t,body:a,rest:null,generator:!1,expression:!1}},createIdentifier:function(e){return{type:tn.Identifier,name:e}},createIfStatement:function(e,n,t){return{type:tn.IfStatement,test:e,consequent:n,alternate:t}},createLabeledStatement:function(e,n){return{type:tn.LabeledStatement,label:e,body:n}},createLiteral:function(e){return{type:tn.Literal,value:e.value,raw:ln.slice(e.start,e.end)}},createMemberExpression:function(e,n,t){return{type:tn.MemberExpression,computed:"["===e,object:n,property:t}},createNewExpression:function(e,n){return{type:tn.NewExpression,callee:e,arguments:n}},createObjectExpression:function(e){return{type:tn.ObjectExpression,properties:e}},createPostfixExpression:function(e,n){return{type:tn.UpdateExpression,operator:e,argument:n,prefix:!1}},createProgram:function(e){return{type:tn.Program,body:e}},createProperty:function(e,n,t){return{type:tn.Property,key:n,value:t,kind:e}},createReturnStatement:function(e){return{type:tn.ReturnStatement,argument:e}},createSequenceExpression:function(e){return{type:tn.SequenceExpression,expressions:e}},createSwitchCase:function(e,n){return{type:tn.SwitchCase,test:e,consequent:n}},createSwitchStatement:function(e,n){return{type:tn.SwitchStatement,discriminant:e,cases:n}},createThisExpression:function(){return{type:tn.ThisExpression}},createThrowStatement:function(e){return{type:tn.ThrowStatement,argument:e}},createTryStatement:function(e,n,t,a){return{type:tn.TryStatement,block:e,guardedHandlers:n,handlers:t,finalizer:a}},createUnaryExpression:function(e,n){return"++"===e||"--"===e?{type:tn.UpdateExpression,operator:e,argument:n,prefix:!0}:{type:tn.UnaryExpression,operator:e,argument:n,prefix:!0}},createVariableDeclaration:function(e,n){return{type:tn.VariableDeclaration,declarations:e,kind:n}},createVariableDeclarator:function(e,n){return{type:tn.VariableDeclarator,id:e,init:n}},createWhileStatement:function(e,n){return{type:tn.WhileStatement,test:e,body:n}},createWithStatement:function(e,n){return{type:tn.WithStatement,object:e,body:n}}},e.version="1.2.5",e.tokenize=Je,e.parse=Ze,e.Syntax=function(){var e,n={};"function"==typeof Object.create&&(n=Object.create(null));for(e in tn)tn.hasOwnProperty(e)&&(n[e]=tn[e]);return"function"==typeof Object.freeze&&Object.freeze(n),n}()})},function(e,n){"use strict";function t(e){for(var n=new Array(e),t=0;t * @license MIT */ -e.exports=function(e){return null!=e&&(t(e)||a(e)||!!e._isBuffer)}},function(e,n,t){var a=t(5),o=t(1),r=a(o,"DataView");e.exports=r},function(e,n,t){function a(e){var n=-1,t=e?e.length:0;for(this.clear();++no?0:o+n),t=t>o?o:t,t<0&&(t+=o),o=n>t?0:t-n>>>0,n>>>=0;for(var r=Array(o);++an||i&&s&&c&&!l&&!u||a&&s&&c||!t&&c||!r)return 1;if(!a&&!i&&!u&&e=l)return c;var u=t[a];return c*("desc"==u?-1:1)}}return e.index-n.index}var o=t(149);e.exports=a},function(e,n,t){var a=t(1),o=a["__core-js_shared__"];e.exports=o},function(e,n,t){function a(e,n){return function(t,a){if(null==t)return t;if(!o(t))return e(t,a);for(var r=t.length,i=n?r:-1,s=Object(t);(n?i--:++i-1?s[l?n[c]:c]:void 0}}var o=t(14),r=t(8),i=t(19);e.exports=a},function(e,n,t){function a(e){return function(n,t,a){return a&&"number"!=typeof a&&r(n,t,a)&&(t=a=void 0),n=i(n),void 0===t?(t=n,n=0):t=i(t),a=void 0===a?n-1}var o=t(13);e.exports=a},function(e,n,t){function a(e,n){var t=this.__data__,a=o(t,e);return a<0?(++this.size,t.push([e,n])):t[a][1]=n,this}var o=t(13);e.exports=a},function(e,n,t){function a(){this.size=0,this.__data__={hash:new o,map:new(i||r),string:new o}}var o=t(110),r=t(12),i=t(21);e.exports=a},function(e,n,t){function a(e){var n=o(this,e).delete(e);return this.size-=n?1:0,n}var o=t(15);e.exports=a},function(e,n,t){function a(e){return o(this,e).get(e)}var o=t(15);e.exports=a},function(e,n,t){function a(e){return o(this,e).has(e)}var o=t(15);e.exports=a},function(e,n,t){function a(e,n){var t=o(this,e),a=t.size;return t.set(e,n),this.size+=t.size==a?0:1,this}var o=t(15);e.exports=a},function(e,n){function t(e){var n=-1,t=Array(e.size);return e.forEach(function(e,a){t[++n]=[a,e]}),t}e.exports=t},function(e,n,t){function a(e){var n=o(e,function(e){return t.size===r&&t.clear(),e}),t=n.cache;return n}var o=t(205),r=500;e.exports=a},function(e,n,t){var a=t(186),o=a(Object.keys,Object);e.exports=o},function(e,n,t){(function(e){var a=t(49),o="object"==typeof n&&n&&!n.nodeType&&n,r=o&&"object"==typeof e&&e&&!e.nodeType&&e,i=r&&r.exports===o,s=i&&a.process,l=function(){try{return s&&s.binding("util")}catch(e){}}();e.exports=l}).call(n,t(61)(e))},function(e,n){function t(e,n){return function(t){return e(n(t))}}e.exports=t},function(e,n,t){function a(e,n,t){return n=r(void 0===n?e.length-1:n,0),function(){for(var a=arguments,i=-1,s=r(a.length-n,0),l=Array(s);++i0){if(++n>=a)return arguments[0]}else n=0;return e.apply(void 0,arguments)}}var a=500,o=16,r=Date.now;e.exports=t},function(e,n,t){function a(){this.__data__=new o,this.size=0}var o=t(12);e.exports=a},function(e,n){function t(e){var n=this.__data__,t=n.delete(e);return this.size=n.size,t}e.exports=t},function(e,n){function t(e){return this.__data__.get(e)}e.exports=t},function(e,n){function t(e){return this.__data__.has(e)}e.exports=t},function(e,n,t){function a(e,n){var t=this.__data__;if(t instanceof o){var a=t.__data__;if(!r||a.lengthn){var a=e;e=n,n=a}if(t||e%1||n%1){var u=c();return l(e+u*(n-e+s("1e-"+((u+"").length-1))),n)}return o(e,n)}var o=t(139),r=t(25),i=t(30),s=parseFloat,l=Math.min,c=Math.random;e.exports=a},function(e,n,t){var a=t(155),o=a();e.exports=o},function(e,n){function t(e){return e?o.call(e):e}var a=Array.prototype,o=a.reverse;e.exports=t},function(e,n,t){var a=t(43),o=t(136),r=t(141),i=t(25),s=r(function(e,n){if(null==e)return[];var t=n.length;return t>1&&i(e,n[0],n[1])?n=[]:t>2&&i(n[0],n[1],n[2])&&(n=[n[0]]),o(e,a(n,1),[])});e.exports=s},function(e,n){function t(){return!1}e.exports=t},function(e,n,t){function a(e){return e&&e.length?o(e,r):0}var o=t(145),r=t(7);e.exports=a},function(e,n,t){function a(e,n,t){return e&&e.length?(n=t||void 0===n?1:r(n),o(e,0,n<0?0:n)):[]}var o=t(143),r=t(57);e.exports=a},function(e,n,t){function a(e){return null==e?"":o(e)}var o=t(147);e.exports=a},function(e,n,t){"use strict";function a(e,n){var t,a=[],r=[];if(void 0!==n&&!Array.isArray(n))throw new Error("axes must be an Array list of dimensions to squeeze");for(t=0;t1)for(var t=1;t 0 }"\n v-for="i in [0, 1, 2, 3, 4]"\n >\n
{{ outputClasses[i].name }}
\n
\n
{{ Math.round(100 * outputClasses[i].probability) }}%
\n \n \n \n \n
\n
\n
\n \n
{{ layer.className }}
\n
{{ layer.details }}
\n
\n
\n
\n \n \n \n \n \n \n\n'},function(e,n){e.exports='\n'; +e.exports=function(e){return null!=e&&(t(e)||a(e)||!!e._isBuffer)}},function(e,n,t){var a=t(5),o=t(1),r=a(o,"DataView");e.exports=r},function(e,n,t){function a(e){var n=-1,t=e?e.length:0;for(this.clear();++no?0:o+n),t=t>o?o:t,t<0&&(t+=o),o=n>t?0:t-n>>>0,n>>>=0;for(var r=Array(o);++an||i&&s&&c&&!l&&!u||a&&s&&c||!t&&c||!r)return 1;if(!a&&!i&&!u&&e=l)return c;var u=t[a];return c*("desc"==u?-1:1)}}return e.index-n.index}var o=t(149);e.exports=a},function(e,n,t){var a=t(1),o=a["__core-js_shared__"];e.exports=o},function(e,n,t){function a(e,n){return function(t,a){if(null==t)return t;if(!o(t))return e(t,a);for(var r=t.length,i=n?r:-1,s=Object(t);(n?i--:++i-1?s[l?n[c]:c]:void 0}}var o=t(14),r=t(8),i=t(19);e.exports=a},function(e,n,t){function a(e){return function(n,t,a){return a&&"number"!=typeof a&&r(n,t,a)&&(t=a=void 0),n=i(n),void 0===t?(t=n,n=0):t=i(t),a=void 0===a?n-1}var o=t(13);e.exports=a},function(e,n,t){function a(e,n){var t=this.__data__,a=o(t,e);return a<0?(++this.size,t.push([e,n])):t[a][1]=n,this}var o=t(13);e.exports=a},function(e,n,t){function a(){this.size=0,this.__data__={hash:new o,map:new(i||r),string:new o}}var o=t(110),r=t(12),i=t(21);e.exports=a},function(e,n,t){function a(e){var n=o(this,e).delete(e);return this.size-=n?1:0,n}var o=t(15);e.exports=a},function(e,n,t){function a(e){return o(this,e).get(e)}var o=t(15);e.exports=a},function(e,n,t){function a(e){return o(this,e).has(e)}var o=t(15);e.exports=a},function(e,n,t){function a(e,n){var t=o(this,e),a=t.size;return t.set(e,n),this.size+=t.size==a?0:1,this}var o=t(15);e.exports=a},function(e,n){function t(e){var n=-1,t=Array(e.size);return e.forEach(function(e,a){t[++n]=[a,e]}),t}e.exports=t},function(e,n,t){function a(e){var n=o(e,function(e){return t.size===r&&t.clear(),e}),t=n.cache;return n}var o=t(205),r=500;e.exports=a},function(e,n,t){var a=t(186),o=a(Object.keys,Object);e.exports=o},function(e,n,t){(function(e){var a=t(49),o="object"==typeof n&&n&&!n.nodeType&&n,r=o&&"object"==typeof e&&e&&!e.nodeType&&e,i=r&&r.exports===o,s=i&&a.process,l=function(){try{return s&&s.binding("util")}catch(e){}}();e.exports=l}).call(n,t(61)(e))},function(e,n){function t(e,n){return function(t){return e(n(t))}}e.exports=t},function(e,n,t){function a(e,n,t){return n=r(void 0===n?e.length-1:n,0),function(){for(var a=arguments,i=-1,s=r(a.length-n,0),l=Array(s);++i0){if(++n>=a)return arguments[0]}else n=0;return e.apply(void 0,arguments)}}var a=500,o=16,r=Date.now;e.exports=t},function(e,n,t){function a(){this.__data__=new o,this.size=0}var o=t(12);e.exports=a},function(e,n){function t(e){var n=this.__data__,t=n.delete(e);return this.size=n.size,t}e.exports=t},function(e,n){function t(e){return this.__data__.get(e)}e.exports=t},function(e,n){function t(e){return this.__data__.has(e)}e.exports=t},function(e,n,t){function a(e,n){var t=this.__data__;if(t instanceof o){var a=t.__data__;if(!r||a.lengthn){var a=e;e=n,n=a}if(t||e%1||n%1){var u=c();return l(e+u*(n-e+s("1e-"+((u+"").length-1))),n)}return o(e,n)}var o=t(139),r=t(25),i=t(30),s=parseFloat,l=Math.min,c=Math.random;e.exports=a},function(e,n,t){var a=t(155),o=a();e.exports=o},function(e,n){function t(e){return e?o.call(e):e}var a=Array.prototype,o=a.reverse;e.exports=t},function(e,n,t){var a=t(43),o=t(136),r=t(141),i=t(25),s=r(function(e,n){if(null==e)return[];var t=n.length;return t>1&&i(e,n[0],n[1])?n=[]:t>2&&i(n[0],n[1],n[2])&&(n=[n[0]]),o(e,a(n,1),[])});e.exports=s},function(e,n){function t(){return!1}e.exports=t},function(e,n,t){function a(e){return e&&e.length?o(e,r):0}var o=t(145),r=t(7);e.exports=a},function(e,n,t){function a(e,n,t){return e&&e.length?(n=t||void 0===n?1:r(n),o(e,0,n<0?0:n)):[]}var o=t(143),r=t(57);e.exports=a},function(e,n,t){function a(e){return null==e?"":o(e)}var o=t(147);e.exports=a},function(e,n,t){"use strict";function a(e,n){var t,a=[],r=[];if(void 0!==n&&!Array.isArray(n))throw new Error("axes must be an Array list of dimensions to squeeze");for(t=0;t1)for(var t=1;t 0 }"\n v-for="i in [0, 1, 2, 3, 4]"\n >\n
{{ outputClasses[i].name }}
\n
\n
{{ Math.round(100 * outputClasses[i].probability) }}%
\n \n \n \n \n
\n
\n
\n \n
{{ layer.className }}
\n
{{ layer.details }}
\n
\n
\n
\n \n \n \n \n \n \n\n'},function(e,n){e.exports='\n'; },function(e,n){e.exports='
\n
\n Basic Convnet for MNIST\n \n
\n
\n Loading...{{ loadingProgress }}%\n
\n
\n
\n Interactive demo of a simple convnet trained on MNIST (see Jupyter notebook). All computation performed entirely in your browser. Toggling GPU on/off shouldn\'t reveal any significant speed differences, as this is a fairly small network. In the architecture diagram below, intermediate outputs at each layer are also visualized.\n
\n
\n
closeCLOSE
\n
\n
\n
\n
\n
\n
Draw any digit (0-9) here
\n
\n \n \n \n
\n
\n
clearCLEAR
\n
\n
\n
\n
\n use GPU\n
\n
\n
\n
\n
{{ i }}
\n
\n
\n
\n
\n
\n
\n
\n \n
\n {{ layerResult.layerClass }}\n {{ layerDisplayConfig[layerResult.name].heading }}\n
\n
\n \n \n
\n
\n
\n\n'},function(e,n){e.exports='
\n
\n Convolutional Variational Autoencoder, trained on MNIST\n \n
\n
\n Loading...{{ loadingProgress }}%\n
\n
\n
\n Modified from the MNIST convolution/deconvolution variational autoencoder example here. The network demonstrated here is the generative decoder portion (see Jupyter notebook). The network generates an image through a series of Deconvolution2D layers from coordinates in the 2D latent space. All computation performed entirely in your browser. Toggling GPU on/off shouldn\'t reveal any significant speed differences, as this is a fairly small network. In the architecture diagram below, intermediate outputs at each layer are also visualized.\n
\n
\n
closeCLOSE
\n
\n
\n
\n
\n
\n
Click around the latent space
\n
\n \n
\n -1.5\n x\n 1.5\n
\n
\n -1.5\n y\n 1.5\n
\n
\n
\n
\n
\n use GPU\n
\n
x: {{ inputCoordinates[0] < 0 ? inputCoordinates[0].toFixed(2) : inputCoordinates[0].toFixed(3) }}
\n
y: {{ inputCoordinates[1] < 0 ? inputCoordinates[1].toFixed(2) : inputCoordinates[1].toFixed(3) }}
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n
\n {{ layerResult.layerClass }}\n {{ layerDisplayConfig[layerResult.name].heading }}\n
\n
\n \n \n
\n
\n
\n\n'},function(e,n){e.exports='
\n
\n 50-layer Residual Network, trained on ImageNet\n \n
\n
\n Loading...{{ loadingProgress }}%\n
\n
\n
\n Note that ~100 MB of weights must be loaded. We use the Keras architecture from here and pretrained weights from here. Enter any valid image URL as input to the network. You can also select from a list of prepopulated image URLs. The endpoint must have CORS enabled, to enable us to extract the numeric data from the canvas element, so not all URLs will work. Imgur and Flickr creative commons all work, and are good places to start. After running the network, the top-5 classes are displayed. Keep in mind also we are limited to the 1,000 classes of ImageNet. Keep in mind that this is image classification and not object detection, so the network is forced to output a single class through softmax. Best results are on images where the classification target spans a large portion of the image. All computation performed entirely in your browser. Toggling GPU on should offer significant speedups compared to CPU. Running the network may still take several seconds (optimizations to come). With "show computational flow" toggled, computation through the network will be shown in the architecture diagram (scroll down as computation is performed layer by layer). Turning this feature off will also speed up computation.\n
\n
\n
closeCLOSE
\n
\n
\n
\n
\n
Enter a valid image URL or select an image from the dropdown:
\n
\n \n or\n \n
\n
\n
\n Use GPU\n Show computation flow\n
\n
\n
\n
\n
\n \n
Error loading URL
\n
\n
\n \n
\n
\n
\n
\n
\n
{{ outputClasses[i].name }}
\n
\n
{{ Math.round(100 * outputClasses[i].probability) }}%
\n
\n
\n
\n
\n
\n
\n
\n \n
{{ layer.className }}
\n
{{ layer.details }}
\n
\n
\n
\n \n \n \n \n \n
\n\n'},function(e,n,t){var a=t(93);"string"==typeof a&&(a=[[e.i,a,""]]);t(4)(a,{});a.locals&&(e.exports=a.locals)},function(e,n,t){var a=t(94);"string"==typeof a&&(a=[[e.i,a,""]]);t(4)(a,{});a.locals&&(e.exports=a.locals)},function(e,n,t){var a=t(95);"string"==typeof a&&(a=[[e.i,a,""]]);t(4)(a,{});a.locals&&(e.exports=a.locals)},function(e,n,t){var a=t(96);"string"==typeof a&&(a=[[e.i,a,""]]);t(4)(a,{});a.locals&&(e.exports=a.locals)},function(e,n,t){var a=t(97);"string"==typeof a&&(a=[[e.i,a,""]]);t(4)(a,{});a.locals&&(e.exports=a.locals)},function(e,n,t){var a=t(98);"string"==typeof a&&(a=[[e.i,a,""]]);t(4)(a,{});a.locals&&(e.exports=a.locals)},function(e,n,t){var a=t(99);"string"==typeof a&&(a=[[e.i,a,""]]);t(4)(a,{});a.locals&&(e.exports=a.locals)},function(e,n,t){var a=t(100);"string"==typeof a&&(a=[[e.i,a,""]]);t(4)(a,{});a.locals&&(e.exports=a.locals)},function(e,n,t){e.exports=t(62)}]); \ No newline at end of file