myopen(join(rundir, "best-model.pkl"), "w"), protocol=-1) myopen(join(rundir, "best-model-validation.txt"), "w").write("Accuracy %.2f%% after %d updates" % (best_validation_accuracy * 100, best_validation_at)) mvgavg_accuracy = 0. mvgavg_variance = 0. cnt = 0 for (x, y) in examples.get_training_example(): cnt += 1 # print x, y # print "Target y =", y if HLAYERS == 2: o = graph.trainfn(x, N.array([y]), w1, b1, wh, bh, w2, b2) (kl, softmax, argmax, prehidden1, prehidden2, gw1, gb1, gwh, gbh, gw2, gb2) = o else: o = graph.trainfn(x, N.array([y]), w1, b1, w2, b2) (kl, softmax, argmax, prehidden, gw1, gb1, gw2, gb2) = o # print "old KL=%.3f, softmax=%s, argmax=%d" % (kl, softmax, argmax) # print "old KL=%.3f, argmax=%d" % (kl, argmax) if argmax == y: this_accuracy = 1. else: this_accuracy = 0. mvgavg_accuracy = mvgavg_accuracy - (2. / cnt) * (mvgavg_accuracy - this_accuracy) # Should I compute mvgavg_variance before updating the mvgavg_accuracy? this_variance = (this_accuracy - mvgavg_accuracy) * (this_accuracy - mvgavg_accuracy)
def state_save(): if HLAYERS == 2: cPickle.dump((w1, b1, wh, bh, w2, b2), myopen(join(rundir, "best-model.pkl"), "w"), protocol=-1) else: cPickle.dump((w1, b1, w2, b2), myopen(join(rundir, "best-model.pkl"), "w"), protocol=-1) myopen(join(rundir, "best-model-validation.txt"), "w").write("Accuracy %.2f%% after %d updates" % (best_validation_accuracy*100, best_validation_at)) mvgavg_accuracy = 0. mvgavg_variance = 0. cnt = 0 for (x, y) in examples.get_training_example(): cnt += 1 # print x, y # print "Target y =", y if HLAYERS == 2: o = graph.trainfn([x.data], N.array([y]), w1[x.indices], b1, wh, bh, w2, b2) (kl, softmax, argmax, prehidden1, prehidden2, gw1, gb1, gwh, gbh, gw2, gb2) = o else: o = graph.trainfn([x.data], N.array([y]), w1[x.indices], b1, w2, b2) (kl, softmax, argmax, prehidden, gw1, gb1, gw2, gb2) = o # print "old KL=%.3f, softmax=%s, argmax=%d" % (kl, softmax, argmax) # print "old KL=%.3f, argmax=%d" % (kl, argmax) if argmax == y: this_accuracy = 1. else: this_accuracy = 0. mvgavg_accuracy = mvgavg_accuracy - (2. / cnt) * (mvgavg_accuracy - this_accuracy) # Should I compute mvgavg_variance before updating the mvgavg_accuracy? this_variance = (this_accuracy - mvgavg_accuracy) * (this_accuracy - mvgavg_accuracy) mvgavg_variance = mvgavg_variance - (2. / cnt) * (mvgavg_variance - this_variance) # print "Accuracy (moving average): %.2f%%, stddev: %.2f%%" % (100. * mvgavg_accuracy, 100. * math.sqrt(mvgavg_variance))
def state_save(): if HLAYERS == 2: cPickle.dump((w1, b1, wh, bh, w2, b2), myopen(join(rundir, "best-model.pkl"), "w"), protocol=-1) else: cPickle.dump((w1, b1, w2, b2), myopen(join(rundir, "best-model.pkl"), "w"), protocol=-1) myopen(join(rundir, "best-model-validation.txt"), "w").write("Accuracy %.2f%% after %d updates" % (best_validation_accuracy*100, best_validation_at)) mvgavg_accuracy = 0. mvgavg_variance = 0. cnt = 0 for (x, y) in examples.get_training_example(): cnt += 1 # print x, y # print "Target y =", y if HLAYERS == 2: o = graph.trainfn(x, N.array([y]), w1, b1, wh, bh, w2, b2) (kl, softmax, argmax, prehidden1, prehidden2, gw1, gb1, gwh, gbh, gw2, gb2) = o else: o = graph.trainfn(x, N.array([y]), w1, b1, w2, b2) (kl, softmax, argmax, prehidden, gw1, gb1, gw2, gb2) = o # print "old KL=%.3f, softmax=%s, argmax=%d" % (kl, softmax, argmax) # print "old KL=%.3f, argmax=%d" % (kl, argmax) if argmax == y: this_accuracy = 1. else: this_accuracy = 0. mvgavg_accuracy = mvgavg_accuracy - (2. / cnt) * (mvgavg_accuracy - this_accuracy) # Should I compute mvgavg_variance before updating the mvgavg_accuracy? this_variance = (this_accuracy - mvgavg_accuracy) * (this_accuracy - mvgavg_accuracy) mvgavg_variance = mvgavg_variance - (2. / cnt) * (mvgavg_variance - this_variance) # print "Accuracy (moving average): %.2f%%, stddev: %.2f%%" % (100. * mvgavg_accuracy, 100. * math.sqrt(mvgavg_variance))
# state.save((w1, b1, wh, bh, w2, b2), rundir, best_validation_accuracy, best_validation_at) #else: # state.save((w1, b1, w2, b2), rundir, best_validation_accuracy, best_validation_at) for (x, y) in examples.get_training_example(): cnt += 1 # print x, y # print "Target y =", y if HYPERPARAMETERS["locally normalize"]: targety = N.array([y]) else: targety = N.zeros(ODIM) targety[y] = 1. if HLAYERS == 2: o = graph.trainfn([x.data], targety, w1[x.indices], b1, wh, bh, w2, b2) (kl, softmax, argmax, prehidden1, prehidden2, gw1, gb1, gwh, gbh, gw2, gb2) = o else: o = graph.trainfn([x.data], targety, w1[x.indices], b1, w2, b2) (kl, softmax, argmax, prehidden, gw1, gb1, gw2, gb2) = o # print "old KL=%.3f, softmax=%s, argmax=%d" % (kl, softmax, argmax) # print "old KL=%.3f, argmax=%d" % (kl, argmax) if argmax == y: this_accuracy = 100. else: this_accuracy = 0. mvgavg_accuracy.add(this_accuracy) if N.isnan(kl).any(): print >> sys.stderr, "Got a NaN loss" else: mvgavg_loss.add(kl)