In [1]:
import sys
sys.path.append('../src')
import settings
sys.path.append(settings.CAFFE_PYTHON_PATH)
import caffe
import dataset
import cub_utils
import utils
import rects
import parts
import numpy as np
import matplotlib.pylab as plt
%matplotlib inline

import sklearn.svm
import sklearn.metrics
import sklearn.grid_search
from datetime import datetime as dt

from storage import datastore
from deep_extractor import CNN_Features_CAFFE_REFERENCE, Berkeley_Extractor

In [2]:
cub = dataset.CUB_200_2011(settings.CUB_ROOT)
all_img_infos = cub.get_all_image_infos()
all_seg_infos = cub.get_all_segmentation_infos()
IDtrain, IDtest = cub.get_train_test_id()
cub_parts = cub.get_parts()
cub_bbox = cub.get_bbox()

Baseline


In [3]:
feature_extractor = CNN_Features_CAFFE_REFERENCE(datastore(settings.storage('f_ccrftt_1-60000')))
Xtrain_r_ft, ytrain, Xtest_r_ft, ytest = cub.get_train_test(feature_extractor.extract_one)

In [4]:
feature_extractor = CNN_Features_CAFFE_REFERENCE(datastore(settings.storage('f_cccftt_1-60000')))
Xtrain_c_ft, ytrain, Xtest_c_ft, ytest = cub.get_train_test(feature_extractor.extract_one)

In [9]:
feature_extractor = CNN_Features_CAFFE_REFERENCE(datastore(settings.storage('ccr')))
Xtrain_r, ytrain, Xtest_r, ytest = cub.get_train_test(feature_extractor.extract_one)

In [10]:
feature_extractor = CNN_Features_CAFFE_REFERENCE(datastore(settings.storage('ccc')))
Xtrain_c, ytrain, Xtest_c, ytest = cub.get_train_test(feature_extractor.extract_one)

In [5]:
Xtrain_h, ytrain, Xtest_h, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_ccphrf_def_unif_1-60000'))).extract_one)

In [6]:
Xtrain_b, ytrain, Xtest_b, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_ccpbrf_def_unif_1-60000'))).extract_one)

In [7]:
Xtrain_c_ft_rf, ytrain, Xtest_c_ft_rf, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_cccrf_def_1-60000'))).extract_one)

R


In [15]:
Xtrain_final = Xtrain_r
Xtest_final = Xtest_r

model = sklearn.svm.LinearSVC(C=1e-4)
model.fit(Xtrain_final, ytrain)
preds = model.predict(Xtest_final)

print sklearn.metrics.accuracy_score(ytest, preds), utils.mean_accuracy(ytest, preds)


0.485329651363 0.489643

R-ft


In [16]:
feature_extractor = CNN_Features_CAFFE_REFERENCE(datastore(settings.storage('f_ccrftt_1-60000')))
Xtrain_r_ft, ytrain, Xtest_r_ft, ytest = cub.get_train_test(feature_extractor.extract_one)

Xtrain_final = Xtrain_r_ft
Xtest_final = Xtest_r_ft

model = sklearn.svm.LinearSVC(C=1e-4)
model.fit(Xtrain_final, ytrain)
preds = model.predict(Xtest_final)

print sklearn.metrics.accuracy_score(ytest, preds), utils.mean_accuracy(ytest, preds)


0.52002071108 0.524735

In [17]:
feature_extractor = CNN_Features_CAFFE_REFERENCE(datastore(settings.storage('f_ccrftt_2-60000')))
Xtrain_r_ft, ytrain, Xtest_r_ft, ytest = cub.get_train_test(feature_extractor.extract_one)

Xtrain_final = Xtrain_r_ft
Xtest_final = Xtest_r_ft

model = sklearn.svm.LinearSVC(C=1e-4)
model.fit(Xtrain_final, ytrain)
preds = model.predict(Xtest_final)

print sklearn.metrics.accuracy_score(ytest, preds), utils.mean_accuracy(ytest, preds)


0.530721435968 0.53576

