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

TensorFlow Datasets加载KITTI数据集触发Assertion Error求助

问题描述

我被这个问题困扰多日,无法解决。在Jupyter Notebook中加载KITTI数据集时,无论是使用tfds.load()还是手动构建tfds.builder()调用download_and_prepare(),都会触发相同错误。

使用的版本:

  • TensorFlow: 2.3.0
  • TensorFlow Datasets: 3.1.0

代码示例1(tfds.load)

import tensorflow as tf               # 2.3.0
import tensorflow_datasets as tfds    # 3.1.0
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

train_ds, test_ds = tfds.load(
    "kitti",
    split=['train', 'test'], 
    data_dir='../../tensorflow_datasets',
    with_info=True,
    as_supervised=True
)

代码示例2(tfds.builder)

import tensorflow as tf               # 2.3.0
import tensorflow_datasets as tfds    # 3.1.0
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

builder = tfds.builder(name='kitti', data_dir='../../tensorflow_datasets')
builder.download_and_prepare(download_dir='../../tensorflow_datasets/downloads')

ds = builder.as_dataset()

错误表现

从报错截图可见,错误集中在数据集文件的读取/预处理阶段,触发NotFoundError或文件处理异常,追溯到KITTI数据集的构建脚本逻辑中。


解决方案

1. 清理损坏的缓存文件

TFDS会缓存下载和预处理后的数据集,若缓存文件损坏会导致加载失败。删除相关缓存后重新下载:

# 切换到数据集目录
cd ../../tensorflow_datasets
# 删除KITTI相关缓存
rm -rf kitti*
# 删除下载缓存
rm -rf downloads/kitti*

之后重新运行代码,让TFDS重新下载并处理数据集。

2. 验证路径权限与有效性

确保指定的data_dir和download_dir存在且有读写权限:

import os
# 检查路径是否存在
print(os.path.exists('../../tensorflow_datasets'))
print(os.path.exists('../../tensorflow_datasets/downloads'))

若路径不存在,先创建:

mkdir -p ../../tensorflow_datasets/downloads

3. 修复版本兼容性问题

TensorFlow 2.3.0与TFDS 3.1.0可能存在兼容冲突,建议升级TFDS到适配版本(如4.0.0):

pip install tensorflow-datasets==4.0.0

可参考TFDS官方文档确认版本匹配关系。

4. 手动下载数据集

若自动下载失败,可手动从KITTI官方渠道获取数据集文件,放置到download_dir路径下,再重新运行download_and_prepare(),TFDS会跳过下载直接执行预处理。

5. 检查网络连接

确认当前网络可访问KITTI数据集的源服务器,必要时切换网络或使用代理完成下载。


内容的提问来源于stack exchange,提问作者Damiano Imola

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 09:15:37