Модель бинарной классификации
Одна из ключевых задач специалиста по глубокому обучению — обучение моделей для классификации изображений. Бинарная классификация встречается особенно часто: в этом случае нужно различать объекты двух классов. Чтобы упростить рабочий процесс и обеспечить возможность повторного использования кода, вы решили создать шаблон сверточной нейронной сети для бинарной классификации изображений, который можно применять в будущих проектах.
Пакеты torch и torch.nn (как nn) уже импортированы. Размер всех изображений — 64×64 пикселя.
Это упражнение является частью курса
Глубокое обучение для работы с изображениями на PyTorch
Инструкции к упражнению
- Создайте свёрточный слой с 3 входными каналами, 16 выходными каналами, размером ядра 3, шагом 1 и отступом 1.
- Создайте полносвязный слой с размером входа 16×32×32 и числом классов равным 1; укажите значения строго в заданном порядке:
(16*32*32, 1). - Создайте функцию активации
sigmoid.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
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 = ____