深度学习项目人工测试数据维度异常问题求助
滑动窗口处理后维度异常的排查思路
可能的核心原因
- 重复的帧维度切片:滑动窗口逻辑中错误地对帧序列做了双重切片,比如原本应该取
sample[i:i+window_size, :](对应(12,8)),却写成了sample[i:i+window_size, i:i+window_size, :],直接多出来一个帧维度,导致单窗口shape变成(12,12,8),最终整体维度叠加为(9989,12,12,8)。 - 嵌套循环逻辑冗余:外层遍历样本、内层遍历滑动窗口时,额外嵌套了对帧维度的循环处理,把每个窗口内的帧又做了一次窗口切割,导致维度叠加。
- 拼接轴参数错误:使用
np.concatenate/torch.cat拼接窗口时,误将拼接轴设为1而非0,使得原本应该在样本轴合并的窗口,被叠加到了帧维度上,造成维度膨胀。 - 初始数据维度不符:生成的虚拟数据实际维度并非预期的
(num_examples, num_frames, 特征数),可能误生成了(num_examples, num_frames, num_frames, 特征数),后续处理自然会多一层维度。
快速排查步骤
- 确认初始数据维度:打印原始虚拟数据的shape,执行
print(original_data.shape),确保是(num_examples, num_frames, 8),排除初始数据本身的维度错误。 - 逐步骤检查窗口shape:在滑动窗口生成代码中,每生成一个窗口就打印其shape,比如:
window = sample[i:i+12, :] print(window.shape) # 应该输出(12,8),如果是(12,12,8),立刻定位切片逻辑问题 - 核对拼接逻辑:检查拼接窗口的代码,若使用
np.array(input_court_examples),直接转换即可得到(N,12,8);若用concatenate,确保指定axis=0,避免在非样本轴拼接。 - 排查库函数(若使用):如果用了第三方滑动窗口工具,查看函数文档或源码,确认是否默认添加了额外维度,比如是否把窗口步长或其他参数映射成了输出维度。
内容的提问来源于stack exchange,提问作者Baptiste G
相关产品推荐
相关产品推荐

