Глибоке навчання для зображень із PyTorch
Michal Oleszak
Machine Learning Engineer
Сімейство R-CNN: R-CNN, Fast-CNN, Faster CNN

Сімейство R-CNN: R-CNN, Fast-CNN, Faster CNN

Сімейство R-CNN: R-CNN, Fast-CNN, Faster CNN


import torch.nn as nn from torchvision.models import vgg16, VGG16_Weightsvgg = vgg16(weights=VGG16_Weights.DEFAULT)

import torch.nn as nn from torchvision.models import vgg16, VGG16_Weightsvgg = vgg16(weights=VGG16_Weights.DEFAULT)

.features: лише згорткові шариimport torch.nn as nn from torchvision.models import vgg16, VGG16_Weightsvgg = vgg16(weights=VGG16_Weights.DEFAULT)

.features: лише згорткові шари.children(): усі шари блокуimport torch.nn as nn from torchvision.models import vgg16, VGG16_Weightsvgg = vgg16(weights=VGG16_Weights.DEFAULT)backbone = nn.Sequential( *list(vgg.features.children()) )
nn.Sequential(*list()): усі підшари розміщені послідовно як список*: розпаковує елементи зі списку
.features: лише згорткові шари.children(): усі шари блокуinput_dimension = nn.Sequential(*list(
vgg_backbone.classifier.children())
)[0].in_features
classifier = nn.Sequential(
nn.Linear(input_dimension, 512),
nn.ReLU(),
nn.Linear(512, num_classes),
)
box_regressor = nn.Sequential(
nn.Linear(input_dimension, 32),
nn.ReLU(),
nn.Linear(32, 4),
)
class ObjectDetectorCNN(nn.Module): def __init__(self): super(ObjectDetectorCNN, self).__init__()vgg = vgg16(weights=VGG16_Weights.DEFAULT) self.backbone = nn.Sequential(*list(vgg.features.children()))input_features = nn.Sequential(*list(vgg.classifier.children()))[0].in_featuresself.classifier = nn.Sequential( nn.Linear(input_features, 512), nn.ReLU(), nn.Linear(512, 2), )self.box_regressor = nn.Sequential( nn.Linear(input_features, 32), nn.ReLU(), nn.Linear(32, 4), )
class ObjectDetector(nn.Module): (...) def forward(self, x):features = self.backbone(x)bboxes = self.regressor(features) classes = self.classifier(features) return bboxes, classes
unsqueeze() для додавання розміру батчуnms()) на виході моделіdraw_bounding_boxes() поверх зображенняГлибоке навчання для зображень із PyTorch