在PyTorch中,DataLoader
的collate_fn
参数控制如何将多个数据样本(来自Dataset
的__getitem__
方法的返回值)批处理(或“collate”)成一个批次。默认情况下,DataLoader
使用一个默认的collate_fn
,这个函数会尝试将列表中的数据合并成批次。对于张量数据,它会将它们堆叠起来;对于序列数据(如列表),它会将它们合并;对于数值和布尔值,它会尝试将它们转换为张量。
因此,当你的Dataset
的__getitem__
方法返回包含布尔值的数据时,DataLoader
通过其默认的collate_fn
将这些布尔值转换为了PyTorch布尔张量,即使你在__getitem__
方法中没有显式进行这种转换。这是为了保持数据类型的一致性,便于在PyTorch中进行批量处理和运算。
pytorch中
batch - (11,batch_size)
batch
实际上是一个包含两个或多个元素的元组(或者是列表),而不是直接包含数据项的单一对象。这种情况通常发生在当你的Dataset
对象返回的每个项是一个元组,比如(data, label)
,而DataLoader
将这些项集合成批次时。这时,len(batch)
实际上给出的是元组中元素的数量,通常对应于数据和标签(如果有其他元素,数字可能更大)。
在这种情况下,batch[0]
可能是所有数据项的集合,而batch[1]
是所有标签的集合。因此,len(batch[0])
实际上是批量大小,也就是每个批次中数据项的数量,这与你设置的batch_size
相匹配。
举个例子,如果你的数据集返回的每个项是一个形如(image, label)
的元组,那么经过DataLoader
处理后,每个batch
将是形如([images], [labels])
的结构,其中[images]
和[labels]
分别是图片和标签的列表(或张量)。在这种情况下:
len(batch)
将返回2(因为batch
包含两个元素:数据和标签)。len(batch[0])
将返回批次中的数据项数量,即batch_size
。 这解释了为什么你会观察到len(batch[0]) = batch_size
,而不是len(batch) = batch_size
的情况。
Chainer 中 batch - (batch_size, 11) 每个样本包括11个特征
人体举行框架的中心点(待定)
根据1s,10帧,预测1s,10帧 intput_len=10, offset_len=10, pred_len=10
如果想与bibtrap相比,需预测45fps
通过video_0014,video_0017 暂时感觉是30帧
- 待测试eval_cv.py(不想测试了,用不到)
train_py_epoch为正确代码 fpl总共有72800个轨迹