OOM in keras

在使用Keras构建siamese网络时遇到了OOM错误,尝试调整batch_size和优化数据生成方式未解决问题。分析后确定并非内存不足,而是由于全连接层参数过多导致显存不足。通过详细阅读错误日志定位到问题所在,重新设计网络结构后,模型成功在16GB内存的设备上运行。
摘要由CSDN通过智能技术生成


问题描述:

使用keras搭建siamese网络时,遇到错误如下:

 OOM when allocating tensor with shape[129024,4096] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc     [[Node: dense_1/kernel/Assign = Assign[T=DT_FLOAT, _class=["loc:@dense_1/kernel"], use_locking=true, validate_shape=true, _device="/job:localhost/replica:0/task:0/device:GPU:0"](dense_1/kernel, dense_1/kernel/cond/Merge)]]  Hint: If you want to see a list of allocated tensors when OOM happens, add report_tensor_allocations_upon_oom to RunOptions for current allocation info.

经查阅资料认为是内存不足。故修改batch_size,修改原始数据集样本对的生成方式。均无效。

经过仔细思考认为应该不是内存不足(原始数据集600M),而我是在服务器(内存128g)上运行,且服务器上没有其他人在使用。在程序运行期间使用top指令观察了服务器的内存使用情况,free部分一直有100g以上。排除内存不足的情况。

考虑可能显存不足(关于内存和显存的具体区别和使用不甚了解,请大家不吝赐教)。仔细阅读了错误日志(以后不能只关注Traceback 部分&#x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值