In [18]:
feature_extractor = CNN_Features_CAFFE_REFERENCE(datastore(settings.storage('f_ccrftt_3-60000')))
Xtrain_r_ft, ytrain, Xtest_r_ft, ytest = cub.get_train_test(feature_extractor.extract_one)

Xtrain_final = Xtrain_r_ft
Xtest_final = Xtest_r_ft

model = sklearn.svm.LinearSVC(C=1e-4)
model.fit(Xtrain_final, ytrain)
preds = model.predict(Xtest_final)

print sklearn.metrics.accuracy_score(ytest, preds), utils.mean_accuracy(ytest, preds)


0.529168104936 0.533501

C


In [36]:
Xtrain_final = Xtrain_c
Xtest_final = Xtest_c

model = sklearn.svm.LinearSVC(C=1e-4)
model.fit(Xtrain_final, ytrain)
preds = model.predict(Xtest_final)

print sklearn.metrics.accuracy_score(ytest, preds), utils.mean_accuracy(ytest, preds)


0.57352433552 0.578022

C-ft


In [19]:
feature_extractor = CNN_Features_CAFFE_REFERENCE(datastore(settings.storage('f_cccftt_1-60000')))
Xtrain_c_ft, ytrain, Xtest_c_ft, ytest = cub.get_train_test(feature_extractor.extract_one)

Xtrain_final = Xtrain_c_ft
Xtest_final = Xtest_c_ft

model = sklearn.svm.LinearSVC(C=1e-4)
model.fit(Xtrain_final, ytrain)
preds = model.predict(Xtest_final)

print sklearn.metrics.accuracy_score(ytest, preds), utils.mean_accuracy(ytest, preds)


0.641525716258 0.644514

In [20]:
feature_extractor = CNN_Features_CAFFE_REFERENCE(datastore(settings.storage('f_cccftt_2-60000')))
Xtrain_c_ft, ytrain, Xtest_c_ft, ytest = cub.get_train_test(feature_extractor.extract_one)

Xtrain_final = Xtrain_c_ft
Xtest_final = Xtest_c_ft

model = sklearn.svm.LinearSVC(C=1e-4)
model.fit(Xtrain_final, ytrain)
preds = model.predict(Xtest_final)

print sklearn.metrics.accuracy_score(ytest, preds), utils.mean_accuracy(ytest, preds)


0.640490162237 0.643284

In [21]:
feature_extractor = CNN_Features_CAFFE_REFERENCE(datastore(settings.storage('f_cccftt_3-60000')))
Xtrain_c_ft, ytrain, Xtest_c_ft, ytest = cub.get_train_test(feature_extractor.extract_one)

Xtrain_final = Xtrain_c_ft
Xtest_final = Xtest_c_ft

model = sklearn.svm.LinearSVC(C=1e-4)
model.fit(Xtrain_final, ytrain)
preds = model.predict(Xtest_final)

print sklearn.metrics.accuracy_score(ytest, preds), utils.mean_accuracy(ytest, preds)


0.638591646531 0.641345

R+C


In [24]:
Xtrain_final = np.hstack((Xtrain_r, Xtrain_c))
Xtest_final = np.hstack((Xtest_r, Xtest_c))

model = sklearn.svm.LinearSVC(C=1e-4)
model.fit(Xtrain_final, ytrain)
preds = model.predict(Xtest_final)

print sklearn.metrics.accuracy_score(ytest, preds), utils.mean_accuracy(ytest, preds)


0.599240593718 0.603098

R-ft+C-ft


In [3]:
Xtrain_r_ft, ytrain, Xtest_r_ft, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(datastore(settings.storage('f_ccrftt_1-60000'))).extract_one)
Xtrain_c_ft, ytrain, Xtest_c_ft, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(datastore(settings.storage('f_cccftt_1-60000'))).extract_one)

Xtrain_final = np.hstack((Xtrain_r_ft, Xtrain_c_ft))
Xtest_final = np.hstack((Xtest_r_ft, Xtest_c_ft))

model = sklearn.svm.LinearSVC(C=1e-4)
model.fit(Xtrain_final, ytrain)
preds = model.predict(Xtest_final)

print sklearn.metrics.accuracy_score(ytest, preds), utils.mean_accuracy(ytest, preds)


