2016-04-18 5 views
2

私はcaffeを使用して機能を抽出し、SVMを使用してこれらの機能をトレーニングします。私はこのリンクを通りました:http://caffe.berkeleyvision.org/gathered/examples/feature_extraction.html。このリンクは、カフェネットを使用して機能を抽出する方法を示しています。しかし、ここではLenetアーキテクチャを使用したいと思っています。Caffeを使用してCNN機能を抽出し、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

あなたがここに二つの質問があります:使用してLeNetから特徴を抽出するためにLeNet

を使用して特徴を抽出SVM

トレーニングLeNet

  • を使用して特徴を抽出

    1. extract_features.binスクリプトでは、モデルファイル(.caffemodel)とモデルdefテストのための試行(.prototxt)。

      extract_features.binの署名はここにある:あなたが一例として取ればvalが、この1(https://github.com/BVLC/caffe/blob/master/models/bvlc_alexnet/train_val.prototxt)を提出prototxt

      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] 
      

      だから、あなたはLeNetアーキテクチャに変更し、あなたのLMDB/LevelDBにそれを指すことができます。それはあなたのところでほとんどの方法を取得する必要があります。一度それをして立ち往生したら、あなたの質問を再更新したり、ここにコメントを投稿したりすることができます。機能

      の上

      トレーニングSVM私は非常に特徴からSVMを訓練するためのPythonのscikit-learnを使用することをお勧めします。 Caffeのフォーマットから保存された機能の読み込みを含め、簡単に始めることができます。

  • 0

    非常に遅れていますが、役立つはずです。 100%ではありませんが、私はCaffeを使用して顔の特徴を抽出し、LFWデータセットの小さなサブセットで精度テストを実行するためにVGG-16ネットを使用しました。あなたが必要としていたことは、コードにあります。このコードは、訓練とテストのためのクラスを作成し、それらを分類のためにSVMにプッシュします。

    https://github.com/wajihullahbaig/VGGFaceMatching

    関連する問題