繁体   English   中英

Keras模型密集输入形状投掷误差

[英]Keras Model Dense Input Shape Throwing Error

我有一个形状为X_train.shape(52, 54)的特征向量

当我训练keras模型时,将错误抛出:

ValueError: Error when checking model input: expected dense_109_input to have shape (None, 52) but got array with shape (52, 54)

我已经尝试了几乎所有我能想到的一切以及扫描的堆栈溢出,但是我的问题仍然存在。 代码如下:

import pandas as pd
from keras.models import Sequential
from keras.layers import Dense
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

##### Reading CSV #####  
data = pd.read_csv('Dataset/Emotion_data.csv')

X = data.ix[:, 4:]
y = data['label']

##### Normalizing #####
featureName = list(X)
for name in featureName:
    X[name] = (X[name] - min(X[name]))/(max(X[name]) - min(X[name]))

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=3)

##### Model #####
model = Sequential()

model.add(Dense(100, input_shape=(54,), activation='relu'))
model.add(Dense(100, activation='relu'))
model.add(Dense(1, activation='softmax'))

model.compile(optimizer='adam', loss='mean_squared_error', metrics=['accuracy'])

model.fit(X_train, y_train)
prediction = model.predict(X_test)
print(accuracy_score(y_test, prediction))

如果有人对数据头感兴趣

In[42]: X_train.head()
Out[42]: 
       tempo  total_beats  average_beats  chroma_stft_mean  chroma_stft_std  \
35  0.438961     0.480897       0.505383          0.504320         0.938452   
34  0.520000     0.552580       0.500670          0.581778         0.680247   
63  0.477551     0.361328       0.334990          0.705472         0.357676   
27  0.477551     0.345419       0.309433          0.492245         0.728405   
43  0.520000     0.530305       0.495715          0.306097         0.663995   

    chroma_stft_var  chroma_cq_mean  chroma_cq_std  chroma_cq_var  \
35         0.932494        0.975206       0.394472       0.366960   
34         0.657810        0.654770       0.550766       0.522269   
63         0.333977        0.495473       0.618748       0.591578   
27         0.707998        0.644147       0.628125       0.601222   
43         0.640980        0.591299       0.639918       0.613379   

    chroma_cens_mean    ...       zcr_var  harm_mean  harm_std  harm_var  \
35          0.964034    ...      0.381363   0.021468  0.426776  0.225840   
34          0.755071    ...      0.213207   0.021598  0.115191  0.031476   
63          0.704930    ...      0.197960   0.021620  0.350194  0.163286   
27          0.715832    ...      0.247092   0.022253  0.319208  0.140714   
43          0.784991    ...      0.221276   0.021777  0.656981  0.471881   

    perc_mean  perc_std  perc_var  frame_mean  frame_std  frame_var  
35   0.362241  0.673257  0.467421    0.343459   0.174215   0.048846  
34   0.365434  0.152561  0.031588    0.091940   0.088991   0.018342  
63   0.340043  0.320664  0.116833    0.097610   0.077334   0.015154  
27   0.372315  0.604247  0.380492    0.995443   1.000000   1.000000  
43   0.377154  0.529161  0.296033    0.122519   0.089255   0.018417  

[5 rows x 54 columns]

您没有在第一层中正确定义输入形状

model.add(Dense(100, input_shape=(54,), activation='relu'))

尝试将第一层中的代码更改为

model.add(Dense(100, input_shape=(52, 54), activation'relu))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM