Встречается на собеседованиях • сегодня

Как построить модель для классификации изображений на бинарной маске с квадратами, кругами и треугольниками

Для классификации изображений с бинарными масками можно использовать CNN (свёрточные нейронные сети). Вот пример кода на PyTorch:

python
import torch
import torch.nn as nn
import torch.optim as optim
from torch.utils.data import DataLoader, Dataset

class SimpleCNN(nn.Module):
    def __init__(self, num_classes=3):
        super().__init__()
        self.conv1 = nn.Conv2d(1, 16, kernel_size=3, stride=1, padding=1)
        self.conv2 = nn.Conv2d(16, 32, kernel_size=3, stride=1, padding=1)
        self.fc = nn.Linear(32 * 64 * 64, num_classes)  # Предполагаем размер 64x64
        
    def forward(self, x):
        x = torch.relu(self.conv1(x))
        x = torch.max_pool2d(x, 2)
        x = torch.relu(self.conv2(x))
        x = torch.max_pool2d(x, 2)
        x = x.view(x.size(0), -1)
        return self.fc(x)

model = SimpleCNN()
criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(model.parameters())

text

Ключевые моменты:
1. Используйте бинарные маски (1 канал) как вход
2. Добавьте аугментации (повороты, сдвиги) для улучшения обобщения
3. Для простых форм может хватить 2-3 свёрточных слоёв
4. Размер выхода равен количеству классов (3 в данном случае)

Для более сложных случаев рассмотрите предобученные архитектуры типа ResNet.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы