搞科研这几年,我踩得最多的坑不是模型调参,反而是找数据集。很多新手一上来就问“有没有现成的数据集”,但真拿到手又发现格式看不懂、标注看不懂、跑起来全是坑。尤其写论文的时候,数据集的选型、预处理、划分方式,直接决定审稿人愿不愿意给你过。这篇我把平时看论文、做实验时高频出现的各类公开数据集按领域整理了一遍,从计算机视觉的经典数据集到故障诊断信号集,从医学影像到图数据,最后附上自己构建数据集和格式转换的实操经验。内容偏实战,不整虚的,希望能帮你省下到处翻资料的功夫。
1. 论文数据集:搞科研的第一块敲门砖
1.1 为什么数据集比模型更值钱
现在做深度学习方向的研究,说实话模型结构大家都能搭,GitHub上开源的代码一抓一大把,真正决定一篇论文能不能成立的反而是数据。数据集的规模、标注质量、类别分布、划分方式,每一项都直接影响实验结论的可靠性。我见过不少同学,模型写得挺漂亮,结果用的数据集是网上随便扒的,样本之间有重叠、标签有明显错误,审稿人一问就答不上来。
数据集的“值钱”之处还体现在可比性上。同一个任务,如果大家都在同一份公开数据集上做实验,那模型效果的好坏就一目了然,比如目标检测里的COCO、故障诊断里的CWRU轴承数据。反过来说,如果你自己造了一份数据,又不公开,别人复现不了,那论文价值就要打折扣。这也是为什么现在很多顶会都强制要求提交代码和数据可用性声明。
1.2 判断一个数据集好不好的五个维度
拿到任何数据集,我一般会先快速过一遍这五个维度,避免后面踩坑:
- 数据规模:样本量够不够支撑你选的网络结构。几万张图和几千张图,能用的模型深度完全不一样。
- 标注质量:标注框是否准确、类别是否均衡、有没有漏标和错标。这个直接影响训练收敛和指标上限。
- 划分协议:官方是否提供了标准的train/val/test划分。如果大家划分不一致,论文里的指标就没法横向比较。
- 采集场景:数据是在实验室环境还是真实场景拍的,跟你要解决的应用问题对不对得上。
- 更新维护:数据集有没有持续维护、社区活跃度如何,这关系到你遇到问题能不能找到答案。
2. 计算机视觉里的“老牌劲旅”与自动驾驶数据集
2.1 MNIST、ImageNet、COCO2017:从入门到进阶都绕不开
先说MNIST,这几乎是所有人接触深度学习的第一个数据集。6万张28×28的手写数字灰度图,10个类别,任务就是分类。虽然现在用它在顶会上发论文已经被认为过于简单,但拿来调试代码、验证模型流程,依然非常高效。我每次搭新环境,都会先跑一遍MNIST,确认数据管道和训练脚本没问题再换正式数据。
ImageNet是图像分类领域的“高考标准”,包含约1400万张图像、覆盖2万多个类别,其中最常用的是ILSVRC的1000类子集。很多预训练模型的权重都是用ImageNet训出来的,比如ResNet、ViT。下载ImageNet的完整数据通常需要申请学术访问权限,训练时也一般只用train和val两个目录。不过它的体量很大,建议直接按需下载对应的tar包,而不是整库下完。
COCO2017是目前目标检测、实例分割领域最主流的基准数据集。它的目录结构我建议直接背下来:
coco2017/ ├── annotations/ │ ├── instances_train2017.json │ ├── instances_val2017.json │ ├── person_keypoints_train2017.json │ └── ... ├── train2017/ └── val2017/其中train2017/和val2017/存放的是图片,annotations/里是JSON格式的标注文件。COCO的标注不仅包含目标框(bounding box),还有分割掩码(segmentation mask)、关键点(keypoints)和图像级标题(captions),结构比较丰富。想读懂COCO的JSON,关键是要理解它用images、annotations、categories三个数组来组织信息,每个标注对象通过image_id和category_id关联到对应的图片和类别。
2.2 自动驾驶三兄弟:KITTI、nuScenes、HighD
自动驾驶方向的数据集,大家问得最多的就是KITTI、nuScenes和HighD。这三个我正好都用过,简单说说它们的分工。
KITTI是德国卡尔斯鲁厄理工学院和丰田美国研究院联合发布的,采集车装载了双目相机、Velodyne激光雷达和GPS/IMU组合导航系统,场景包括城市、乡村和高速公路。它分成Object Detection、Odometry、Raw Data等多个子任务,其中目标检测的标注是3D框,除了图像坐标外还包含物体的长宽高和朝向角。做2D/3D目标检测、深度估计、视觉里程计的研究,KITTI几乎是必跑的数据集。
nuScenes是安波福发布的,和KITTI相比最大的特点是传感器配置更完整:6个相机、5个毫米波雷达、1个激光雷达,还有GPS/IMU。而且它提供了1000个场景、约140万张图像,关键帧的标注覆盖23个类别、8种属性。它的数据格式是分块的,下载之后需要用官方提供的devkit来解析,我第一次用的时候被它的命名规则绕晕了,建议直接按官方教程走。
HighD和前面两个不太一样,它主要提供的是从高空视角采集的高速公路车辆轨迹数据,标注精细到每辆车的精确坐标、速度、加速度、车道位置。它是做轨迹预测、驾驶行为建模、车路协同研究的理想选择,因为它的俯视视角能避免很多地面视角的遮挡问题。
2.3 遥感目标检测:DOTA与AITODV2
遥感图像里的目标检测和自然图像有个很大的区别:物体朝向任意,水平框会引入大量背景噪声。DOTA数据集就是为遥感目标检测设计的,它包含2800多张遥感图像,标注了飞机、船只、储油罐、篮球场等19000多个实例。最特别的是它使用旋转框(oriented bounding box)来标注目标,每个标注除了角点坐标外,还记录了目标的旋转角度。
热词里提到的mmrotate训练dota数据集,就是OpenMMLab出的旋转目标检测工具箱。我实际操作过一次,流程大概是:
- 下载DOTA数据集并按照
train/val/test划分。 - 由于遥感图像通常尺寸很大(几千乘几千像素),直接整图训练显存扛不住,所以要先切图。
mmrotate提供了tools/data/dota/split_img.py脚本,会生成若干1024×1024的切片,同时切分标注。 - 把切好的数据转成DOTA格式的txt标注,再通过
DOTA2COCO工具生成COCO风格的JSON,方便后续用RoI Transformer或Oriented R-CNN训练。
AITODV2是面向航空图像目标检测的新版本数据集,专注飞机目标,包含大量的完整飞机和部分遮挡飞机实例。相比DOTA,AITODV2的类别更专一,实例数量更大,适合做细粒度飞机检测或模型预训练。
2.4 3D视觉方向:PointNet常用数据集与DTU
点云处理方向最经典的入门实验,基本都绕不开ModelNet40和ShapeNet。ModelNet40包含40个类别的CAD模型,每个模型采样成1024个点,PointNet论文里用的就是它做分类任务。它的数据格式很简单,一个.txt文件里存了每个点的x、y、z坐标,读取之后做归一化和随机采样就能直接输入网络。
DTU数据集则是多视角立体视觉(MVS)领域的经典基准,由丹麦技术大学发布,包含124个场景,每个场景从49个不同视角拍摄,并提供了相机参数和点云真值。做三维重建、深度估计方向的论文,很多都会在DTU上评测泛化性能。下载DTU时要注意它分为SampleSet、MVS_Data等不同部分,别只下了一个子集就当完整数据用了。
3. 故障诊断与信号处理数据集:给设备“看病”的原料
3.1 CWRU轴承数据集:故障诊断界的“MNIST”
如果你做机械故障诊断方向,CWRU轴承数据集几乎是绕不开的入门数据。它来自美国凯斯西储大学,通过实验台采集了正常轴承和故障轴承在不同工况下的振动信号。我强烈建议新手先用这个数据集跑通一个完整的“信号→特征→分类”流程,再去碰工业现场数据。
CWRU数据集的核心信息可以这样记:
| 参数 | 说明 |
|---|---|
| 故障类型 | 内圈故障、外圈故障、滚动体故障 |
| 故障尺寸 | 0.007、0.014、0.021英寸等 |
| 负载 | 0~3马力(对应转速约1730~1797 rpm) |
| 采样频率 | 12 kHz、48 kHz |
| 数据存放 | .mat文件,每个文件对应一种工况和故障组合 |
下载后你会看到很多以.mat结尾的文件,比如inner_race_7_1.mat这类命名,解析的时候注意先分清驱动端和风扇端数据。不同负载下的数据建议分开做训练集和测试集,这样能验证模型的跨工况泛化能力。另外有一点容易踩坑:CWRU数据里外圈故障标注是有相位角度差异的,早期很多公开复现里把不同角度的外圈故障混在一起,导致分类指标虚高,写论文时最好在数据预处理里明确说明。
3.2 行星齿轮箱、电机声音振动与风力发电数据集
行星齿轮箱数据集的公开资源相对较少,很多来自高校实验室的论文附带发布,比如东南大学的齿轮箱故障数据集。这类数据的采集通常包含振动加速度传感器在齿轮箱不同位置采集的时域信号,故障模式有断齿、磨损、缺齿等。
电机声音振动信号数据集是这几年比较火的方向,因为“听声辨故障”在工业场景里非常实用。这类数据集往往同时包含振动信号和声压信号,可以在论文中做多模态融合验证。热词里还提到“风力发电数据集”,风电场的SCADA数据、振动数据、功率曲线数据都可以用来做故障预警和发电量预测,公开的比如美国国家可再生能源实验室发布的风机数据集,包含风速、功率、桨距角、发电机转速等变量,适合做回归和异常检测。
3.3 相位偏折数据集与其他小众信号集
相位偏折数据集主要出现在光学检测和计算成像领域,比如基于相位偏折术的面形测量。它的数据一般是模拟生成的相位图或偏折图,用神经网络从偏折图中恢复面形。这类数据没有统一的公开大库,通常需要自己根据光学模型生成,论文里也会附带生成代码。
卫星信号信噪比数据集也是个小众方向,主要是GPS或北斗接收机采集的载噪比(C/N0)时间序列,用于多径检测、欺骗干扰识别等研究。通常采集设备不同,数据格式差异很大,公开的并不多。有需要的同学最好自己搭接收机采集一段时间,把位置信息、仰角、方位角、信噪比都记录成表格,再清洗打标。
4. 多模态、脑电与医学影像数据集
4.1 DEAP:情绪识别领域的常客
DEAP数据集是一个用音乐视频诱发情绪的多模态数据集,做情感计算的人应该都知道。它包含32名受试者观看40段一分钟音乐视频的脑电(EEG)和外周生理信号记录,共32通道EEG加上8通道外周信号,采样率128 Hz。每个视频看完后,受试者还会对效价(valence)、唤醒度(arousal)、支配度(dominance)、喜好度(liking)打分。
DEAP的下载需要注册申请,获批后会得到数据包。数据包里既有原始信号,也有预处理后的数据(降采样到128 Hz并去除眼电)。我一般直接用预处理版本,省去了很多信号清洗的麻烦。做分类任务前,通常要先做滑动窗口切段,把每个试次切成长度固定的片段,再提取微分熵(DE)、功率谱密度(PSD)等特征。
4.2 MIMIC重症数据库与OpenNeuro申请全流程
MIMIC是重症医学领域最著名的公开数据库,包含数万名重症监护患者的生命体征、检验结果、用药记录和护理记录。它属于受限数据,不是注册就能下载的,必须完成合规培训。我大概梳理一下申请步骤:
- 先访问PhysioNet官网,注册一个账号。
- 完成CITI项目中的“Data or Specimens Only Research”课程,拿到通过证书(这个课程是英文的,大概需要两三个小时)。
- 回到PhysioNet,在MIMIC-III或MIMIC-IV的数据页面上提交“Credentialed”申请,把自己关联到PhysioNet账号上。
- 等待邮件通知,获批后就能看到数据下载链接,通常是很大的压缩包,建议用支持断点续传的下载工具。
OpenNeuro则是一个开放神经影像数据平台,上面的fMRI、EEG、MEG数据大多是公开可下载的,不需要繁琐申请。适合做神经科学、脑机接口方向研究。它的特色是用BIDS格式组织数据,目录层级、文件名都有严格规范,下载后配合pybids库解析很顺手。
4.3 医学影像分割:息肉分割、水下管道裂缝与桥墩病害
医学影像分割方向,肠道息肉分割是很经典的任务,公开数据集有Kvasir-SEG、CVC-ClinicDB等。这些数据集规模不大,通常只有几百上千张内镜图像,但对分割模型的测试效果很好,而且图像分辨率高、标注是逐像素掩码。很多做轻量级分割网络、半监督/弱监督分割的论文都会选它做验证集。
水下管道裂缝和桥墩病害的数据集就更垂直了。公开的规模小,网上能找到的很多是零散的缺陷检测图片,没有统一标注格式。我的建议是:如果研究场景恰好是这类基础设施缺陷检测,先搜一下有没有行业公开赛和配套数据集,比如部分桥梁检测比赛会提供混凝土裂缝、钢筋外露等标注数据;如果实在没有,就自己采集加标注,然后对齐到COCO格式。这类数据通常类别不平衡非常严重,裂缝像素占比极小,训练时建议用Dice Loss或者Focal Loss,单纯跑CrossEntropy效果会很差。
5. 表格数据、图数据与其他经典数据集
5.1 Iris、西瓜3.0与加州房价:机器学习的教学铁三角
Iris鸢尾花数据集应该是全世界最有名的表格数据集,150条样本、4个特征、3个类别。别看它小,用逻辑回归、决策树、SVM都能快速验证算法有效性。还有一个细节:Iris数据本身存在两个类别线性不可分的情况(Setosa可以轻松分开,但Versicolor和Virginica有重叠),所以很适合用来观察不同模型的分类边界。
西瓜数据集3.0是《机器学习》周志华老师书里的经典案例,用来演示决策树、支持向量机等算法。它有两种版本:带连续属性(密度、含糖率)的完整版和离散属性版,常用于教学演示。
加州房价数据集(California Housing)是做回归任务的标准数据集,包含加州的房屋中位数价格、收入中位数、房龄、房间数、经纬度等信息。它比起波士顿房价更适合做现代回归实验,因为数据量大(约2万条)、特征解释性强、纬度信息还能做空间可视化。做特征工程时,我建议把经纬度组合成区域特征,效果往往会提升不少。
5.2 BlogCatalog、Cliopatria与视觉关系数据集
图神经网络方向的入门数据集之一就是BlogCatalog。它是一个社交博客网络数据集,节点代表博主,边代表好友关系,节点标签是博主的兴趣类别。数据文件通常包含一个边列表和一个节点标签文件,把这两部分加载进PyTorch Geometric或DGL就能跑节点分类任务。做GNN论文消融实验时,BlogCatalog和Cora、Citeseer这类小数据常被一起使用。
Cliopatria是一个跨越6700年历史的历史大数据集,包含人物、地点、事件以及它们之间的关系,很适合做历史知识图谱、图嵌入、时间感知推荐等方向。它体积不算大,但关系复杂,拿来做动态图或时间线推断很有挑战性。
视觉关系数据集方面,常用的是Visual Genome和VRD(Visual Relationship Detection)。这类数据集要求模型不只识别出图像里的物体,还要判断物体之间的关系,比如“人骑自行车”“狗追球”。标注格式比目标检测复杂,通常是一个三元组:<主物体, 关系, 从物体>。做VQA或场景图生成方向的同学肯定不陌生。
5.3 D-Vlog、多模态数据集与CLCD等
D-Vlog是一个用于抑郁症识别研究的视频日志数据集,每个视频样本对应一位真实博主,包含视觉、音频和文本模态的原始数据以及标签,适合做多模态情感分析。多模态数据集在下载时最大的坑是各模态文件分散存放,对齐和同步需要额外处理,建议先读配套的readme,确认时间戳的对应关系。
CLCD这类名称看上去像缩写的数据集,其实不同领域指向完全不同。如果是车道线检测方向,它可能是包含拥挤场景车道线标注的数据集;如果是其他领域,又可能是别的全称。遇到这种缩写数据集,最关键的做法是去查它的官网或论文,确认数据格式和评测方式,不要凭名字猜。
6. 不只会用,更要会做:数据集构建与格式转换实战
6.1 YOLO与COCO格式互转:搞懂标注格式是基本功
很多情况是别人给的数据集是COCO JSON,而YOLO训练需要txt标注;或者反过来,公开数据是YOLO格式,你想用mmdetection训练又需要转成COCO。互转操作并不复杂,但容易出错。
YOLO格式中每张图片对应一个txt文件,每行表示一个目标:类别id 中心点x 中心点y 宽度w 高度h,注意这些值都是相对于图片宽高的归一化值。COCO的JSON则使用绝对像素坐标,并且包含分割多边形。转换的核心就是坐标系的换算。
# COCO bbox转YOLO格式 x_center = (bbox[0] + bbox[2] / 2) / img_width y_center = (bbox[1] + bbox[3] / 2) / img_height w = bbox[2] / img_width h = bbox[3] / img_height转换完成后一定要做可视化验证,我习惯把标注画回图片上随机抽查几十张。格式转换里最容易翻车的就是“坐标是否越界”“宽度高度是否误当成了右下角坐标”,这些小问题平时肉眼看不到,训练时loss就会出现诡异的NaN。
6.2 用torch的Dataset类把“一堆文件”变成“可用数据集”
不论数据是图片、文本还是信号,只要你用PyTorch训练,最后都要包成一个torch.utils.data.Dataset。这个类有两个核心方法:__len__和__getitem__。__getitem__负责根据索引读一个样本并返回(输入, 标签)对。
以图像分类为例,最简单的方式是直接用torchvision.datasets.ImageFolder,它要求数据目录按类别分好:
data/ ├── train/ │ ├── cat/ │ └── dog/ └── val/ ├── cat/ └── dog/如果要处理更复杂的自定义格式,就自己写一个Dataset类:
class MyDataset(Dataset): def __init__(self, img_paths, labels, transform=None): self.img_paths = img_paths self.labels = labels self.transform = transform def __len__(self): return len(self.img_paths) def __getitem__(self, idx): img = Image.open(self.img_paths[idx]).convert('RGB') if self.transform: img = self.transform(img) return img, self.labels[idx]再配合DataLoader设置batch_size、shuffle、num_workers,一个可训练的数据管道就通了。新手最容易忽略的是num_workers参数,在Windows下如果设成大于0,常常会报多进程相关的错误,单机调试时直接设0最省心。
6.3 mmrotate训练DOTA数据集的完整流程要点
用mmrotate训练旋转目标检测模型,严格按官方文档走是可以成功的,但有几个细节值得单独拎出来讲。第一步安装mmrotate时,要确保mmcv版本和你的CUDA、PyTorch版本匹配,否则编译会报错。第二步准备DOTA数据,官方脚本会帮你切图,但切图后标注里有些目标会被切掉一半,如果希望保留完整目标,可以调整切片重叠率,比如设置--overlap 0.2到0.5。
第三步是修改配置文件。mmrotate里的模型配置文件通常已经写好了,你只需要修改数据路径、类别数和训练轮数。要注意DOTA的类别不是COCO的80类,而是15类,类别列表必须对齐。最后一步训练,命令如下:
python tools/train.py configs/rotated_retinanet/rotated_retinanet_obb_r50_fpn_1x_dota.py训练时我建议开启--work-dir指定输出目录,方便管理日志和权重。评测时用官方提供的eval脚本,它会计算mAP,注意旋转框的mAP和水平框的mAP计算方式不同,论文里写清楚就行。
6.4 LoRA数据集JSON:微调模型的数据组织
LoRA微调目前主要应用在AIGC领域,比如用Stable Diffusion训练特定风格的LoRA模型。它的数据集组织方式通常是一个文件夹里放若干张图片,再加一个JSON格式的标注文件。每张图片对应的标注是一段描述文本,用于告诉模型“这张图里有什么”。
常见的JSON结构有两种:一种是数组,每个元素包含image和caption字段;另一种是字典,键是图片文件名,值是文本描述。具体格式取决于你用的训练脚本,比如kohya_ss就偏好特定结构。构建数据集时,图片的清晰度和描述文本的准确性比数量更关键。我实际体验下来,宁可用50张高质量、风格统一的图,也不要硬凑200张风格混乱的图。标注描述不要只写“a photo of xxx”,要写清主体的姿态、环境、光线、材质等属性,LoRA才能真正学到风格而不是学成散装概念。
7. 新兴领域与特种数据集
7.1 具身智能数据集质量要求及评价方法
具身智能是当前AI领域的大热点,强调的是智能体在物理环境中感知、理解、交互和执行任务。热词里提到的“人工智能 关键基础技术 具身智能数据集质量要求及评价方法”,反映的正是这个方向正在走向标准化。具身智能数据通常包含多传感器数据(RGB-D、触觉、力觉、IMU等)和动作控制信号,采集成本高、标注难度大。
这类数据的质量评价,一般要看几个维度:多传感器时序对齐是否精确、场景覆盖是否多样、动作标注是否准确、是否包含可学习的因果关系。和传统静态数据集不同,具身智能数据更看重“数据采集环境”与“真实部署环境”的差异,如果训练数据和测试环境差距太大,模型在真机上很难迁移。
7.2 碳储量分布图数据集的公开获取思路
做土地利用、生态遥感方向,经常需要计算一个地区的碳储量分布图。严格来说没有现成的“碳储量分布图”数据集直接下载,但可以分步拼出来。核心思路是:碳储量 = 各土地利用类型的面积 × 对应的碳密度系数。
公开可以获取的数据包括:土地利用/覆被数据(比如GlobeLand30、FROM-GLC,这些是公开的遥感分类产品)、植被碳密度或生物量数据(比如全球森林生物量数据集)、土壤有机碳数据(比如SoilGrids)。把这些栅格数据在GIS软件里叠加计算,就能生成区域的碳储量空间分布图。要注意统一坐标参考系和栅格分辨率,否则不同来源的数据叠加时会互相错位。
7.3 垂直场景数据集:占道经营、鸟类检测与水下管道缺陷
占道经营数据集、鸟类目标检测数据集、水下管道裂缝数据集这类垂直场景,最大的共同点就是“没有统一标准答案”。很多开源平台能搜到少量标注图片,但往往来源不一、质量参差。想发高质量论文,比较靠谱的做法是:以某个公开数据集做预训练,然后自己采集或标注一批目标场景数据做微调。
比如鸟类检测可以用CUB-200-2011作为细粒度分类的基础,再补充你需要的场景图片。占道经营这类城市管理场景,可以先在开源社区搜罗带有“street vendor”“stall detection”标签的图片,再用标注工具补标。水下管道裂缝更麻烦一些,公开数据少,但可以借助水下机器人拍摄视频,抽帧后用分割模型半自动标注,再人工修正。垂直场景数据集的“论文加分项”不在于规模大,而在于标注质量高、场景定义清晰、评测标准统一。
8. 避坑指南与常见问题
8.1 数据集下载慢、断点续传与镜像问题
很多学术数据集托管在国外服务器,国内下载速度很慢,甚至中途断连。我的经验是:能用命令行工具就用命令行工具,不要用浏览器点击下载。比如用wget -c可以断点续传,用aria2c -x 16可以多线程加速。下载大文件前先估算一下磁盘空间,KITTI原始数据有几百GB,没看清需求就整包下载很容易把磁盘塞满。
大型数据集发布方一般会提供SHA256校验值,下载完务必校验一下,避免压缩包损坏导致解压失败。另外有些数据集需要申请,申请获批后下载链接有时效性,过期了重新生成就好,不用慌。
8.2 标注质量差、类别不平衡怎么办
公开数据集的标注质量参差不齐,即使是知名数据集也有历史遗留问题。处理方式无非三种:人工清洗、让模型辅助清洗、做鲁棒训练。如果标注框明显错位,直接删掉这类样本比硬着头皮训练更明智。类别不平衡问题,优先用重采样或调整损失函数,比如目标检测里常用的focal_loss就能缓解前景背景比例悬殊的问题。分类任务里可以用WeightedRandomSampler让少样本类别有更高的被采样概率。
8.3 数据划分的“作弊”问题
数据划分是写论文时最容易被人质疑的点。如果你自己采集数据,一定要保证训练集、验证集、测试集之间没有数据泄漏。比如同一只鸟的不同照片,如果既有在训练集又有在测试集,模型记住的是个体而不是类别,结果虚高。领域内更常见的做法是“按目标实例划分”而不是“按图像划分”。数据划分的细节必须在论文里写清楚,否则审稿人一旦怀疑你测试集“放水”,整个实验可信度都会崩塌。
8.4 给新手的实操建议
折腾了这么多数据集,我个人最大的感受是:拿到任何数据集,先花半小时读README、看数据结构、统计类别分布,再动手写代码,远比拿到数据就急着开训要快得多。统计工具可以直接用Python的PIL、matplotlib画类别分布图,几行代码就能发现数据里很多问题。把数据准备阶段做扎实了,后面训练、评测、写论文都会顺很多。