gpt4 book ai didi

javascript - 未捕获( promise )TypeError : e. 迭代器不是函数。如何修复此类错误?

转载 作者:行者123 更新时间:2023-11-30 19:00:57 25 4
gpt4 key购买 nike

我是 javascript 的新手,我正在实现二进制分类。将训练和测试数据的csv文件转成数组后,发现这个错误:未捕获( promise )TypeError:e.iterator 不是函数

这是模型拟合:

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

最佳答案

错误来自 convertedTestingDataconvertedTrainingDatafitDatasettf.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);
}
}
});

关于javascript - 未捕获( promise )TypeError : e. 迭代器不是函数。如何修复此类错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59519521/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com