如何在Google Cloud ML Engine

时间:2017-05-18 08:38:33

标签: tcmalloc google-cloud-ml-engine

如何在Google Cloud ML Engine上使用TCMalloc?或者除了TCMalloc之外,还有其他方法可以解决ML Engine上的内存泄漏问题吗?

最终图表似乎没有帮助。

内存利用率图: enter image description here

训练73个时期后,我出现了内存错误。以下是培训日志的一部分:

  

11:26:33.707   工作失败了。

     

11:26:20.949   完成拆除TensorFlow。

     

11:25:18.568   副本主机0运行内存不足并以非零状态247退出。要了解有关您的作业退出原因的更多信息,请查看日志

     

11:25:07.785   清理完毕。

     

11:25:07.785   模块完成;清理。

     

11:25:07.783   模块引发了一个异常,因为没有调用子进程命令' [' python' - ' -m',u' trainer.main',u' --data = gs://',u' --train_log_dir = gs:// tfoutput / joboutput',u' - model = trainer.crisp_model',u' ; - num_threads = 32',u' - memory_usage = 0.8',u' - max_out_norm = 1',u' - train_batch_size = 64',你' - sample_size = 112',你' - num_gpus = 4',你' - allow_growth = True',你' - weight_loss_by_train_size = True' ;,u' -x',返回非零退出状态-9。

     

11:23:08.853   PNG警告:扩展块时超出大小限制

     

11:18:18.474   时代58.0:准确度= 0.9109

     

11:17:14.851   2017-05-17 10:17:14.851024:纪元58,损失= 0.12,lr = 0.085500(228.9例/秒; 0.280秒/批)

     

11:15:39.532   PNG警告:扩展块时超出大小限制

     

11:10:23.855   PoolAllocator:在372618242获取请求后,put_count = 372618151 evicted_count = 475000 eviction_rate = 0.00127476且不满意的分配率= 0.00127518

     

11:05:32.928   PNG警告:扩展块时超出大小限制

     

10:59:26.006   时代57.0:准确度= 0.8868

     

10:58:24.117   2017-05-17 09:58:24.117444:纪元57,损失= 0.23,lr = 0.085750(282.2例/秒; 0.227秒/批)

     

10:54:37.440   PNG警告:扩展块时超出大小限制

     

10:53:30.323   PoolAllocator:在366350973获取请求后,put_count = 366350992 evicted_count = 465000 eviction_rate = 0.00126927且不满意的分配率= 0.0012694

     

10:51:51.417   PNG警告:扩展块时超出大小限制

     

10:40:43.811   时代56.0:准确度= 0.7897

     

10:39:41.308   2017-05-17 09:39:41.308624:纪元56,损失= 0.06,lr = 0.086000(273.8例/秒; 0.234秒/批)

     

10:38:14.522   PoolAllocator:在360630699获取请求后,put_count = 360630659 evicted_count = 455000 eviction_rate = 0.00126168且不满意的分配率= 0.00126197

     

10:36:10.480   PNG警告:扩展块时超出大小限制

     

10:21:50.715   时代55.0:准确度= 0.9175

     

10:20:51.801   PoolAllocator:在354197216获取请求后,put_count = 354197255 evicted_count = 445000 eviction_rate = 0.00125636且不满意的分配率= 0.00125644

     

10:20:49.815   2017-05-17 09:20:49.815251:纪元55,损失= 0.25,lr = 0.086250(285.6例/秒; 0.224秒/批)

     

10:02:56.637   时代54.0:准确度= 0.9191

     

10:01:57.367   2017-05-17 09:01:57.367369:纪元54,损失= 0.09,lr = 0.086500(256.5例/秒; 0.249秒/批)

     

10:01:42.365   PoolAllocator:在347107694获取请求后,put_count = 347107646 evicted_count = 435000 eviction_rate = 0.00125321且不满意的分配率= 0.00125354

     

09:45:56.116   PNG警告:扩展块时超出大小限制

     

09:44:12.698   时代53.0:准确度= 0.9039

     

09:43:09.888   2017-05-17 08:43:09.888202:纪元53,损失= 0.10,lr = 0.086750(307.0例/秒; 0.208秒/批)

     

09:41:48.672   PoolAllocator:在339747205获取请求后,put_count = 339747210 evicted_count = 425000 eviction_rate = 0.00125093且未满足的分配率= 0.00125111

     

09:36:14.085   PNG警告:扩展块时超出大小限制

     

09:35:11.686   PNG警告:扩展块时超出大小限制

     

09:34:45.011   PNG警告:扩展块时超出大小限制

     

09:31:03.212   PNG警告:扩展块时超出大小限制

     

09:28:40.116   PoolAllocator:在335014430获取请求后,put_count = 335014342 evicted_count = 415000 eviction_rate = 0.00123875且不满意的分配率= 0.00123921

     

09:27:38.374   PNG警告:扩展块时超出大小限制

     

09:25:23.913   PNG警告:扩展块时超出大小限制

     

09:25:16.065   时代52.0:准确度= 0.9313

     

09:24:16.963   2017-05-17 08:24:16.962930:纪元52,损失= 0.11,lr = 0.087000(278.7例/秒; 0.230秒/批)

     

09:17:48.417   PNG警告:扩展块时超出大小限制

     

09:13:34.740   PoolAllocator:在329380055获取请​​求后,put_count = 329379978 evicted_count = 405000 eviction_rate = 0.00122958且不满意的分配率= 0.00123001

     

09:06:09.948   更新纪元51.0:准确度= 0.9357

     

09:06:09.948   时代51.0:准确度= 0.9357

     

09:05:09.575   2017-05-17 08:05:09.575641:纪元51,损失= 0.11,lr = 0.087250(248.4例/秒; 0.258秒/批)

     

08:59:17.735   PNG警告:扩展块时超出大小限制

     

08:55:58.605   PoolAllocator:在322904781获取请求后,put_count = 322904714 evicted_count = 395000 eviction_rate = 0.00122327且不满意的分配率= 0.00122368

     

08:48:46.322   PNG警告:扩展块时超出大小限制

     

08:47:27.936   时代50.0:准确度= 0.9197

     

08:46:29.370   2017-05-17 07:46:29.370135:纪元50,损失= 0.20,lr = 0.087500(253.2例/秒; 0.253秒/批)

我已尝试使用TCMalloc在我的本地计算机上进行培训,但仍有内存泄漏但不使用它。

1 个答案:

答案 0 :(得分:0)

TensorFlow默认使用jemalloc,这也是CloudML Engine上使用的内容:

  

jemalloc是强调的通用malloc(3)实现   碎片避免和可扩展的并发支持。

因此碎片不太可能是导致记忆问题的根本原因。