预期density_3_input具有形状(None,40),但具有形状为(40,1)的数组

用户名

我是深度学习的初学者,并且正在尝试通过对数据集执行音频分析来练习用Python实现神经网络的实现。我一直在遵循Urban Sound Challenge教程,并完成了用于训练模型的代码,但是在尝试在测试集上运行模型时,我总是遇到错误。

这是我用于创建模型和训练的代码:

import numpy as np
from sklearn.preprocessing import LabelEncoder
from keras.utils import np_utils
from keras.models import Sequential
from keras.layers import Dense, Dropout, Activation, Flatten

num_labels = y.shape[1]
filter_size = 2

model = Sequential()

model.add(Dense(256, input_shape = (40,)))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(num_labels))
model.add(Activation('softmax'))
model.compile(loss='categorical_crossentropy', metrics=['accuracy'], optimizer='adam')
model.fit(X, y, batch_size=32, epochs=40, validation_data=(val_X, val_Y))

在拟合模型之前运行model.summary()给我:

_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
dense_3 (Dense)              (None, 256)               10496     
_________________________________________________________________
activation_3 (Activation)    (None, 256)               0         
_________________________________________________________________
dropout_2 (Dropout)          (None, 256)               0         
_________________________________________________________________
dense_4 (Dense)              (None, 10)                2570      
_________________________________________________________________
activation_4 (Activation)    (None, 10)                0         
=================================================================
Total params: 13,066
Trainable params: 13,066
Non-trainable params: 0
_________________________________________________________________

拟合模型后,我尝试在一个文件上运行它,以便可以对声音进行分类。

file_name = ".../UrbanSoundClassifier/test/Test/5.wav"
test_X, sample_rate = librosa.load(file_name,res_type='kaiser_fast')
mfccs = np.mean(librosa.feature.mfcc(y=test_X, sr=sample_rate, n_mfcc=40).T,axis=0)
test_X = np.array(mfccs)
print(model.predict(test_X))

但是,我得到

ValueError: Error when checking : expected dense_3_input to have shape  

(无,40),但得到形状为(40,1)的数组

有人会为我指出如何测试模型的正确方向吗?我不知道model.predict()应该输入什么

完整的代码可以在这里找到

马尔辛·莫耶科(MarcinMożejko)

所以:

  1. 最简单的解决方法是重塑test_x

    test_x = test_x.reshape((1, 40))
    
  2. 更复杂的是重用您具有的管道来创建trainvalid设置测试集。请注意,在情况下,您应用于数据文件的过程完全不同test我将创建一个测试数据框:

    test_dataframe = pd.DataFrame({'filename': ["here path to test file"]}
    

    然后重用现有管道来创建验证集。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

预期density_input具有形状(7,),但具有形状(1,)的数组

预期density_3具有形状(None,1),但获得具有形状的数组(17268,2)

ValueError:检查输入时出错:预期density_13_input具有形状(3,),但数组的形状为(1,)

预期density_8具有形状(2,),但具有形状(1,)的数组

ValueError:检查输入时出错:预期density_1_input具有形状(24,),但数组的形状为(1,)

检查输入时出错:预期density_203_input具有形状(1202),但数组形状为(1,)

ValueError:检查目标时出错:预期density_3具有形状(1,),但数组形状为(2,)角

在Keras中进行转移学习:ValueError:检查目标时出错:预期density_26具有形状(None,3),但数组的形状为(3000,1)

Keras ValueError:ValueError:检查目标时出错:预期density_4具有形状(None,2),但具有形状为(2592,1)的数组Python3

ValueError:检查输入时出错:预期dense_1_input 具有形状(3,) 但得到形状为(2,) 的数组

嵌入输入形状时出错:预期embedding_1_input具有形状(25,),但数组的形状为(1,)

ValueError:检查模型目标时发生错误:预期density_4具有形状(None,4),但数组的形状为(13252,1)

ValueError:检查输入时出错:预期density_1_input具有形状(无,无,9000),但数组的形状为(9000、1、4)

ValueError:检查输入时出错:预期dense_1_input具有形状(180,)但得到形状为(1,)的数组

检查输入时出错:预期dense_1_input 具有形状(1500,) 但得到形状为(1,) 的数组

ValueError:检查输入时出错:预期 embedding_1_input 具有形状 (256,) 但得到形状为 (1,) 的数组

带Keras的SKlearn Tfidfvectorizer:预期density_input_1具有形状

检查输入时出错:预期dense_1_input 具有形状(784,) 但得到形状为(10,) 的数组

检查输入时出错:预期dense_1_input 具有形状(3773,) 但得到形状为(111,) 的数组

拟合方法中的keras错误:预期model_2具有形状(None,252,252,1)但得到形状为(300,128,128,3)的数组

检查模型输入时出错:预期convolution2d_input_1具有形状(无,3、32、32),但数组的形状为(50000、32、32、3)

检查输入时出错:预期conv2d_1_input具有形状(3、32、32),但数组的形状为(32、32、3)

检查输入时出错:预期 conv2d_3_input 具有形状 (32, 32, 1) 但得到形状为 (32, 32, 3) 的数组

python 3.x Keras ValueError:检查目标时出错:预期seq_input具有形状(无,2)但得到形状为(16,1)的数组

检查输入时出错:预期 conv2d_1_input 具有形状 (64, 64, 3) 但得到形状为 (64, 64, 4) 的数组

ValueError:检查输入时出错:预期 conv2d_9_input 具有形状 (64, 64, 3) 但得到形状为 (32, 32, 1) 的数组

Keras检查输入时出错:预期input_4具有形状(299、299、3),但数组具有形状(64、64、3)

ValueError:检查目标时出错:预期density_22具有形状(100,50),但数组的形状为(1,50)

Keras:期望activation_3具有形状(无,3),但具有形状的数组(5708,1)