如何将SVM分类器与Keras CNN模型结合使用?

jvidinwx  于 2023-01-02  发布在  其他
关注(0)|答案(1)|浏览(245)

我正在使用CNN预测癫痫发作。我的数据集中有2个类。我想使用CNN模型作为特征提取器,然后我想使用SVM作为分类器。我不知道如何使用我的模型。
我在我的模型中使用mode.fit_generator,我没有x和y,因为我使用生成器处理数据。我如何使用传统的SVM处理我的模型?

    • 我的模特**
input_shape=(33,3840,1)
    model = Sequential()
    #C1
    model.add(Conv2D(16, (5, 5), strides=( 2, 2), padding='same',activation='relu', 
    input_shape=input_shape))
    model.add(keras.layers.MaxPooling2D(pool_size=( 2, 2),  padding='same'))
    model.add(BatchNormalization())
    model.compile(loss=categorical_focal_loss(), optimizer=opt_adam, metrics=['accuracy'])
    history=model.fit_generator(generate_arrays_for_training(indexPat, train_data, start=0,end=100), 
                                validation_data=generate_arrays_for_training(indexPat, test_data, start=0,end=100),
                                steps_per_epoch=int((len(train_data)/2)), 
                                validation_steps=int((len(test_data)/2)),
                                verbose=2,epochs=65, max_queue_size=2, shuffle=True)

我想让SVM分类器作为我的最终分类器在这个模型中,所以我怎么做呢?
任何帮助都将不胜感激。先谢了。

vuv7lop3

vuv7lop31#

首先使用predict从CNN模型提取特征,然后使用提取的特征作为SVM的输入。

train_features = model.predict(train_data)
test_features = model.predict(test_data)

from sklearn import svm
clf = svm.SVC()
clf.fit(train_features, train_labels)

predictions = clf.predict(test_features)

相关问题