我正在使用tensorflowonspark和一个图像数据集训练一个u-net模型,这些图像数据集可以放在我的spark群集上的内存中,spark群集有3个工作节点(每个节点都是具有11GB内存的ubuntu20)。每个节点有1个执行器和4个CPU,提供9GB内存。
当模型训练过程开始时,我可以看到每个执行器上至少有2gb的可用空间内存,但是训练的批越多,执行器使用的内存就越多,直到整个工作由于内存不足错误而失败。
我在单节点配置(1个带spark的worker)中尝试了我的代码,得到了相同的结果,但是在1个没有spark的cpu上使用分布式tensorflow时,我的代码工作得很好!!
使用的命令:
spark-submit --master spark://master:7077 --conf spark.dynamicAllocation.enabled=false --conf spark.cores.max=12 --conf spark.executor.memory=8g --conf spark.executor.memoryOverhead=8192 --conf spark.memory.storageFraction=0.1 u_net_train.py --cluster_size 3
为什么内存使用率会有如此高的增长?如何解决?
暂无答案!
目前还没有任何答案,快来回答吧!