I would like to 'memoize' the objective, derivative and hessian functions, each taking a 1d double ndarray argument X, that are passed as arguments to scipy.optimize.fmin_ncg.
Each of these 3 functions has calculations in common that are expensive to compute and are a function of X. It seems fmin_ncg computes these quantities at the same X over the course of the optimization. How should I go about doing this? numpy arrays are not hashable, maybe for a good reason. I tried anyway by keeping a dict of hash(tuple(X)), but started having collisions. So I switched to md5.new(X).digest() as the hash function and it seems to work ok. In a quick search, I saw cPickle.dumps and repr are also used as key values. I am assuming this is a common problem with functions with numpy array arguments and was wondering what the best approach is (including not using memoization). Thanks, Pål. _______________________________________________ Numpy-discussion mailing list [email protected] http://mail.scipy.org/mailman/listinfo/numpy-discussion
