pytorch-day07(nn.Module)
1. embed current layers(能调用一些已经写好的函数)

2. Container(会从上到下执行一个forward操作)

3. parameters

4. modules


5. to(device)

6. save and load

7. train/test

8. implement own layer

8. own linear layer

1 import torch 2 from torch import nn 3 from torch import optim 4 5 6 7 class MyLinear(nn.Module): 8 9 def __init__(self, inp, outp): 10 super(MyLinear, self).__init__() 11 12 # requires_grad = True 13 self.w = nn.Parameter(torch.randn(outp, inp)) 14 self.b = nn.Parameter(torch.randn(outp)) 15 16 def forward(self, x): 17 x = x @ self.w.t() + self.b 18 return x 19 20 21 class Flatten(nn.Module): 22 23 def __init__(self): 24 super(Flatten, self).__init__() 25 26 def forward(self, input): 27 return input.view(input.size(0), -1) 28 29 30 31 class TestNet(nn.Module): 32 33 def __init__(self): 34 super(TestNet, self).__init__() 35 36 self.net = nn.Sequential(nn.Conv2d(1, 16, stride=1, padding=1), 37 nn.MaxPool2d(2, 2), 38 Flatten(), 39 nn.Linear(1*14*14, 10)) 40 41 def forward(self, x): 42 return self.net(x) 43 44 45 class BasicNet(nn.Module): 46 47 def __init__(self): 48 super(BasicNet, self).__init__() 49 50 self.net = nn.Linear(4, 3) 51 52 def forward(self, x): 53 return self.net(x) 54 55 56 57 class Net(nn.Module): 58 59 def __init__(self): 60 super(Net, self).__init__() 61 62 self.net = nn.Sequential(BasicNet(), 63 nn.ReLU(), 64 nn.Linear(3, 2)) 65 66 def forward(self, x): 67 return self.net(x) 68 69 70 71 72 73 def main(): 74 device = torch.device('cuda') 75 net = Net() 76 net.to(device) 77 78 net.train() 79 80 net.eval() 81 82 # net.load_state_dict(torch.load('ckpt.mdl')) 83 # torch.save(net.state_dict(), 'ckpt.mdl') 84 85 for name, t in net.named_parameters(): 86 print('parameters:', name, t.shape) 87 88 for name, m in net.named_children(): 89 print('children:', name, m) 90 91 92 for name, m in net.named_modules(): 93 print('modules:', name, m) 94 95 96 97 if __name__ == '__main__': 98 main()
9、数据增强(Data argumentation)
Flip:翻转
Rotate:旋转
Scale:缩放
Crop Part:裁剪部分
Noise:
GAN:
数据增强虽有用,但是不能弄无穷多张照片。并不是数据增强产生的数据越多贡献就会越大

浙公网安备 33010602011771号