我正在使用tf.data.generator来提供大型数据集来训练诸如此类的东西…
function getRemote() {
return tf.tidy(() => {
....
...
return [X,y];
}
}
async function mydata() {
....
....
// getting my large dataset...
..
const iterator = {
....
...
var remote = getRemote();
return {value: { xs: remote[0], ys: remote[1] }, done:..}
}
return iterator;
}
var ds = tf.data.generator(mydata);
var history = await mymodel.fitDataset(ds, {
epochs:5,
...
...
}
});
嗯…问题是,我需要处理那些张量(这是xs,ys),从生成器生成一旦火车完成,我相信,为了避免内存泄漏…
处理tf.data.generator提供的张量的最好方法是什么?
我在想…也许....我可以从fitDataset中使用onBatchEnd作为回调…在那里…不知何故…我可以处理掉他们…然而,事情是,我不知道如何访问这些张量数据在onBatchEnd回调…这可能吗?
在每个批处理中,这些张量数据不断生成并从生成器....馈送所以我相信我一定要以某种方式妥善处理……
如有任何帮助,不胜感激。
谢谢,
您可以利用tf。整理处理不使用的张量。它很方便,因为它可以包围一组操作,并且所有中间张量都被处理掉了。
要处理单个张量,可以调用dispose of张量tensor.dispose()