javascript - 未捕获( promise )TypeError : t is not a function

标签 javascript tensorflow machine-learning artificial-intelligence

当我将图像添加到分类器进行训练时,它抛出了一些异常。我们使用 ml5.js 的 Mobilenet 模型,其中调用 train() 方法。

    let features =  ml5.featureExtractor('MobileNet');
    const classifier = features.classification();
    console.log("setup classifier DONE", classifier);

    var img2;
    console.log("adding images");
    const gorra = new Image();
    gorra.src = "https://ml5js.org/docs/assets/img/bird.jpg";
    gorra.width = 224;
    gorra.height = 224;
    console.log("adding images DONE", gorra);

    img2 = new Image();
    img2.src = "{!$Resource.cat}"
    img2.width = 224;
    img2.height = 224;
    console.log(img2);

    var img3;
    img3 = new Image();
    img3.src = "{!$Resource.car}"
    img3.width = 224;
    img3.height = 224;
    console.log(img3);
    console.log("setup classifier");

    var img4;
    img4 = new Image();
    img4.src = "{!$Resource.car1}"
    img4.width = 224;
    img4.height = 224;
    console.log(img4);

    console.log("setup classifier");
    console.log("adding example image...");
    const ex =  classifier.addImage(document.getElementById('imgshow'), "Gorra");
    console.log("adding ex image DONE!...", ex);
    const ex1 =  classifier.addImage(img2, "Gorra");
    console.log("adding ex1 image DONE!...", ex1);
    const ex2 =  classifier.addImage(img3, "car");
    console.log("adding ex1 image DONE!...", ex2);
    const ex3 =  classifier.addImage(img4, "car");
    console.log("adding ex1 image DONE!...", ex3);
    console.log('claasifier'+classifier);
    console.log("Training");
    // const trainer ;
    setTimeout(function(){ const trainer = classifier.train(); console.log("Training DONE", trainer);}, 30000);

每当 train() 运行添加图像后,它都会抛出此错误 enter image description here 它引用了 Mobilnet.js 库,我突出显示了导致该错误的行 enter image description here

请告诉我,我们该如何解决这个问题。

最佳答案

您需要为 .train() 函数提供回调。

来自 ml5js 的文档,.train() 函数的回调是可选的。

您可以更换火车对账单

const trainer = classifier.train();

使用以下代码。

const trainer = classifier.train(function(lossValue) {
  console.log('Loss is', lossValue)
});

这应该可以解决问题。

关于javascript - 未捕获( promise )TypeError : t is not a function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54307012/

相关文章:

python - 如何批量写入 TFRecords?

machine-learning - 使用Caffe对 "hand-crafted"图像特征进行分类

python - 机器学习标准化的目的是什么?

javascript - 以编程方式将非事件选项卡滚动到底部

javascript - 可以有条件地解析 Javascript 代码吗?

javascript - 如何将它绑定(bind)到 AngularIO 的 Observable::subscribe 函数?

machine-learning - 从本地运行 ML 训练和测试迁移到 Google Cloud

javascript - 在 Javascript 中查找 (x,y) 坐标处的元素(最高可见元素)

python - 优化 TensorFlow 2 中许多伪数据实现的功能

python - Tensorflow 展示模型总结