In [1]:
import sys
sys.path.append('../src/')
sys.path.append('/home/ipl/installs/caffe-rc/python/')
import matplotlib
%matplotlib inline
from matplotlib import pylab as plt
import numpy as np
import caffe
import cv2
import re
from sklearn import svm
from sklearn import metrics
import utils
from datetime import datetime as dt
from dataset import CUB_200_2011
from storage import datastore
from deep_extractor import CNN_Features_CAFFE_REFERENCE, Berkeley_Extractor
from datetime import datetime as dt
import settings
In [2]:
cub = CUB_200_2011(settings.CUB_ROOT)
In [ ]:
feature_extractor_r = CNN_Features_CAFFE_REFERENCE(datastore(settings.storage('ccrftt-100000')))
Xtrain_r, ytrain, Xtest_r, ytest = cub.get_train_test(feature_extractor_r.extract_one)
In [3]:
feature_extractor_r = CNN_Features_CAFFE_REFERENCE(datastore(settings.storage('ccrft2st-5000')))
Xtrain_r, ytrain, Xtest_r, ytest = cub.get_train_test(feature_extractor_r.extract_one)
In [ ]:
feature_extractor_c = Berkeley_Extractor(datastore(settings.storage('bmbc')))
Xtrain_c, ytrain, Xtest_c, ytest = cub.get_train_test(feature_extractor_c.extract_one)
In [ ]:
feature_extractor_c = CNN_Features_CAFFE_REFERENCE(datastore(settings.storage('cccftt-100000')))
Xtrain_c, ytrain, Xtest_c, ytest = cub.get_train_test(feature_extractor_c.extract_one)
In [4]:
feature_extractor_c = CNN_Features_CAFFE_REFERENCE(datastore(settings.storage('cccft2st-50000')))
Xtrain_c, ytrain, Xtest_c, ytest = cub.get_train_test(feature_extractor_c.extract_one)
In [ ]:
feature_extractor_h = CNN_Features_CAFFE_REFERENCE(datastore(settings.storage('ccpheadrfftn-100000')))
Xtrain_h, ytrain, Xtest_h, ytest = cub.get_train_test(feature_extractor_h.extract_one)
In [5]:
feature_extractor_h = CNN_Features_CAFFE_REFERENCE(datastore(settings.storage('ccpheadrfftn2st-50000')))
Xtrain_h, ytrain, Xtest_h, ytest = cub.get_train_test(feature_extractor_h.extract_one)
In [ ]:
feature_extractor_b = CNN_Features_CAFFE_REFERENCE(datastore(settings.storage('ccpbodyrfftn-100000')))
Xtrain_b, ytrain, Xtest_b, ytest = cub.get_train_test(feature_extractor_b.extract_one)
In [6]:
feature_extractor_b = CNN_Features_CAFFE_REFERENCE(datastore(settings.storage('ccpbodyrfftn2st-50000')))
Xtrain_b, ytrain, Xtest_b, ytest = cub.get_train_test(feature_extractor_b.extract_one)
In [7]:
# feature_extractor_r = CNN_Features_CAFFE_REFERENCE(datastore(settings.storage('ccrfttflp-100000')))
feature_extractor_r = CNN_Features_CAFFE_REFERENCE(datastore(settings.storage('ccrft2stflp-5000')))
Xtrain_r_f, ytrain_f, Xtest_r_f, ytest = cub.get_train_test(feature_extractor_r.extract_one)
In [8]:
feature_extractor_c = CNN_Features_CAFFE_REFERENCE(datastore(settings.storage('cccft2stflp-50000')))
# feature_extractor_c = Berkeley_Extractor(datastore(settings.storage('bmbcflp')))
# feature_extractor_c = CNN_Features_CAFFE_REFERENCE(datastore(settings.storage('cccfttflp-100000')))
Xtrain_c_f, ytrain_f, Xtest_c_f, ytest = cub.get_train_test(feature_extractor_c.extract_one)
In [9]:
# feature_extractor_h = CNN_Features_CAFFE_REFERENCE(datastore(settings.storage('ccpheadrfftnflp-100000')))
feature_extractor_h = CNN_Features_CAFFE_REFERENCE(datastore(settings.storage('ccpheadrfftn2stflp-50000')))
Xtrain_h_f, ytrain_f, Xtest_h_f, ytest = cub.get_train_test(feature_extractor_h.extract_one)
In [10]:
# feature_extractor_h = CNN_Features_CAFFE_REFERENCE(datastore(settings.storage('ccpbodyrfftnflp-100000')))
feature_extractor_b = CNN_Features_CAFFE_REFERENCE(datastore(settings.storage('ccpbodyrfftn2stflp-50000')))
Xtrain_b_f, ytrain_f, Xtest_b_f, ytest = cub.get_train_test(feature_extractor_h.extract_one)
In [13]:
Xtrain = np.hstack((Xtrain_r, Xtrain_c, Xtrain_h, Xtrain_b))
Xtest = np.hstack((Xtest_r, Xtest_c, Xtest_h, Xtest_b))
Xtrain_f = np.hstack((Xtrain_r_f, Xtrain_c_f, Xtrain_h_f, Xtrain_b_f))
Xtest_aug = np.hstack((Xtest_r_f, Xtest_c_f, Xtest_h_f, Xtest_b_f))
Xtrain = np.vstack((Xtrain, Xtrain_f))
ytrain = np.concatenate((ytrain_f, ytrain_f))
################################
# Xtrain = utils.l2_feat_norm(Xtrain)
# Xtest = utils.l2_feat_norm(Xtest)
In [14]:
# svm_c = 0.1
for svm_c in [1e-5]:
a = dt.now()
model = svm.LinearSVC(C=svm_c)
model.fit(Xtrain, ytrain)
predictions = model.predict(Xtest)
preds_train = model.predict(Xtrain)
b = dt.now()
print 'c', svm_c
print 'accuracy', metrics.accuracy_score(ytest, predictions), '=== mean accuracy', utils.mean_accuracy(ytest, predictions)
print 'train accuracy', metrics.accuracy_score(ytrain, preds_train)
print 'in', (b - a)
print '-----------------------'
In [6]:
o_image = caffe.io.load_image('/home/ipl/datasets/CUB-200-2011/CUB_200_2011/CUB_200_2011/images/058.Pigeon_Guillemot/Pigeon_Guillemot_0007_40313.jpg')
s_image = caffe.io.load_image('/home/ipl/datasets/CUB-200-2011/segmentations/058.Pigeon_Guillemot/Pigeon_Guillemot_0007_40313.png', color=False)
In [7]:
plt.matshow(s_image[:, :, 0]); plt.figure(); plt.imshow(o_image)
s_image.shape
Out[7]:
In [9]:
so_image = np.where(s_image <= np.median(s_image), np.ones_like(s_image) * 0.5, o_image)
import skimage
In [10]:
plt.imshow(so_image)
skimage.io.imsave('/home/ipl/Desktop/test.jpg', so_image)
In [11]:
import scipy.io
In [12]:
pred_1 = scipy.io.loadmat('/home/ipl/datastores/predictions/preds/cccftt-10000/cccftt-10000.mat')
pred_2 = scipy.io.loadmat('/home/ipl/datastores/predictions/preds/cccftt-20000/cccftt-20000.mat')
pred_3 = scipy.io.loadmat('/home/ipl/datastores/predictions/preds/cccftt-30000/cccftt-30000.mat')
pred_4 = scipy.io.loadmat('/home/ipl/datastores/predictions/preds/cccftt-40000/cccftt-40000.mat')
pred_5 = scipy.io.loadmat('/home/ipl/datastores/predictions/preds/cccftt-50000/cccftt-50000.mat')
pred_6 = scipy.io.loadmat('/home/ipl/datastores/predictions/preds/cccftt-60000/cccftt-60000.mat')
pred_7 = scipy.io.loadmat('/home/ipl/datastores/predictions/preds/cccftt-70000/cccftt-70000.mat')
pred_8 = scipy.io.loadmat('/home/ipl/datastores/predictions/preds/cccftt-80000/cccftt-80000.mat')
pred_9 = scipy.io.loadmat('/home/ipl/datastores/predictions/preds/cccftt-90000/cccftt-90000.mat')
pred_10 = scipy.io.loadmat('/home/ipl/datastores/predictions/preds/cccftt-100000/cccftt-100000.mat')
In [16]:
pred_1 = pred_1['preds'][0, :]
pred_2 = pred_2['preds'][0, :]
pred_3 = pred_3['preds'][0, :]
pred_4 = pred_4['preds'][0, :]
pred_5 = pred_5['preds'][0, :]
pred_6 = pred_6['preds'][0, :]
pred_7 = pred_7['preds'][0, :]
pred_8 = pred_8['preds'][0, :]
pred_9 = pred_9['preds'][0, :]
pred_10 = pred_10['preds'][0, :]
In [17]:
cor_1 = pred_1 == ytest
cor_2 = pred_2 == ytest
cor_3 = pred_3 == ytest
cor_4 = pred_4 == ytest
cor_5 = pred_5 == ytest
cor_6 = pred_6 == ytest
cor_7 = pred_7 == ytest
cor_8 = pred_8 == ytest
cor_9 = pred_9 == ytest
cor_10 = pred_10 == ytest
In [18]:
(cor_1 | cor_2 | cor_3 | cor_4 | cor_5 | cor_6 | cor_7 | cor_8 | cor_9 | cor_10).sum() / 5794.
Out[18]:
In [19]:
cors = [cor_1, cor_2, cor_3, cor_4, cor_5, cor_6, cor_7, cor_8, cor_9, cor_10]
cor = cor_3[:1024]
fig = plt.figure()
ax = fig.add_subplot(111)
ax.matshow(cor.reshape((32, 32)))
ax.matshow(cor.reshape((32, 32)))
Out[19]:
In [20]:
svm_c = 0.0001
cub = CUB_200_2011(settings.CUB_ROOT)
ft_storage = datastore(settings.storage('cccftt-10000'))
ft_extractor = CNN_Features_CAFFE_REFERENCE(ft_storage, make_net=False)
a = dt.now()
Xtrain, ytrain, Xtest, ytest = cub.get_train_test(ft_extractor.extract_one)
model = svm.LinearSVC(C=svm_c)
model.fit(Xtrain, ytrain)
predictions = model.predict(Xtest)
b = dt.now()
print 'accuracy', metrics.accuracy_score(ytest, predictions)
print 'mean accuracy', utils.mean_accuracy(ytest, predictions)
print 'in', (b - a)
In [21]:
svm_c = 0.01
cub = CUB_200_2011(settings.CUB_ROOT)
ft_storage = datastore(settings.storage('cccftt-10000'))
ft_extractor = CNN_Features_CAFFE_REFERENCE(ft_storage, make_net=False)
a = dt.now()
Xtrain, ytrain, Xtest, ytest = cub.get_train_test(ft_extractor.extract_one)
model = svm.SVC(C=svm_c, kernel='linear', probability=True)
model.fit(Xtrain, ytrain)
predictions = model.predict(Xtest)
b = dt.now()
print 'accuracy', metrics.accuracy_score(ytest, predictions)
print 'mean accuracy', utils.mean_accuracy(ytest, predictions)
print 'in', (b - a)
In [22]:
svm_c = 0.01
cub = CUB_200_2011(settings.CUB_ROOT)
ft_storage = datastore(settings.storage('cccftt-10000'))
ft_extractor = CNN_Features_CAFFE_REFERENCE(ft_storage, make_net=False)
a = dt.now()
Xtrain, ytrain, Xtest, ytest = cub.get_train_test(ft_extractor.extract_one)
model = svm.SVC(C=svm_c, kernel='linear', probability=True)
model.fit(Xtrain, ytrain)
predictions = model.predict(Xtest)
b = dt.now()
print 'accuracy', metrics.accuracy_score(ytest, predictions)
print 'mean accuracy', utils.mean_accuracy(ytest, predictions)
print 'in', (b - a)
In [23]:
svm_c = 0.05
cub = CUB_200_2011(settings.CUB_ROOT)
ft_storage = datastore(settings.storage('cccftt-10000'))
ft_extractor = CNN_Features_CAFFE_REFERENCE(ft_storage, make_net=False)
a = dt.now()
Xtrain, ytrain, Xtest, ytest = cub.get_train_test(ft_extractor.extract_one)
model = svm.SVC(C=svm_c, kernel='linear', probability=True)
model.fit(Xtrain, ytrain)
predictions = model.predict(Xtest)
b = dt.now()
print 'accuracy', metrics.accuracy_score(ytest, predictions)
print 'mean accuracy', utils.mean_accuracy(ytest, predictions)
print 'in', (b - a)
In [24]:
svm_c = 0.001
cub = CUB_200_2011(settings.CUB_ROOT)
ft_storage = datastore(settings.storage('cccftt-10000'))
ft_extractor = CNN_Features_CAFFE_REFERENCE(ft_storage, make_net=False)
a = dt.now()
Xtrain, ytrain, Xtest, ytest = cub.get_train_test(ft_extractor.extract_one)
model = svm.SVC(C=svm_c, kernel='linear', probability=True)
model.fit(Xtrain, ytrain)
predictions = model.predict(Xtest)
b = dt.now()
print 'accuracy', metrics.accuracy_score(ytest, predictions)
print 'mean accuracy', utils.mean_accuracy(ytest, predictions)
print 'in', (b - a)
In [25]:
svm_c = 0.005
cub = CUB_200_2011(settings.CUB_ROOT)
ft_storage = datastore(settings.storage('cccftt-10000'))
ft_extractor = CNN_Features_CAFFE_REFERENCE(ft_storage, make_net=False)
a = dt.now()
Xtrain, ytrain, Xtest, ytest = cub.get_train_test(ft_extractor.extract_one)
model = svm.SVC(C=svm_c, kernel='linear', probability=True)
model.fit(Xtrain, ytrain)
predictions = model.predict(Xtest)
b = dt.now()
print 'accuracy', metrics.accuracy_score(ytest, predictions)
print 'mean accuracy', utils.mean_accuracy(ytest, predictions)
print 'in', (b - a)
In [26]:
pred_v_1_1 = scipy.io.loadmat('/home/ipl/datastores/predictions/preds/cccftv1-10000/cccftv1-10000.mat')['preds'][0, :]
pred_v_1_2 = scipy.io.loadmat('/home/ipl/datastores/predictions/preds/cccftv1-20000/cccftv1-20000.mat')['preds'][0, :]
pred_v_2_1 = scipy.io.loadmat('/home/ipl/datastores/predictions/preds/cccftv2-10000/cccftv2-10000.mat')['preds'][0, :]
pred_v_2_2 = scipy.io.loadmat('/home/ipl/datastores/predictions/preds/cccftv2-20000/cccftv2-20000.mat')['preds'][0, :]
pred_v_1_1_2 = scipy.io.loadmat('/home/ipl/datastores/predictions/preds/cccftv1_2-10000/cccftv1_2-10000.mat')['preds'][0, :]
pred_v_1_2_2 = scipy.io.loadmat('/home/ipl/datastores/predictions/preds/cccftv1_2-20000/cccftv1_2-20000.mat')['preds'][0, :]
In [27]:
cor_v_1_1 = pred_v_1_1 == ytest
cor_v_1_2 = pred_v_1_2 == ytest
cor_v_2_1 = pred_v_2_1 == ytest
cor_v_2_2 = pred_v_2_2 == ytest
cor_v_1_1_2 = pred_v_1_1_2 == ytest
cor_v_1_2_2 = pred_v_1_2_2 == ytest
In [28]:
(cor_v_1_2 & ~cor_v_1_2_2).sum()
Out[28]:
In [29]:
net = caffe.Classifier('/home/ipl/installs/caffe-rc/models/bvlc_reference_caffenet/deploy_conv.prototxt', '/home/ipl/installs/caffe-rc/models/bvlc_reference_caffenet/bvlc_reference_caffenet.caffemodel', mean=np.load('/home/ipl/installs/caffe-rc/python/caffe/imagenet/ilsvrc_2012_mean.npy'), channel_swap=(2, 1, 0), raw_scale=255)
In [30]:
net.set_mode_gpu()
net.set_phase_test()
out = net.forward_all(blobs=['data', 'conv1'], data=np.asarray([net.preprocess('data', img)]))
out['conv1'].shape, out['data'].shape
Out[30]:
In [31]:
net.preprocess('data', img).shape
Out[31]:
In [10]:
import sys
sys.path.append('../src/')
sys.path.append('/home/ipl/installs/caffe-rc/python/')
import matplotlib
%matplotlib inline
from matplotlib import pylab as plt
import numpy as np
import caffe
import cv2
import re
from sklearn import svm
from sklearn import metrics
import utils
from datetime import datetime as dt
from dataset import CUB_200_2011
from storage import datastore
from deep_extractor import CNN_Features_CAFFE_REFERENCE
from datetime import datetime as dt
import settings
from parts import *
cub = CUB_200_2011(settings.CUB_ROOT)
cub_parts = cub.get_parts()
bbox = cub.get_bbox()
IDtrain, IDtest = cub.get_train_test_id()
def vis_near(test_id, train_id):
img_test = caffe.io.load_image(cub.get_image_info(test_id))
parts_test = cub_parts.for_image(test_id)
img_train = caffe.io.load_image(cub.get_image_info(train_id))
parts_train = cub_parts.for_image(train_id)
parts_transfered = parts_train.transfer(bbox[train_id-1], bbox[test_id-1])
fig = plt.figure(figsize=(15, 10))
def vis_parts(ax, img, parts, img_id):
filtered_parts = parts.filter_by_name(Parts.HEAD_PART_NAMES)
new_img = filtered_parts.draw_rect(img)
ax.imshow(new_img)
ax.set_title(img_id)
ax.set_xlim((0, img.shape[1]))
ax.set_ylim((img.shape[0], 0))
parts.draw_part(ax)
ax = fig.add_subplot(131)
vis_parts(ax, img_test, parts_test, test_id)
ax = fig.add_subplot(132)
vis_parts(ax, img_test, parts_transfered, 'transfered')
ax = fig.add_subplot(133)
vis_parts(ax, img_train, parts_train, train_id)
In [11]:
tests_id = [1]
train_ids = [379]
test_ids = range(500,502)
for i in test_ids:
test_id = IDtest[i]
train_id = IDtrain[NNS[i]]
vis_near(test_id, train_id)
In [17]:
net = caffe.Classifier('/home/ipl/installs/caffe-rc/models/finetune_cub_cropped/deploy.prototxt', '/home/ipl/installs/caffe-rc/models/finetune_cub_cropped/finetune_cub_cropped_iter_100000.caffemodel', mean=np.load('/home/ipl/installs/caffe-rc/python/caffe/imagenet/ilsvrc_2012_mean.npy'), channel_swap=(2, 1, 0), raw_scale=255)
net.set_mode_gpu()
net.set_phase_test()
In [18]:
test_id = 50
train_id = 69
test_img = caffe.io.load_image(cub.get_image_info(test_id))
train_img = caffe.io.load_image(cub.get_image_info(train_id))
train_img_flip = np.fliplr(train_img)
def get_feat(img, layer='pool5'):
net.predict([img])
feat = net.blobs[layer].data[0].flatten()
feat = feat / np.linalg.norm(feat)
return feat
test_feat = get_feat(test_img)
train_feat = get_feat(train_img)
train_feat_flip = get_feat(train_img_flip)
print 'the distance'
print np.linalg.norm(test_feat - train_feat)
print 'the distance with flipped'
print np.linalg.norm(test_feat - train_feat_flip)
In [19]:
from storage import datastore
from dataset import CUB_200_2011, CUB_200_2011_Parts_Head, CUB_200_2011_Parts_Body
from deep_extractor import CNN_Features_CAFFE_REFERENCE
from parts import Parts
import click
import numpy as np
import sklearn.neighbors
import sklearn.svm
import sklearn.metrics
from time import time
import caffe
In [12]:
storage_name = 'cache-cccftt'
layer = 'pool5'
name = '%s-%s' % ('cccftt', 100000)
normalize_feat = True
n_neighbors = 1
feat_layer = 'fc7' # obviously changing this only here will make things worse
cub = CUB_200_2011(settings.CUB_ROOT)
cub_part_head = CUB_200_2011_Parts_Head(settings.CUB_ROOT)
cub_part_body = CUB_200_2011_Parts_Body(settings.CUB_ROOT)
safe = datastore(settings.storage(storage_name))
safe.super_name = 'features'
safe.sub_name = name
instance_path = safe.get_instance_path(safe.super_name, safe.sub_name, 'feat_cache_%s' % layer)
feat = safe.load_large_instance(instance_path, 4)
# should we normalize the feats?
if normalize_feat:
# snippet from : http://stackoverflow.com/a/8904762/428321
# I've went for l2 normalization.
# row_sums = feat.sum(axis=1)
row_norms = np.linalg.norm(feat, axis=1)
new_feat = feat / row_norms[:, np.newaxis]
feat = new_feat
IDtrain, IDtest = cub.get_train_test_id()
# the following line is not really a good idea. Only works for this dataset.
Xtrain = feat[IDtrain-1, :]
Xtest = feat[IDtest-1, :]
nn_storage_name = 'nn-parts'
nn_storage = datastore(settings.storage(nn_storage_name))
nn_storage.super_name = '%s_%s' % (storage_name, name)
nn_storage.sub_name = layer
nn_storage.instance_name = 'norm_%s.mat' % str(normalize_feat)
nn_storage.instance_path = nn_storage.get_instance_path(nn_storage.super_name, nn_storage.sub_name, nn_storage.instance_name)
NNS = nn_storage.load_instance(nn_storage.instance_path)
# convert (N, 1) to (N,)
NNS = NNS.T[0]
# transfer part locations
all_parts_cub = cub.get_parts()
estimated_test_parts = Parts()
all_image_infos = cub.get_all_image_infos()
bbox = cub.get_bbox()
tic = time()
# estimate test parts with NN part transfer
for i in range(IDtest.shape[0]):
test_id = IDtest[i]
nn_id = IDtrain[NNS[i]]
nn_parts = all_parts_cub.for_image(nn_id)
test_bbox = bbox[test_id - 1]
nn_bbox = bbox[nn_id - 1]
estimated_parts = nn_parts.transfer(nn_bbox, test_bbox)
estimated_parts.set_for(test_id)
estimated_test_parts.appends(estimated_parts)
toc = time() - tic
print 'transfered in', toc
In [21]:
# load data
tic = time()
features_storage_r = datastore(settings.storage('ccrft'))
feature_extractor_r = CNN_Features_CAFFE_REFERENCE(features_storage_r, make_net=False)
features_storage_c = datastore(settings.storage('cccft'))
feature_extractor_c = CNN_Features_CAFFE_REFERENCE(features_storage_c, make_net=False)
features_storage_p_h = datastore(settings.storage('ccpheadft-100000'))
feature_extractor_p_h = CNN_Features_CAFFE_REFERENCE(features_storage_p_h, make_net=False)
features_storage_p_h = datastore(settings.storage('ccpheadft-100000'))
feature_extractor_p_h = CNN_Features_CAFFE_REFERENCE(features_storage_p_h, make_net=False)
features_storage_p_b = datastore(settings.storage('ccpbodyft-10000'))
feature_extractor_p_b = CNN_Features_CAFFE_REFERENCE(features_storage_p_b, make_net=False)
Xtrain_r, ytrain_r, Xtest_r, ytest_r = cub.get_train_test(feature_extractor_r.extract_one)
Xtrain_c, ytrain_c, Xtest_c, ytest_c = cub.get_train_test(feature_extractor_c.extract_one)
Xtrain_p_h, ytrain_p_h, Xtest_p_h, ytest_p_h = cub_part_head.get_train_test(feature_extractor_p_h.extract_one)
Xtrain_p_b, ytrain_p_b, Xtest_p_b, ytest_p_b = cub_part_body.get_train_test(feature_extractor_p_b.extract_one)
toc = time() - tic
print 'loaded data in', toc
In [22]:
# load caffe network
name = 'ccpheadft-100000'
net = caffe.Classifier(settings.model(name), settings.pretrained(name), mean=np.load(settings.ILSVRC_MEAN), channel_swap=(2, 1, 0), raw_scale=255)
net.set_phase_test()
net.set_mode_gpu()
# load estimated head data
new_Xtest_p_h = np.zeros(Xtest_p_h.shape)
for i, t_id in enumerate(IDtest):
t_parts = estimated_test_parts.for_image(t_id)
t_img_addr = all_image_infos[t_id]
t_img = caffe.io.load_image(t_img_addr)
t_parts_head = t_parts.filter_by_name(Parts.HEAD_PART_NAMES)
t_img_head = t_parts_head.get_rect(t_img)
net.predict([t_img_head], oversample=False)
new_Xtest_p_h[i, :] = net.blobs[feat_layer].data[0].flatten()
# Xtest_p_h = new_Xtest_p_h
In [23]:
# make the final feature vector
Xtrain = np.concatenate((Xtrain_r, Xtrain_c, Xtrain_p_h), axis=1)
Xtest = np.concatenate((Xtest_r, Xtest_c, Xtest_p_h), axis=1)
# do classification
tic = time()
model = sklearn.svm.LinearSVC(C=0.0001)
model.fit(Xtrain, ytrain_r)
predictions = model.predict(Xtest)
toc = time() - tic
print 'classified in', toc
print '--------------------'
print 'accuracy', sklearn.metrics.accuracy_score(ytest_r, predictions)
print 'mean accuracy', utils.mean_accuracy(ytest_r, predictions)
In [41]:
model = sklearn.svm.LinearSVC(C=0.0001)
model.fit(Xtrain_p_h, ytrain_r)
predictions = model.predict(Xtest_p_h)
print sklearn.metrics.accuracy_score(ytest_r, predictions)
print utils.mean_accuracy(ytest_r, predictions)
In [42]:
model = sklearn.svm.LinearSVC(C=0.0001)
model.fit(Xtrain_p_h, ytrain_r)
predictions = model.predict(new_Xtest_p_h)
print sklearn.metrics.accuracy_score(ytest_r, predictions)
print utils.mean_accuracy(ytest_r, predictions)
In [43]:
# make the final feature vector
Xtrain = np.concatenate((Xtrain_r, Xtrain_c, Xtrain_p_h), axis=1)
Xtest = np.concatenate((Xtest_r, Xtest_c, new_Xtest_p_h), axis=1)
# do classification
tic = time()
model = sklearn.svm.LinearSVC(C=0.0001)
model.fit(Xtrain, ytrain_r)
predictions = model.predict(Xtest)
toc = time() - tic
print 'classified in', toc
print '--------------------'
print 'accuracy', sklearn.metrics.accuracy_score(ytest_r, predictions)
print 'mean accuracy', utils.mean_accuracy(ytest_r, predictions)
In [44]:
# make the final feature vector
Xtrain = np.concatenate((Xtrain_c, Xtrain_p_h, Xtrain_p_b), axis=1)
Xtest = np.concatenate((Xtest_c, Xtest_p_h, Xtest_p_b), axis=1)
# do classification
tic = time()
model = sklearn.svm.LinearSVC(C=0.0001)
model.fit(Xtrain, ytrain_r)
predictions = model.predict(Xtest)
toc = time() - tic
print 'classified in', toc
print '--------------------'
print 'accuracy', sklearn.metrics.accuracy_score(ytest_r, predictions)
print 'mean accuracy', utils.mean_accuracy(ytest_r, predictions)
In [24]:
for i, t_id in enumerate(IDtest):
if i < 1923:
continue
# t_parts = estimated_test_parts.for_image(t_id)
t_parts = all_parts_cub.for_image(t_id)
t_img_addr = all_image_infos[t_id]
t_img = caffe.io.load_image(t_img_addr)
t_parts_head = t_parts.filter_by_name(Parts.HEAD_PART_NAMES)
t_img_head = t_parts_head.get_rect(t_img, add_noise=True, noise_std_c=5, noise_std_d=5)
plt.imshow(t_img_head)
break
In [ ]: