【问题标题】:Keras, dimension mismatch when predicting label from one instanceKeras,从一个实例预测标签时的尺寸不匹配
【发布时间】:2020-09-19 16:50:49
【问题描述】:

我创建了一个预测语音命令的 CNN。我现在正在记录语音命令的各个实例,提取 MFCC,并使用 model.predict() 对其进行分类。

y, sr = librosa.load('audio.wav')
samples = librosa.resample(y, sr, 8000)
S = librosa.feature.melspectrogram(y=samples, sr=8000, n_mels=26, fmax=4000) 
mels = librosa.feature.mfcc(y=samples, sr=8000, S=librosa.power_to_db(S))

但是,当我使用以下内容时,会出现尺寸不匹配错误(预期为 4,收到 2):

model.predict(mels)

当我按照某些人的建议使用 model.predict(np.array[mels]) 时,它会给出相同的错误(预期为 4,收到 3)。由于我使用二维的 MFCC 来训练原始模型,我不确定为什么它不能基于二维数组进行预测。

【问题讨论】:

  • model.predict 可能希望对一批进行预测,而您只想输入一个示例。你试过np.expand_dims()吗?
  • 我试过 np.expand_dims 但我得到了和上面一样的错误。

标签: numpy tensorflow keras conv-neural-network dimension


【解决方案1】:

我意识到 Keras 在预测时需要与训练时相同的批量大小。一个答案是使用之前的权重构建一个新模型,然后使用它来预测 batch_size=1。答案链接here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-26
    • 2019-06-28
    • 1970-01-01
    • 2019-05-08
    相关资源
    最近更新 更多