Keras,从一个实例预测标签时尺寸不匹配

问题描述

我创建了一个预测语音命令的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,S=librosa.power_to_db(S))

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

model.predict(mels)

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

解决方法

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