Python pickle #
Python pickle for object seralization. Often used for machine learning models.
Module #
import pickle
Serialize pickle #
Let’s say the thing we want to pickle is a linear regression model.
model = LinearRegression()
model.fit(X,y)
Time to pickle, place model
in place of <object>
:
pickle.dump(<object>, '<file>.pkl')
To make it a bit more explicit, where wb
means write, binary
:
pickle.dump(<object>, open('<file>.pkl', 'wb'))
To serialize to a bytes string format:
pickle.dumps(<object>, '<file>')
Load pickle #
Now that we have a pickle, we can load it up elsewhere:
<object> = pickle.load('<file>.pkl')
More explicitly, where rb
is read, binary
:
object = pickle.load(open('<file>', 'rb'))
To load from a bytes string format:
<object> = pickle.loads('<file>.pkl')
Reading Python2 pickles into Python3 #
There are Python2 pickles out there. Python3 is what should be used today.
Handle Python2 pickles in Python3 with encoding='latin1'
<object> = pickle.load('<file>.pkl', encoding = 'latin1')