python - 深度神经网络内存不足
问题描述
我正在使用 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)
我确信如此大量的数据是问题的一部分,但我不确定如何避免它,关于如何解决这个问题的任何建议?
解决方案
是的,有一个解决方案。您应该加载数据并使用tf.data.Dataset
API对其进行转换。
正如很少有评论说你将不得不缩短你的Description
专栏,可以说有一个阈值。但是使用Dataset
管道,您将确保它不会将完整的数据集加载到内存中,而一次只能加载Batch
一个。
Tensorflow 还建议将此 API 用于输入管道。使用它而不是pandas
. 但我会建议这样做以获得更好的性能。有很多教程。我建议按照将数据集直接加载到tf.data.Dataset
.