我正在做二进制分类问题,我的模型架构如下
def CNN_model(height, width, depth):
input_shape = (height, width, depth)
model = Sequential()
# Block 1
model.add(Conv2D(64, kernel_size=(3, 3), strides=1, activation='relu', input_shape=input_shape, padding='VALID'))
model.add(Conv2D(64, kernel_size=(3, 3), strides=1, activation='relu', padding='VALID'))
model.add(MaxPooling2D(pool_size=(2, 2)))
# Block 2
model.add(Conv2D(128, kernel_size=(3, 3), strides=1, activation='relu', padding='VALID'))
model.add(Conv2D(128, kernel_size=(3, 3), strides=1, activation='relu', padding='VALID'))
model.add(AveragePooling2D(pool_size=(19, 19)))
# set of FC => RELU layers
model.add(Flatten())
model.add(Dense(128))
model.add(Activation('relu'))
model.add(BatchNormalization())
model.add(Dense(num_classes, activation='softmax'))
model.compile(loss=keras.losses.binary_crossentropy,
optimizer=keras.optimizers.Adadelta(),
metrics=['accuracy'])
return modelRun Code Online (Sandbox Code Playgroud)
我需要测试集上的每个图像,我得到一个从FC层收集的128-D特征向量用于SVM分类.更多细节,来自model.add(Dense(128)).你能告诉我如何解决这个问题吗?谢谢!