I tired to save sub model in seq-to-seq model which is encoder part.
What I used for save and load is like follow code and I failed with error like title.
* Failed case
..
torch.save(model.lstm_auto_model.lstm_encoder.lstms, 'idx-78-encoder_lstm_encoder_lstms.mare')
torch.load(lstm_abyss_model.lstm_encoder, 'idx-78-encoder_lstm_lstm_encoder.mare')
..
* error message
AttributeError: 'LSTM' object has no attribute 'seek'. You can only torch.load from a file that is seekable. Please pre-load the data into a buffer like io.BytesIO and try to load from it instead.
..
My solution is to use 'state_dict()' to save model.
Refer to bellow code which was solution for me.
..
torch.save(model.lstm_auto_model.lstm_encoder.lstms.state_dict(), 'idx-78-encoder_lstm_encoder_lstms_dict.mare')
lstm_abyss_model.lstm_encoder.lstms.load_state_dict(torch.load('idx-78-encoder_lstm_encoder_lstms_dict.mare'))
..
Thank you.
www.marearts.com
No comments:
Post a Comment