去噪自编码器输入维度能否为n*1?功率数据reshape训练咨询
结论
技术上只要模型输入层维度匹配,(5760,1,1)的形状可以跑通训练流程,但完全不建议这么做,训练出来的模型基本不具备实用价值。
- 你之前处理5分钟粒度数据的reshape逻辑是合理的:总样本数1152、单样本时间步长5,1152*5刚好和4天1分钟采样的总数据量5760对齐,本质是把连续5个1分钟点打包为一个时序样本,保留了短时间内的功率变化关联。
- 把1分钟数据reshape为
(5760,1,1)的核心问题是完全打碎了时序依赖:这个形状等价于每个样本只有1个孤立的功率单点,没有任何前后时间步的关联信息。功率数据本身是强时序连续数据,还存在小时、天级别的周期规律,单点输入下自编码器根本学不到有效的时序特征,不管是去噪还是功率分解的效果都会极差。 - 正确的1分钟数据reshape思路应该延续你处理5分钟数据的逻辑:先选定合适的时间窗口长度(比如选30、60、120甚至1440个时间步,对应30分钟、1小时、2小时、1天的连续序列),把连续N个采样点打包为一个时序样本,最终reshape为
(样本数, N, 1)即可,只要三个维度的乘积和原始数据总长度一致就不会出现维度报错。
你当前写的reshape实现代码如下:
# Using 5min data x_train = x_train.reshape((1152,5,1)) y_train = y_train.reshape((1152,5,1)) y_test = y_test.reshape((864,5,1)) x_test = x_test.reshape((864,5,1)) # Using 1min data x_train = x_train.reshape((5760,1,1)) y_train = y_train.reshape((5760,1,1)) y_test = y_test.reshape((4320,1,1)) x_test = x_test.reshape((4320,1,1))
额外提醒:如果用单点输入,你的去噪自编码器本质退化成了普通的全连接点映射模型,完全浪费了1分钟高采样率数据的时序价值。
内容的提问来源于stack exchange,提问作者Tiffany
相关产品推荐
相关产品推荐

