Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Dit is een simpele implementatie van een convolutioneel neural netwerk voor de Fashion-MNIST dataset van Zalando. De data bestaan uit 70k grijswaardebeelden met een resolutie van 28 bij 28 pixels. Ze behoren tot volgende 10 categorieรซn:

  1. T-shirt/top

  2. Trouser

  3. Pullover

  4. Dress

  5. Coat

  6. Sandal

  7. Shirt

  8. Sneaker

  9. Bag

  10. Ankle boot

Using device: cpu
Training set size: 60000
Test set size: 10000
Sample image shape: torch.Size([1, 28, 28])
Label: 9
<PIL.Image.Image image mode=L size=28x28>
Shape of X [Batch Size, Channels, Height ,Width]:torch.Size([64, 1, 28, 28])
Shape of y: torch.Size([64]) torch.int64
Unique values of y: tensor([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
Loading...
Training set distribution:
T-shirt/top      6000 (10.0%)
Trouser          6000 (10.0%)
Pullover         6000 (10.0%)
Dress            6000 (10.0%)
Coat             6000 (10.0%)
Sandal           6000 (10.0%)
Shirt            6000 (10.0%)
Sneaker          6000 (10.0%)
Bag              6000 (10.0%)
Ankle boot       6000 (10.0%)

Total training samples: 60000
Total test samples: 10000
NeuralNetwork(
  (conv_layers): Sequential(
    (0): Conv2d(1, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (1): ReLU()
    (2): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
    (3): Conv2d(32, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1))
    (4): ReLU()
    (5): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False)
  )
  (flatten): Flatten(start_dim=1, end_dim=-1)
  (fc_layers): Sequential(
    (0): Linear(in_features=3136, out_features=128, bias=True)
    (1): ReLU()
    (2): Dropout(p=0.5, inplace=False)
    (3): Linear(in_features=128, out_features=10, bias=True)
  )
)
Total number of trainable parameters: 421642
Epoch 1
------------
loss:2.300693 [   64/60000]
loss:2.296715 [ 6464/60000]
loss:2.292114 [12864/60000]
loss:2.296987 [19264/60000]
loss:2.287122 [25664/60000]
loss:2.296292 [32064/60000]
loss:2.275176 [38464/60000]
loss:2.281695 [44864/60000]
loss:2.272089 [51264/60000]
loss:2.269891 [57664/60000]
Test Error:
 Accuracy: 32.9%, Avg loss:2.262706 

Epoch 2
------------
loss:2.260585 [   64/60000]
loss:2.266152 [ 6464/60000]
loss:2.244620 [12864/60000]
loss:2.257603 [19264/60000]
loss:2.221899 [25664/60000]
loss:2.232457 [32064/60000]
loss:2.185710 [38464/60000]
loss:2.191071 [44864/60000]
loss:2.138950 [51264/60000]
loss:2.141331 [57664/60000]
Test Error:
 Accuracy: 60.5%, Avg loss:2.120909 

Epoch 3
------------
loss:2.143372 [   64/60000]
loss:2.093894 [ 6464/60000]
loss:2.035286 [12864/60000]
loss:2.015930 [19264/60000]
loss:1.920137 [25664/60000]
loss:1.847994 [32064/60000]
loss:1.763599 [38464/60000]
loss:1.740850 [44864/60000]
loss:1.695572 [51264/60000]
loss:1.518745 [57664/60000]
Test Error:
 Accuracy: 61.5%, Avg loss:1.457181 

Epoch 4
------------
loss:1.577464 [   64/60000]
loss:1.530314 [ 6464/60000]
loss:1.369598 [12864/60000]
loss:1.366476 [19264/60000]
loss:1.176187 [25664/60000]
loss:1.276275 [32064/60000]
loss:1.235990 [38464/60000]
loss:1.147604 [44864/60000]
loss:1.251951 [51264/60000]
loss:1.101347 [57664/60000]
Test Error:
 Accuracy: 65.7%, Avg loss:1.025680 

Epoch 5
------------
loss:1.195766 [   64/60000]
loss:1.140486 [ 6464/60000]
loss:1.020737 [12864/60000]
loss:1.140923 [19264/60000]
loss:1.015276 [25664/60000]
loss:1.144631 [32064/60000]
loss:1.056138 [38464/60000]
loss:1.021924 [44864/60000]
loss:1.052670 [51264/60000]
loss:1.067314 [57664/60000]
Test Error:
 Accuracy: 70.0%, Avg loss:0.868605 

Done!
NeuralNetwork( (conv_layers): Sequential( (0): Conv2d(1, 32, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (1): ReLU() (2): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False) (3): Conv2d(32, 64, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1)) (4): ReLU() (5): MaxPool2d(kernel_size=2, stride=2, padding=0, dilation=1, ceil_mode=False) ) (flatten): Flatten(start_dim=1, end_dim=-1) (fc_layers): Sequential( (0): Linear(in_features=3136, out_features=128, bias=True) (1): ReLU() (2): Dropout(p=0.5, inplace=False) (3): Linear(in_features=128, out_features=10, bias=True) ) )
Loading...
Loading...

Overall Accuracy: 70.00%
Average Precision: 0.694
Average Recall: 0.700
Average F1-Score: 0.679
Loading...