GANet代码实现遇到的若干问题

GANet代码实现遇到的若干问题

开学以来一直在看立体匹配相关方向的论文,为了锻炼一下代码能力,最近几天试图将两个网络进行合并,构建成一个网络测测效果,主要是锻炼一下动手实践能力,遇到了一些问题,现在记录在下面。
  • 运行 sh compile.sh 编译错误,报错:no model libs.GANet.build.lib。编译错误主要因为一下几个问题:

    • 注意自己服务器gcc的版本(gcc -v 查看,需要升级到4.9及以上)
    • 注意自己的CUDA版本,CUDA版本需9.2及以上,9.0的编译也有问题。
  • 程序跑在一半过程中卡住,程序不动了。

    • libs.sync_bn模块的同步BN问题,多线程死锁问题,可以换一下别的同步BN模块,再来进行测试是否还会出现此问题。
  • DisparityRegression 函数报错非法内存访问 RuntimeError: cuda runtime error (77)

    • 引起错误的是语句

      disp = Variable(torch.Tensor(np.reshape(np.array(range(self.maxdisp)),[1, self.maxdisp, 1, 1])).cuda(), requires_grad=False)

      准确的说是.cuda() 非常奇怪的是,有时候能跑通几次,然后在程序运行过程中抛出这个错误,有的时候直接在第一次求损失就抛出这个错误,我怀疑原因是多卡运算造成的内存非法访问问题,切换为1卡就不会有这个错误了,但是单卡现存负担太大。不同人遇到的原因可能不同,建议查看https://discuss.pytorch.org/t/weird-cuda-illegal-memory-access-error/8848/16

  • 单卡可跑,但是多卡运行的时候就卡主不动

    • 注意设置一下batchsize的值,若你指定了3块GPU,但是batchsize=1 就会卡住,应该也设置为3才可。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值