for example, suppose you initialize a model like:
class YourModel(nn.Module):
    def __init__(self, dev_list=["cpu", "cuda:1", "cuda:0"]):
        self.fc1 = nn.sequential(nn.Linear(5, 5).to(dev_list[0]))  # on device cpu
        self.fc2 = nn.sequential(nn.Linear(5, 5).to(dev_list[1]))  # on device "cuda:1"
        self.fc3 = nn.sequential(nn.Linear(5, 5).to(dev_list[2]))  # on device "cuda:0"
        self.dev = dev_list

    def forward(x):
        x = self.fc1(x).to(self.dev[1])
        x = self.fc2(x).to(self.dev[1])
        return self.fc3(x).to("cpu")

then:
t.save(YourModel(), "model.pt")
model = t.load("model.pt")

Device mapping will be saved along with your model, don’t worry about it