()
| 52 | |
| 53 | |
| 54 | def test_save_load(): |
| 55 | net = Simple() |
| 56 | |
| 57 | optim = optimizer.SGD(net.parameters(), lr=1.0, momentum=0.9) |
| 58 | optim.clear_grad() |
| 59 | gm = ad.GradManager().attach(net.parameters()) |
| 60 | |
| 61 | data = tensor([2.34]) |
| 62 | |
| 63 | with gm: |
| 64 | loss = net(data) |
| 65 | gm.backward(loss) |
| 66 | |
| 67 | optim.step() |
| 68 | |
| 69 | model_name = "simple.pkl" |
| 70 | |
| 71 | mge.save( |
| 72 | { |
| 73 | "name": "simple", |
| 74 | "state_dict": net.state_dict(), |
| 75 | "opt_state": optim.state_dict(), |
| 76 | }, |
| 77 | model_name, |
| 78 | ) |
| 79 | |
| 80 | # Load param to cpu |
| 81 | checkpoint = mge.load(model_name, map_location="cpu0") |
| 82 | device_save = mge.get_default_device() |
| 83 | mge.set_default_device("cpu0") |
| 84 | net = Simple() |
| 85 | net.load_state_dict(checkpoint["state_dict"]) |
| 86 | optim = optimizer.SGD(net.parameters(), lr=1.0, momentum=0.9) |
| 87 | optim.load_state_dict(checkpoint["opt_state"]) |
| 88 | os.remove("simple.pkl") |
| 89 | |
| 90 | with gm: |
| 91 | loss = net([1.23]) |
| 92 | gm.backward(loss) |
| 93 | |
| 94 | optim.step() |
| 95 | # Restore device |
| 96 | mge.set_default_device(device_save) |
nothing calls this directly
no test coverage detected