我一直在尝试 Google Cloud ML 上的 TensorFlow 教程脚本。特别是我在https://github.com/tensorflow/models/tree/master/tutorials/image/cifar10使用了 cifar10 CNN 教程脚本。
当我在 Google Cloud ML 中运行这个训练脚本时,每小时会出现大约 0.5% 的内存泄漏。
除了将脚本打包成所需的 GCP 格式(如https://cloud.google.com/ml-engine/docs/how-tos/packaging-trainer中所述)并设置数据之外,我没有对脚本进行任何更改包含 .bin 数据文件的存储桶的位置。
如果我在本地运行,即不在谷歌云中,并使用 TCMALLOC,通过设置 LD_PRELOAD="/usr/lib/libtcmalloc.so" ,内存泄漏得到解决。但是,我在 Google Cloud ML 中没有这个选项。
什么可能导致泄漏,我能做些什么来解决这个问题?为什么其他用户没有注意到同样的问题?虽然泄漏很小,但当我针对自己的数据运行几天时,它足以导致我的训练课程耗尽内存并失败。无论我使用多少 GPU,都会发生泄漏。
我使用的 gcloud 命令是:
gcloud ml-engine jobs submit training cifar10_job --job-dir gs://tfoutput/joboutput --package-path trainer --module-name=trainer.cifar10_multi_gpu_train --region europe-west1 --staging-bucket gs://tfoutput --scale-tier CUSTOM --config config.yml --runtime-version 1.0 -- --num_gpus=4
配置文件(config.yml)是:
trainingInput:
scaleTier: CUSTOM
masterType: complex_model_m_gpu
任何帮助表示赞赏,谢谢。