0.660165688643 0.663286

In [4]:
Xtrain_r_ft, ytrain, Xtest_r_ft, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(datastore(settings.storage('f_ccrftt_2-60000'))).extract_one)
Xtrain_c_ft, ytrain, Xtest_c_ft, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(datastore(settings.storage('f_cccftt_2-60000'))).extract_one)

Xtrain_final = np.hstack((Xtrain_r_ft, Xtrain_c_ft))
Xtest_final = np.hstack((Xtest_r_ft, Xtest_c_ft))

model = sklearn.svm.LinearSVC(C=1e-4)
model.fit(Xtrain_final, ytrain)
preds = model.predict(Xtest_final)

print sklearn.metrics.accuracy_score(ytest, preds), utils.mean_accuracy(ytest, preds)


0.655850880221 0.658868

In [5]:
Xtrain_r_ft, ytrain, Xtest_r_ft, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(datastore(settings.storage('f_ccrftt_3-60000'))).extract_one)
Xtrain_c_ft, ytrain, Xtest_c_ft, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(datastore(settings.storage('f_cccftt_3-60000'))).extract_one)

Xtrain_final = np.hstack((Xtrain_r_ft, Xtrain_c_ft))
Xtest_final = np.hstack((Xtest_r_ft, Xtest_c_ft))

model = sklearn.svm.LinearSVC(C=1e-4)
model.fit(Xtrain_final, ytrain)
preds = model.predict(Xtest_final)

print sklearn.metrics.accuracy_score(ytest, preds), utils.mean_accuracy(ytest, preds)


0.660856057991 0.663518

DeepRF


In [9]:
Xtrain_r_ft, ytrain, Xtest_r_ft, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_ccrftt_1-60000'))).extract_one)
Xtrain_c_ft, ytrain, Xtest_c_ft, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_cccftt_1-60000'))).extract_one)
Xtrain_h, ytrain, Xtest_h, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_ccphrf_def_unif_1-60000'))).extract_one)
Xtrain_b, ytrain, Xtest_b, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_ccpbrf_def_unif_1-60000'))).extract_one)

Xtrain_final = np.hstack((Xtrain_r_ft, Xtrain_c_ft, Xtrain_h, Xtrain_b))
Xtest_final = np.hstack((Xtest_r_ft, Xtest_c_ft, Xtest_h, Xtest_b))

model = sklearn.svm.LinearSVC(C=1e-4)
model.fit(Xtrain_final, ytrain)
preds = model.predict(Xtest_final)

print sklearn.metrics.accuracy_score(ytest, preds), utils.mean_accuracy(ytest, preds)


0.735933724543 0.738757

In [10]:
Xtrain_r_ft, ytrain, Xtest_r_ft, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_ccrftt_2-60000'))).extract_one)
Xtrain_c_ft, ytrain, Xtest_c_ft, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_cccftt_2-60000'))).extract_one)
Xtrain_h, ytrain, Xtest_h, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_ccphrf_def_unif_2-60000'))).extract_one)
Xtrain_b, ytrain, Xtest_b, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_ccpbrf_def_unif_2-60000'))).extract_one)

Xtrain_final = np.hstack((Xtrain_r_ft, Xtrain_c_ft, Xtrain_h, Xtrain_b))
Xtest_final = np.hstack((Xtest_r_ft, Xtest_c_ft, Xtest_h, Xtest_b))

model = sklearn.svm.LinearSVC(C=1e-4)
model.fit(Xtrain_final, ytrain)
preds = model.predict(Xtest_final)

print sklearn.metrics.accuracy_score(ytest, preds), utils.mean_accuracy(ytest, preds)


0.731791508457 0.734157

In [11]:
Xtrain_r_ft, ytrain, Xtest_r_ft, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_ccrftt_3-60000'))).extract_one)
Xtrain_c_ft, ytrain, Xtest_c_ft, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_cccftt_3-60000'))).extract_one)
Xtrain_h, ytrain, Xtest_h, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_ccphrf_def_unif_3-60000'))).extract_one)
Xtrain_b, ytrain, Xtest_b, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_ccpbrf_def_unif_3-60000'))).extract_one)

