Model klasyfikacji binarnej
Jednym z głównych zadań praktyka uczenia głębokiego jest trenowanie modeli do klasyfikacji obrazów. Często spotykasz się z klasyfikacją binarną, w której trzeba rozróżnić dwie klasy. Aby usprawnić swój przepływ pracy i zapewnić możliwość ponownego użycia kodu, postanawiasz stworzyć szablon modelu CNN do binarnej klasyfikacji obrazów, który będzie można zastosować w przyszłych projektach.
Pakiety torch i torch.nn jako nn zostały już zaimportowane. Wszystkie obrazy mają rozmiar 64×64 piksele.
To ćwiczenie jest częścią kursu
Głębokie uczenie dla obrazów z PyTorch
Instrukcje do ćwiczenia
- Utwórz warstwę splotową z 3 kanałami wejściowymi, 16 kanałami wyjściowymi, rozmiarem jądra równym 3, krokiem 1 i dopełnieniem 1.
- Utwórz warstwę w pełni połączoną z rozmiarem wejściowym 16×32×32 i liczbą klas równą 1; podaj wartości w podanej kolejności:
(16*32*32, 1). - Utwórz funkcję aktywacji
sigmoid.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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 = ____