2016-04-18 3 views
2

Я хочу извлечь функции с помощью кофе и обучить эти функции с помощью SVM. Я перешел по этой ссылке: http://caffe.berkeleyvision.org/gathered/examples/feature_extraction.html. В этих ссылках показано, как мы можем извлекать функции с помощью caffenet. Но я хочу использовать архитектуру Lenet здесь. Я не могу изменить эту строку команды для Lenet:Извлечение функций CNN с использованием Caffe и train с использованием SVM

./build/tools/extract_features.bin models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel examples/_temp/imagenet_val.prototxt fc7 examples/_temp/features 10 leveldb 

А также, после извлечения особенности, как тренировать эти функции с помощью SVM? Я хочу использовать python для этого. Для, например: Если я получаю функцию из этого кода:

features = net.blobs['pool2'].data.copy() 

Затем, как я могу тренировать эти функции с помощью SVM, определяя собственные классы?

ответ

1

У вас есть два вопроса:

  1. Извлечение функций с помощью LeNet
  2. Обучение в SVM

Извлечение функций с помощью LeNet

Чтобы извлечь функции из LeNet с помощью extract_features.bin, вам нужно иметь файл модели (.caffemodel) и модель def для тестирования (.prototxt).

Подпись extract_features.bin здесь:

Usage: extract_features pretrained_net_param feature_extraction_proto_file extract_feature_blob_name1[,name2,...] save_feature_dataset_name1[,name2,...] num_mini_batches db_type [CPU/GPU] [DEVICE_ID=0] 

Так что, если вы берете в качестве примера файла Вэл prototxt это один (https://github.com/BVLC/caffe/blob/master/models/bvlc_alexnet/train_val.prototxt), вы можете изменить его к архитектуре LeNet и указать его на LMDB/LevelDB , Это должно сделать вам большую часть пути. Когда вы это сделаете и застрянете, вы можете повторно обновить свой вопрос или оставить комментарий здесь, чтобы мы могли помочь.

Обучение SVM на вершине особенностей

Я настоятельно рекомендую использовать в Python scikit-learn для подготовки к SVM из особенностей. Это очень легко начать, включая чтение функций, сохраненных в формате Caffe.

0

Очень отсталый ответ, но должен помочь. Не 100% того, что вы хотите, но я использовал сеть VGG-16 для извлечения функций лица с использованием caffe и выполнения теста точности на небольшом подмножестве набора данных LFW. Именно то, что вам нужно, - это код. Код создает классы для обучения и тестирования и помещает их в SVM для классификации.

https://github.com/wajihullahbaig/VGGFaceMatching