如何在Kaggle平台查看.mdb格式数据集内容?
操作LMDB格式
data.mdb/lock.mdb文件的解决方案 你遇到的核心问题是工具选型错误:你手上的data.mdb和lock.mdb是**LMDB(闪电内存映射数据库)**的存储文件,不是微软Access的数据库文件,因此之前尝试的mdbtools、meza等工具完全不适用。
以下是Kaggle环境下可直接运行的操作步骤:
1. 安装正确依赖
直接安装Python的LMDB操作库和图片处理依赖即可,无交互要求:
pip install lmdb opencv-python numpy
2. 读取Clova Deep Text数据集的示例代码
Clova Deep Text的LMDB存储格式固定,按以下代码可直接读取图片和标签:
import lmdb import cv2 import numpy as np # 替换为对应LMDB文件夹路径,注意是到包含data.mdb的父文件夹,不要直接指向data.mdb文件 lmdb_path = '/kaggle/input/clova-deeptext/clova_deeptext/data_lmdb_release/training/ST' # 只读模式打开数据库,避免修改原始数据集 env = lmdb.open(lmdb_path, readonly=True, lock=False) with env.begin() as txn: # 获取数据集总样本数 total_samples = int(txn.get(b'num-samples').decode()) print(f"数据集总样本数:{total_samples}") # 遍历前5个样本测试 for i in range(1, 6): # 按数据集规则拼接key img_key = f'image-{i:09d}'.encode() label_key = f'label-{i:09d}'.encode() # 读取二进制内容 img_binary = txn.get(img_key) label = txn.get(label_key).decode() # 二进制转图片格式 img = cv2.imdecode(np.frombuffer(img_binary, np.uint8), cv2.IMREAD_COLOR) # 输出信息 print(f"样本{i} 标签:{label} 图片尺寸:{img.shape}") # 如需在Kaggle中展示图片,可添加以下代码 # import matplotlib.pyplot as plt # plt.imshow(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) # plt.show()
3. 修改LMDB内容的注意事项
- Kaggle的
/kaggle/input目录为只读,若需要修改LMDB内容,需先将整个LMDB文件夹复制到/kaggle/working目录下,再取消readonly=True参数打开即可写入 - 写入操作完成后,新的
data.mdb和lock.mdb文件会自动生成在目标文件夹中
之前操作失败的原因说明
- 你运行
apt install mbtools报错是因为包名拼写错误,正确的Access数据库工具包名为mdbtools,但该工具针对的是微软Access数据库文件,和你手上的LMDB格式完全不兼容,无需再尝试
内容的提问来源于stack exchange,提问作者watch-this
相关产品推荐
相关产品推荐

