在利用CNN提取特征的同时,如何利用SVM进行分类?

2024-09-30 00:22:35 发布

您现在位置:Python中文网/ 问答频道 /正文

   conv12 = Conv2D(32, (3, 3), activation='relu', padding='same')(up12)
   conv12 = Dropout(0.3)(conv12)
   conv12 = Conv2D(32, (3, 3), activation='relu', padding='same')(conv12)
   
   conv13 = Conv2D(1, (1, 1), activation='sigmoid')(conv12)

   model = Model(inputs=[inputs], outputs=[conv13])

   model.compile(optimizer=Adam(lr=.00045), loss=dice_coef_loss, metrics=[dice_coef])

   return model

在conv13层之后,我想使用SVM,我该怎么做呢?我对这件事还不熟悉,也不知道该怎么办


Tags: modeldiceactivationdropoutrelusameinputspadding
1条回答
网友
1楼 · 发布于 2024-09-30 00:22:35

您的神经网络在给定输入(我假设的图像)的情况下产生输出。当您将此输出设置为来自conv13层的参数时,它将是一个特定大小的向量。现在可以将此输出视为SVM分类器的输入。但是,对于这一步,您不需要坚持使用Keras,因为像scikit-learn这样的库已经实现了一种更简单的方法

假设您的CNN生成一组向量,如X =[95, 25, ..., 45, 24]作为输出。如果有一组标签y = {0, 1},则可以执行以下操作:

from sklearn.svm import SVC

clf = SVC() # Play with hyperparameters.

clf.predict([[95, 25, ..., 45, 24]]) # Output: array([1])

见:https://scikit-learn.org/stable/modules/svm.html

相关问题 更多 >

    热门问题