Noise contrastive estimation tests.
Early sync update.
Sparse gradient updates.
Add unit test.
Correctly count model parameters.
Old style regularization.
Thread specific random generators.
Correct (slower) regularization.
Efficient clearing of gradients.
Clean up code.
Time tracking.
Dynamic allocation.
Clean up.