diff --git a/demo/mobilenet/app.js b/demo/mobilenet/app.js index fd63564..0a50d3d 100644 --- a/demo/mobilenet/app.js +++ b/demo/mobilenet/app.js @@ -18,7 +18,7 @@ const fetchWechat = require('fetch-wechat'); import * as tf from '@tensorflow/tfjs-core'; import '@tensorflow/tfjs-backend-wasm'; -import {setWasmPath} from '@tensorflow/tfjs-backend-wasm'; +import {setWasmPaths} from '@tensorflow/tfjs-backend-wasm'; const plugin = requirePlugin('tfjsPlugin'); const ENABLE_DEBUG = true; @@ -39,11 +39,9 @@ App({ const info = wx.getSystemInfoSync(); console.log(info.platform); if (info.platform == 'android') { - setWasmPath( - 'https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-backend-wasm@2.0.0/wasm-out/tfjs-backend-wasm.wasm', - true); + setWasmPaths('https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-backend-wasm@3.12.0/wasm-out/', true); await tf.setBackend('wasm'); console.log('set wasm as backend'); - } + } } }) diff --git a/demo/mobilenet/model/classifier.ts b/demo/mobilenet/model/classifier.ts index 14c6294..2e9da5c 100644 --- a/demo/mobilenet/model/classifier.ts +++ b/demo/mobilenet/model/classifier.ts @@ -17,7 +17,7 @@ import * as tf from '@tensorflow/tfjs-core'; -import {MobileNet} from './mobilenet'; +import { MobileNet } from './mobilenet'; export interface CameraSize { width: number; @@ -26,14 +26,14 @@ export interface CameraSize { export class Classifier { private mobileNet: MobileNet; - constructor(private page: WechatMiniprogram.Page.Instance) {} + constructor(private page: WechatMiniprogram.Page.Instance) { } async load() { this.mobileNet = new MobileNet(); - this.page.setData({result: 'loading model...'}); + this.page.setData({ result: 'loading model...' }); const start = Date.now(); await this.mobileNet.load(); const result = `model loaded: ${Date.now() - start}ms\n`; - this.page.setData({result}); + this.page.setData({ result }); } classify(ab: ArrayBuffer, size: CameraSize) { @@ -41,17 +41,17 @@ export class Classifier { let result = ''; const start = Date.now(); tf.tidy(() => { - const temp = tf.browser.fromPixels({data, ...size}, 4); + const temp = tf.browser.fromPixels({ data, ...size }, 4); const pixels = - temp.slice([0, 0, 0], [-1, -1, 3]).resizeBilinear([224, 224]); + tf.image.resizeBilinear(tf.slice(temp, [0, 0, 0], [-1, -1, 3]), [224, 224]); const tensor = this.mobileNet.predict(pixels) as tf.Tensor; - const topIndex = tensor.argMax().dataSync()[0]; + const topIndex = tf.argMax(tensor).dataSync()[0]; result += `prediction: ${Date.now() - start}ms\n`; result += `${tensor.dataSync()[topIndex]}`; return result; }); - this.page.setData({result}); + this.page.setData({ result }); } dispose() { this.mobileNet.dispose(); diff --git a/demo/mobilenet/model/mobilenet.ts b/demo/mobilenet/model/mobilenet.ts index 625e2cc..657004b 100644 --- a/demo/mobilenet/model/mobilenet.ts +++ b/demo/mobilenet/model/mobilenet.ts @@ -18,7 +18,7 @@ import * as tfc from '@tensorflow/tfjs-converter'; import * as tf from '@tensorflow/tfjs-core'; const GOOGLE_CLOUD_STORAGE_DIR = - 'https://tfhub.dev/google/tfjs-model/imagenet/'; + 'https://tfhub.dev/google/tfjs-model/imagenet/'; const MODEL_FILE_URL = 'mobilenet_v2_050_224/feature_vector/3/default/1'; const PREPROCESS_DIVISOR = 255 / 2; const STORAGE_KEY = 'mobilenet_model'; @@ -29,20 +29,20 @@ export interface TopKValue { } export class MobileNet { private model: tfc.GraphModel; - constructor() {} + constructor() { } async load() { // save model into local storage as base64 string // const storageHandler = getApp().globalData.localStorageIO(STORAGE_KEY); // save model into files (weight binary) const storageHandler = getApp().globalData.fileStorageIO( - STORAGE_KEY, wx.getFileSystemManager()); + STORAGE_KEY, wx.getFileSystemManager()); try { this.model = await tfc.loadGraphModel(storageHandler); } catch (e) { this.model = await tfc.loadGraphModel( - GOOGLE_CLOUD_STORAGE_DIR + MODEL_FILE_URL, {fromTFHub: true}); + GOOGLE_CLOUD_STORAGE_DIR + MODEL_FILE_URL, { fromTFHub: true }); this.model.save(storageHandler); } } @@ -62,10 +62,10 @@ export class MobileNet { */ predict(input: tf.Tensor) { const preprocessedInput = tf.div( - tf.sub(input.asType('float32'), PREPROCESS_DIVISOR), - PREPROCESS_DIVISOR); + tf.sub(tf.cast(input, 'float32'), PREPROCESS_DIVISOR), + PREPROCESS_DIVISOR); const reshapedInput = - preprocessedInput.reshape([1, ...preprocessedInput.shape]); + tf.reshape(preprocessedInput, [1, ...preprocessedInput.shape]); return this.model.predict(reshapedInput); } } diff --git a/demo/mobilenet/package.json b/demo/mobilenet/package.json index 747f128..529f4c5 100644 --- a/demo/mobilenet/package.json +++ b/demo/mobilenet/package.json @@ -11,9 +11,9 @@ "miniprogram-api-typings": "^2.8.1" }, "dependencies": { - "@tensorflow/tfjs-core": "2.8.6", - "@tensorflow/tfjs-converter": "2.8.6", - "@tensorflow/tfjs-backend-wasm": "2.8.6", + "@tensorflow/tfjs-core": "3.12.0", + "@tensorflow/tfjs-converter": "3.12.0", + "@tensorflow/tfjs-backend-wasm": "3.12.0", "fetch-wechat": "0.0.3" } } diff --git a/demo/mobilenet/yarn.lock b/demo/mobilenet/yarn.lock index f6d4360..28f708b 100644 --- a/demo/mobilenet/yarn.lock +++ b/demo/mobilenet/yarn.lock @@ -2,35 +2,37 @@ # yarn lockfile v1 -"@tensorflow/tfjs-backend-cpu@2.8.6": - version "2.8.6" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-2.8.6.tgz#ef60c3294a04c8c600abb4b438263c06d9b7b7bd" - integrity sha512-x9WTTE9p3Pon2D0d6HH1UCIJsU1w3v9sF3vxJcp+YStrjDefWoW5pwxHCckEKTRra7GWg3CwMKK3Si2dat4H1A== +"@tensorflow/tfjs-backend-cpu@3.12.0": + version "3.12.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-3.12.0.tgz#a96279c3116486dfb5deccf8bac78f72d3f77f65" + integrity sha512-UMf/OHHCzm/+oKXtTDnanlyYFNNKKU5u2hJooKak1JqSOEKChBOPYKmxf9VWmY7Pos4GbbKH/V1pLzfLnLq+Bg== dependencies: "@types/seedrandom" "2.4.27" seedrandom "2.4.3" -"@tensorflow/tfjs-backend-wasm@2.8.6": - version "2.8.6" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-wasm/-/tfjs-backend-wasm-2.8.6.tgz#472cc0308e8bb2609fc5d869b553aedba25c2995" - integrity sha512-uJQ8e5akjuesOiQGzfOmnlFt4+hppnBGL6Oa+fCeDQFCtfIG4uNoN1ItSA7u/h5TYsjlE5VDZwJQMkO/JAHnTQ== +"@tensorflow/tfjs-backend-wasm@3.12.0": + version "3.12.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-wasm/-/tfjs-backend-wasm-3.12.0.tgz#280f42a867d90672dacdc2b92df4152c59b6dce8" + integrity sha512-H4OmQkebiCpDdWiH5Ob2G+1+jzGNffG2FlkWV5y66RM/wZijYyCKIg4Nm7KCSUrvZPhkhP622QhM2BPvI9U8hA== dependencies: - "@tensorflow/tfjs-backend-cpu" "2.8.6" + "@tensorflow/tfjs-backend-cpu" "3.12.0" "@types/emscripten" "~0.0.34" -"@tensorflow/tfjs-converter@2.8.6": - version "2.8.6" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-converter/-/tfjs-converter-2.8.6.tgz#6182d302ae883e0c45f47674a78bdd33e23db3a6" - integrity sha512-Uv4YC66qjVC9UwBxz0IeLZ8KS2CReh63WlGRtHcSwDEYiwsa7cvp9H6lFSSPT7kiJmrK6JtHeJGIVcTuNnSt9w== +"@tensorflow/tfjs-converter@3.12.0": + version "3.12.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-converter/-/tfjs-converter-3.12.0.tgz#2e28c7bf6e92d4614cb6df362a81a55f79432fef" + integrity sha512-WO6FreEB83CgFwvcyrzyaWG5WshanfyhTI6rOqSbjY86+MlJprTn4fuY9qbnYk/gDLhxEaUpYgubamY4g4L76g== -"@tensorflow/tfjs-core@2.8.6": - version "2.8.6" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-core/-/tfjs-core-2.8.6.tgz#d5e9d5fc1d1a83e3fbf80942f3154300a9f82494" - integrity sha512-jS28M1POUOjnWgx3jp1v5D45DUQE8USsAHHkL/01z75KnYCAAmgqJSH4YKLiYACg3eBLWXH/KTcSc6dHAX7Kfg== +"@tensorflow/tfjs-core@3.12.0": + version "3.12.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-core/-/tfjs-core-3.12.0.tgz#af1f93ea924be74e4ecf094608ea22709bf56f17" + integrity sha512-0rXf+aMjfkFLan7qna+L7DjfSZaaRibKgq9XuorjSy9rZcdZLE2IHFTzYR7B8mdlnq2szArKzm+JXqa9grTl7w== dependencies: + "@types/long" "^4.0.1" "@types/offscreencanvas" "~2019.3.0" "@types/seedrandom" "2.4.27" "@types/webgl-ext" "0.0.30" + long "4.0.0" node-fetch "~2.6.1" seedrandom "2.4.3" @@ -39,6 +41,11 @@ resolved "https://registry.yarnpkg.com/@types/emscripten/-/emscripten-0.0.34.tgz#12b4a344274fb102ff2f6c877b37587bc3e46008" integrity sha512-QSb9ojDincskc+uKMI0KXp8e1NALFINCrMlp8VGKGcTSxeEyRTTKyjWw75NYrCZHUsVEEEpr1tYHpbtaC++/sQ== +"@types/long@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9" + integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== + "@types/offscreencanvas@~2019.3.0": version "2019.3.0" resolved "https://registry.yarnpkg.com/@types/offscreencanvas/-/offscreencanvas-2019.3.0.tgz#3336428ec7e9180cf4566dfea5da04eb586a6553" @@ -59,6 +66,11 @@ fetch-wechat@0.0.3: resolved "https://registry.yarnpkg.com/fetch-wechat/-/fetch-wechat-0.0.3.tgz#2789c332a24bf9f4114b580c02d2934646e74f12" integrity sha512-uEvCnHSaM53AjYmtiU8n7dB3RO4JX4RBxF3lXNf+cBHr5NRclmTAr5XiRtLL2lSdBcRwvLixhnjwCRJhyEKZgQ== +long@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" + integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== + miniprogram-api-typings@^2.8.1: version "2.8.1" resolved "https://registry.yarnpkg.com/miniprogram-api-typings/-/miniprogram-api-typings-2.8.1.tgz#a56eec32eb03fc1517d27d04f7371745598798cc" diff --git a/demo/posenet/package.json b/demo/posenet/package.json index c686908..84b831f 100644 --- a/demo/posenet/package.json +++ b/demo/posenet/package.json @@ -11,9 +11,9 @@ }, "dependencies": { "@tensorflow-models/posenet": "2.2.2", - "@tensorflow/tfjs-backend-webgl": "3.5.0", - "@tensorflow/tfjs-converter": "3.5.0", - "@tensorflow/tfjs-core": "3.5.0", + "@tensorflow/tfjs-backend-webgl": "3.12.0", + "@tensorflow/tfjs-converter": "3.12.0", + "@tensorflow/tfjs-core": "3.12.0", "fetch-wechat": "0.0.3" } } diff --git a/demo/posenet/pages/index/index.ts b/demo/posenet/pages/index/index.ts index 5157774..a979629 100644 --- a/demo/posenet/pages/index/index.ts +++ b/demo/posenet/pages/index/index.ts @@ -16,46 +16,46 @@ */ import * as posenet from '@tensorflow-models/posenet'; -import {detectPoseInRealTime, drawPoses} from '../../posenet/posenet'; +import { detectPoseInRealTime, drawPoses } from '../../posenet/posenet'; const CANVAS_ID = 'image'; -const POSENET_URL = - 'https://www.gstaticcnapps.cn/tfjs-models/savedmodel/posenet/mobilenet/float/050/model-stride16.json'; +const POSENET_URL = 'https://storage.googleapis.com/tfjs-models/savedmodel/posenet/mobilenet/float/050/model-stride16.json'; +// 'https://www.gstaticcnapps.cn/tfjs-models/savedmodel/posenet/mobilenet/float/050/model-stride16.json'; Page({ - data: {result: ''}, + data: { result: '' }, posenetModel: undefined, canvas: undefined, poses: undefined, ctx: undefined, posenet() { if (this.posenetModel == null) { - this.setData({result: 'loading posenet model...'}); + this.setData({ result: 'loading posenet model...' }); posenet - .load({ - architecture: 'MobileNetV1', - outputStride: 16, - inputResolution: 193, - multiplier: 0.5, - modelUrl: POSENET_URL - }) - .then((model) => { - this.posenetModel = model; - this.setData({result: 'model loaded.'}); - }); + .load({ + architecture: 'MobileNetV1', + outputStride: 16, + inputResolution: 193, + multiplier: 0.5, + modelUrl: POSENET_URL + }) + .then((model) => { + this.posenetModel = model; + this.setData({ result: 'model loaded.' }); + }); } }, executePosenet(frame) { if (this.posenetModel) { const start = Date.now(); detectPoseInRealTime(frame, this.posenetModel, false) - .then((poses) => { - this.poses = poses; - drawPoses(this); - const result = `${Date.now() - start}ms`; - this.setData({result}); - }) - .catch((err) => { - console.log(err, err.stack); - }); + .then((poses) => { + this.poses = poses; + drawPoses(this); + const result = `${Date.now() - start}ms`; + this.setData({ result }); + }) + .catch((err) => { + console.log(err, err.stack); + }); } }, async onReady() { diff --git a/demo/posenet/yarn.lock b/demo/posenet/yarn.lock index 968a323..62b6a32 100644 --- a/demo/posenet/yarn.lock +++ b/demo/posenet/yarn.lock @@ -7,42 +7,49 @@ resolved "https://registry.yarnpkg.com/@tensorflow-models/posenet/-/posenet-2.2.2.tgz#2abcfa33b43892135d232c9c4408a38cc8f74ba6" integrity sha512-0SXIksRet/IdX7WVH+JSD6W3upkGHix1hwtd3xykIoIMGR7zQ4SC5+wZcNt9ofASyxNYQoI+tUULUo4LNw0c3w== -"@tensorflow/tfjs-backend-cpu@3.5.0": - version "3.5.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-3.5.0.tgz#6058fcefa28931f18d774278f53f0f3176e0f229" - integrity sha512-aFSbjVLBKV0OpvE4QGSpIvtxhxpqyz09WhnuMZMhxjxCrjrPYbX7gEjXIHvgF8dEs6SX19XUaChgIftyKd2YIQ== +"@tensorflow/tfjs-backend-cpu@3.12.0": + version "3.12.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-3.12.0.tgz#a96279c3116486dfb5deccf8bac78f72d3f77f65" + integrity sha512-UMf/OHHCzm/+oKXtTDnanlyYFNNKKU5u2hJooKak1JqSOEKChBOPYKmxf9VWmY7Pos4GbbKH/V1pLzfLnLq+Bg== dependencies: "@types/seedrandom" "2.4.27" seedrandom "2.4.3" -"@tensorflow/tfjs-backend-webgl@3.5.0": - version "3.5.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-3.5.0.tgz#55160168fd7e21c26f8f84cb06e699ae5c2a41b5" - integrity sha512-zeuOmfi0wbrZwjUp6M4hsctQvUuQVmO18A8V68xp+u6QC4jp3P5hNdjF7iOiMW/3iNVylYht8MbHYjQLyJAQdw== +"@tensorflow/tfjs-backend-webgl@3.12.0": + version "3.12.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-3.12.0.tgz#51af13d9790fd07748e95efe02ab72092c52ead1" + integrity sha512-nFiPS7AiDZ+H4RXpx8dSYPWzy3B1zC/aRKwH9uz9MUp1WiHHbYr90+E0ut9HFrIz0cMb0sR7vGU+zkjSZ1rLsA== dependencies: - "@tensorflow/tfjs-backend-cpu" "3.5.0" + "@tensorflow/tfjs-backend-cpu" "3.12.0" "@types/offscreencanvas" "~2019.3.0" "@types/seedrandom" "2.4.27" "@types/webgl-ext" "0.0.30" - "@types/webgl2" "0.0.5" + "@types/webgl2" "0.0.6" seedrandom "2.4.3" -"@tensorflow/tfjs-converter@3.5.0": - version "3.5.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-converter/-/tfjs-converter-3.5.0.tgz#6625723e347a452c227469a92541930d5b4aa12f" - integrity sha512-eAx1nEaREzPfcIOnyp1PUvQdjob9MtCJM/syh4v05FBV7UrUNpxNMliA4JgjiFvdnhrM4e06/CeqMA8/AVw2wg== +"@tensorflow/tfjs-converter@3.12.0": + version "3.12.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-converter/-/tfjs-converter-3.12.0.tgz#2e28c7bf6e92d4614cb6df362a81a55f79432fef" + integrity sha512-WO6FreEB83CgFwvcyrzyaWG5WshanfyhTI6rOqSbjY86+MlJprTn4fuY9qbnYk/gDLhxEaUpYgubamY4g4L76g== -"@tensorflow/tfjs-core@3.5.0": - version "3.5.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-core/-/tfjs-core-3.5.0.tgz#e1ff14f2121208242a192e935f52e86b19be279e" - integrity sha512-NOs9hY9nj/iPaz2cSrWpq8G07i96/ot+1l1RoBoA1s1cZakb43pLhntm1Mj4vhSxp7dbc/BSs+t6/S+45OZTUA== +"@tensorflow/tfjs-core@3.12.0": + version "3.12.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-core/-/tfjs-core-3.12.0.tgz#af1f93ea924be74e4ecf094608ea22709bf56f17" + integrity sha512-0rXf+aMjfkFLan7qna+L7DjfSZaaRibKgq9XuorjSy9rZcdZLE2IHFTzYR7B8mdlnq2szArKzm+JXqa9grTl7w== dependencies: + "@types/long" "^4.0.1" "@types/offscreencanvas" "~2019.3.0" "@types/seedrandom" "2.4.27" "@types/webgl-ext" "0.0.30" + long "4.0.0" node-fetch "~2.6.1" seedrandom "2.4.3" +"@types/long@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9" + integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== + "@types/offscreencanvas@~2019.3.0": version "2019.3.0" resolved "https://registry.yarnpkg.com/@types/offscreencanvas/-/offscreencanvas-2019.3.0.tgz#3336428ec7e9180cf4566dfea5da04eb586a6553" @@ -58,16 +65,21 @@ resolved "https://registry.yarnpkg.com/@types/webgl-ext/-/webgl-ext-0.0.30.tgz#0ce498c16a41a23d15289e0b844d945b25f0fb9d" integrity sha512-LKVgNmBxN0BbljJrVUwkxwRYqzsAEPcZOe6S2T6ZaBDIrFp0qu4FNlpc5sM1tGbXUYFgdVQIoeLk1Y1UoblyEg== -"@types/webgl2@0.0.5": - version "0.0.5" - resolved "https://registry.yarnpkg.com/@types/webgl2/-/webgl2-0.0.5.tgz#dd925e20ab8ace80eb4b1e46fda5b109c508fb0d" - integrity sha512-oGaKsBbxQOY5+aJFV3KECDhGaXt+yZJt2y/OZsnQGLRkH6Fvr7rv4pCt3SRH1somIHfej/c4u7NSpCyd9x+1Ow== +"@types/webgl2@0.0.6": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@types/webgl2/-/webgl2-0.0.6.tgz#1ea2db791362bd8521548d664dbd3c5311cdf4b6" + integrity sha512-50GQhDVTq/herLMiqSQkdtRu+d5q/cWHn4VvKJtrj4DJAjo1MNkWYa2MA41BaBO1q1HgsUjuQvEOk0QHvlnAaQ== fetch-wechat@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/fetch-wechat/-/fetch-wechat-0.0.3.tgz#2789c332a24bf9f4114b580c02d2934646e74f12" integrity sha512-uEvCnHSaM53AjYmtiU8n7dB3RO4JX4RBxF3lXNf+cBHr5NRclmTAr5XiRtLL2lSdBcRwvLixhnjwCRJhyEKZgQ== +long@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" + integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== + node-fetch@~2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052" diff --git a/package.json b/package.json index 0ba4f47..348f748 100644 --- a/package.json +++ b/package.json @@ -17,8 +17,8 @@ "text-encoder": "0.0.4" }, "devDependencies": { - "@tensorflow/tfjs-core": "3.5.0", - "@tensorflow/tfjs-backend-webgl": "3.5.0", + "@tensorflow/tfjs-core": "3.12.0", + "@tensorflow/tfjs-backend-webgl": "3.12.0", "@types/jasmine": "~2.8.6", "clang-format": "1.2.4", "jasmine-core": "~3.1.0", diff --git a/project.config.json b/project.config.json index 67ea59b..a2026ed 100644 --- a/project.config.json +++ b/project.config.json @@ -25,13 +25,14 @@ "setting": { "urlCheck": false, "es6": true, - "enhance": false, + "enhance": true, "postcss": true, "minified": true, "newFeature": true, "nodeModules": true, "autoAudits": false, "scopeDataCheck": false, + "uglifyFileName": true, "checkInvalidKey": true, "checkSiteMap": true, "uploadWithSourceMap": true, @@ -43,14 +44,14 @@ "disablePlugins": [], "outputPath": "" }, - "bundle": false, "useIsolateContext": true, "useCompilerModule": false, "userConfirmedUseCompilerModuleSwitch": false, - "userConfirmedBundleSwitch": false, + "userConfirmedBundleSwitch": true, "packNpmManually": false, "packNpmRelationList": [], - "minifyWXSS": true + "minifyWXSS": true, + "minifyWXML": true }, "appid": "wx6afed118d9e81df9", "projectname": "TensorFlowJS", @@ -59,8 +60,8 @@ "beforePreview": "", "beforeUpload": "" }, - "libVersion": "2.16.1", + "libVersion": "2.21.2", "simulatorType": "wechat", "simulatorPluginLibVersion": {}, "condition": {} -} \ No newline at end of file +} diff --git a/src/plugin/package.json b/src/plugin/package.json index 5866292..2ef3d88 100644 --- a/src/plugin/package.json +++ b/src/plugin/package.json @@ -12,8 +12,8 @@ "base64-js": "1.3.1" }, "devDependencies": { - "@tensorflow/tfjs-core": "3.5.0", - "@tensorflow/tfjs-backend-webgl": "3.5.0", + "@tensorflow/tfjs-core": "3.12.0", + "@tensorflow/tfjs-backend-webgl": "3.12.0", "miniprogram-api-typings": "^3.3.2", "typescript": "^3.3.3333" } diff --git a/src/plugin/yarn.lock b/src/plugin/yarn.lock index 9d6d06d..aa98df9 100644 --- a/src/plugin/yarn.lock +++ b/src/plugin/yarn.lock @@ -2,37 +2,44 @@ # yarn lockfile v1 -"@tensorflow/tfjs-backend-cpu@3.5.0": - version "3.5.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-3.5.0.tgz#6058fcefa28931f18d774278f53f0f3176e0f229" - integrity sha512-aFSbjVLBKV0OpvE4QGSpIvtxhxpqyz09WhnuMZMhxjxCrjrPYbX7gEjXIHvgF8dEs6SX19XUaChgIftyKd2YIQ== +"@tensorflow/tfjs-backend-cpu@3.12.0": + version "3.12.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-3.12.0.tgz#a96279c3116486dfb5deccf8bac78f72d3f77f65" + integrity sha512-UMf/OHHCzm/+oKXtTDnanlyYFNNKKU5u2hJooKak1JqSOEKChBOPYKmxf9VWmY7Pos4GbbKH/V1pLzfLnLq+Bg== dependencies: "@types/seedrandom" "2.4.27" seedrandom "2.4.3" -"@tensorflow/tfjs-backend-webgl@3.5.0": - version "3.5.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-3.5.0.tgz#55160168fd7e21c26f8f84cb06e699ae5c2a41b5" - integrity sha512-zeuOmfi0wbrZwjUp6M4hsctQvUuQVmO18A8V68xp+u6QC4jp3P5hNdjF7iOiMW/3iNVylYht8MbHYjQLyJAQdw== +"@tensorflow/tfjs-backend-webgl@3.12.0": + version "3.12.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-3.12.0.tgz#51af13d9790fd07748e95efe02ab72092c52ead1" + integrity sha512-nFiPS7AiDZ+H4RXpx8dSYPWzy3B1zC/aRKwH9uz9MUp1WiHHbYr90+E0ut9HFrIz0cMb0sR7vGU+zkjSZ1rLsA== dependencies: - "@tensorflow/tfjs-backend-cpu" "3.5.0" + "@tensorflow/tfjs-backend-cpu" "3.12.0" "@types/offscreencanvas" "~2019.3.0" "@types/seedrandom" "2.4.27" "@types/webgl-ext" "0.0.30" - "@types/webgl2" "0.0.5" + "@types/webgl2" "0.0.6" seedrandom "2.4.3" -"@tensorflow/tfjs-core@3.5.0": - version "3.5.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-core/-/tfjs-core-3.5.0.tgz#e1ff14f2121208242a192e935f52e86b19be279e" - integrity sha512-NOs9hY9nj/iPaz2cSrWpq8G07i96/ot+1l1RoBoA1s1cZakb43pLhntm1Mj4vhSxp7dbc/BSs+t6/S+45OZTUA== +"@tensorflow/tfjs-core@3.12.0": + version "3.12.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-core/-/tfjs-core-3.12.0.tgz#af1f93ea924be74e4ecf094608ea22709bf56f17" + integrity sha512-0rXf+aMjfkFLan7qna+L7DjfSZaaRibKgq9XuorjSy9rZcdZLE2IHFTzYR7B8mdlnq2szArKzm+JXqa9grTl7w== dependencies: + "@types/long" "^4.0.1" "@types/offscreencanvas" "~2019.3.0" "@types/seedrandom" "2.4.27" "@types/webgl-ext" "0.0.30" + long "4.0.0" node-fetch "~2.6.1" seedrandom "2.4.3" +"@types/long@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9" + integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== + "@types/offscreencanvas@~2019.3.0": version "2019.3.0" resolved "https://registry.yarnpkg.com/@types/offscreencanvas/-/offscreencanvas-2019.3.0.tgz#3336428ec7e9180cf4566dfea5da04eb586a6553" @@ -45,10 +52,10 @@ version "0.0.30" resolved "https://registry.yarnpkg.com/@types/webgl-ext/-/webgl-ext-0.0.30.tgz#0ce498c16a41a23d15289e0b844d945b25f0fb9d" -"@types/webgl2@0.0.5": - version "0.0.5" - resolved "https://registry.yarnpkg.com/@types/webgl2/-/webgl2-0.0.5.tgz#dd925e20ab8ace80eb4b1e46fda5b109c508fb0d" - integrity sha512-oGaKsBbxQOY5+aJFV3KECDhGaXt+yZJt2y/OZsnQGLRkH6Fvr7rv4pCt3SRH1somIHfej/c4u7NSpCyd9x+1Ow== +"@types/webgl2@0.0.6": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@types/webgl2/-/webgl2-0.0.6.tgz#1ea2db791362bd8521548d664dbd3c5311cdf4b6" + integrity sha512-50GQhDVTq/herLMiqSQkdtRu+d5q/cWHn4VvKJtrj4DJAjo1MNkWYa2MA41BaBO1q1HgsUjuQvEOk0QHvlnAaQ== abab@2.0.0: version "2.0.0" @@ -59,6 +66,11 @@ base64-js@1.3.1: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== +long@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" + integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== + miniprogram-api-typings@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/miniprogram-api-typings/-/miniprogram-api-typings-3.3.2.tgz#1e6aa65817e6534850141cd2af23eeff6ba61b4e" diff --git a/yarn.lock b/yarn.lock index f43284e..510a9b3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -748,34 +748,36 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== -"@tensorflow/tfjs-backend-cpu@3.5.0": - version "3.5.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-3.5.0.tgz#6058fcefa28931f18d774278f53f0f3176e0f229" - integrity sha512-aFSbjVLBKV0OpvE4QGSpIvtxhxpqyz09WhnuMZMhxjxCrjrPYbX7gEjXIHvgF8dEs6SX19XUaChgIftyKd2YIQ== +"@tensorflow/tfjs-backend-cpu@3.12.0": + version "3.12.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-cpu/-/tfjs-backend-cpu-3.12.0.tgz#a96279c3116486dfb5deccf8bac78f72d3f77f65" + integrity sha512-UMf/OHHCzm/+oKXtTDnanlyYFNNKKU5u2hJooKak1JqSOEKChBOPYKmxf9VWmY7Pos4GbbKH/V1pLzfLnLq+Bg== dependencies: "@types/seedrandom" "2.4.27" seedrandom "2.4.3" -"@tensorflow/tfjs-backend-webgl@3.5.0": - version "3.5.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-3.5.0.tgz#55160168fd7e21c26f8f84cb06e699ae5c2a41b5" - integrity sha512-zeuOmfi0wbrZwjUp6M4hsctQvUuQVmO18A8V68xp+u6QC4jp3P5hNdjF7iOiMW/3iNVylYht8MbHYjQLyJAQdw== +"@tensorflow/tfjs-backend-webgl@3.12.0": + version "3.12.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-backend-webgl/-/tfjs-backend-webgl-3.12.0.tgz#51af13d9790fd07748e95efe02ab72092c52ead1" + integrity sha512-nFiPS7AiDZ+H4RXpx8dSYPWzy3B1zC/aRKwH9uz9MUp1WiHHbYr90+E0ut9HFrIz0cMb0sR7vGU+zkjSZ1rLsA== dependencies: - "@tensorflow/tfjs-backend-cpu" "3.5.0" + "@tensorflow/tfjs-backend-cpu" "3.12.0" "@types/offscreencanvas" "~2019.3.0" "@types/seedrandom" "2.4.27" "@types/webgl-ext" "0.0.30" - "@types/webgl2" "0.0.5" + "@types/webgl2" "0.0.6" seedrandom "2.4.3" -"@tensorflow/tfjs-core@3.5.0": - version "3.5.0" - resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-core/-/tfjs-core-3.5.0.tgz#e1ff14f2121208242a192e935f52e86b19be279e" - integrity sha512-NOs9hY9nj/iPaz2cSrWpq8G07i96/ot+1l1RoBoA1s1cZakb43pLhntm1Mj4vhSxp7dbc/BSs+t6/S+45OZTUA== +"@tensorflow/tfjs-core@3.12.0": + version "3.12.0" + resolved "https://registry.yarnpkg.com/@tensorflow/tfjs-core/-/tfjs-core-3.12.0.tgz#af1f93ea924be74e4ecf094608ea22709bf56f17" + integrity sha512-0rXf+aMjfkFLan7qna+L7DjfSZaaRibKgq9XuorjSy9rZcdZLE2IHFTzYR7B8mdlnq2szArKzm+JXqa9grTl7w== dependencies: + "@types/long" "^4.0.1" "@types/offscreencanvas" "~2019.3.0" "@types/seedrandom" "2.4.27" "@types/webgl-ext" "0.0.30" + long "4.0.0" node-fetch "~2.6.1" seedrandom "2.4.3" @@ -804,6 +806,11 @@ resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-2.8.16.tgz#a6cb24b1149d65293bd616923500014838e14e7d" integrity sha512-056oRlBBp7MDzr+HoU5su099s/s7wjZ3KcHxLfv+Byqb9MwdLUvsfLgw1VS97hsh3ddxSPyQu+olHMnoVTUY6g== +"@types/long@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.1.tgz#459c65fa1867dafe6a8f322c4c51695663cc55e9" + integrity sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w== + "@types/node@^14.14.10": version "14.14.28" resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.28.tgz#cade4b64f8438f588951a6b35843ce536853f25b" @@ -824,10 +831,10 @@ resolved "https://registry.yarnpkg.com/@types/webgl-ext/-/webgl-ext-0.0.30.tgz#0ce498c16a41a23d15289e0b844d945b25f0fb9d" integrity sha512-LKVgNmBxN0BbljJrVUwkxwRYqzsAEPcZOe6S2T6ZaBDIrFp0qu4FNlpc5sM1tGbXUYFgdVQIoeLk1Y1UoblyEg== -"@types/webgl2@0.0.5": - version "0.0.5" - resolved "https://registry.yarnpkg.com/@types/webgl2/-/webgl2-0.0.5.tgz#dd925e20ab8ace80eb4b1e46fda5b109c508fb0d" - integrity sha512-oGaKsBbxQOY5+aJFV3KECDhGaXt+yZJt2y/OZsnQGLRkH6Fvr7rv4pCt3SRH1somIHfej/c4u7NSpCyd9x+1Ow== +"@types/webgl2@0.0.6": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@types/webgl2/-/webgl2-0.0.6.tgz#1ea2db791362bd8521548d664dbd3c5311cdf4b6" + integrity sha512-50GQhDVTq/herLMiqSQkdtRu+d5q/cWHn4VvKJtrj4DJAjo1MNkWYa2MA41BaBO1q1HgsUjuQvEOk0QHvlnAaQ== abab@2.0.0: version "2.0.0" @@ -2541,6 +2548,11 @@ log4js@^6.2.1, log4js@^6.3.0: rfdc "^1.1.4" streamroller "^2.2.4" +long@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" + integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== + loose-envify@^1.0.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"