test_model.py
2.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
__author__ = 'chunk'
from ..common import *
from ..mdata import MSR, CV ,ILSVRC
from ..mmodel import SVM
from ..mfeat import HOG
from sklearn import cross_validation
timer = Timer()
def test_SVM_CV():
timer.mark()
dcv = CV.DataCV()
X, Y = dcv.load_data(mode='local') # 90.468586s -> 5.392520s
# X, Y = dcv.load_data(mode='hbase') # 21.682754s
# X, Y = dcv.load_data(mode='spark') # 29.549597s
timer.report()
timer.mark()
# msvm = SVM.ModelSVM(toolset='sklearn') # 3.030380s
# msvm = SVM.ModelSVM(toolset='opencv') # 8.939880s
# msvm = SVM.ModelSVM(toolset='libsvm') # 185.524023s
msvm = SVM.ModelSVM(toolset='spark')
msvm.train(X, Y)
timer.report()
timer.mark()
for path, subdirs, files in os.walk('data/467/'):
for name in files:
imgpath = os.path.join(path, name)
feat = dcv.get_feat(imgpath, 'hog')
print name, msvm.predict(feat)
timer.report()
timer.mark()
print msvm.test(X, Y) # 0.948892561983 for svm_cv, 0.989024793388 for svm_sk, 0.9900826446280992 for svm_lib
timer.report() # 27.421949s for svm_lib
def test_SVM_ILSVRC():
timer.mark()
dil = ILSVRC.DataILSVRC(base_dir='/data/hadoop/ImageNet/ILSVRC/ILSVRC2013_DET_val', category='Test')
X, Y = dil.load_data(mode='local') #
# X, Y = dcv.load_data(mode='hbase') #
# X, Y = dcv.load_data(mode='spark') #
print np.array(Y).shape,np.array(X).shape
# print X[:2]
X_train, X_test, Y_train, Y_test = cross_validation.train_test_split(X, Y, test_size=0.4, random_state=0)
print np.array(X_train).shape, np.array(Y_train).shape
print np.array(X_test).shape, np.array(Y_test).shape
timer.report()
timer.mark()
msvm = SVM.ModelSVM(toolset='sklearn') # 4.884247s 0.777853030816
# msvm = SVM.ModelSVM(toolset='opencv') #
# msvm = SVM.ModelSVM(toolset='libsvm') #
# msvm = SVM.ModelSVM(toolset='spark')
msvm.train(X_train, Y_train)
timer.report()
timer.mark()
print msvm.test(X_test, Y_test) #
timer.report() #
timer.mark()
print 'or like this:'
scores = cross_validation.cross_val_score(msvm.model,X,Y)
print scores
timer.report()
if __name__ == '__main__':
# test_SVM_CV()
test_SVM_ILSVRC()
print 'helllo'