nvrtc: error: invalid value for --gpu-architecture (-arch)

网上的很多都试了,对我无效,也看不明白啥意思,自己摸索着解决了

找到报错地方,打个断点在“self.voxel_size_base”所在行

Traceback (most recent call last):
  File "run.py", line 591, in <module>
    train(args, cfg, data_dict = data_dict)
  File "run.py", line 562, in train
    scene_rep_reconstruction(
  File "run.py", line 326, in scene_rep_reconstruction
    model = tineuvox.TiNeuVox(
  File "/home/wangbeibei/code/Nerf/dynamic_nerf/TiNeuVox/lib/tineuvox.py", line 113, in __init__
    self.voxel_size_base = ((self.xyz_max - self.xyz_min).prod() / self.num_voxels_base).pow(1/3)

调试代码,在断点停下

self.voxel_size_base = ((self.xyz_max - self.xyz_min).prod() / self.num_voxels_base).pow(1/3)

在调试区试了一下(1),可以正常调试

(self.xyz_max - self.xyz_min)(1)

 又试了一下(2),".prod()"报错了,那就重写该函数吧(不知道为啥报错)

(self.xyz_max - self.xyz_min).prod()(2)

重写prod函数

def custom_prod(iterable):
    """
    计算可迭代对象中所有元素的乘积。
    
    参数:
    iterable (iterable): 一个包含数字的可迭代对象(如列表、元组等)。
    
    返回:
    float 或 int: 可迭代对象中所有元素的乘积。如果可迭代对象为空,则返回1(因为空乘积的约定值为1)。
    """
    product = 1  # 初始化乘积为1
    for num in iterable:
        product *= num  # 逐个乘以可迭代对象中的元素
    return product

 调试区尝试调试(3),没报错!!!又把剩下的一点点加进来调试,都没错,只有.prod()报错了,所以只改了这里就好了~~

custom_prod(self.xyz_max - self.xyz_min)(3)
总结:

报错行:

self.voxel_size_base = ((self.xyz_max - self.xyz_min).prod() / self.num_voxels_base).pow(1/3)

修改为:

self.voxel_size_base = (custom_prod(self.xyz_max - self.xyz_min) / self.num_voxels_base).pow(1/3)

其中custom_prod为实现原本.prod()功能的自己写的函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值