Q:

fmincg implementation in Python

I'm trying to re-implement Neural Networks in Python.  I implemented the cost function and the backpropagation algorithm correctly.  I have checked them by executing its Octave equivalent code. 
But when I'm trying to use the scipy.optimize.fmin_cg function, the iterations take a very long time to execute.  It exits with a warning and gives me an error saying that the "desired error rate wasn't achieved". 
The same program in Octave executes fine.  However, it has its own fmincg function defined. 
What am I doing wrong?  

A:

As a future hint, use the double question mark ??  to pull the source of the function:
Looking at the scipy sources this error message comes up if the internal parameter alpha_k is zero or None.   
This value in turn is tied to the internal Wolfe Line search algorithm.   In particular it is called when the search doesn't find a better value along the search trajectory.   Your function likely has a linear contour somewhere along it that the optimizer falls into and gets confused.   
Perhaps try adding a callback, and see where the failing search is generated?