Xtrain_final = np.hstack((Xtrain_r_ft, Xtrain_c_ft, Xtrain_h, Xtrain_b))
Xtest_final = np.hstack((Xtest_r_ft, Xtest_c_ft, Xtest_h, Xtest_b))

model = sklearn.svm.LinearSVC(C=1e-4)
model.fit(Xtrain_final, ytrain)
preds = model.predict(Xtest_final)

print sklearn.metrics.accuracy_score(ytest, preds), utils.mean_accuracy(ytest, preds)


0.737832240249 0.740365

SVM parameter


In [31]:
Xtrain_final = np.hstack((Xtrain_r_ft, Xtrain_c_ft, Xtrain_h, Xtrain_b))
model = sklearn.grid_search.GridSearchCV(sklearn.svm.LinearSVC(), {'C': [1e0, 1e-1, 1e-2, 1e-3, 1e-4, 1e-5, 1e-6]}, n_jobs=3, cv=5)
model.fit(Xtrain_final, ytrain)
print model.best_params_


{'C': 0.01}

In [32]:
model.grid_scores_


Out[32]:
[mean: 0.95963, std: 0.00441, params: {'C': 1.0},
 mean: 0.95963, std: 0.00441, params: {'C': 0.1},
 mean: 0.95979, std: 0.00434, params: {'C': 0.01},
 mean: 0.95963, std: 0.00398, params: {'C': 0.001},
 mean: 0.95796, std: 0.00294, params: {'C': 0.0001},
 mean: 0.94011, std: 0.00435, params: {'C': 1e-05},
 mean: 0.87154, std: 0.00354, params: {'C': 1e-06}]

Effect of C


In [41]:
Xtrain_final = np.hstack((Xtrain_r_ft, Xtrain_c_ft))
Xtest_final = np.hstack((Xtest_r_ft, Xtest_c_ft))

for c in [1e1, 1e0, 1e-1, 1e-2, 1e-3, 1e-4, 1e-5, 1e-6]:
    model = sklearn.svm.LinearSVC(C=c)
    model.fit(Xtrain_final, ytrain)
    preds = model.predict(Xtest_final)
    print c, sklearn.metrics.accuracy_score(ytest, preds), utils.mean_accuracy(ytest, preds)


10.0 0.650155333103 0.653106
1.0 0.650155333103 0.653106
0.1 0.650155333103 0.653106
0.01 0.650155333103 0.653183
0.001 0.654124956852 0.657028
0.0001 0.660165688643 0.663286
1e-05 0.645150155333 0.648536
1e-06 0.589920607525 0.593018

Oracle Parts

Oh-ft (oracle head)

The oracle head method is better than all the baseline methods, only using head


In [9]:
Xtrain_oh, ytrain, Xtest_oh, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('ccpheadft-100000'))).extract_one)

Xtrain_final = Xtrain_oh
Xtest_final = Xtest_oh

model = sklearn.svm.LinearSVC(C=1e-4)
model.fit(Xtrain_final, ytrain)
preds = model.predict(Xtest_final)

print sklearn.metrics.accuracy_score(ytest, preds), utils.mean_accuracy(ytest, preds)


0.667932343804 0.671085

Ob-ft (oracle body)


In [10]:
Xtrain_ob, ytrain, Xtest_ob, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('ccpbodyft-100000'))).extract_one)

Xtrain_final = Xtrain_ob
Xtest_final = Xtest_ob

model = sklearn.svm.LinearSVC(C=1e-4)
model.fit(Xtrain_final, ytrain)
preds = model.predict(Xtest_final)

print sklearn.metrics.accuracy_score(ytest, preds), utils.mean_accuracy(ytest, preds)


0.527959958578 0.528481

R_ft + C_ft + Oh_ft


In [6]:
Xtrain_oh, ytrain, Xtest_oh, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('ccpheadft-100000'))).extract_one)
Xtrain_r_ft, ytrain, Xtest_r_ft, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_ccrftt_1-60000'))).extract_one)
Xtrain_c_ft, ytrain, Xtest_c_ft, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_cccftt_1-60000'))).extract_one)

