news 2026/6/1 19:38:30

PointMAE的代码配环境+运行

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/31 16:13:18

如何利用云服务器搭建游戏服务器并实现跨平台游戏?

云服务器搭建游戏服务器并实现跨平台游戏完整指南一、云服务器选择与配置1. 服务器选型建议根据游戏类型和玩家规模选择合适的配置:休闲游戏/小型服务器:2核CPU/4GB内存/50GB SSD,支持10-20人同时在线中型游戏/竞技游戏:4核CPU/8G…

作者头像 李华
网站建设 2026/5/30 17:23:10

CMake:现代C/C++项目的构建中枢

CMake:现代C/C项目的构建中枢 引言:从构建混乱到标准化 想象你正在开发一个跨平台的C库,需要在Windows、Linux、macOS上都能构建。在CMake出现之前,这意味着:为Visual Studio编写.vcxproj文件为Linux编写复杂的Mak…

作者头像 李华
网站建设 2026/5/30 17:25:05

Paperxie 毕业论文:从选题到定稿的一站式智能写作解决方案

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/aippt https://www.paperxie.cn/ai/dissertationhttps://www.paperxie.cn/ai/dissertation 对于每一位高校毕业生而言,毕业论文不仅是学业生涯的收官之作,更是学术能力的集中考验。…

作者头像 李华
网站建设 2026/5/30 3:11:31

【无人机追踪】基于资源福利任务分配算法的无人机集群任务分配算法,完成目标攻击任务的基础上,通过优化资源分配和能耗控制附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和数学建模资料 &#x1f34…

作者头像 李华
网站建设 2026/5/31 8:07:57

AI应用架构师必知:优化AI系统故障诊断的方案

AI应用架构师必知:优化AI系统故障诊断的方案 引言 痛点引入:AI系统故障诊断的“三座大山” 作为AI应用架构师,你是否遇到过这样的场景? 线上推理服务突然延迟飙升,用户投诉不断,但日志里只有“timeout”报错…

作者头像 李华
网站建设 2026/5/30 15:22:06

通信原理篇---第一类部分响应的预编码和相关编码

我们用「事先打暗号的猜谜游戏」来彻底讲懂预编码和相关编码,你会惊叹于它们的巧妙。核心比喻:猜数字游戏假设我们要玩一个游戏:我快速报出一串数字给你听,你要猜出我心中原始的数字序列。但是有个讨厌的规则:我每次报…

作者头像 李华