I’ve been working on a language model that takes ~20 minutes to set up on a p2 before I get a chance to load the weights, so I was thinking of pickling it so I could get going a bit more quickly. Unfortunately I’m getting a type error, am I missing something, or is there another way to reload model?
m3 = md2.get_model(opt_fn, 1500, bptt, emb_sz=em_sz, n_hid=nh, n_layers=nl,
dropouti=0.4, wdrop=0.5, dropoute=0.05, dropouth=0.3,
dropout=0.1)
m3.reg_fn = partial(seq2seq_reg, alpha=2, beta=1)
m3.load_encoder(f’…/all/models/adam2_enc’)
pickle.dump(m3, open(f’{PATH}models/m3.pkl’,‘wb’))
TypeError Traceback (most recent call last)
in ()
6 m3.load_encoder(f’…/all/models/adam2_enc’)
7
----> 8 pickle.dump(m3, open(f’{PATH}models/m3.pkl’,‘wb’))
~/src/anaconda3/envs/fastai/lib/python3.6/site-packages/dill/dill.py in dump(obj, file, protocol, byref, fmode, recurse)
272 raise PicklingError(msg)
273 else:
–> 274 pik.dump(obj)
275 stack.clear() # clear record of ‘recursion-sensitive’ pickled objects
276 return
…
~/src/anaconda3/envs/fastai/lib/python3.6/pickle.py in save(self, obj, save_persistent_id)
494 reduce = getattr(obj, “reduce_ex”, None)
495 if reduce is not None:
–> 496 rv = reduce(self.proto)
497 else:
498 reduce = getattr(obj, “reduce”, None)
TypeError: ‘generator’ object is not callable