【发布时间】:2017-03-10 01:46:20
【问题描述】:
我目前正在对使用 keras 进行特征提取的图像进行 CNN 研究。所有图像为 276 行、x 列和 3 个颜色维度 (RGB)。 列数等于它应该生成的输出特征向量的长度。
输入数据表示 - 编辑:
图像的输入数据由图像的列切片组成。这意味着图像的实际输入是 (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 个单一值。 ?
【问题讨论】:
-
查看我的编辑。我还更改了您的问题标题以更好地反映问题。如果您不同意,请随时更改。
标签: python-2.7 keras conv-neural-network dimension