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
|
from subprocess import (check_output,call)
import os
def split(params):
devnull = open(os.devnull, 'w')
call(["./split"]+params.split(" "),stdout=devnull)
def train(params):
params+=" --iter 1 --cg_prec 1e-4 --ls_prec 1e-10 --prec 1e-4"
bare(params)
def bare(params):
devnull = open(os.devnull, 'w')
call(["./ranksvm"]+params.split(" "),stdout=devnull)
def cmc(params):
devnull = open(os.devnull, 'w')
retcode = check_output(["./ranksvm"]+params.split(" ")).decode('ascii').split('\n');
return float(retcode[-2])
def take(fname):
f=open(fname,'r')
res=f.read().split('\n')
f.close()
return res
def merge(a,b):
return a[:-1]+b[1:]
def put(fname,a):
f=open(fname,'w')
for item in a:
f.write("%s\n" % item)
f.close()
def getmodel(fname):
f=open(fname,'r')
res=f.read().split('\n')
f.close()
mod=[];
fsize=int(res[1]);
for i in range(fsize):
mod.append(float(res[3+i]))
return mod;
def putmodel(fname,m):
f=open(fname,'w')
f.write("TN\n")
f.write("%d\n" % len(m))
f.write("%d 1\n"%len(m))
for a in m:
f.write("%g\n"%a)
f.write("0")
f.close()
def getpred(fname):
f=open(fname,'r')
res=f.read().split('\n')
f.close()
return [float(p) for p in res[:-1]]
|