当前位置: 首页 > news >正文

PointMAE的代码配环境+运行

PointMAE的笔记
PointMAE的代码地址

1. 环境配置

我的cuda是115安装Pointnet2_PyTorch总是失败
所以我在隔离环境中创建了cuda113的环境
参考pip 隔离环境内 安装 cuda 113 不覆盖原有的全局 cuda 115

1.1 安装torch

pipinstalltorch==1.12.1+cu113torchvision==0.13.1+cu113torchaudio==0.12.1 --extra-index-url https://download.pytorch.org/whl/cu113

1.2 安装pyyaml

pipinstallpyyaml

1.3 安装easydict

pipinstalleasydict

1.4 安装h5py

pipinstallh5py

1.5 安装tqdm (后面有报错的解决方案 更换tqdm版本)

pipinstalltqdm==4.64.1 pipinstalltimm==0.6.13

1.6 安装matplotlib

pipinstallmatplotlib==3.5.3

1.7 安装 Pointnet2_PyTorch (对cuda版本有要求)

参考博客M3DM-pointnet2_ops踩坑指北

gitclone https://github.com/erikwijmans/Pointnet2_PyTorch.gitcdPointnet2_PyTorch/pointnet2_ops_lib pipinstall.

1.8 安装termcolor

pipinstalltermcolor==2.4.0

1.9 安装torch-scatter torch-sparse

pipinstalltorch-scatter torch-sparse -f https://data.pyg.org/whl/torch-1.12.1+cu113.html

1.10 安装 KNN_CUDA (必须有ninja)

pipinstall--upgrade https://github.com/unlimblue/KNN_CUDA/releases/download/0.2/KNN_CUDA-0.2-py3-none-any.whl pipinstallninja

1.11 安装 chamfer_dist

gitclone https://github.com/Julie-tang00/Point-BERTcdPoint-BERT/extensions/chamfer_dist python setup.pyinstall

1.12 安装opencv

pipinstallopencv-python==4.5.5.62

1.13 环境 pip list

2. 预训练

数据集用的ShapeNet55 [BaiduCloud] (code:le04)

2.1 指令 (CUDA_VISIBLE_DEVICES要用的GPU设备号 exp_name存放地址)

CUDA_VISIBLE_DEVICES=0python main.py --config cfgs/pretrain.yaml --exp_name pointmae_pretrain

2.2 划分数据集

2.2.1 新建.py文件 划分数据集为训练和测试

importosimportrandomimportargparsedefsplit_dataset(pc_dir,save_dir,train_ratio=0.8,random_seed=123456):""" 划分ShapeNet55-34数据集,生成train.txt和test.txt 参数说明: - pc_dir: shapenet_pc目录的绝对路径(存放所有.npy点云文件) - save_dir: ShapeNet-55目录的绝对路径(保存train.txt/test.txt) - train_ratio: 训练集比例(默认0.8) - random_seed: 随机种子(保证划分结果固定) """# 1. 检查目录是否存在ifnotos.path.exists(pc_dir):raiseValueError(f"点云目录不存在:{pc_dir}")os.makedirs(save_dir,exist_ok=True)# 确保保存目录存在# 2. 获取所有.npy点云文件pc_files=[fforfinos.listdir(pc_dir)iff.endswith('.npy')]ifnotpc_files:raiseValueError(f"{pc_dir}目录下没有找到.npy点云文件")print(f"共找到{len(pc_files)}个点云文件")# 3. 固定随机种子,保证划分结果可复现random.seed(random_seed)random.shuffle(pc_files)# 4. 划分训练集/测试集split_idx=int(len(pc_files)*train_ratio)train_files=pc_files[:split_idx]test_files=pc_files[split_idx:]print(f"训练集:{len(train_files)}个文件 | 测试集:{len(test_files)}个文件")# 5. 写入txt文件(每行是shapenet_pc下的文件名,匹配配置文件路径逻辑)train_txt_path=os.path.join(save_dir,'train.txt')test_txt_path=os.path.join(save_dir,'test.txt')withopen(train_txt_path,'w',encoding='utf-8')asf:f.write('\n'.join(train_files))withopen(test_txt_path,'w',encoding='utf-8')asf:f.write('\n'.join(test_files))print(f"划分完成!文件保存路径:")print(f"- 训练集:{train_txt_path}")print(f"- 测试集:{test_txt_path}")if__name__=='__main__':# 解析命令行参数(方便自定义路径)parser=argparse.ArgumentParser(description='划分ShapeNet55-34数据集为训练集/测试集')parser.add_argument('--pc_dir',type=str,required=True,help='shapenet_pc目录的绝对路径(例如:/home/cscai/data/ShapeNet55-34/shapenet_pc)')parser.add_argument('--save_dir',type=str,required=True,help='ShapeNet-55目录的绝对路径(例如:/home/cscai/data/ShapeNet55-34/ShapeNet-55)')parser.add_argument('--train_ratio',type=float,default=0.8,help='训练集比例(默认0.8)')args=parser.parse_args()# 执行划分split_dataset(pc_dir=args.pc_dir,save_dir=args.save_dir,train_ratio=args.train_ratio)

