Day232:mxnet在多显卡训练u-net中的坑
其实这也是自己之前跑带有triplet loss代码的时候 , 遇到的问题 , 当使用多块GPU的时候 , 就会出现将一个Batch中的样本平分到多个GPU上 , 导致出现广播的问题 , 具体见我的文章:
Day199:Pythonzh中的广播机制:
背景:mxnet框架下u-net多分类 , 双卡1080服务器 , ubuntu系统
错误类型:
文章插图
截图不完整 , 大致的意思就是需要的数据类型是[8,3,256,256] , 提供的源数据类型是[4,3,256,256],最开始的8是因为设置的batch_size=8 , 那4嘞 , 咋来的?最开始怀疑数据格式不对 , 检查了3+遍证明没问题 , 又怀疑是迭代器造成的 , 检查了7+遍 , 在网上找别人的代码 , 也是没发现原因 。 7.3中午出现的bug晚上下班还没有解决 , 于是乎 , 我超级不淡定了 , 晚上回家接着看 , 还找来搞医疗方向的朋友帮我看 , 虽然人家搞过一段时间的深度学习 , 但是用的框架是caffe , 搞到零点 , 愣愣的是没解决 , 好吧 , 看来还是不够认真 , 于是乎 , 第二天接着找资料~挠头~找资料~挠头,在头发快被我薅完之际 , 决定厚着脸皮请教我的冯老师(因为总是麻烦她) , 她看了bug就说应该是两张显卡平分了一个batch , 虽然batch_size=8 , 但是平分到一张显卡上就是4 , 这跟网络模型设置不一致 。 纳尼~还能这样
【Day232:mxnet在多显卡训练u-net中的坑】改进就是把Reshape(batch_size,channels,w,h)改成Reshape(-1,channels,w,h) , 这样显卡自动计算 , 保证原来的batch_size不变,ctx = [cpu(0),cpu(1)]
不要放过任何一个小细节
原文:
- 麒麟|荣耀新款,麒麟810+4800万超清像素,你还在犹豫什么呢?
- 智能手机市场|华为再拿第一!27%的份额领跑全行业,苹果8%排在第四名!
- 行业|现在行业内客服托管费用是怎么算的
- 零部件|马瑞利发力电动产品,全球第七大零部件供应商在转型
- 通气会|12月4~6日,2020中国信息通信大会将在成都举行
- 俄罗斯手机市场|被三星、小米击败,华为手机在俄罗斯排名跌至第三!
- 体验|闭上眼睛点外卖是什么感觉?时隔一年再次体验,进步令人欣慰
- 当初|这是我的第一部华为手机,当初花6799元买的,现在“一文不值”?
- 出海|出海日报丨短视频生产服务商小影科技完成近4亿元 C 轮融资;华为成为俄罗斯在线出售智能手机的第一品牌
- 看过明年的iPhone之后,现在下手的都哭了