πŸŽ‰ 75% of content is free forever β€” Unlock Premium from $10/mo β†’
CW
Search courses…
πŸ’Ό Servicesℹ️ Aboutβœ‰οΈ ContactView Pricing Plansfrom $10

Few-Shot Vision

Computer VisionFew-Shot Vision🟒 Free Lesson

Advertisement

Few-Shot Vision

Module: Computer Vision | Difficulty: Advanced

Prototypical Network

where is the class prototype.

MAML Update

Episode Training

N-way K-shot Setup

  • classes per episode
  • support examples per class
  • query examples per class
import torch
import torch.nn as nn

class PrototypicalNet(nn.Module):
    def __init__(self, encoder, distance='euclidean'):
        super().__init__()
        self.encoder = encoder
        self.distance = distance
    
    def forward(self, support_x, support_y, query_x, N):
        # Encode support and query
        s_feats = self.encoder(support_x)
        q_feats = self.encoder(query_x)
        
        # Compute prototypes
        prototypes = []
        for k in range(N):
            mask = support_y == k
            prototypes.append(s_feats[mask].mean(dim=0))
        prototypes = torch.stack(prototypes)
        
        # Compute distances
        dists = torch.cdist(q_feats, prototypes)
        return -dists  # logits

def few_shot_loss(model, episode, N, K, Q):
    support_x, support_y, query_x, query_y = episode
    logits = model(support_x, support_y, query_x, N)
    return nn.functional.cross_entropy(logits, query_y)

Key Takeaways

  • Prototypical networks use class means as prototypes
  • MAML optimizes for fast adaptation to new tasks
  • Episode training simulates the few-shot scenario

Need Expert Computer Vision Help?

Get personalized tutoring, project support, or professional consulting.

Advertisement