Sparse4Dv3 代码复现

Sparse4D v3

准备工作

github链接:https://github.com/HorizonRobotics/Sparse4D/tree/main

编译可变形聚合CUDA算子

cd projects/mmdet3d_plugin/ops
python3 setup.py develop

出现这个就是安装好了:

然后准备数据:
下载nuscenes数据集并放在data/nuscenes下面(为了简单调试,我就只下载了mini部分的数据):


ln -s /data/zhz/nuscenes_mini/can_bus ./data/nuscenes/can_bus

ln -s /data/zhz/nuscenes_mini/maps ./data/nuscenes/maps

ln -s /data/zhz/nuscenes_mini/samples ./data/nuscenes/samples

ln -s /data/zhz/nuscenes_mini/sweeps ./data/nuscenes/sweeps

ln -s /data/zhz/nuscenes_mini/v1.0-mini ./data/nuscenes/v1.0-mini

打包数据集的元信息和标签,并生成所需的.pkl文件。

新建nuscenes_anno_pkls文件夹:


python3 tools/nuscenes_converter.py --version v1.0-mini --info_prefix /data/zhz/code/Sparse4D-v3/data/nuscenes_anno_pkls/nuscenes-mini

生成了两个pkl文件:

然后通过K-means生成锚点

python3 /data/zhz/code/Sparse4D-v3/tools/anchor_generator.py --ann_file /data/zhz/code/Sparse4D-v3/data/nuscenes_anno_pkls/nuscenes-mini_infos_train.pkl

如果它找不到projects的话,可以加上这两行:

需要等待一会,cpu正在计算:

最后生成出了一个npy文件:

最后一步,下载backbone的预训练权重并放在ckpt文件夹下面:

训练和推理

在这里可以下载权重:

我选的是Sparse4Dv3  Res50的权重:

注意,因为我是用的mini数据集,所以配置文件里面要改成mini:

# train
bash local_train.sh sparse4dv3_temporal_r50_1x8_bs6_256x704

# test
bash local_test.sh sparse4dv3_temporal_r50_1x8_bs6_256x704  /data/zhz/code/Sparse4D-v3/ckpt/sparse4dv3_r50.pth

显存开销:

安装motmetrics

pip install motmetrics==1.1.3

帧率非常快:

最后还输出了很多跟踪相关的东西...

  • 22
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 稀疏贝叶斯学习(Sparse Bayesian Learning)是一种机器学习方法,用于估计线性模型中的参数。该方法通过在参数的先验概率分布中引入稀疏性的假设,从而得到稀疏解。稀疏解可以帮助我们更好地理解数据,并提高模型的泛化能力。 稀疏贝叶斯学习的代码实现可以按照以下步骤进行: 1. 加载所需的库和数据集:加载用于稀疏贝叶斯学习的库,如NumPy和SciPy。加载数据集,并将其分为训练集和测试集。 2. 定义稀疏模型:使用贝叶斯公式和朴素贝叶斯假设,定义稀疏模型的先验和似然函数。先验函数通常使用Laplace先验或高斯先验,并通过调整超参数来控制稀疏性。 3. 定义优化问题:将稀疏模型转化为一个优化问题,以最小化损失函数。常见的损失函数包括最大似然估计、最小二乘法等。 4. 确定超参数:通过交叉验证或贝叶斯优化等方法,确定超参数的最佳取值。超参数包括先验函数的超参数和优化问题的参数,如正则化参数、学习率等。 5. 优化模型:使用优化算法(如梯度下降、共轭梯度等)迭代地调整参数,以最小化损失函数。在每次迭代中,通过更新规则更新参数,并使用先验函数对参数进行修剪,以保持稀疏性。 6. 评估模型:使用训练好的模型对测试集进行预测,并计算预测结果的准确率或其他性能指标。如果模型性能不满足要求,可以回到步骤4,重新选择超参数。 稀疏贝叶斯学习的代码实现不仅限于上述步骤,还取决于具体的实现框架和程序设计。有多种工具和软件包可以用于实现稀疏贝叶斯学习,如Scikit-learn、TensorFlow等。根据所选框架的不同,代码实现可能有所差异,但总的思路和方法是相似的。 ### 回答2: 稀疏贝叶斯学习(Sparse Bayesian Learning)是一种用于构建稀疏模型的机器学习方法。其主要思想是通过贝叶斯统计推断来自适应地确定模型的参数。 Sparse Bayesian Learning的代码实现通常包含以下几个步骤: 1. 数据处理:首先,需要将所需要的数据进行预处理。根据实际问题的要求,通常会进行数据清洗、归一化或者特征选择等操作。 2. 参数初始化:然后,需要对模型的参数进行初始化。一般而言,可以采用随机初始化的方式来赋初值。 3. 贝叶斯推断:接下来,通过贝叶斯推断的方法,根据观测数据来更新模型的参数。具体而言,可以采用变分贝叶斯(Variational Bayes)或马尔可夫链蒙特卡洛(Markov chain Monte Carlo)等方法来进行推断。 4. 条件概率计算:随后,根据推断得到的后验分布,可以计算得到参数的条件概率分布,进而用于模型的测试或预测。 5. 模型选择:最后,需要通过模型选择的方法,如最大后验估计(MAP)或正则化方法等,对模型的结构进行优化和筛选,以达到稀疏模型的目的。 需要注意的是,Sparse Bayesian Learning的代码实现会涉及到概率计算、数值优化、矩阵运算等复杂的数学和算法操作。因此在实际编写代码时,需要使用适当的编程工具和数学库,并仔细考虑算法的复杂度和效率。此外,代码中还需要进行适当的验证,以保证模型的准确性和可靠性。 ### 回答3: sparse bayesian learning(稀疏贝叶斯学习)是一种机器学习算法,旨在通过最小化预测误差和对模型假设的复杂度进行特征选择和模型参数估计。 sparse bayesian learning 代码实现主要包括以下步骤: 1. 数据预处理:将输入数据集进行标准化处理,以确保不同特征具有相同的尺度。 2. 初始化模型参数:初始化模型参数,如稀疏先验超参数和噪声方差。 3. 迭代训练:采用变分贝叶斯方法进行模型参数和特征选择的迭代更新。 4. E步(Expectation Step):使用当前模型参数估计每个数据点的后验概率。 5. M步(Maximization Step):根据数据点的后验概率更新模型参数。 6. 收敛判断:计算当前模型参数的对数似然函数,若变化小于设定阈值,则认为算法已经收敛,停止迭代。 7. 特征选择:基于模型参数的后验概率,选择具有高概率的特征作为最终的特征子集。 8. 预测:使用更新后的模型参数进行新数据点的预测,通过计算后验概率或对数似然函数来判断分类或回归问题的性能。 总之,sparse bayesian learning代码实现的关键在于迭代更新模型参数和特征选择过程,通过极大似然估计和模型复杂度的惩罚项来实现稀疏性。此算法在处理高维数据时具有优势,能够自动选择相关特征,提高模型的泛化性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值