【问题标题】:ValueError: `sequences` must be a list of iterables. Found non-iterable: 0.0382184ValueError: `sequences` 必须是可迭代的列表。发现不可迭代:0.0382184
【发布时间】:2021-05-23 18:19:17
【问题描述】:

我正在从音频文件中提取 Mel 频谱图,然后我想应用填充

y,sr = librosa.load(r"/content/test.WAV")
mel = librosa.feature.melspectrogram(y=y, sr=sr)
mel=np.mean(mel, axis=0)
mel=tf.keras.preprocessing.sequence.pad_sequences(mel,maxlen=1500)

但我收到 TypeError: 'numpy.float32' 类型的对象没有 len() 在处理上述异常期间,发生了另一个异常:
ValueError: 序列必须是一个可迭代的列表。发现不可迭代:0.0382184 我尝试更改mel=tf.keras.preprocessing.sequence.pad_sequences(list(mel),maxlen=1500) 它没有用 StackOverflow 上的 2 或 3 个问题类似于我的问题,没有一个对我有帮助,所以请不要费心建议他们

【问题讨论】:

  • 不,mel=np.mean(Mel, axis=0) 不返回单个浮点数,它返回形状为 (4280,) 的 NumPy 数组
  • 阅读错误信息,它说序列必须是可迭代的列表,numpy 数组 (4280,) 不是可迭代的列表,而是二维列表。
  • 那么我使用它进行推理的解决方案是什么,所以当我在训练中使用 1300 列表的填充时,我只能提供 1 个列表

标签: python numpy tensorflow librosa


【解决方案1】:

我刚发现你必须做一些重塑

mel=mel.reshape(1,mel.shape[0])

【讨论】:

    猜你喜欢
    • 2019-11-08
    • 2014-08-06
    • 2019-07-05
    • 2023-01-09
    • 2014-04-26
    • 1970-01-01
    • 2018-10-01
    • 2020-10-15
    • 2019-03-05
    相关资源
    最近更新 更多