我使用tensorflow来构建基于CNN的文本分类。有些数据集很大,有些很小。
我使用feed_dict通过从系统内存(不是GPU内存)中采样数据来为网络供电。网络是批量培训的。每个数据集的批处理大小为1024。
我的问题是: 网络由批次训练,每批代码从系统内存中检索数据。因此,无论数据集有多大,代码都应该像处理它一样,对吧?
但是我的大数据集出现了内存问题,对于小数据集,它运行正常。我很确定系统内存足以容纳所有数据。所以OOM问题是关于张量流的,对吧?
是我写错了代码,还是关于张量流的内存管理?
非常感谢!
答案 0 :(得分:2)
我认为您的批量大小对1024来说太大了。创建了很多矩阵开销,特别是如果您使用AgaGrad Adam等,辍学,关注和/或更多。尝试使用较小的值(如100)作为批量大小。应该好好解决和训练。