Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

cPickle:SystemError: error return without exception set

While dumping large matrix (170000*20000) as follows

 cPickle.dump(train_set,gzip.open('train.pickle.gz','wb'), cPickle.HIGHEST_PROTOCOL)

I get following error:

SystemError: error return without exception set

How would I deal in this case?

like image 751
thetna Avatar asked Jan 08 '16 16:01

thetna


1 Answers

cPickle can't be used for storing very large objects ( see http://bugs.python.org/issue11564 ).

You have several options:

  • split the data into chunks and store it in multiple files
  • numpy.save
  • h5py <- my favorite because of its convenient numpy-like interface, plus the data are stored in hdf5 which enables interopability with other software/languages.
  • pytables
like image 51
schreon Avatar answered Oct 05 '22 09:10

schreon