2016-12-25 155 views
0

我想在keras中使用Convul​​ation1D對數據集進行分類。keras中的Convolution1D中的input_shape參數不匹配錯誤

數據集描述

列車數據集大小= [340,30];沒有樣本= 340,樣本維度= 30

測試數據集大小= [230,30];沒有樣品= 230,樣品尺寸= 30

標籤尺寸= 2

拳我通過下面的代碼使用從keras網站中的信息試圖https://keras.io/layers/convolutional/

batch_size=1 
nb_epoch = 10 
sizeX=340 
sizeY=30 
model = Sequential() 
model.add(Convolution1D(64, 3, border_mode='same', input_shape=(sizeX,sizeY))) 
model.add(Convolution1D(32, 3, border_mode='same')) 
model.add(Convolution1D(16, 3, border_mode='same')) 
model.add(Dense(1)) 
model.add(Activation('sigmoid')) 

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

print('Train...') 
model.fit(X_train_transformed, y_train, batch_size=batch_size, nb_epoch=nb_epoch, 
      validation_data=(X_test, y_test)) 
score, acc = model.evaluate(X_test_transformed, y_test, batch_size=batch_size) 
print('Test score:', score) 
print('Test accuracy:', acc) 

它提供了以下錯誤, ValueError:錯誤時檢查模型輸入:期望convolution1d_input_1有3個維度,但得到形狀與陣列(340,30)

然後我h AVE通過使用下面的代碼變換的訓練和測試數據轉換成3維的2維,

X_train = np.reshape(X_train_transformed, (X_train_transformed.shape[0], X_train_transformed.shape[1], 1)) 
X_test = np.reshape(X_test_transformed, (X_test_transformed.shape[0], X_test_transformed.shape[1], 1)) 

然後我運行修改下面的代碼,

batch_size=1 
nb_epoch = 10 
sizeX=340 
sizeY=30 

model = Sequential() 
model.add(Convolution1D(64, 3, border_mode='same', input_shape=(sizeX,sizeY))) 
model.add(Convolution1D(32, 3, border_mode='same')) 
model.add(Convolution1D(16, 3, border_mode='same')) 
model.add(Dense(1)) 
model.add(Activation('sigmoid')) 

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

print('Train...') 
model.fit(X_train, y_train, batch_size=batch_size, nb_epoch=nb_epoch, 
      validation_data=(X_test, y_test)) 
score, acc = model.evaluate(X_test, y_test, batch_size=batch_size) 
print('Test score:', score) 
print('Test accuracy:', acc) 

但它示出了錯誤, ValueError異常:檢查模型輸入時出錯:期望convolution1d_input_1具有形狀(無,340,30),但得到具有形狀的陣列(340,30,1)

我無法找到尺寸不匹配的錯誤在這裏。

回答

0

你可以試試嗎?

X_train = np.reshape(X_train_transformed, (1, X_train_transformed.shape[0], X_train_transformed.shape[1])) 
X_test = np.reshape(X_test_transformed, (1, X_test_transformed.shape[0], X_test_transformed.shape[1])) 
+0

當我用它試試,它提供了以下錯誤ValueError異常:錯誤檢查時模型的目標:預計activation_1有3個維度,但得到了與形狀陣​​列(340,1) –

+0

你能張貼的堆棧跟蹤錯誤? –

+0

你有想過嗎?如果您有問題,請發佈答案,我有同樣的問題 – jerpint

相關問題