如何在 Google Cloud ML Engine 上使用 TCMalloc?或者除了 TCMalloc 之外,还有没有其他方法可以解决 ML Engine 上的内存泄漏问题?
完成图表似乎没有帮助。
训练 73 个 epoch 后,我出现了内存不足错误。这是训练日志的一部分:
11:26:33.707 作业失败。
11:26:20.949 完成拆除 TensorFlow。
11:25:18.568 副本 master 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', u'--sample_size=112', u'--num_gpus=4', u'--allow_growth=True', u'--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: epoch 58, loss = 0.12, lr = 0.085500 (228.9 examples/sec; 0.280 sec/batch)
11:15:39.532 PNG 警告:扩展块时超出大小限制
11:10:23.855 PoolAllocator:372618242个get请求后,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: epoch 57, loss = 0.23, lr = 0.085750 (282.2 examples/sec; 0.227 sec/batch)
10:54:37.440 PNG 警告:扩展块时超出大小限制
10:53:30.323 PoolAllocator:366350973个get请求后,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: epoch 56, loss = 0.06, lr = 0.086000 (273.8 examples/sec; 0.234 sec/batch)
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个get请求后,put_count=354197255 evicted_count=445000 eviction_rate=0.00125636和不满足分配率=0.00125644
10:20:49.815 2017-05-17 09:20:49.815251: epoch 55, loss = 0.25, lr = 0.086250 (285.6 examples/sec; 0.224 sec/batch)
10:02:56.637 纪元 54.0:准确度 = 0.9191
10:01:57.367 2017-05-17 09:01:57.367369: epoch 54, loss = 0.09, lr = 0.086500 (256.5 examples/sec; 0.249 sec/batch)
10:01:42.365 PoolAllocator:347107694个get请求后,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: epoch 53, loss = 0.10, lr = 0.086750 (307.0 examples/sec; 0.208 sec/batch)
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: epoch 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: epoch 51,损失 = 0.11,lr = 0.087250(248.4 示例/秒;0.258 秒/批次)
08:59:17.735 PNG 警告:扩展块时超出大小限制
08:55:58.605 PoolAllocator:322904781个get请求后,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: epoch 50, loss = 0.20, lr = 0.087500 (253.2 examples/sec; 0.253 sec/batch)
我已经尝试在本地机器上使用 TCMalloc 进行培训,但仍然存在内存泄漏,但少于不使用它。