微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

未捕获承诺错误:输入0与lstm_LSTM1层不兼容:预期的ndim = 3,找到的ndim = 2

如何解决未捕获承诺错误:输入0与lstm_LSTM1层不兼容:预期的ndim = 3,找到的ndim = 2

这是代码

var options = {
     task: "regression",debug: true,inputs: ["date"],outputs: ["price"],optimizer: "adam",loss: "meanSquaredError",layers: [
          {
               type: 'dense',units: 1,inputShape: [1],activation: 'tanh',useBias: true,},{
               type: 'lstm',inputShape: [1,1],return_sequences: true,{
               type: 'dense',useBias: false,],};
     

var nn = ml5.neuralNetwork(options);
setData();

async function getData(){
     var data = await fetch("https://raw.githubusercontent.com/cryptnotehq/filestorage/main/apple_stock.json");
     data = await data.json();
     var cleaned = await data.map( (entry) => {  
          var date = entry.Date.split("-");
          date = new Date(date[0],date[1],date[2]).getTime();
          var result = {
               "date": date,"price": entry.High,};
          return result;
     }).filter( result => (result.date != "" || result.date != undefined) && (result.price != "" || result.price != undefined) );
     return cleaned;
}

async function setData() {
     var obj = await getData();
     obj.forEach(item => {
          var input = { "date": parseInt(item.date) };
          var output = { "price": parseInt(item.price) };
          nn.addData(input,output);
     });
     
     nn.normalizeData();
     
     train();
}

function train() {
     var trainingOptions = {
          epochs: 256,batchSize: 1024,};
     
     nn.train(trainingOptions,predict);
     console.log(nn.data);
}

function predict(){
     nn.predict([ parseInt(new Date(2020,10,17).getTime()) ]).then((result) => {
          console.log(result);
     });
     
     //nn.save();
}

也可以看到代码in this Fiddle。可以在任何浏览器的开发者控制台中查看该错误

我希望代码能够运行。我试图更改lstm层和第一个“密集”层的inputShape。当我将第一层的inputShape更改为[10048,1]并将lstm层更改为[1,1,1]时,出现以下错误Uncaught (in promise) Error: Error when checking : expected dense_Dense1_input to have 3 dimension(s),but got array with shape [1,1]

这是第二种方法in this Fiddle

我不知道还能做什么,我的想法已经用完了。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。