tensorflow.js部署到web 笔记
It has been 1301 days since the last update, the content of the article may be outdated.
tensorflow.js部署到web 笔记
BUG:
无法加载源映射
bashCould not read source map for https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@latest: Unexpected 404 response from https://cdn.jsdelivr.net/npm/@tensorflow/tf.min.js.map: Failed to resolve the requested file.
解决:(https://www.nuomiphp.com/eplan/188052.html)
Code换成"<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs/dist/tf.min.js"> </script>"
加载模型报错 lambda,inception_resnet_v2报错,inceptionV3并不报错
CodeUncaught (in promise) Error: Unknown layer: Lambda. This may be due to one of the following reasons: The layer is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. The custom layer is defined in JavaScript, but is not registered properly with tf.serialization.registerClass(). at new t (errors.ts:48) at deserializeKerasObject (generic_utils.ts:202) at deserialize (serialization.ts:27) at i (container.ts:1329) at t.fromConfig (container.ts:1355) at deserializeKerasObject (generic_utils.ts:235) at deserialize (serialization.ts:27) at models.ts:270 at index.ts:79 at Object.next (index.ts:79)
参考:
https://github.com/tensorspace-team/tensorspace/issues/121
bug2在替换掉lambda后出现,基础库
CodeUncaught (in promise) TypeError: undefined is not iterable (cannot read property Symbol(Symbol.iterator)) at Fv (runtime.js:747) at t.fromConfig (container.js:1232) at eO (generic_utils.js:278) at aM (serialization.js:31) at u (container.js:1206) at t.fromConfig (container.js:1234) at eO (generic_utils.js:278) at aM (serialization.js:31) at models.js:295 at c (runtime.js:63)
tf.fromPixels
CodeUncaught (in promise) TypeError: tf.fromPixels is not a function
tf.fromPixels was deprecated in version 1.0.0, use:
tf.browser.fromPixels()
getImageData
Code'getImageData' on 'CanvasRenderingContext2D': Value is not of type 'long'.
我是这么写的:
Codeconst imgData = context.getImageData(0,0,canvas.width,canvas.height);
已解决:换成
const imgData = context.getImageData(0,0,299,299);
tensorflow.js没有tf.argmax,变成了tf.argMax
加载模型时路径的写法
Code
const my_model = await tf.loadLayersModel("model_js/model.json")
//正确
Code
const my_model = await tf.loadLayersModel("http://127.0.0.1:5502/TensorFlow%20Deployment/Course%201%20-%20TensorFlow-JS/Week%204/Examples/model_js/model.json")
//正确,前面一大串是工作区文件夹名称
tensorflow.js的预测结果与tensorflow大相径庭
图片:hym_003(-)_180.jpg
tensorflow.js
Code
[[0.0038602, 0.0000056, 0.136271, 0.0231699, 4e-7, 5e-7, 1e-7, 0.0000079, 4e-7, 0.836684],]
tensorflow-python
Code
array([[6.1449555e-08, 7.2196451e-07, 9.9997318e-01, 2.7251541e-08,
4.4864832e-09, 2.8673458e-07, 1.8537765e-05, 2.0686712e-06,
9.0471025e-10, 5.0913218e-06]], dtype=float32)
https://github.com/tensorflow/tfjs/issues/776
后续更新部署。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Jlex の Blog!