首页 > 解决方案 > 深度神经网络内存不足

问题描述

我正在使用 Tensorflow 编写模型,但我的 PC 上的内存不足,然后我在 Google Colab 上尝试了相同的操作,得到了相同的结果。

我的数据集形状最初是这样的:

(541909, 8)

问题是我的数据集有一行被调用'Description',看起来像这样:

0     WHITE HANGING HEART T-LIGHT HOLDER
1                    WHITE METAL LANTERN
2         CREAM CUPID HEARTS COAT HANGER
3    KNITTED UNION FLAG HOT WATER BOTTLE
4         RED WOOLLY HOTTIE WHITE HEART
...

我的数据集有超过 500000 行,'Description'列有超过 3500 个唯一值,所以,为了训练我的模型,我使用pandas.get_dummies()函数:

dataset = pd.get_dummies(dataset, columns=["Description"])

使用它,数据集形状更改为:

(541909, 3936)

我确信如此大量的数据是问题的一部分,但我不确定如何避免它,关于如何解决这个问题的任何建议?

标签: pythontensorflowmemorydatasetdata-science

解决方案


是的,有一个解决方案。您应该加载数据并使用tf.data.Dataset API对其进行转换。

正如很少有评论说你将不得不缩短你的Description专栏,可以说有一个阈值。但是使用Dataset管道,您将确保它不会将完整的数据集加载到内存中,而一次只能加载Batch一个。

Tensorflow 还建议将此 API 用于输入管道。使用它而不是pandas. 但我会建议这样做以获得更好的性能。有很多教程。我建议按照将数据集直接加载到tf.data.Dataset.


推荐阅读