首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TypeError:无法读取Brain.js中未定义的属性“weights”

TypeError:无法读取Brain.js中未定义的属性“weights”
EN

Stack Overflow用户
提问于 2021-04-19 09:08:23
回答 1查看 51关注 0票数 1

我目前正在使用Brain.js库,在执行我的预测时遇到了以下错误。我不知道这个错误是由什么引起的,它与权重有关。我正在学习这个教程:https://youtu.be/6E6XecoTRVo?t=3297,但是如果你正确地执行了最后一行'console.log (net.run (trainingData ))‘,我想告诉你的那个人。请。你能给我解释一下可能是什么吗?

错误

代码语言:javascript
复制
C:\laragon\www\ProjectG\node_modules\brain.js\dist\brain.js:20736
      var result = [lastOutput.weights[0]];
                               ^

TypeError: Cannot read property 'weights' of undefined
    at LSTMTimeStep.forecastNumbers (C:\laragon\www\ProjectG\node_modules\brain.js\dist\brain.js:20736:32)
    at LSTMTimeStep.runObject (C:\laragon\www\ProjectG\node_modules\brain.js\dist\brain.js:20751:63)
    at LSTMTimeStep.run (C:\laragon\www\ProjectG\node_modules\brain.js\dist\brain.js:20517:23)
    at Object.<anonymous> (C:\laragon\www\ProjectG\resources\views\scritp.js:52:21)
    at Module._compile (internal/modules/cjs/loader.js:1063:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
    at internal/main/run_main_module.js:17:47

代码:

代码语言:javascript
复制
const brain = require("brain.js");


const rawData = [{"fecha":"01/2017","unidades":530},{"fecha":"02/2017","unidades":443},
    {"fecha":"03/2017","unidades":512},{"fecha":"04/2017","unidades":497},{"fecha":"05/2017","unidades":543},
    {"fecha":"06/2017","unidades":565},{"fecha":"07/2017","unidades":725},{"fecha":"08/2017","unidades":821},
    {"fecha":"09/2017","unidades":601},{"fecha":"10/2017","unidades":561},{"fecha":"11/2017","unidades":502},
    {"fecha":"12/2017","unidades":533},{"fecha":"01/2018","unidades":523},{"fecha":"02/2018","unidades":457}]

    function scaleDown(step){ //normalizando
      return {
        unidades: step.unidades / 443
      };
    }

    // console.log(scaleDown(rawData[0]));

    function scaleUp(step){ //desnormalizar
      return{
        unidades: step.unidades * 443
      };
    }

    // console.log(scaleUp(scaleDown(rawData[0])));

    const scaledData = rawData.map(scaleDown);

    const trainingData = [
      scaledData.slice(0, 7),
      scaledData.slice(7, 14),
    ];
    console.log(trainingData);

        /* Red */
        const net = new brain.recurrent.LSTMTimeStep({
      inputSize: 1,
      hiddenLayers: [2, 2],
      output: 1
    });

    // var data = <?php echo json_encode($ventas_por_meses2);?>;
    
    
        /* Entrenamiento */
    net.train(trainingData, { 
      learningRate: 0.005, 
      errorThresh: 0.02, 
      log: (stats) => console.log(stats) 
    });

        /* Predicción */
        

    console.log(net.run(trainingData[0]));
EN

回答 1

Stack Overflow用户

发布于 2021-04-27 16:03:12

在网络完成训练之前,您正在运行这行代码:

代码语言:javascript
复制
console.log(net.run(trainingData[0]));

你必须等到训练结束!

代码语言:javascript
复制
net.train(trainingData, { 
  learningRate: 0.005, 
  errorThresh: 0.02, 
  log: (stats) => finishedTraining(stats) 
});

function finishedTraining(stats){
    console.log(net.run(trainingData[0]));
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67154835

复制
相关文章

相似问题

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