Hook the new data_prob.neg_log_probability_with_gradient function up to the scipy.optimize.fmin_tnc optimizer.  Optimizer is raising a 'Linear search failed' error, and halts on iteration 0, around 50 or so function calls.  Run itworks.py to see this happen; itworks.py also now prints the return value of data_prob.nlpwg with the initial weights, just to see what they look like, right before the call to fmin_tnc.