D-NeRF运行报错:Exception: torchsearchsorted on CUDA device is asked, but it seems that it is not availab

训练D-NeRF模型时报错
报错内容:

Traceback (most recent call last):
  File "run_dnerf.py", line 957, in <module>
    train()
  File "run_dnerf.py", line 694, in train
    savedir=testsavedir, render_factor=args.render_factor, save_also_gt=True)
  File "run_dnerf.py", line 185, in render_path
    rgb, disp, acc, _ = render(H, W, focal, chunk=chunk, c2w=c2w[:3,:4], frame_time=frame_time, **render_kwargs)
  File "run_dnerf.py", line 151, in render
    all_ret = batchify_rays(rays, chunk, **kwargs)
  File "run_dnerf.py", line 83, in batchify_rays
    ret = render_rays(rays_flat[i:i+chunk], **kwargs)
  File "run_dnerf.py", line 449, in render_rays
    z_samples = sample_pdf(z_vals_mid, weights[...,1:-1], N_importance, det=(perturb==0.), pytest=pytest)
  File "E:\NeRF\D-NeRF-main\run_dnerf_helpers.py", line 332, in sample_pdf
    inds = searchsorted(cdf, u, side='right')
  File "E:\Anaconda\envs\dnerf\lib\site-packages\torchsearchsorted\searchsorted.py", line 41, in searchsorted
    raise Exception('torchsearchsorted on CUDA device is asked, but it seems '
Exception: torchsearchsorted on CUDA device is asked, but it seems that it is not available. Please install it

查了一下torchsearchsorted官方的说明,是找不到对应的CUDA版本导致。
后面又查了一下,发现pytorch在1.7以后已经内置了一个torch.searchsorted模块,不用再另外单独安装torchsearchsorted了,因此此处只需要修改一下代码就行。
找到run_dnerf_helpers.py中的报错位置,将:

inds = searchsorted(cdf, u, side='right')

改为:

inds = torch.searchsorted(cdf, u, right=True)

然后注释掉run_dnerf_helpers.py开头导入的torchsearchsorted包。
之后就能成功运行。

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值