On Wednesday, January 7, 2015 12:56:29 PM UTC-8, Devin Jeanpierre wrote:

[snip]

> If you never run model directly, and only ever import it or run it as
> my_svr.model, then you will be fine, and pickles will all serialize
> and deserialize the same way.

Thank you Devin... I re-ran TrainingSession from within ipython, and everything 
worked the way I hoped.  I obtained an SVRModel object which I could pickle to 
disk, and unpickle in a subsequent session.  I don't actually need to run the 
test code that I appended to training.py any more, so I won't.

[snip]

> P.S. don't use pickle, it is a security vulnerability equivalent in
> severity to using exec in your code, and an unversioned opaque
> schemaless blob that is very difficult to work with when circumstances
> change.

For all of its shortcomings, I can't live without pickle.  In this case, I am 
doing data mining.  My TrainingSession class commandeers seven CPU cores via 
Multiprocessing.Pool.  Still, even my "toy" TrainingSessions take several 
minutes to run.  I can't afford to re-run TrainingSession every time I need my 
models.  I need a persistent object.

Besides, the opportunity for mischief is low.  My code is for my own personal 
use.  And I trust the third-party libraries that I am using.  My SVRModel 
object wraps the NuSVR object from scikit-learn, which in turn wraps the libsvm 
binary.

> > try:
> >     from model import *
> >     from sampling import *
> > except ImportError:
> >     from .model import *
> >     from .sampling import *
> >
> >
> > This bothers me.  I don't know whether it is correct usage.  I don't know 
> > whether it is causing my remaining ImportError problem.
> 
> This is a symptom of the differing ways you are importing these
> modules, as above. If you only ever run them and import them as
> my_svr.blahblah, then only the second set of imports are necessary.

OK, I will try refactoring the import code at some point.
 
> I hope that resolves all your questions!

I think so, thanks.
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to