mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-20 21:14:14 +08:00
Rewrite Python built-in class `super()` calls. Only non-semantic changes should be applied. - #94587 - #94588 - #94592 Also, methods with only a `super()` call are removed: ```diff class MyModule(nn.Module): - def __init__(self): - super().__init__() - def forward(self, ...): ... ``` Some cases that change the semantics should be kept unchanged. E.g.:f152a79be9/caffe2/python/net_printer.py (L184-L190)
f152a79be9/test/test_jit_fuser_te.py (L2628-L2635)
Pull Request resolved: https://github.com/pytorch/pytorch/pull/94592 Approved by: https://github.com/ezyang, https://github.com/seemethere
30 lines
596 B
Python
30 lines
596 B
Python
# Owner(s): ["module: unknown"]
|
|
|
|
import torch
|
|
import torch.nn as nn
|
|
|
|
|
|
class Model(nn.Module):
|
|
def __init__(self):
|
|
super().__init__()
|
|
self.linear = nn.Linear(20, 20)
|
|
|
|
def forward(self, input):
|
|
out = self.linear(input[:, 10:30])
|
|
return out.sum()
|
|
|
|
|
|
def main():
|
|
data = torch.randn(10, 50).cuda()
|
|
model = Model().cuda()
|
|
optimizer = torch.optim.SGD(model.parameters(), lr=0.0001)
|
|
for i in range(10):
|
|
optimizer.zero_grad()
|
|
loss = model(data)
|
|
loss.backward()
|
|
optimizer.step()
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|