安装argoverse和复现HiVT时踩的坑

首先CSDN有两篇踩坑记录,但是有部分情况和我的不一样,所以这里来记录下。这两篇的地址我放最后,也是感谢他们的分享。

0.环境准备注意事项

之所以写个0的注意事项,是因为在下面的踩坑的过程中,发现有些原因是因为torch和python版本太新导致的。感觉如果python版本在3.8和3.9,torch在1.8和1.9左右应该是没问题,这个有空我再去验证下。

1.评价指标报错

File “/home/amax/anaconda3/envs/haha/lib/python3.9/site-packages/torchmetrics/metric.py”, line 145, in init
raise ValueError(f"Unexpected keyword arguments: {', '.join(kwargs_)}")
ValueError: Unexpected keyword arguments: compute_on_step

这个在其他分享里面是把torchmetrics这个库降版本,但我这里torchmetrics用的是新版,因为我其他项目也要用到。

def __init__(self,
             compute_on_step:bool = True,
             dist_sync_on_step = False,
             process_group: Optional[Any] = None,
             dist_sync_fn: Callable = None) -> None:
          super(FDE, self).__init__(compute_on_step=compute_on_step, dist_sync_fn=dist_sync_fn, process_group=process_group, dist_sync_fn=dist_sync_fn)

所以需要在fde.py、ade.py、mr.py直接文件中,修改super方法,以FED.py为例。上面是FDE.py原本的代码,我们把下面的super里面的compute_on_step删掉,就好了,如下所示。记得mr.py和ade.py里面也这么做

def __init__(self,
             compute_on_step:bool = True,
             dist_sync_on_step = False,
             process_group: Optional[Any] = None,
             dist_sync_fn: Callable = None) -> None:
          super(FDE, self).__init__(dist_sync_fn=dist_sync_fn, process_group=process_group, dist_sync_fn=dist_sync_fn)

2.TypeError: TemporalData.__inc__() takes 3 positional arguments but 4 were given

运行eval.py之后报这个错

百度看了看,github也看了,基本都是说PyG,也就是torch-geometric的问题,但是试了几个版本都不太行,太老的版本会导致装不上torch_parse这个库

最后的解决办法是,点报错的最后一个文件地址,会进入到collate.py文件。

报错显示的是data.__inc__(key, value, store)这一行代码,如果是用PyCharm可以按着ctrl+鼠标左键,VSCode好像也是这样。然后出现下图这样

选择第一个,进入到utils.py,我们把54行代码改成下图所示

我是在value的后面加上了  ,*args

如果在编辑的时候显示这个,提示,直接点OK就行

3.TypeError: TemporalEncoderLayer.forward() got an unexpected keyword argument 'is_causal'

遇到这个问题是pytorch版本太新,我对比了下torch 2.0.1和torch 1.8.1,在torch.nn. module.transformer这个类里面

        for mod in self.layers:
            output = mod(output, src_mask=mask, is_causal=is_causal, src_key_padding_mask=src_key_padding_mask_for_layers)

的这一行代码中,torch2.0.1是有is_causal = is_causal这个参数的,torch1.8.1则没有,所以要不降级,要不编辑torch的源代码。

感谢:

感谢下面多位大佬的踩坑与分享

安装argoverse踩坑记录-CSDN博客 

Argoverse数据集API安装和HiVT代码调试踩坑及排坑记录_argoverse 踩坑-CSDN博客

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值