【发布时间】:2018-10-25 19:26:28
【问题描述】:
使用如下所示的 2D CNN 从图像中提取特征,我如何存储提取的特征以训练 SVM 对特征进行分类?
型号:
model = Sequential()
model.add(Conv2D(32, (3, 3), input_shape=(3, 150, 150)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(32, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Conv2D(64, (3, 3)))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Flatten()) # this converts our 3D feature maps to 1D feature vectors
model.add(Dense(64))
model.add(Activation('relu'))
model.add(Dropout(0.5))
model.add(Dense(4))
model.add(Activation('softmax'))
提取特征:
layer_name = 'layer_name'
intermediate_layer_model = Model(inputs=model.input,
outputs=model.get_layer(layer_name).output)
intermediate_output = intermediate_layer_model.predict(data)
步骤:
-
从我的图像数据集中存储这些提取的特征,以便训练 SVM 分类器。
-
使用
train_test_split()分割训练和测试数据 -
训练分类器:
clf = svm.SVC() clf.fit(X, y)
我需要知道怎么做。
【问题讨论】:
-
你可以试试h5py,或者np.save等......
-
你为什么不把输出保存在一个泡菜里? docs.python.org/3/library/pickle.html
-
能否提供代码示例,好吗? :)
标签: python tensorflow machine-learning keras deep-learning