Skip to content

Commit

Permalink
updates
Browse files Browse the repository at this point in the history
  • Loading branch information
jcanny committed Nov 16, 2014
1 parent 4bfbdb1 commit 31a723e
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 15 deletions.
26 changes: 13 additions & 13 deletions src/main/scala/BIDMach/models/GLM.scala
Original file line number Diff line number Diff line change
Expand Up @@ -44,18 +44,18 @@ class GLM(opts:GLM.Opts) extends RegressionModel(opts) {
def mupdate(in:Mat) = {
val targs = targets * in
min(targs, 1f, targs)
val alltargs = if (targmap.asInstanceOf[AnyRef] != null) targmap * targs else targs
val dweights = if (iweight.asInstanceOf[AnyRef] != null) iweight * in else null
mupdate3(in, alltargs, dweights)
mupdate3(in, targs, dweights)
}

def mupdate2(in:Mat, targ:Mat) = mupdate3(in, targ, null)

def mupdate3(in:Mat, targ:Mat, dweights:Mat) = {
val ftarg = full(targ)
def mupdate3(in:Mat, targ:Mat, dweights:Mat) = {
val ftarg = full(targ);
val targs = if (targmap.asInstanceOf[AnyRef] != null) targmap * ftarg else ftarg;
val eta = modelmats(0) * in
GLM.preds(eta, eta, mylinks, linkArray, totflops)
GLM.derivs(eta, ftarg, eta, mylinks, linkArray, totflops)
GLM.derivs(eta, targs, eta, mylinks, linkArray, totflops)
if (dweights.asInstanceOf[AnyRef] != null) eta ~ eta dweights
updatemats(0) ~ eta *^ in
if (mask.asInstanceOf[AnyRef] != null) {
Expand All @@ -64,21 +64,21 @@ class GLM(opts:GLM.Opts) extends RegressionModel(opts) {
}

def meval(in:Mat):FMat = {
val targs = targets * in
min(targs, 1f, targs)
val alltargs = if (targmap.asInstanceOf[AnyRef] != null) targmap * targs else targs
val dweights = if (iweight.asInstanceOf[AnyRef] != null) iweight * in else null
meval3(in, alltargs, dweights)
val targs = targets * in;
min(targs, 1f, targs);
val dweights = if (iweight.asInstanceOf[AnyRef] != null) iweight * in else null;
meval3(in, targs, dweights);
}

def meval2(in:Mat, targ:Mat):FMat = meval3(in, targ, null)

def meval3(in:Mat, targ:Mat, dweights:Mat):FMat = {
val ftarg = full(targ)
val ftarg = full(targ);
val targs = if (!(putBack >= 0) && targmap.asInstanceOf[AnyRef] != null) targmap * ftarg else ftarg;
val eta = modelmats(0) * in
GLM.preds(eta, eta, mylinks, linkArray, totflops)
val v = GLM.llfun(eta, ftarg, mylinks, linkArray, totflops)
if (putBack >= 0) {ftarg <-- eta}
val v = GLM.llfun(eta, targs, mylinks, linkArray, totflops)
if (putBack >= 0) {targ <-- eta}
if (dweights.asInstanceOf[AnyRef] != null) {
FMat(sum(v dweights, 2) / sum(dweights))
} else {
Expand Down
10 changes: 8 additions & 2 deletions src/main/scala/BIDMach/models/Regression.scala
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,13 @@ abstract class RegressionModel(override val opts:RegressionModel.Opts) extends M
val data0 = mats(0)
val m = size(data0, 1)
val targetData = mats.length > 1
val d = if (targetData) mats(1).nrows else if (opts.targmap.asInstanceOf[AnyRef] != null) opts.targmap.nrows else opts.targets.nrows
val d = if (opts.targmap.asInstanceOf[AnyRef] != null) {
opts.targmap.nrows
} else if (opts.targets.asInstanceOf[AnyRef] != null) {
opts.targets.nrows
} else {
mats(1).nrows
}
val sdat = (sum(data0,2).t + 0.5f).asInstanceOf[FMat]
sp = sdat / sum(sdat)
println("corpus perplexity=%f" format (math.exp(-(sp ddot ln(sp)))))
Expand All @@ -39,9 +45,9 @@ abstract class RegressionModel(override val opts:RegressionModel.Opts) extends M
}
updatemats = new Array[Mat](1)
updatemats(0) = modelmats(0).zeros(modelmats(0).nrows, modelmats(0).ncols)
targmap = if (useGPU && opts.targmap.asInstanceOf[AnyRef] != null) GMat(opts.targmap) else opts.targmap
if (! targetData) {
targets = if (useGPU && opts.targets.asInstanceOf[AnyRef] != null) GMat(opts.targets) else opts.targets
targmap = if (useGPU && opts.targmap.asInstanceOf[AnyRef] != null) GMat(opts.targmap) else opts.targmap
mask = if (useGPU && opts.rmask.asInstanceOf[AnyRef] != null) GMat(opts.rmask) else opts.rmask
}
}
Expand Down

0 comments on commit 31a723e

Please sign in to comment.