Hi guys,
In pylearn2/utils/serial.py in the load function (line 29), you have a parameter ‘retry’. The problem is that when the call is delegated to the _load function (line 53), the retry parameter is not actually passed but is always set to true instead.
Another suggestion: I just started using pylearn2 and wanted to try the quick start example (http://deeplearning.net/software/pylearn2/tutorial/index.html#tutorial).
The problem is that my cifar10 batches can’t be loaded by joblib.load (pylearn2/utils/serial.py -> line 520) for some reason. According to the
exponential_backoff() function, though, it still tries this 9 times (with exponential waiting time of course) before it finally uses cPickle.loads().
And this for every batch. Of course, I didn’t want to wait that long so I went into pylearn2/datasets/cifar10.py and set ‘retry=False’ in lines 92+101 where serial.load is actually called. The problem is that the _load function then gives up immediately after the joblib.load fails and doesn’t try cPickle.loads. I actually ended up setting the default recurse_depth to 10 in the load delegation call (line 53) because that was more or less the only
(quick) solution to load the data in an acceptable amount of time… My suggestion would be to make the number of retries parameterizable so that one doesn’t have to wait for 40+ minutes just because it’s actually cPickle that should do the loading and not joblib…
Keep it up!