[英]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.