问题描述
我正在为tensorflow.js中集成的模型进行一些超参数优化,该模型在多个Nvidia GPU上运行。为此,我实现了一个简单的驱动程序,该程序尝试随机组合并记录训练模型的结果。
不幸的是,由于模型的大小,这些超参数的某些组合可能会导致这样的错误:
2020-08-04 15:31:26.174395: W tensorflow/core/framework/op_kernel.cc:1651] OP_REQUIRES Failed at conv_grad_ops_3d.cc:1783 : Resource exhausted: OOM when allocating tensor with shape[8,2,104,348,210] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc
(node:62355) UnhandledPromiseRejectionWarning: Error: Invalid TF_Status: 8
Message: OOM when allocating tensor with shape[8,210] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc
at Object.<anonymous> (<anonymous>)
.....
我不事先不知道我的超参数的哪些组合会导致此崩溃。
但是,当引发此错误时,模型程序(使用超参数优化程序的子进程启动)将挂起而不是退出,这将导致整个优化过程停止。
我正在使用await model.fitDataset({ options... })
在异步函数中训练模型。
为此,我的问题是:如何捕获OOM错误(如上面的错误),以便我可以处理它并确保程序可以继续运行?
一种替代方法是,当抛出类似上述的OOM错误时,确保整个Node.js进程退出而不是挂起。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)