second.pytorch环境配置记录

Point pillars 环境搭建 模型训练记录 参考官方的README.MD和csdn里的帖子。 阅读详情
简述

  second.pytorch代码集成一些3d激光雷达点云的学习算法,关于这方面资料相对较少,主要是3d点云深度学习算法也是这两年才开始发力。学习资料相对单一,本文首先记录自己配置second.pytorch的nvidia-docker环境所踩过的坑,后期会分别写一写当前的3d-lidar点云的深度学习算法。这里,也推荐大家参考second.pytorch的环境配置教程。ok,让我们开始second.pytorch的环境配置苦练修行之路吧。

second.pytorch代码环境配置

  本文依赖nvidia-docker镜像下面安装的环境;这部分环境配置你可以直接参考github下面second.pytorch的readme.txt部分,我按照second.pytorch安装说明会出现一些问题,主要涉及软硬件的不匹配、编译问题,特此记录下来,配置完成的nvidia-docker镜像保存下来,不想参考本文的,可以直接进入文末下载nvidia-docker镜像。

second.pytorch官网github地址:
       https://github.com/traveller59/second.pytorch
我的电脑环境配置:
      GeForce RTX2080 + CUDA10.0 + Torch 1.1.0 + Python 3.7

前提条件:
  确保NVIDIA驱动、CUDA、docker、nvidida-docker安装提前配置成功。(cuda10.1测试编译spconv存在一些问题,建议安装cuda10.0)

nvidia-docker下环境配置

  目前安装成功的配置是cuda10.0+cudnn7.x系列,亲测在cuda10.1时候对second.pytorch依赖库spconv编译时候会出现问题,也是官网issues里面出现最多的cmake_device_link.o这些问题。建议使用cuda10.0版本。

step 1 : 首先在nvidia-docker环境下将second代码pull下来

git clone https://github.com/traveller59/second.pytorch 
cd  ./second.pytorch/second

step 2 : 安装相关依赖项

  进入nvidia-docker镜像里面,建议安装Anaconda,去官网下载linux对应到镜像里面。

  Anaconda下载完成后,在docker镜像里面终端直接:(一路回车,需要输入就yes)

sh  Anaconda-xxx.sh  

安装其它依赖包:

conda install scikit-image scipy numba pillow matplotlib
pip install fire tensorboardX protobuf opencv-python

step 3: 编译spconv

单独将spconv拎出来是因为这里编译有点小坑需要避免一下:

  首先当然是clone spconv的代码部分:

git clone https://github.com/traveller59/spconv  --recursive

  spconv可能下载不成功,如果clone失败,报git clone fatal: The remote end hung up unexpectedly. 这个原因可能由于网络原因引起的。

通过设置一下git 配置的最低速度与最低速度时间来解决:

git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTime 999999 

  其次就是安装boost库进入docker的镜像系统头文件目录里面,可以直接敲如下命令即可:

apt-get install libboost-all-dev 

如果不想,去boost官网下载压缩包,解压后将头文件拷贝进spconv的头文件里面即可。

  再次要安装新版本的cmake > 3.13.2,同时将其添加进PATH目录;

  这一步,我是通过下载cmake源码对其进行编译安装的,cmake源码网站如下:

wget http://www.cmake.org/files/v.3.13/cmake-3.13.2.tar.gz
tar xvf cmake-3.13.2.tar.gz
cd  cmake-3.13.2
./configure
make && make install 

检测cmake是否安装成功:

cmake --version

如果cmake的版本号没有改变,可能需要你添加一下软连接:

