ABC*_*BCD 4 javascript python-3.x keras tensorflow
我正在Google Chrome中使用Keras MobileNet和TensorFlow.js对图像进行分类。当我运行代码时,我得到的tf.loadModel不是函数错误。我这样加载模型。
model = await tf.loadModel('https://gogul09.github.io/models/mobilenet/model.json');
model.predict();Run Code Online (Sandbox Code Playgroud)
您观察到错误是因为 tf.loadModel API 在最近版本的 tensorflow.js 中发生了变化。我可以通过在项目https://github.com/Gogul09/digit-recognizer-live 中进行以下更改来使预测工作:
在index.html 中,将版本更改为 0.10.0 而不是最新的。
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@0.10.0"></script>
Run Code Online (Sandbox Code Playgroud)
进行此更改后,我又遇到了一个错误:“传递给 'div' 的参数 'b' 必须是张量,但得到了数字。”
为了解决这个问题,在app.js 中,函数 preprocessCanvas() 将 tensor.div(255.0) 更改为
tensor.div(tf.scalar(255.0))
根据您使用的是 MLP 还是 CNN 模型,进行相应的更改。更改 js 文件后,重新加载页面。
对于这个项目https://github.com/Gogul09/mobile-net-projects,在对 tf js 版本进行硬编码后,预测不起作用,因为预测按钮的点击事件没有被触发。此外,对于上传图像。在mobile-net.js 中替换这些行后,预测工作。
改变
$("#predict-button").click(async function () {
Run Code Online (Sandbox Code Playgroud)
到
$(document).on('click', '#predict-button', async function() {
Run Code Online (Sandbox Code Playgroud)
改变
$("#select-file-image").change(function() {
Run Code Online (Sandbox Code Playgroud)
到
$(document).on('change', '#select-file-image', function() {
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1456 次 |
| 最近记录: |