使用tfds加载lvis内置数据集时报错缺少lvis_classes.txt文件问题求助
LVIS数据集加载失败解决方法
问题描述
我正尝试加载lvis内置数据集。已知tfds和lvis需要分别安装导入,完成所有前置操作后仍然无法正常加载。
运行代码如下:
import os import tensorflow as tf from matplotlib import pyplot as plt %matplotlib inline !pip install lvis !pip install tfds-nightly import tensorflow_datasets as tfds train_data, info = tfds.load('lvis', split='train', as_supervised=True, with_info=True) validation_data = tfds.load('lvis', split='validation', as_supervised=True) test_data = tfds.load('lvis', split='test', as_supervised=True)
Colab运行后抛出异常,核心报错为:
NotFoundError: /usr/local/lib/python3.7/dist-packages/tensorflow_datasets/object_detection/lvis/lvis_classes.txt; No such file or directory RuntimeError: NotFoundError: Failed to construct dataset lvis: /usr/local/lib/python3.7/dist-packages/tensorflow_datasets/object_detection/lvis/lvis_classes.txt; No such file or directory
问题根因
你安装的tensorflow_datasets(此处为nightly版本)发布包未将LVIS数据集依赖的类别配置文件lvis_classes.txt打包进去,导致数据集本地构建时找不到必要配置文件,触发报错。
解决方案
方案1(推荐,Colab环境适用)
在tfds.load方法中添加try_gcs=True参数,直接从谷歌公共存储桶加载预构建完成的LVIS数据集,跳过本地构建步骤,无需处理缺失文件,修改后的代码如下:
train_data, info = tfds.load('lvis', split='train', as_supervised=True, with_info=True, try_gcs=True) validation_data = tfds.load('lvis', split='validation', as_supervised=True, try_gcs=True) test_data = tfds.load('lvis', split='test', as_supervised=True, try_gcs=True)
方案2(本地/无外网访问环境适用)
手动补全缺失的lvis_classes.txt文件到报错路径:
- 从LVIS公开的类别列表获取1203个类名,逐行写入到
/usr/local/lib/python3.7/dist-packages/tensorflow_datasets/object_detection/lvis/lvis_classes.txt路径中 - 重新执行原有加载代码即可正常运行
内容的提问来源于stack exchange,提问作者TeeTracker
相关产品推荐
相关产品推荐

