for (Iterator it = unrolled.unrolledVarSetIterator (); it.hasNext ();) { ACRF.UnrolledVarSet clique = (ACRF.UnrolledVarSet) it.next (); ACRF.Template tmpl = clique.getTemplate (); int tidx = tmpl.index; if (tidx == -1) continue;
for (Iterator it = unrolled.unrolledVarSetIterator (); it.hasNext ();) { ACRF.UnrolledVarSet clique = (ACRF.UnrolledVarSet) it.next (); ACRF.Template tmpl = clique.getTemplate (); int tidx = tmpl.index; if (tidx == -1) continue;
for (Iterator it = unrolled.unrolledVarSetIterator (); it.hasNext ();) { ACRF.UnrolledVarSet clique = (ACRF.UnrolledVarSet) it.next (); ACRF.Template tmpl = clique.getTemplate (); int tidx = tmpl.index; if (tidx == -1) continue;
int tidx = clique.getTemplate().index; if (tidx == -1) continue;
int tidx = clique.getTemplate().index; if (tidx == -1) continue;
for (Iterator it = unrolled.unrolledVarSetIterator (); it.hasNext();) { ACRF.UnrolledVarSet clique = (ACRF.UnrolledVarSet) it.next(); int tidx = clique.getTemplate().index; if (tidx == -1) continue;
for (Iterator it = unrolled.unrolledVarSetIterator (); it.hasNext();) { ACRF.UnrolledVarSet clique = (ACRF.UnrolledVarSet) it.next(); int tidx = clique.getTemplate().index; if (tidx == -1) continue;
for (Iterator it = unrolled.unrolledVarSetIterator (); it.hasNext ();) { ACRF.UnrolledVarSet clique = (ACRF.UnrolledVarSet) it.next (); int tidx = clique.getTemplate ().index; if (tidx == -1) continue; WrongWrong ww = (WrongWrong) wwIt.next (); ACRF.UnrolledVarSet clique = ww.findVarSet (unrolled); int tidx = clique.getTemplate ().index; int wrong2rightId = ww.assnIdx; constraints[tidx][wrong2rightId].plusEqualsSparse (clique.getFv (), 1.0);
for (Iterator it = unrolled.unrolledVarSetIterator (); it.hasNext ();) { ACRF.UnrolledVarSet clique = (ACRF.UnrolledVarSet) it.next (); int tidx = clique.getTemplate ().index; if (tidx == -1) continue; WrongWrong ww = (WrongWrong) wwIt.next (); ACRF.UnrolledVarSet clique = ww.findVarSet (unrolled); int tidx = clique.getTemplate ().index; int wrong2rightId = ww.assnIdx; constraints[tidx][wrong2rightId].plusEqualsSparse (clique.getFv (), 1.0);
for (Iterator it = unrolled.unrolledVarSetIterator (); it.hasNext();) { ACRF.UnrolledVarSet clique = (ACRF.UnrolledVarSet) it.next(); int tidx = clique.getTemplate().index; if (tidx == -1) continue;
for (Iterator it = unrolled.unrolledVarSetIterator (); it.hasNext ();) { ACRF.UnrolledVarSet clique = (ACRF.UnrolledVarSet) it.next (); int tidx = clique.getTemplate ().index; if (tidx == -1) continue; WrongWrong ww = (WrongWrong) wwIt.next (); ACRF.UnrolledVarSet clique = ww.findVarSet (unrolled); int tidx = clique.getTemplate ().index; int wrong2rightId = ww.assnIdx; constraints[tidx][wrong2rightId].plusEqualsSparse (clique.getFv (), 1.0);
private double computeValueGradientForAssn (Assignment observations, ACRF.UnrolledVarSet clique, Variable target) { numCvgaCalls++; Timing timing = new Timing (); ACRF.Template tmpl = clique.getTemplate (); int tidx = tmpl.index; Assignment cliqueAssn = Assignment.restriction (observations, clique); int M = target.getNumOutcomes (); double[] vals = new double [M]; int[] singles = new int [M]; for (int assnIdx = 0; assnIdx < M; assnIdx++) { cliqueAssn.setValue (target, assnIdx); vals[assnIdx] = computeLogFactorValue (cliqueAssn, tmpl, clique.getFv ()); singles[assnIdx] = cliqueAssn.singleIndex (); } double logZ = Maths.sumLogProb (vals); for (int assnIdx = 0; assnIdx < M; assnIdx++) { double marginal = Math.exp (vals[assnIdx] - logZ); int expIdx = singles[assnIdx]; expectations[tidx][expIdx].plusEqualsSparse (clique.getFv (), marginal); if (defaultExpectations[tidx].location (expIdx) != -1) { defaultExpectations[tidx].incrementValue (expIdx, marginal); } } int observedVal = observations.get (target); timePerCvgaCall += timing.elapsedTime (); return vals[observedVal] - logZ; }
private double computeValueGradientForAssn (Assignment observations, ACRF.UnrolledVarSet clique, Variable target) { numCvgaCalls++; Timing timing = new Timing (); ACRF.Template tmpl = clique.getTemplate (); int tidx = tmpl.index; Assignment cliqueAssn = Assignment.restriction (observations, clique); int M = target.getNumOutcomes (); double[] vals = new double [M]; int[] singles = new int [M]; for (int assnIdx = 0; assnIdx < M; assnIdx++) { cliqueAssn.setValue (target, assnIdx); vals[assnIdx] = computeLogFactorValue (cliqueAssn, tmpl, clique.getFv ()); singles[assnIdx] = cliqueAssn.singleIndex (); } double logZ = Maths.sumLogProb (vals); for (int assnIdx = 0; assnIdx < M; assnIdx++) { double marginal = Math.exp (vals[assnIdx] - logZ); int expIdx = singles[assnIdx]; expectations[tidx][expIdx].plusEqualsSparse (clique.getFv (), marginal); if (defaultExpectations[tidx].location (expIdx) != -1) { defaultExpectations[tidx].incrementValue (expIdx, marginal); } } int observedVal = observations.get (target); timePerCvgaCall += timing.elapsedTime (); return vals[observedVal] - logZ; }
private double computeValueGradientForAssn (Assignment observations, ACRF.UnrolledVarSet clique, Variable target) { numCvgaCalls++; Timing timing = new Timing (); ACRF.Template tmpl = clique.getTemplate (); int tidx = tmpl.index; Assignment cliqueAssn = Assignment.restriction (observations, clique); int M = target.getNumOutcomes (); double[] vals = new double [M]; int[] singles = new int [M]; for (int assnIdx = 0; assnIdx < M; assnIdx++) { cliqueAssn.setValue (target, assnIdx); vals[assnIdx] = computeLogFactorValue (cliqueAssn, tmpl, clique.getFv ()); singles[assnIdx] = cliqueAssn.singleIndex (); } double logZ = Maths.sumLogProb (vals); for (int assnIdx = 0; assnIdx < M; assnIdx++) { double marginal = Math.exp (vals[assnIdx] - logZ); int expIdx = singles[assnIdx]; expectations[tidx][expIdx].plusEqualsSparse (clique.getFv (), marginal); if (defaultExpectations[tidx].location (expIdx) != -1) { defaultExpectations[tidx].incrementValue (expIdx, marginal); } } int observedVal = observations.get (target); timePerCvgaCall += timing.elapsedTime (); return vals[observedVal] - logZ; }
private void collectConstraintsForGraph (ACRF.UnrolledGraph unrolled, Assignment observations) { for (CliquesIterator it = makeCliquesIterator (unrolled, observations); it.hasNext();) { it.advance (); ACRF.UnrolledVarSet[] cliques = it.cliques (); for (int cidx = 0; cidx < cliques.length; cidx++) { ACRF.UnrolledVarSet clique = cliques[cidx]; int tidx = clique.getTemplate().index; if (tidx < 0) continue; int assnIdx = clique.lookupNumberOfAssignment (observations); constraints [tidx][assnIdx].plusEqualsSparse (clique.getFv (), 1.0); if (defaultConstraints[tidx].location (assnIdx) != -1) defaultConstraints [tidx].incrementValue (assnIdx, 1.0); } } }
private void collectConstraintsForGraph (ACRF.UnrolledGraph unrolled, Assignment observations) { for (CliquesIterator it = makeCliquesIterator (unrolled, observations); it.hasNext();) { it.advance (); ACRF.UnrolledVarSet[] cliques = it.cliques (); for (int cidx = 0; cidx < cliques.length; cidx++) { ACRF.UnrolledVarSet clique = cliques[cidx]; int tidx = clique.getTemplate().index; if (tidx < 0) continue; int assnIdx = clique.lookupNumberOfAssignment (observations); constraints [tidx][assnIdx].plusEqualsSparse (clique.getFv (), 1.0); if (defaultConstraints[tidx].location (assnIdx) != -1) defaultConstraints [tidx].incrementValue (assnIdx, 1.0); } } }
private void collectConstraintsForGraph (ACRF.UnrolledGraph unrolled, Assignment observations) { for (CliquesIterator it = makeCliquesIterator (unrolled, observations); it.hasNext();) { it.advance (); ACRF.UnrolledVarSet[] cliques = it.cliques (); for (int cidx = 0; cidx < cliques.length; cidx++) { ACRF.UnrolledVarSet clique = cliques[cidx]; int tidx = clique.getTemplate().index; if (tidx < 0) continue; int assnIdx = clique.lookupNumberOfAssignment (observations); constraints [tidx][assnIdx].plusEqualsSparse (clique.getFv (), 1.0); if (defaultConstraints[tidx].location (assnIdx) != -1) defaultConstraints [tidx].incrementValue (assnIdx, 1.0); } } }
private void collectConstraintsForInstance (InstanceList ilist, int inum) { Instance inst = ilist.get (inum); ACRF.UnrolledGraph unrolled = new ACRF.UnrolledGraph (inst, templates, null, false); for (Iterator it = unrolled.unrolledVarSetIterator (); it.hasNext();) { ACRF.UnrolledVarSet clique = (ACRF.UnrolledVarSet) it.next(); int tidx = clique.getTemplate().index; if (tidx == -1) continue; int assn = clique.lookupAssignmentNumber (); constraints [tidx][assn].plusEqualsSparse (clique.getFv ()); if (defaultConstraints[tidx].location (assn) != -1) defaultConstraints [tidx].incrementValue (assn, 1.0); } }
private void collectConstraintsForInstance (InstanceList ilist, int inum) { Instance inst = ilist.get (inum); ACRF.UnrolledGraph unrolled = new ACRF.UnrolledGraph (inst, templates, null, false); for (Iterator it = unrolled.unrolledVarSetIterator (); it.hasNext();) { ACRF.UnrolledVarSet clique = (ACRF.UnrolledVarSet) it.next(); int tidx = clique.getTemplate().index; if (tidx == -1) continue; int assn = clique.lookupAssignmentNumber (); constraints [tidx][assn].plusEqualsSparse (clique.getFv ()); if (defaultConstraints[tidx].location (assn) != -1) defaultConstraints [tidx].incrementValue (assn, 1.0); } }
private void collectConstraintsForInstance (InstanceList ilist, int inum) { Instance inst = ilist.get (inum); ACRF.UnrolledGraph unrolled = new ACRF.UnrolledGraph (inst, templates, null, false); for (Iterator it = unrolled.unrolledVarSetIterator (); it.hasNext();) { ACRF.UnrolledVarSet clique = (ACRF.UnrolledVarSet) it.next(); int tidx = clique.getTemplate().index; if (tidx == -1) continue; int assn = clique.lookupAssignmentNumber (); constraints [tidx][assn].plusEqualsSparse (clique.getFv ()); if (defaultConstraints[tidx].location (assn) != -1) defaultConstraints [tidx].incrementValue (assn, 1.0); } }