这里 'split'
的中文意思是"数据分割"或"数据划分"。
在机器学习和深度学习中,数据集通常会被划分成训练集、验证集和测试集,这就是所谓的数据分割或数据划分。
在这个例子中:
'xsub_train'
表示交叉主体(cross-subject)训练集,包含了属于这个 split 的样本 ID。'xsub_val'
表示交叉主体验证集,包含了属于这个 split 的样本 ID。
通过对数据进行这种分割,可以在训练模型时使用训练集进行参数优化,使用验证集进行超参数调优和模型选择,最后在测试集上评估模型的泛化性能。
所以这里的 'split'
字段就是用来记录这种数据划分信息的,方便后续的数据处理和模型训练。
data= {
'split': {
'xsub_train': ['S001C001P004R002A026', 'S001C002P004R001A016', 'S001C001P008R001A051', 'S001C001P001R001A001',..., 'S002C003P008R002A001'],
'xsub_val': ['S002C001P007R002A056', ..., 'S001C002P007R002A041']
},
'annotations': [
{
'frame_dir': 'S001C001P004R002A026',
'label': 26,
'img_shape': (540, 960),
'original_shape': (540, 960),
'total_frames': 90,
'num_person_raw': 1,
'keypoint': numpy.array([[[[501.2, 145.1],
[502.3, 146.7],
# ... additional keypoint coordinates
]]])
},
# ... additional annotation dictionaries
]
}
这个数据结构包含两个主要部分:
-
'split'
- 这部分包含了数据集的不同 split 信息,如
'xsub_train'
和'xsub_val'
。 - 每个 split 对应一个列表,列表中包含了属于该 split 的样本 ID。
- 这部分包含了数据集的不同 split 信息,如
-
'annotations'
- 这部分包含了实际的注释数据。
- 每个注释数据都是一个字典,其中包含了与该样本相关的各种信息,如
'frame_dir'
、'label'
、'img_shape'
、'original_shape'
、'total_frames'
、'num_person_raw'
和'keypoint'
。 'keypoint'
字段是一个 numpy 数组,表示该样本的关键点坐标。
总的来说,这种数据结构可以很好地表示一个带有 split 信息的注释数据集。'split'
部分用于存储不同 split 的样本 ID,而 'annotations'
部分则存储了每个样本的详细注释信息。这种结构可以方便地用于数据处理和模型训练等场景。