首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >给出:无法读取featureExtractor.regression.train上未定义的视频( ml5.js )属性的“形状”

给出:无法读取featureExtractor.regression.train上未定义的视频( ml5.js )属性的“形状”
EN

Stack Overflow用户
提问于 2020-05-11 22:20:41
回答 1查看 471关注 0票数 0

使用javascript,我尝试使用ml5.jsVersion0.5.0来检测视频中的起始、中间或结尾。是的,我知道我可以用其他方式做这件事,但是我想用ML来做。例如,我在0处添加一个起始图像,在持续时间/2添加一个中间图像,在持续时间添加一个结束图像。添加这些图像似乎是可行的,即添加图像的回调不会返回错误。我一直遇到的问题是,当我试图使用这些添加的图像来训练()时,使用MobileNet模型作为我的基础,我会得到以下堆栈跟踪:

代码语言:javascript
复制
`backend_webgl.ts:918 Uncaught (in promise) TypeError: Cannot read property 'shape' of undefined
    at t.fusedBatchMatMul (backend_webgl.ts:918)
    at tf-core.esm.js:17
    at engine.ts:462
    at t.scopedRun (engine.ts:404)
    at t.runKernel (engine.ts:459)
    at matMul_ (tf-core.esm.js:17)
    at Object.matMul (tf-core.esm.js:17)
    at bt (tf-layers.esm.js:17)
    at tf-layers.esm.js:17
    at engine.ts:393`

在配置ml5时,我没有做任何令人印象深刻的事情:

加载模型并创建回归:

代码语言:javascript
复制
`this["mlsExtractor"] = ml5["featureExtractor"]('MobileNet', this.extractorLoaded.bind(this));`
`extractorLoaded() {
        var video = getVideo();
        console.log("extractor loaded...");
          this["regressor"] = this["mlsExtractor"].regression(video, function () {
            console.log("ml5 regressor loaded...");
            this["mlsloaded"] = true;
        }.bind(this));
    }`

从视频中添加图像。正在归还一些东西。想要提到的是,如果我不把视频传递给addImage,我会得到一个错误的图像大小不正确。不确定这是否相关。

代码语言:javascript
复制
`var video = this.getVideo();

        if (this["mlsloaded"] && this["regressor"]) {
            this["regressor"].addImage(video, 'finish', function (err, res) {
                if(err){
                    console.log("error", err);
                    return;
                }
                console.log("res", res)
            });
        }else{
            console.log("ml5 not loaded yet...")
        }`

在我添加了至少3个或更多图片后,我按下了火车按钮。我注意到,也只有不到2个错误,所以我试着和30岁以下的人一起训练,但仍然没有joy。

代码语言:javascript
复制
`this["regressor"].train(function (loss) {
                console.log("training", loss);
            });`

这就是我看到堆叠痕迹的地方。我对ml、tensorflow.js和ml5js都很陌生。我一直在看类似的例子(https://www.openprocessing.org/sketch/565628)来完成这种类型的任务,但我发现文档缺乏。看上去是ml5js.org上的WIP。

任何帮助都将不胜感激!

忘了提了。上了火车,看到了那堆东西,我就能救出模型了。不知道这会不会对某人有任何帮助,但只是说说而已。似乎奇怪的是,火车会失败,但仍然会创造一个模型。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-15 18:24:56

好吧,我搞清楚了这里发生了什么。我在UI中加载了最新的ml5.js和tensorflow.js。结果显示,最近出现的tensorflow.js与ml5.js中的一些函数调用发生冲突。修复方法是将tensorflow.js降到1.0.0版。希望有一天这对其他人有帮助:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61740410

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档