2.2 指令(必须先变成 如图所示的结构)

python split_dataset.py\--pc_dir /home/cscai//Point-MAE/Point-MAE-main/data/ShapeNet55-34/shapenet_pc\--save_dir /home/cscai//Point-MAE/Point-MAE-main/data/ShapeNet55-34/ShapeNet-55\--train_ratio0.8

3.报错

3.1 报错1:scheduler = CosineLRScheduler(optimizer, TypeError:init() got an unexpected keyword argument ‘t_mul’

pipinstalltimm==0.4.12

3.2 报错2 RuntimeError

pretrain.yaml中的total_bs修改为8

http://www.jsqmd.com/news/245002/

相关文章:

  • CMake:现代C/C++项目的构建中枢
  • 【MIMO通信】基于matlab MIMO检测器(ZF、MMSE、SIC、ML)在瑞利衰落下的BER性能比较【含Matlab源码 14929期】含报告
  • 8 款 AI 毕业论文写作工具实测:拯救你的学术秃头季
  • 锁定Nature!小样本学习是真的好发
  • 智能体反思模式:让AI从“会做“到“做好“的关键技术
  • 基于改进鲸鱼优化算法的微网系统能量优化管理Matlab源码
  • 大模型智能体工程实践:Rock Roll训练系统的构建与优化【收藏学习】
  • MyBatis:注解开发
  • 2026年AI产品市场格局:多模态崛起,音乐生成爆发,程序员必看
  • 【PaperXie毕业论文】从零到一的智能写作革命:AI如何重塑你的学术创作全流程
  • 大模型工程师转型攻略:无需985学历,四大核心能力助你轻松入行
  • 短剧广告联盟APP开发:数据对接与播放量、广告曝光量、收益联动统计方案
  • GEO营销全链路方案:附近搜索引流 + 到店优惠 + 会员裂变
  • 羟基聚乙二醇多巴胺,HO-PEG-Do试剂的全能应用图解
  • AI 赋能学术:paperxie 毕业论文功能,如何让硕士论文写作效率提升 80%?
  • paperxie 科研绘图:从流程图到专业图表,一键搞定学术可视化的 “高效工具”
  • 【智能音频翻译系统】
  • Paperxie 毕业论文:从选题到定稿的一站式智能写作解决方案
  • 大数据集成性能测试:JMeter压测ETL任务,找出性能瓶颈
  • 通信原理篇---第一类部分响应的预编码和相关编码
  • android16 rk3576修改音量曲线
  • JSON文件中显示为 \uXXXX 字符 的解决办法
  • MyBatis处理模糊查询
  • 如何用纯 HTML 文件实现 Vue.js 应用,并通过 CDN 引入 Element UI
  • MyBatis处理批量删除
  • 私有化大模型部署:企业AI落地的关键技术方案
  • 【无人机追踪】基于资源福利任务分配算法的无人机集群任务分配算法,完成目标攻击任务的基础上,通过优化资源分配和能耗控制附Matlab代码
  • 【滤波跟踪】视觉里程计VO与惯性导航系统INS外参标定的 MATLAB 代码,通过优化求解相机到INS的坐标变换(平移、旋转、尺度),实现多传感器数据融合前的外参校准
  • ue websocket 插件学习笔记
  • 2026.1.14 Linux计划任务与进程