human/assets/tf-backend-wasm.min.js

19 lines
100 KiB
JavaScript
Raw Normal View History

2020-10-15 14:16:34 +02:00
/**
* @license
* Copyright 2020 Google LLC. All Rights Reserved.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* =============================================================================
*/
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@tensorflow/tfjs-core"),require("path"),require("fs"),require("worker_threads"),require("perf_hooks")):"function"==typeof define&&define.amd?define(["exports","@tensorflow/tfjs-core","path","fs","worker_threads","perf_hooks"],n):n(((e=e||self).tf=e.tf||{},e.tf.wasm=e.tf.wasm||{}),e.tf,e.path,e.fs,e.worker_threads,e.perf_hooks)}(this,(function(e,n,t,r,a,u){"use strict";var s,i;let o;t=t&&t.hasOwnProperty("default")?t.default:t,r=r&&r.hasOwnProperty("default")?r.default:r,a=a&&a.hasOwnProperty("default")?a.default:a,u=u&&u.hasOwnProperty("default")?u.default:u,function(e){e[e.float32=0]="float32",e[e.int32=1]="int32",e[e.bool=2]="bool",e[e.string=3]="string",e[e.complex64=4]="complex64"}(s||(s={})),function(e){e[e.linear=0]="linear",e[e.relu=1]="relu",e[e.relu6=2]="relu6",e[e.prelu=3]="prelu"}(i||(i={}));const l={kernelName:n._FusedMatMul,backendName:"wasm",setupFunc:function(e){o=e.wasm.cwrap(n._FusedMatMul,null,["number","array","number","number","array","number","number","number","number","number","number","number"])},kernelFunc:function(e){const{inputs:n,backend:t,attrs:r}=e,{a:a,b:u,bias:s,preluActivationWeights:l}=n;if("float32"!==a.dtype||"float32"!==u.dtype)throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");const{transposeA:d,transposeB:c,activation:p}=r,f=t.dataIdMap.get(a.dataId).id,m=t.dataIdMap.get(u.dataId).id;let h=0;if(null!=s){const e=t.dataIdMap.get(s.dataId);if(1!==e.shape.length)throw new Error("_FusedMatMul only supports rank-1 bias but got "+`rank ${e.shape.length}.`);h=e.id}const _=null==l?0:t.dataIdMap.get(l.dataId).id,b=i[p];if(null==b)throw new Error(`${p} activation not yet supported for FusedConv2D `+"in the wasm backend.");const y=d?a.shape[2]:a.shape[1],g=c?u.shape[1]:u.shape[2],w=a.shape[0],k=t.makeOutput([w,y,g],a.dtype),v=t.dataIdMap.get(k.dataId).id,I=new Uint8Array(new Int32Array(a.shape).buffer),E=new Uint8Array(new Int32Array(u.shape).buffer);return o(f,I,a.shape.length,m,E,u.shape.length,d,c,b,h,_,v),k}};function d(e){let t;return{kernelName:e,backendName:"wasm",setupFunc:function(n){t=n.wasm.cwrap(e,null,["number","number"])},kernelFunc:function(e){const{backend:r,inputs:{x:a}}=e,u=r.dataIdMap.get(a.dataId).id,s=r.makeOutput(a.shape,a.dtype),i=r.dataIdMap.get(s.dataId).id;return 0===n.util.sizeFromShape(s.shape)?s:(t(u,i),s)}}}const c=d(n.Abs);function p(e,t,r){let a;return{kernelName:e,backendName:"wasm",setupFunc:function(n){a=n.wasm.cwrap(e,null,["number","array","number","number","array","number","number","number"])},kernelFunc:function(u){const{backend:i,inputs:o}=u,{a:l,b:d}=o,c=i.dataIdMap.get(l.dataId).id,p=i.dataIdMap.get(d.dataId).id,f=null!=r?r:l.dtype,m=n.backend_util.assertAndGetBroadcastShape(l.shape,d.shape),h=i.makeOutput(m,f);if(0===n.util.sizeFromShape(m))return h;const _=new Uint8Array(new Int32Array(l.shape).buffer),b=new Uint8Array(new Int32Array(d.shape).buffer),y=i.dataIdMap.get(h.dataId).id,g=()=>a(c,_,l.shape.length,p,b,d.shape.length,s[l.dtype],y);if(t&&"float32"===l.dtype)return g(),h;const w=n.backend_util.getBroadcastDims(l.shape,m),k=n.backend_util.getBroadcastDims(d.shape,m),v=w.every((e,n)=>e===n),I=k.every((e,n)=>e===n);if(v&&I)return g(),h;throw new Error("Broadcasting along outer dims is not yet "+`supported for ${l.dtype} ${e}.`)}}}const f=p(n.Add,!0);let m;const h={kernelName:n.AddN,backendName:"wasm",setupFunc:function(e){m=e.wasm.cwrap(n.AddN,null,["array","number","number","number"])},kernelFunc:function(e){const{inputs:t,backend:r}=e,a=r.makeOutput(t[0].shape,t[0].dtype);if(0===n.util.sizeFromShape(a.shape))return a;const u=t.map(e=>r.dataIdMap.get(e.dataId).id),i=new Uint8Array(new Int32Array(u).buffer),o=r.dataIdMap.get(a.dataId).id;return m(i,u.length,s[a.dtype],o),a}};function _(e){const{inputs:{x:n},backend:t}=e,r=t.makeOutput(n.shape,n.dtype),a=t.typedArrayFromHeap(n);return t.typedArrayFromHeap(r).set(a),r}const b={kernelName:n.Identity,backendName:"wasm",kernelFunc:_};let y;function g(e){const{inputs:n,backend:t,attrs:r}=e,
//# sourceMappingURL=tf-backend-wasm.min.js.map