我目前正在CNN上使用keras進行特徵提取。所有圖像爲276行,x列和3種顏色尺寸(RGB)。 列數等於它應該生成的輸出特徵向量的長度。如何使用Keras在CNN中使用可變大小的圖像?
輸入數據表示 - 編輯:
給予圖像輸入數據包括所述圖像的縱列切片。這意味着圖像的實際輸入是(276,3),列數等於它應該生成的特徵長度。
我的初始模型是這樣:
print "Model Definition"
model = Sequential()
model.add(Convolution2D(64,row,1,input_shape=(row,None,3)))
print model.output_shape
model.add(MaxPooling2D(pool_size=(1,64)))
print model.output_shape
model.add(Dense(1,activation='relu'))
我在打印之間的output.shape
印刷品和我似乎是對輸出位困惑。
Model Definition
(None, 1, None, 64)
(None, 1, None, 64)
爲什麼3D數據變成4d?並在maxpoolling2d層之後繼續保持這種狀態?
我的緻密層/完全連接層是給我一些問題,這裏的尺寸:
Traceback (most recent call last):
File "keras_convolutional_feature_extraction.py", line 466, in <module>
model(0,train_input_data,output_data_train,test_input_data,output_data_test)
File "keras_convolutional_feature_extraction.py", line 440, in model
model.add(Dense(1,activation='relu'))
File "/usr/local/lib/python2.7/dist-packages/keras/models.py", line 324, in add
output_tensor = layer(self.outputs[0])
File "/usr/local/lib/python2.7/dist-packages/keras/engine/topology.py", line 474, in __call__
self.assert_input_compatibility(x)
File "/usr/local/lib/python2.7/dist-packages/keras/engine/topology.py", line 415, in assert_input_compatibility
str(K.ndim(x)))
Exception: Input 0 is incompatible with layer dense_1: expected ndim=2, found ndim=4
那麼,爲什麼我不能夠獲取數據到從3D圖像的1個單價值。 ?
看我的編輯。此外,我改變了你的問題標題,以更好地反映問題。如果您不同意,請隨時將其改回。 –