2016-12-25 153 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

相关问题