繁体   English   中英

javascript - Uncaught (in promise) TypeError: e.iterator is not a function。 如何修复此类错误?

[英]javascript - Uncaught (in promise) TypeError: e.iterator is not a function. How to fix such error?

我是 javascript 新手,正在实施二进制分类。 在将训练和测试数据的 csv 文件转换为数组后,我发现了这个错误: Uncaught (in promise) TypeError: e.iterator is not a function

这是模型拟合:

await model.fitDataset(convertedTrainingData, 
   {epochs:100,
    validationData: convertedTestingData,
    callbacks:{
    onEpochEnd: async(epoch, logs) =>{
                             console.log("Epoch: " + epoch + " Loss: " + 
                             logs.loss + " Accuracy: " + logs.acc);
                                  }
                              }});

错误来自convertedTestingDataconvertedTrainingData fitDataset取作为参数tf.data.Dataset tf.data.Dataset一个实例有一个异步迭代器。

如果convertedTestingData (分别是convertedTrainingData )是一个js数组,则需要将其转换为tf.tensor或tf.data.Dataset。

  • 将 js 数组转换为 tf.tensor

将使用fit方法代替fitDataset

model.fit(tf.tensor(features), tf.tensor(labels))
  • 使用 tf.data.Dataset

tf.data.Dataset 是使用生成器创建的。

function createDataGenerator(data) {
    return function* dataGenerator() {
      let index = 0;
      while (index < data.length) {
        const feature = getFeatureTensorAtIndex(i) ; // get the feature tensor at the index
        const label = getLabelTensorAtIndex(i); // get the label tensor at the index
        index++;
        yield {xs: feature, ys: label};
      }
    }
}

const training = tf.data.generator(createDataGenerator(convertedTrainingData));
const testing = tf.data.generator(createDataGenerator(convertedTestingData));

然后可以使用数据集ds训练模型

await model.fitDataset(training,
    {
        epochs: 100,
        validationData: testing,
        callbacks: {
            onEpochEnd: async (epoch, logs) => {
                console.log("Epoch: " + epoch + " Loss: " +
                    logs.loss + " Accuracy: " + logs.acc);
            }
        }
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM