javascript - Uncaught (in promise) TypeError: e.iterator is not a function. How to fix such error?
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);
}
}});
错误来自 convertedTestingData
和 convertedTrainingData
。 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);
}
}
});
我是 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);
}
}});
错误来自 convertedTestingData
和 convertedTrainingData
。 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);
}
}
});