gpt4 book ai didi

python - 如何存储 CNN 提取的特征来训练 SVM 分类器

转载 作者:行者123 更新时间:2023-11-30 09:47:36 25 4
gpt4 key购买 nike

使用如下所示的 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)

我需要知道如何做到这一点。

最佳答案

您可以尝试将它们保存为 HDF5 文件格式并加载。与泡菜相比,它有几个优点。保存和加载速度要快得多(特别是对于大型数组)。

为此,您需要安装h5py软件包。保存和加载示例代码如下:

保存:

import h5py
h5f = h5py.File('your_file_name.h5', 'w')
h5f.create_dataset('layer_model', data=intermediate_layer_model)
h5f.create_dataset('output', data=intermediate_output)
h5f.close()

用于加载

import h5py
h5f = h5py.File('your_file_name.h5', 'r')
intermediate_layer_model = h5f['layer_model'][:]
intermediate_output = h5f['output'][:]
h5f.close()

关于python - 如何存储 CNN 提取的特征来训练 SVM 分类器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50359055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com