You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于LSTM的音乐生成AI报错ValueError:需传入二维输入

解决LSTM音乐生成AI过采样时的ValueError问题

问题核心

你遇到的ValueError: Must pass 2-d input. shape=(1868, 32, 1),本质是过采样函数要求输入为2维数组,但你的network_input是LSTM需要的3维数组(样本数,序列长度,特征数)。

解决方案

过采样工具(如SMOTE)仅支持处理2维表格数据,因此需要先将3维序列数据展平为2维,过采样后再恢复3维结构适配LSTM:

  1. 展平3D输入为2D
    将每个序列的时间步和特征合并为一维特征:

    # 把(1868, 32, 1)转为(1868, 32)
    network_input_flat = network_input.reshape(network_input.shape[0], -1)
    
  2. 执行过采样
    用你使用的过采样方法处理展平后的输入和输出:

    # 以SMOTE为例,根据实际使用的过采样类调整
    from imblearn.over_sampling import SMOTE
    oversampler = SMOTE()
    networkInputShaped_flat, networkOutputShaped = oversampler.fit_resample(network_input_flat, network_output)
    
  3. 恢复3D输入形状
    将过采样后的2D数据转回LSTM需要的3维结构:

    # 转回(新样本数, 32, 1)
    networkInputShaped = networkInputShaped_flat.reshape(networkInputShaped_flat.shape[0], seqlength, 1)
    

额外注意事项

  • 若教程中的oversample是自定义函数,检查教程里的network_input形状是否为2维——可能教程是将序列展平后作为模型输入,而你保留了LSTM标准的3维输入结构,导致不匹配。
  • 确认network_output的形状是否符合过采样要求,通常应为1维标签数组。

内容的提问来源于stack exchange,提问作者R1B07008

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 06:02:09