HiVT基础环境在40系显卡下的报错解决方法

对于入门轨迹预测这个方向的小白来说,HiVT是一篇质量非常高的论文,以下是我将论文要求硬件2080ti换为4080后居然有报错,所以来帮助大家避坑。

在CSDN里有很多大佬的踩坑记录,链接放在下边给大家参考。

安装argoverse和复现HiVT时踩的坑_hivt复现-CSDN博客

安装argoverse踩坑记录-CSDN博客

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

1.错误说明:

HiVT代码中的软件环境要求是py3.8,pytorch1.8.0+cuda11.1,pyg使用1.7.2,py-lightning为1.5.2,硬件要求为2080ti。

于是乎,我在换了4080后,心血来潮跑了一下,结果直接给我爆红:

下边也是一长串,大概意思是说cuda和40系显卡不太适配,什么GPU架构有不兼容问题。

我查了很多资料,又装了一下新一点的cuda12.1版本,使用软链接指向了cuda12.1作为默认。但依然没有解决问题,又发现有人说torch版本必须大于1.13版本才可以适配我的显卡和cuda。

我一想,反正cuda向下兼容,cuda高了没问题,但我的torch高了,我的pyg,一大堆包还得重新装。秉承着试一试态度,我装了torch1.13.1+cu116,由于PyG有4个依赖库,大家可以参考这篇博客自行下载:PyTorch Geometric (PyG) 库的安装_pyg安装-CSDN博客,基础环境配好后,我们还需要将官方api安装到我们的虚拟环境中。

我选择的包如下图所示:

2.Argoverse api安装

由于argo数据集官方api只能安装在Linux系统中,所以我安装了双系统win11+ubuntu20.04

首先我们需要去官网Argoverse 1,将数据集下载(训练,验证,测试)。并且下载HDmap文件,我们会得到一个hd_maps.tar.gz压缩包,解压后打开文件,里边有map_files文件。

在本地工程文件夹中使用clone命令将github的argoverse-apihttps://github.com/argoverse/argoverse-api复制到本地文件夹中,把map_files放到api文件的一级目录下,像下图这样:

按照要求放好高精地图文件后,我们还需要执行api安装,这部分我们还需要对依赖包进行处理,打开api文件的setup.py文件,我们对其中一些包进行修改,也可以直接用我下图的处理方式:

修改完毕后,我们可以直接运行pip install -e argoverse-api,但太慢了,我们直接在后边添加国内源,速度直接飞起(大概1分钟左右???),就像下面这样子。

pip install -e argoverse-api -i https://pypi.tuna.tsinghua.edu.cn/simple

安装完毕后,发现代码中的argoverse还是会有错误提示,这是正常的,只需要在终端里输入python,然后运行import argoverse,若是没有报错,就证明我们安装成功了,代码也能正常运行。

2.HiVT报错解决

装完api,我们就可以按照github一步一步来解决下面的问题了:

首先是模型训练,/path/to/dataset_root/换成你自己数据集的路径,我们选择编码维度64

python train.py --root /path/to/dataset_root/ --embed_dim 64

2.1评价指标报错

ValueError: Unexpected keyword arguments: compute_on_step

将指标文件夹中ade.py,fde.py,mr.py文件中的super里的compute_on_step去掉即可。

不出所料,又有错误了。

2.2数据预处理报错

 大概意思是说我以前进行过数据预处理,让我删了我预处理的文件夹,重新运行,于是乎我删了训练和验证集里的processed文件夹后,代码又重新跑起来了。

如果你第一次跑,应该不会遇到这个问题。

接着我们会迎来第二个问题:

这个问题也很好解决,找到对应函数给他加一些东西进去。

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

跳转进去是data.__inc__(key, value, store)这一行代码,PyCharm/VSCode用户可以按着ctrl+鼠标左键,然后出现下图这样:

选择第一个文件,进入到utils.py,把54行代码改成下图所示------在value的后面加上了  ,*args

之后就没有什么问题了,至少在我自己的环境中是这样的,此时运行训练代码,首先会执行数据预处理,之后会按照代码的batch_size进行训练了,训练的日志会存在lightning_logs中,希望大家顺利跑通。

3.总结

经过实践,代码终于能够在我的4080里跑了,后续课题研究有可能会找别的代码来看,有其他问题也会持续更新,记录一下第一次写博客哈哈哈。

  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HIVT(Hierarchical Vector Transformer for Multi-Agent Motion Prediction)是一种用于多智能体运动预测的分层向量变换器。该模型使用了向量变换器(Vector Transformer)的层级架构,用于对多智能体的运动轨迹进行预测。 HIVT模型旨在解决多智能体之间相互影响和合作的问题。在多智能体统中,智能体之间的运动和行为往往会相互影响,因此准确预测智能体的运动轨迹变得非常重要。传统的方法往往难以捕捉到智能体之间的复杂相互作用和外部环境的影响,而HIVT模型通过分层向量变换器的架构,可以更好地捕捉到多智能体统中的相互作用。 HIVT模型首先使用一个全局的向量变换器来处理整个多智能体统的运动轨迹,以捕捉全局的趋势和相互作用。然后,对于每个智能体,模型使用一个局部的向量变换器来预测其个体的运动轨迹,以考虑个体特定的动态特征和周围智能体的影响。 通过分层向量变换器的架构,HIVT模型能够更好地处理多智能体统中的动态变化和相互作用,提高了运动轨迹预测的准确性。同时,该模型还可以应用于多个领域,如智能交通、无人机团队协作等。 总而言之,HIVT模型是一种基于分层向量变换器的多智能体运动预测方法,通过捕捉多智能体统中的相互作用和全局趋势,提高了运动轨迹预测的准确性和适用性。该模型在多个领域具有广泛的应用前景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值