Memory leaks TensorFlow Google Cloud ML培训中的内存泄漏

Memory leaks TensorFlow Google Cloud ML培训中的内存泄漏,memory-leaks,tensorflow,google-cloud-ml,google-cloud-ml-engine,Memory Leaks,Tensorflow,Google Cloud Ml,Google Cloud Ml Engine,我一直在Google Cloud ML上尝试TensorFlow教程脚本。 特别是,我在上使用了cifar10 CNN教程脚本 当我在Google Cloud ML中运行这个训练脚本时,每小时大约有0.5%的内存泄漏 除了将脚本打包为所需的GCP格式(如中所述)并将数据位置设置为包含.bin数据文件的存储桶之外,我没有对脚本进行任何更改 如果我在本地运行,即不在谷歌云中运行,并使用TCMALLOC,通过设置LD_PRELOAD=“/usr/lib/libtcmalloc.so”,内存泄漏得到解决

我一直在Google Cloud ML上尝试TensorFlow教程脚本。 特别是,我在上使用了cifar10 CNN教程脚本

当我在Google Cloud ML中运行这个训练脚本时,每小时大约有0.5%的内存泄漏

除了将脚本打包为所需的GCP格式(如中所述)并将数据位置设置为包含.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)是:

感谢您的帮助,
谢谢。

我们建议使用此版本的代码:

github.com/tensorflow/models/pull/1538

这对性能有好处(通过减少运行时间,您不太容易出现OOM)


当然,这可能不是永久的解决办法,但是,根据我们的测试,TensorFlow 1.2似乎解决了这个问题。TensorFlow 1.2将很快在CloudML引擎上提供。如果您仍然有问题,请告诉我们。

您能否在本地共享从google.protobuf.internal import api_implementation;print(api_implementation.\u default_implementation_type)运行
python-c“的输出?是“cpp”吗?@rhaertel80是的,是“cpp”匹配CloudML引擎中的输出。我们将继续调查。此外,我们建议使用它有巨大的性能优势,可能足以让您通过培训,而我们调查的EthatAnks@Rhartel80在内存使用和性能方面似乎都要好得多。
trainingInput:
  scaleTier: CUSTOM
  masterType: complex_model_m_gpu