我正在使用镶木地板格式的巨大数据集训练二元分类模型。但是,它有很多,我无法将所有数据填充到内存中。目前,我正在这样做,但我面临内存不足的问题。
files = sorted(glob.glob('data/*.parquet'))
@delayed
def load_chunk(path):
return ParquetFile(path).to_pandas()
df = dd.from_delayed([load_chunk(f) for f in chunk])
df = df.compute()
X = df.drop(['label'], axis=1)
y = df['label']
# Split the data into training and testing sets
有没有内存不足的最佳方法?
您不需要一次加载所有数据。取决于你使用的分类算法是否支持增量训练。在 scikit learn 中,所有实现partial_fit API 的估计器都是候选者,例如 SGDClassifier。如果您使用的是tensorflow,则可以使用 tfio.experimental.IODataset 将 parquet 流式传输到您正在训练的 DNN。