sudo ln -sf  /your_cmake_path/bin/*  /usr/bin/

如果出现error /usr/bin/cmake no such files … 等错误

将你的cmake-3.13.2路径下的cmake拷贝至/usr/bin下:

cp   /your_cmake_file_parent_path/cmake-3.13.2/bin/cmake    /usr/bin

cmake安装成功之后,不要忘记将cmake的文件路径添加至 .bashrc里面:

export  PATH=$PATH:/your_cmake_file_parent_path/cmake-3.13.2/bin

保存 .bashrc的更改

source .bashrc 

确定你已经安装pytorch>1.0+,如果没有,执行下面的命令:

conda install torch = 1.1.0
conda install torchvision 

到这里,编译sponcv的环境准备工作已经完成,直接进入sponcv目录下面,运行如下命令:

python  setup.py  bdist_wheel

结束后,会在dist目录下面生成对应的spconv-xxx-xxx.whl文件。继续运行如下命令:

cd  ./dist   
pip  install  spconv-xxx-xxx.whl  

  至此,spconv编译到此结束了。当然,如果你也用的cmake-3.13.2编译的spconv文件,可以直接下载我编译好的spconv文件,链接会在末尾给出。

step 4: 安装Apex

安装Apex比较简单,按照网页提示一把过:

git clone https://github.com/NVIDIA/apex
cd apex
pip install -v --no-cache-dir --global-option="--cpp_ext" --global-option="--cuda_ext" ./

step 5: 对cuda设置numba的环境

进入.bashrc里面进行编辑:

export NUMBAPRO_CUDA_DRIVER=/usr/lib/x86_64-linux-gnu/libcuda.so
export NUMBAPRO_NVVM=/usr/local/cuda/nvvm/lib64/libnvvm.so
export NUMBAPRO_LIBDEVICE=/usr/local/cuda/nvvm/libdevice

step 6: 添加second.pytorch至PYTHONPATH

进入.bashrc里面进行编辑:

export  PYTHONPATH=$PYTHONPATH:/your_second.pytorch_path/ 

至此,关于second.pytorch的nvidia-docker下面的环境依赖到此完美结束。

second.pytorch代码跑通调试bug修复(持续更新)

数据准备格式:

└── KITTI_DATASET_ROOT
       ├── training    <-- 7481 train data
       |   ├── image_2 <-- for visualization
       |   ├── calib
       |   ├── label_2
       |   ├── velodyne
       |   └── velodyne_reduced <-- empty directory
       └── testing     <-- 7580 test data
           ├── image_2 <-- for visualization
           ├── calib
           ├── velodyne
           └── velodyne_reduced <-- empty directory

参数配置文件修改:

train_input_reader: {
  ...
  database_sampler {
    database_info_path: "/path/to/dataset_dbinfos_train.pkl"
    ...
  }
  dataset: {
    dataset_class_name: "DATASET_NAME"
    kitti_info_path: "/path/to/dataset_infos_train.pkl"
    kitti_root_path: "DATASET_ROOT"
  }
}
...
eval_input_reader: {
  ...
  dataset: {
    dataset_class_name: "DATASET_NAME"
    kitti_info_path: "/path/to/dataset_infos_val.pkl"
    kitti_root_path: "DATASET_ROOT"
  }
}

  在second.pytorch/second/ 下面有个configs文件夹,里面有每个训练参数文件的配置。以car.fhd.config为例,打开文件找到对应上面的部分,进行数据路径配置修改成你的nvidia-docker映射的数据路径即可。

运行数据生成命令:

python create_data.py kitti_data_prep --data_path=KITTI_DATASET_ROOT

   这里需要将–data_path改成–root_path,因为create_data.py参数变量名为root_path。KITTI_DATASET_ROOT为你的nvidia-docker数据映射路径;

数据生成结束后,运行训练命令:

python ./pytorch/train.py train --config_path=./configs/car.fhd.config --model_dir=/path/to/model_dir

  训练阶段会出现–model_dir错误导致停止,其实就是需要你输入模型保存的路径,而且需要没有新建的文件夹:

  假设nvidia-docker的映射路径为/model_path/那么:

  你的模型路径为–model_dir=/model_path/model_20190809

它会新建一个文件夹model_20190809;

总结

  说实话,配置环境很费时间,软硬件版本的对应等等。还好有了docker的出现,以后复制环境相对方便许多,这个second.pytorch的环境我这边算是配置结束啦。过两天会上传对应的nvidia-docker镜像至docker-hub上面,方便大家进行下载直接使用。

  转到自动驾驶方向的激光雷达的深度学习算法了,目前还处于小白学习阶段。这块深度学习3d点云方面,还处于新兴发展阶段,目前主要将点云如何通过编解码方式有效的让CNN学习,或者对数据进行转换操作等等,加油,会有越来越多的人关注点云并推动深度学习在这个方向的发展。我就多摸鱼、捡漏的持续学习!

nvidia-docker镜像下载链接

second.pytorch的nvidia-docker镜像下载:
    docker pull smallmunich/ubt1804_second:v0

spconv经过cmake-3.13.2的whl文件下载:
    该文件在ubt1804_second镜像下面~/spconv/dist/ 里面

参考链接

https://github.com/traveller59/second.pytorch

https://github.com/traveller59/spconv

https://github.com/NVIDIA/apex

PyTorch手写数字识别实战:从环境配置到模型部署全流程 神经网络是深度学习的核心范式,其本质是通过多层非线性变换实现特征抽象与分类决策。PyTorch凭借动态计算图、Pythonic API和强大生态,成为理解该原理最直观的工程载体。本文以MNIST手写数字识别为切入点,系统覆盖PyTorch环境配置(含CUDA12.8/RTX 5060适配)、Dataset数据加载、nn.Module模型定义、训练循环五步法及GPU显存优化等关键技术环节,兼顾初学者避坑与工业级实践要求。内容自然延伸至迁移学习、模型导出(torch.jit.trace)与TorchServe部 阅读详情

相关推荐

PyTorch动态计算图生命周期管理:解决RuntimeError: Trying to backward through the graph a second time

在深度学习框架中,自动微分是实现神经网络训练的核心机制,它通过构建计算图来追踪张量间的运算依赖关系。PyTorch采用动态计算图,每次前向传播都会实时构建一个记录所有中间变量和运算的有向无环图。反向传播时,框架会沿着该图执行链式法则,计算参数的梯度。默认情况下,为高效利用内存,计算图在完成一次反向传播后会被立即销毁。这一机制在标准训练循环中表现优异,但在多任务学习、GAN训练等需要单次迭代内多次计算梯度的复杂场景下,若未妥善处理计算图生命周期,便会触发“RuntimeError: Trying to bac

weixin_33816946的博客 404

second.pytorch环境配置及训练运行折腾史

申明:本篇博客经过本人亲自实践,以下步骤都是本人亲自走过最后成功运行。在这过程中参考了这一篇博客(https://blog.csdn.net/Small_Munich/article/details/99053921),很感谢这位博主的帮助,也感谢原作者无私分享的程序(https://github.com/traveller59/second.pytorch),在他们的帮助下成功实现了second...

华青水上的博客 1万+

RuntimeError: Trying to backward through the graph a second time (or directly access saved variable

用pytorch的时候发生了这个错误,写下来避免以后再次入坑。感谢这次坑让我对预训练模型的使用有了更清楚的认识。RuntimeError: Trying to backward through the graph a second time (or directly access saved variables after they have already been freed). Saved intermediate values of the graph are freed when you call

拒绝任何因懒惰而生的省略号 2万+

second算法复现及可视化记录

numpy.float64 object can’t be interpreted as an integer是因为numpy包版本太高,降低到1.17.0或更低版本即可,在降低numpy版本后,会有些其它包说与底版本的numpy包不适配,将有问题的包降低到与numpy适配的版本即可。spconv1.2文件下载下来后其中/third_party/pybind11的文件夹里是空的,到github上单独下载pybind111,在放到/third_party/pybind11的文件夹里。

jinseyanhuo的博客 2465

基于Java+Maven+Testng+RestAssured+Allure+Jenkins搭建一个接口自动化框架

2、有一个提取表达式列,通过编写每个接口的JSON提取表达式,后边在解析Excel时,对接口执行后的响应数据用该表达式提取出来,保存到环境变量,如果某些接口需要前置接口的响应数据,我们就可以从环境变量中获取该数据出来,从而解决了接口关联的问题。1、在之前介绍过全局配置类Contants中添加一个控制台日志开关控制权限,如果选择为false,则控制台不输出日志,将日志输出到allure报表,选择为true,则在控制台输出日志,不输出到allure报表。

专注于技术分享的博主 1177

.NET 4.0下HttpWebRequest请求HTTPS报错?试试这个注册表修改方案

本文深入解析.NET 4.0下HttpWebRequest请求HTTPS报错问题,提供注册表修改方案以解决'基础连接已经关闭'错误。通过调整SchUseStrongCrypto注册表项,强制使用TLS 1.2等现代加密协议,确保安全连接。适用于企业环境部署和长期维护建议。

weixin_29310631的博客 352

代码复现 :SECOND pytorch版本 ①

源码: https://github.com/traveller59/second.pytorch 仅支持python 3.6 +,pytorch 1.0.0+。 在Ubuntu 16.04 / 18.04 / Windows 10中进行了测试。我们只关注KITTI数据集。 News 2019-4-1:发布了SECOND V1.6.0 alpha:New Data API,NuScenes支持,PointPillars支持,fp16和multi-gpu支持。 2019-3-21:SECOND V1.5.1

W1995S的博客 1842

【RDMA】13. RDMA之用户态与内核态交互

原文:https://zhuanlan.zhihu.com/p/346708569 在“RDMA之Verbs”一文中我们说道,Verbs API分为用户态和内核态,分别以ibv_和ib_作为前缀。RDMA技术的最大的优势就在于用户态可以绕过内核,直接控制硬件收发数据,减少了系统调用和内存拷贝次数,所以大部分的RDMA应用都是用户态应用,即使用以ibv_为前缀的用户态Verbs API。 但是并非所有的用户态Verbs API都可以完全绕开内核,本文中我来讲解一下哪些API依赖于内核RDMA子系统(包括驱

我的笔记本 4279

OpenPCDet和mmdetection3d

OpenPCDet和mmdetection3d是香港中文大学open-mmlab实验室的成果,这两个框架都是用于3D目标检测的,二者各有优缺。OpenPCDet更轻量一些,更加专注于点云室外场景激光点云的目标检测任务,包含多种点云特征提取模型。mmdetection3d包含的内容更多,包含了图像、点云、多模态数据源的3D检测以及分割。mmdetection3d是一个比较新的模型结构,多个模块组装简单,同时支持多模态,就科研来说,更具有开发空间。 ...

Fzc_Ztt的博客 3116

NX二次开发(python)-坯料尺寸(一)

一般在产品制造过程中,往往要判断一个模型在出模方向上的最小包容盒尺寸,在NX中可以用坯料尺寸命令实现,当然也有相应的代码实现,这或许可以帮助我们实现一些产品的坯料尺寸批量输出,节省人力。

dasfanfan的博客 812

修复漏洞Windows 2012 Server R2(CVE-2016-2183)、(CVE-2015-2808)、(CVE-2013-2566)

【代码】修复漏洞Windows 2012 Server R2(CVE-2016-2183)、(CVE-2015-2808)、(CVE-2013-2566)

路~可以走过 2762

【自动驾驶】second模型训练

3)目前仅支持单个GPU训练,但训练一个模型在单个1080Ti中只需要20小时,并且只需要50个循环就可以达到78.3 AP,并在Kitti验证日期集中使用super converge in car Medium 3D。(1)如果要训练新模型,请确保“/path/to/model\u dir”不存在。如果model\u dir不存在,将创建一个新目录,否则将读取其中的检查点。检测结果默认保存为:result.pkl,可设置--pickle_result=False,将结果保存为kitt标签格式。......

AI知识搬运工 1251

华为OD机试真题 新系统【查找能被整除的最大整数】

华为OD新系统机试真题【查找能被整除的最大整数】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【查找能被整除的最大整数】

qq_45776114的博客 667

second.pytorch安装踩坑实录

写在前面 下载的时候一定要注意second.pytorch的版本,不然安装完spconv后,尝试Kitti Viewer Web的时候可能会一直报错“cannot import name 'rbbox_intersection'”,附上没有此问题的代码仓库:https://github.com/traveller59/second.pytorch/tree/v1.5.1 安装步骤 安装 克隆代码 ###如果克隆失败,可以手动进入仓库网址下载,再上传服务器### git clone https:/

Left_control_right的博客 6487

【YOLOv11工业级实战】22. YOLOv11动态蛇形卷积破解弯曲裂纹检测难题(附2小时部署代码)

摘要:本文聚焦工业场景中弯曲裂纹检测的核心痛点,针对风电叶片、织物纱线等曲线缺陷传统检测漏检率高的问题,提出基于动态蛇形卷积(DSC)的YOLOv11优化方案。因企业数据保密,采用AITEX织物缺陷库(含曲线纱线断裂标签)结合Blender物理仿真生成2000张弯曲裂纹数据,实现从数据准备到部署的全流程实操。通过将DSC模块插入YOLOv11 Neck层,弯曲裂纹召回率从68.1%提升至89.4%,mAP@0.5达83.7%,推理速度3.1ms(2080Ti)。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1141

【AI智能体】Coze 搭建个人旅游规划助手实战详解

Coze 制作旅游规划助手机器人实战详解

congge 4602

second.pytorch环境配置

second.pytorch环境配置记录 程序运行环境: 运行系统:Ubuntu18.04 使用语言:Python3.6 硬件支持:GTX1660Ti + CUDA10.0+ PyTorch 1.4.0+torchvision0.5+Cmake3.13.2+Anaconda3.5.2 需要注意的点: 下载spconv时注意使用命令 git clone xxx.git --recursive 编译spconv出错可能是(pytorch和torchvision版本不匹配) 创建conda虚拟环境 pytorch

qq_37983000的博客 699

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Ubuntu16.04运行second.pytorch和PointPillars(主要记录遇到的问题)

一、环境 Ubuntu16.04 ROS-Kinetic 驱动版本384.130 CUDA:9.0.176 CUDNN:7.6.2 ROS自带 Python:3.5.2 安装版本 Tensorflow-GPU=1.8.0 Pytorch=1.1.0 Anaconda (base)Python3.7 Tensorflow-GPU=1.14.0 Pytorch=1.1.0 torchvision=0....

Doraemon_Zzn的博客 4265

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

NVIDIA_Jetson_Xavier安装second.pytorch环境

简述 说起在nvidia的xavier上面安装second.pytorch算法环境,也是醉了。没有什么特别的原因,就是在没有对second.pytorch算法pytorch模型进行tensorrt加速时候,单纯的项测试一下该算法能够跑多少fps,为以后优化过在tensorrt下进行对比。好吧,这个单纯的想法,导致付出时间不少。以此记录下来,避免其它相同需求的同学跨坑。ok,废话不多说,那我们开始遨...

AutoXTruck专栏 4218

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

second.pytorch 1.6&1.5.1配置实录

参考:traveller59/second.pytorch 环境:

Jad_Goh的博客 791

【玩转PointPillars】Ubuntu18.04上部署second

(base) ➜ ~ conda create -n second python=3.6 (base) ➜ ~ conda activate second

1297

second/pointpillars配制记录

second/pointpillars配置记录 一、环境配置 系统是ubuntu18.04 显卡是2080Ti cuda版本为10.0 cudnn版本为7.3.1 python版本为3.7.3 pytorch版本为1.3 spconv版本为1.2(写这篇文章时的最新版,他需要python3.7和pytorch1.3以上) Cmake版本为3.13.2 以上是环境版本配置,非常感谢https://blog.csdn.net/r1141207831/article/details/10375

CHD-Sun的博客 925

pytorch环境配置

仅记录本人配置pytorch的过程 首先是Anacoda的下载以及环境变量的配置(平平无奇) 接下来安装 PyTorch 遇到第一个困难,在安装pytorch时无法成功安装,使用.conda

iimmy_o的博客 229

PyTorch反向传播报错?手把手教你解决RuntimeError: Trying to backward through the graph a second time

本文深入解析PyTorch训练中常见的RuntimeError: Trying to backward through the graph a second time报错。该错误源于动态计算图在默认反向传播后被释放。文章提供了两种核心解决方案:一是理解并谨慎使用retain_graph参数,二是重构代码确保每次迭代创建新的计算图。同时,文章还给出了多任务学习、GAN等复杂场景下的排查指南与正确实践,帮助开发者从根本上避免此类错误。

ujm567890的博客 493
上一篇: 聚类算法系列之密度聚类DBSCAN
下一篇: Docker & Nvidia-docker 镜像基础操作
AutoXTruck
博客等级 码龄7年 463粉丝 115原创
评论 64
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值