孤单的学习仔 2024-03-15 12:41 采纳率: 66.7%
浏览 7
已结题

关于#深度学习#的问题:在Lanenet模型进行训练时,总会发生下面的报错,但使用官方的训练语句和相应的文件夹里面的数据就能正常训练

在Lanenet模型进行训练时,总会发生下面的报错,导致训练无法进行,但使用官方的训练语句和相应的文件夹里面的数据就能正常训练。

img

  • 写回答

3条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-03-15 12:42
    关注

    引自免费微信小程序:皆我百晓生

    从您提供的错误信息来看,问题可能出在数据加载阶段。当尝试初始化TusimpleSet类(这是针对Tusimple车道线检测数据集的自定义数据加载器)时,在第33行代码中尝试从数据信息中获取并添加到_gt_img_list列表中。错误提示表明在访问info_tmp[0]时出现了问题,这通常意味着在处理训练数据集文件路径或者数据格式时遇到了异常。

    为了解决这个问题,请按照以下步骤进行排查:

    1. 检查数据集文件路径: 确保train_dataset_file变量指向的是正确的训练数据集文件路径,且该文件包含所有图像及其对应的标签信息,并且格式与TusimpleSet类期望的一致。

    2. 检查数据集文件内容: 打开数据集文件,确保每一行记录都是有效的图片路径和对应标注信息,且能够通过info_tmp正确分割得到图片路径(即info_tmp[0]应该是一个有效图片路径)。

    3. 调试数据加载逻辑: 在dataloader/data_Loaders.py文件中,查看第33行附近的代码,可以插入一些打印语句,用于输出当前正在处理的数据样本的信息,确认是否能正确读取并解析数据集文件中的每条记录。

    示例代码:

    # dataloader/data_Loaders.py 文件中
    class TusimpleSet(Dataset):
        def __init__(self, dataset_file, transform=None, target_transform=None):
            # ...
            with open(dataset_file, 'r') as f:
                for line in f.readlines():
                    info_tmp = line.strip().split(' ')  # 假设这里以空格分隔各部分
                    assert len(info_tmp) == 预期字段数  # 检查是否分割出预期数量的字段
                    print(f"Current record: {info_tmp}")
                    self._gt_img_list.append(info_tmp[0])  # 添加前先验证info_tmp[0]是否存在
                    # 其他初始化代码...
    

    如果发现是数据格式问题,请相应地调整数据加载逻辑,使其能正确处理数据集文件的内容。若问题依然存在,请提供更多关于数据集格式、报错详细信息以及TusimpleSet类内部实现细节以便进一步分析。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月13日
  • 已采纳回答 4月5日
  • 创建了问题 3月15日