每次尝试编译模型时,都会出现此错误:
我的X_train是形状为75859,99,13的数组,我将其展平为(75859,1287)。它包含有关从wav文件提取的梅尔频率倒谱系数的信息。 y_train不是形状(75859,35),它包含所有标签。
from keras import models
from keras import layers
from keras import Sequential
from keras import backend as K
import logging
logging.getLogger('tensorflow').disabled = True # Remove some unwanted warnings
model = Sequential()
model.add(layers.Dense(64,activation = 'relu',input_dim = X_train.shape[1],))
model.add(layers.Dense(64,activation = 'relu'))
model.add(layers.Dense(y_train.shape[1],activation = 'softmax'))
model.compile(optimizer='rmsprop',loss='categorical_crossentropy',metrics=['accuracy'])
model.summary()
Layer (type) Output Shape Param #
=================================================================
dense_1 (Dense) (None,64) 82432
_________________________________________________________________
dense_2 (Dense) (None,64) 4160
_________________________________________________________________
dense_3 (Dense) (None,35) 2275
=================================================================
Total params: 88,867
Trainable params: 88,867
Non-trainable params: 0
_________________________________________________________________
model.fit(X_train,y_train,epochs=10,batch_size=4,verbose=1)
ValueError:Tensor(“ training / RMSprop / Variable:0”,shape =(1287,64), dtype = float32_ref)必须来自与同一图 Tensor(“ RMSprop / rho / read:0”,shape =(),dtype = float32)。
我还尝试使用稀疏的categorical_crossentropy作为损失,但在这种情况下,就是这样:
检查目标时出错:预期density_7的形状为(1,),但数组的形状为(35,)