Saving should be as simple as:
torch.save(encoder1.state_dict(), 'encoder.dict')
torch.save(attn_decoder1.state_dict(), 'decoder.dict')

And loading:
encoder = EncoderRNN(input_lang.n_words, hidden_size).to(device)
decoder = AttnDecoderRNN(hidden_size, output_lang.n_words, dropout_p=0.1).to(device)

encoder.load_state_dict(torch.load('encoder.dict'))
decoder.load_state_dict(torch.load('decoder.dict'))