1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| from torch import optim import torch from torch import nn import d2l
class Reshape(nn.Module): def forward(self,x): return x.view(-1,1,28,28)
net=nn.Sequential( Reshape(), nn.Conv2d(1,6,kernel_size=5,padding=2), nn.AvgPool2d(2),nn.Sigmoid(), nn.Conv2d(6,16,5), nn.AvgPool2d(2,2),nn.Sigmoid(),nn.Flatten(), nn.Linear(16*5*5,120),nn.Sigmoid(), nn.Linear(120,84),nn.Sigmoid(), nn.Linear(84,10) )
x=torch.rand((1,28,28),dtype=torch.float32)
for layer in net: x=layer(x) print(layer.__class__.__name__,':\t',x.size())
train_iter,test_iter=d2l.load_data_fashion_mnist(256) loss_f=nn.CrossEntropyLoss() opt=optim.Adam(net.parameters())
d2l.evaluate(net,test_iter,loss_f,".\params\LeNet_25")
|