forked from BIDData/BIDMach
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathworkout_slave.ssc
executable file
·166 lines (147 loc) · 4.47 KB
/
workout_slave.ssc
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
val dir = ".."
val a = loadSMat(dir+"/data/rcv1/docs.smat.lz4")
val c = loadFMat(dir+"/data/rcv1/cats.fmat.lz4")
val ta = loadSMat(dir+"/data/rcv1/testdocs.smat.lz4")
val tc = loadFMat(dir+"/data/rcv1/testcats.fmat.lz4")
println("\n<<<<<<< Testing GLM on RCV1 (2 passes) >>>>>>>")
val pc = zeros(tc.nrows, tc.ncols);
val (mm1,opts1,nn1,nopts1) = GLM.learner(a,c,ta,pc,1)
opts1.useGPU=useGPU
nopts1.useGPU=useGPU
opts1.autoReset=false
mm1.train
nn1.predict
val rc = roc2(pc, tc, 1-tc, 1000)
val mr = mean(rc)(0, 0->100)
val nt = sum(c,2)(0->100, 0)
val wt = nt / sum(nt);
println("ROC AUC: mean %5.4f, cat6 %5.4f" format ((mr*wt).dv, mr(6)))
println("\n<<<<<<< Testing FM on RCV1 (2 passes) >>>>>>>")
//min(a,1f,a)
//min(ta,1f,ta)
val c6 = c(6,?)
val p6 = zeros(1,ta.ncols)
val tc6 = tc(6,?)
val (mm2,opts2,nn2,nopts2) = FM.learner(a,c6,ta,p6,1)
opts2.useGPU=useGPU
nopts2.useGPU=useGPU
opts2.lrate = 0.03f*row(1,0,0) + 0.003f*row(0,1,1)
opts2.reg1weight = 0.001*row(1,0,0) + 0.1*row(0,1,1)
opts2.batchSize=2000
nopts2.batchSize=10000
opts2.addConstFeat = true
nopts2.addConstFeat = true
opts2.dim1 = 32
opts2.dim2 = 32
//opts2.strictFM = true
mm2.train
nn2.predict
val rr2 = roc(p6,tc6,1-tc6,100)
println("ROC AUC cat6 %5.4f" format mean(rr2).dv)
if (useGPU) resetGPU
val a = loadSMat(dir+"/data/uci/nytimes.smat.lz4")
if (useGPU && Mat.hasCUDA > 1) {
println("\n<<<<<<< Testing parallel LDA on NYTimes (2 passes) >>>>>>>")
val (mm4,opts4) = LDA.learnPar(a, 512)
opts4.batchSize = 5000
opts4.useGPU=useGPU
opts4.nthreads = Mat.hasCUDA
opts4.npasses=2
mm4.train
} else if (Mat.hasCUDA > 0) {
println("\n<<<<<<< Testing LDA on NYTimes (2 passes) >>>>>>>")
val (mm4,opts4) = LDA.learner(a, 128)
opts4.useGPU=useGPU
opts4.npasses=2
mm4.train
}
println("\n<<<<<<< Testing SFA on MovieLens 10M Data (5 passes) >>>>>>>")
val a5=loadSMat(dir+"/data/movielens/train.smat.lz4")
val ta5=loadSMat(dir+"/data/movielens/test.smat.lz4")
val d = 128
val fact5 = zeros(d, ta5.ncols);
val (mm5,opts5) = SFA.learner(a5,fact5,d)
opts5.useGPU = useGPU
opts5.lambdam = 0.025f
opts5.lambdau = 1f
opts5.regumean = 0.1f;
opts5.uiter = 8
opts5.npasses=5
opts5.batchSize = 1000
mm5.train
val mod5 = FMat(mm5.modelmat)
val iavg = FMat(mm5.modelmats(1))
val preds = DDS(mod5, fact5, ta5) + iavg
val diff = preds.contents - ta5.contents
val rmse = sqrt((diff ^* diff) / diff.length)
println("RMSE = %f" format rmse.v);
if ((new java.io.File("../data/uci/pubmed_parts/part00.smat.lz4")).exists) {
println("\n<<<<<<< Testing LDA with SFilesDS on Pubmed (2 passes) >>>>>>>")
val (mm6,opts6) = LDA.learner(List((n:Int)=> ("../data/uci/pubmed_parts/part%02d.smat.lz4" format n)), 128)
opts6.npasses=2
opts6.useGPU=useGPU
mm6.train
}
if ((new java.io.File("../data/MNIST8M/parts/alls00.fmat.lz4")).exists) {
if (useGPU && Mat.hasCUDA > 1) {
println("\n<<<<<<< Testing parallel KMeans with FilesDS on MNIST8M (4 passes) >>>>>>>")
val (mm7,opts7) = KMeans.learnPar("../data/MNIST8M/parts/alls%02d.fmat.lz4", 4096)
opts7.npasses=4
opts7.nend=70
opts7.batchSize=20000
opts7.nthreads=Mat.hasCUDA
mm7.train
} else {
println("\n<<<<<<< Testing KMeans with FilesDS on MNIST8M (4 passes) >>>>>>>")
val (mm7,opts7) = KMeans.learner(List((n:Int)=> ("../data/MNIST8M/parts/alls%02d.fmat.lz4" format n)), 256)
opts7.npasses=4
opts7.nend=70
opts7.batchSize=100000
opts7.useGPU=useGPU
mm7.train
}
}
if (useGPU && Mat.hasCUDA > 1) {
println("\n<<<<<<< Testing parallel NMF on NYTimes (2 passes) >>>>>>>")
val (mm8,opts8) = NMF.learnPar(a, 256)
opts8.batchSize = 5000
opts8.useGPU=useGPU
opts8.npasses=2
opts8.nthreads=Mat.hasCUDA
mm8.train
} else {
println("\n<<<<<<< Testing NMF on NYTimes (2 passes) >>>>>>>")
val (mm8,opts8) = NMF.learner(a, 128)
opts8.batchSize = 5000
opts8.useGPU=useGPU
opts8.npasses=2
mm8.train
}
val x = rand(32,1000000) // A causal data matrix
val b = rand(1,32) - 0.5f // influence on the treatment
val z = rand(1,33) - 0.5f // influence on the outcome
val bx = (b * x)
val ilink = irow(1,1)
GLM.preds(bx, bx, ilink, 10)
val atreat = (rand(1, x.ncols) < bx)
val xa = x on atreat
val zx = z * xa
GLM.preds(zx, zx, ilink, 10)
val yout = (rand(1, x.ncols) < zx)
val aa = xa on yout
val targetmat = zeros(2,34)
targetmat(0,32) = 1
targetmat(1,33) = 1
val mask = ones(2,34)
mask(0,32) = 0
mask(0,33) = 0
mask(1,33) = 0
println("\n<<<<<<< Testing IPTW estimators (10 passes) >>>>>>>")
val (mm10,opts10) = IPTW.learner(aa)
opts10.useGPU=useGPU
opts10.targets = targetmat
opts10.rmask = mask
opts10.links = ilink
opts10.useGPU = false
opts10.npasses = 10
mm10.train