Xtrain_final = np.hstack((Xtrain_r_ft, Xtrain_c_ft, Xtrain_oh))
Xtest_final = np.hstack((Xtest_r_ft, Xtest_c_ft, Xtest_oh))

model = sklearn.svm.LinearSVC(C=1e-4)
model.fit(Xtrain_final, ytrain)
preds = model.predict(Xtest_final)

print sklearn.metrics.accuracy_score(ytest, preds), utils.mean_accuracy(ytest, preds)


0.782706247843 0.784847

In [7]:
Xtrain_oh, ytrain, Xtest_oh, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('ccpheadft-100000'))).extract_one)
Xtrain_r_ft, ytrain, Xtest_r_ft, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_ccrftt_2-60000'))).extract_one)
Xtrain_c_ft, ytrain, Xtest_c_ft, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_cccftt_2-60000'))).extract_one)

Xtrain_final = np.hstack((Xtrain_r_ft, Xtrain_c_ft, Xtrain_oh))
Xtest_final = np.hstack((Xtest_r_ft, Xtest_c_ft, Xtest_oh))

model = sklearn.svm.LinearSVC(C=1e-4)
model.fit(Xtrain_final, ytrain)
preds = model.predict(Xtest_final)

print sklearn.metrics.accuracy_score(ytest, preds), utils.mean_accuracy(ytest, preds)


0.784086986538 0.786089

In [8]:
Xtrain_oh, ytrain, Xtest_oh, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('ccpheadft-100000'))).extract_one)
Xtrain_r_ft, ytrain, Xtest_r_ft, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_ccrftt_3-60000'))).extract_one)
Xtrain_c_ft, ytrain, Xtest_c_ft, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_cccftt_3-60000'))).extract_one)

Xtrain_final = np.hstack((Xtrain_r_ft, Xtrain_c_ft, Xtrain_oh))
Xtest_final = np.hstack((Xtest_r_ft, Xtest_c_ft, Xtest_oh))

model = sklearn.svm.LinearSVC(C=1e-4)
model.fit(Xtrain_final, ytrain)
preds = model.predict(Xtest_final)

print sklearn.metrics.accuracy_score(ytest, preds), utils.mean_accuracy(ytest, preds)


0.783914394201 0.785887

Finally Final

Complete(R_ft, C_RF_FT, P_H_RF_FT, P_B_RF_FT)

experiment 1


In [12]:
Xtrain_r_ft, ytrain, Xtest_r_ft, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_ccrftt_1-60000'))).extract_one)
Xtrain_c_ft_rf, ytrain, Xtest_c_ft_rf, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_cccrf_def_1-60000'))).extract_one)
Xtrain_h, ytrain, Xtest_h, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_ccphrf_def_unif_1-60000'))).extract_one)
Xtrain_b, ytrain, Xtest_b, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_ccpbrf_def_unif_1-60000'))).extract_one)

Xtrain_final = np.hstack((Xtrain_r_ft, Xtrain_c_ft_rf, Xtrain_h, Xtrain_b))
Xtest_final = np.hstack((Xtest_r_ft, Xtest_c_ft_rf, Xtest_h, Xtest_b))

model = sklearn.svm.LinearSVC(C=1e-4)
model.fit(Xtrain_final, ytrain)
preds = model.predict(Xtest_final)

print sklearn.metrics.accuracy_score(ytest, preds), utils.mean_accuracy(ytest, preds)


0.721263375906 0.723472

In [14]:
Xtrain_r_ft, ytrain, Xtest_r_ft, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_ccrftt_2-60000'))).extract_one)
Xtrain_c_ft_rf, ytrain, Xtest_c_ft_rf, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_cccrf_def_1-60000'))).extract_one)
Xtrain_h, ytrain, Xtest_h, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_ccphrf_def_unif_2-60000'))).extract_one)
Xtrain_b, ytrain, Xtest_b, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_ccpbrf_def_unif_2-60000'))).extract_one)

Xtrain_final = np.hstack((Xtrain_r_ft, Xtrain_c_ft_rf, Xtrain_h, Xtrain_b))
Xtest_final = np.hstack((Xtest_r_ft, Xtest_c_ft_rf, Xtest_h, Xtest_b))

