You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shapenet数据集FileNotFoundError排查及相对路径配置方案

问题分析与解决方案

核心问题

你的代码在构造数据集文件路径时,没有正确结合配置文件中的data_dir与拆分文件(split_cars.npz)中的路径信息,导致程序尝试访问错误的文件路径。错误信息显示的datasets/shapenet/data/02958343/...是拆分文件中存储的相对路径,但实际数据集位于/work/ws-tmp/data sets/shapenet/data/02958343/...,两者没有被正确拼接。

分步解决方案

1. 修正配置文件中的数据集路径

首先确保配置文件的data_dir指向你的实际数据集根目录,注意处理目录名中的空格:

exp_name = shapenet_cars
# 替换为你的实际数据集绝对路径,注意转义空格
data_dir = /work/ws-tmp/data\ sets/shapenet/data/02958343/
split_file = /work/ws-tmp/g051382-PCL_task/ndf/datasets/shapenet/data/split_cars.npz
input_data_glob = /model_obj_files/*/models/model_normalized.obj
sample_std_dev = [0.08, 0.02, 0.003]
sample_ratio = [0.01, 0.49, 0.5]

2. 修复代码中的路径拼接逻辑

修改VoxelizedDataset类的__getitem__方法,正确将data_dir与拆分文件中的路径片段结合:

def __getitem__(self, idx):
    try:
        path = self.data[idx]
        # 提取拆分文件路径中的对象ID(最后一级目录)
        object_id = os.path.basename(path)
        # 用data_dir拼接出正确的对象目录路径
        input_path = os.path.join(self.path, object_id)
        samples_path = input_path

        voxel_path = os.path.join(input_path, f'voxelized_point_cloud_{self.res}res_{self.pointcloud_samples}points.npz')
        occupancies = np.unpackbits(np.load(voxel_path)['compressed_occupancies'])
        input = np.reshape(occupancies, (self.res,)*3)

        # 后续代码保持不变...

3. 验证拆分文件内容(可选)

如果不确定拆分文件中存储的路径格式,运行以下命令查看第一条数据:

python -c "import numpy as np; split = np.load('/work/ws-tmp/g051382-PCL_task/ndf/datasets/shapenet/data/split_cars.npz'); print(split['train'][0])"
  • 如果输出是类似bd07cdd4397c88184ecc271292c8317的纯对象ID,直接用os.path.join(self.path, path)拼接即可,无需提取object_id。
  • 如果输出是完整相对路径(如datasets/shapenet/data/02958343/bd07cdd4397c88184ecc271292c8317),则用上述提取object_id的方式处理。

4. 测试路径正确性(可选)

在__getitem__中添加打印语句,确认构造的路径是否正确:

voxel_path = os.path.join(input_path, f'voxelized_point_cloud_{self.res}res_{self.pointcloud_samples}points.npz')
print('当前尝试访问的路径:', voxel_path)

运行代码后,检查打印的路径是否与你实际的数据集文件路径一致。

内容的提问来源于stack exchange,提问作者Sai tarak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 08:35:20