Binair classificatiemodel
Als deep learning-practitioner is een van je belangrijkste taken het trainen van modellen voor beeldclassificatie. Je komt vaak binaire classificatie tegen, waarbij je twee klassen van elkaar moet onderscheiden. Om je workflow te stroomlijnen en hergebruik te borgen, heb je besloten een template te maken voor een CNN-model voor binaire beeldclassificatie, dat je op toekomstige projecten kunt toepassen.
Het pakket torch en torch.nn als nn zijn geïmporteerd. Alle afbeeldingsformaten zijn 64x64 pixels.
Deze oefening maakt deel uit van de cursus
Deep Learning voor afbeeldingen met PyTorch
Oefeninstructies
- Maak een convolutionele laag met 3 kanalen, 16 outputkanalen, een kernelgrootte van 3, een stride van 1 en padding van 1.
- Maak een volledig verbonden laag met een inputgrootte van 16x32x32 en een aantal klassen gelijk aan 1; neem alleen de waarden op in de opgegeven volgorde
(16*32*32, 1). - Maak een
sigmoid-activatiefunctie.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
class BinaryImageClassifier(nn.Module):
def __init__(self):
super(BinaryImageClassifier, self).__init__()
# Create a convolutional layer
self.conv1 = ____(____)
self.relu = nn.ReLU()
self.maxpool = nn.MaxPool2d(kernel_size=2, stride=2)
self.flatten = nn.Flatten()
# Create a fully connected layer
self.fc = ____(____)
# Create an activation function
self.sigmoid = ____