model = sklearn.svm.LinearSVC(C=1e-4)
model.fit(Xtrain_final, ytrain)
preds = model.predict(Xtest_final)

print sklearn.metrics.accuracy_score(ytest, preds), utils.mean_accuracy(ytest, preds)


0.717811529168 0.720146

In [15]:
Xtrain_r_ft, ytrain, Xtest_r_ft, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_ccrftt_3-60000'))).extract_one)
Xtrain_c_ft_rf, ytrain, Xtest_c_ft_rf, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_cccrf_def_1-60000'))).extract_one)
Xtrain_h, ytrain, Xtest_h, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_ccphrf_def_unif_3-60000'))).extract_one)
Xtrain_b, ytrain, Xtest_b, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_ccpbrf_def_unif_3-60000'))).extract_one)

Xtrain_final = np.hstack((Xtrain_r_ft, Xtrain_c_ft_rf, Xtrain_h, Xtrain_b))
Xtest_final = np.hstack((Xtest_r_ft, Xtest_c_ft_rf, Xtest_h, Xtest_b))

model = sklearn.svm.LinearSVC(C=1e-4)
model.fit(Xtrain_final, ytrain)
preds = model.predict(Xtest_final)

print sklearn.metrics.accuracy_score(ytest, preds), utils.mean_accuracy(ytest, preds)


0.714532274767 0.716918

Which Part is the most important (in DeepRF)


In [16]:
Xtrain_r_ft, ytrain, Xtest_r_ft, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_ccrftt_1-60000'))).extract_one)
Xtrain_c_ft, ytrain, Xtest_c_ft, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_cccftt_1-60000'))).extract_one)
Xtrain_h, ytrain, Xtest_h, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_ccphrf_def_unif_1-60000'))).extract_one)
Xtrain_b, ytrain, Xtest_b, ytest = cub.get_train_test(CNN_Features_CAFFE_REFERENCE(
    datastore(settings.storage('f_ccpbrf_def_unif_1-60000'))).extract_one)

- R


In [19]:
Xtrain_final = np.hstack((Xtrain_c_ft, Xtrain_h, Xtrain_b))
Xtest_final = np.hstack((Xtest_c_ft, Xtest_h, Xtest_b))

model = sklearn.svm.LinearSVC(C=1e-4)
model.fit(Xtrain_final, ytrain)
preds = model.predict(Xtest_final)

print sklearn.metrics.accuracy_score(ytest, preds), utils.mean_accuracy(ytest, preds)


0.731273731446 0.733825

- C


In [20]:
Xtrain_final = np.hstack((Xtrain_r_ft, Xtrain_h, Xtrain_b))
Xtest_final = np.hstack((Xtest_r_ft, Xtest_h, Xtest_b))

model = sklearn.svm.LinearSVC(C=1e-4)
model.fit(Xtrain_final, ytrain)
preds = model.predict(Xtest_final)

print sklearn.metrics.accuracy_score(ytest, preds), utils.mean_accuracy(ytest, preds)


0.711080428029 0.71366

- Head


In [21]:
Xtrain_final = np.hstack((Xtrain_r_ft, Xtrain_c_ft, Xtrain_b))
Xtest_final = np.hstack((Xtest_r_ft, Xtest_c_ft, Xtest_b))

model = sklearn.svm.LinearSVC(C=1e-4)
model.fit(Xtrain_final, ytrain)
preds = model.predict(Xtest_final)

print sklearn.metrics.accuracy_score(ytest, preds), utils.mean_accuracy(ytest, preds)


0.676907145323 0.679486

- Body


In [22]:
Xtrain_final = np.hstack((Xtrain_r_ft, Xtrain_c_ft, Xtrain_h))
Xtest_final = np.hstack((Xtest_r_ft, Xtest_c_ft, Xtest_h))

model = sklearn.svm.LinearSVC(C=1e-4)
model.fit(Xtrain_final, ytrain)
preds = model.predict(Xtest_final)

print sklearn.metrics.accuracy_score(ytest, preds), utils.mean_accuracy(ytest, preds)


0.730410769762 0.733428

In [ ]: