WalzoneInterview Prep
📞 Interviewing soon? Practice with a realistic AI mock phone interview — it calls you, then scores you. First 15 min FREE →

PyTorch · Basic · question 20 of 100

What is transfer learning, and how can it be implemented using PyTorch?

📕 Buy this interview preparation book: 100 PyTorch questions & answers — PDF + EPUB for $5

Transfer learning is a machine learning technique where a model developed for a specific task is reused as the starting point for a model on a different but related task. In simple words, when we have a pre-trained model on some dataset already, transfer learning helps us to leverage the learned features and weights from that model to solve a different problem on a new dataset.

In PyTorch, transfer learning is implemented using the pre-trained models available in the torchvision library. The torchvision library provides access to several popular pre-trained models such as VGG, ResNet, Inception, etc. The pre-trained model can be loaded in PyTorch using the torchvision.models module.

Here is an example of implementing transfer learning using a pre-trained ResNet model for image classification:

import torch
import torch.nn as nn
import torchvision.models as models

# Load pre-trained ResNet model
resnet = models.resnet18(pretrained=True)

# Freeze pre-trained layers
for param in resnet.parameters():
    param.requires_grad = False

# Create custom classifier
num_classes = 10
resnet.fc = nn.Sequential(
    nn.Linear(512, 256), 
    nn.ReLU(), 
    nn.Dropout(p=0.5),
    nn.Linear(256, num_classes)
)

# Train the model on new dataset
optimizer = torch.optim.Adam(resnet.fc.parameters(), lr=0.001)
criterion = nn.CrossEntropyLoss()

# Code for training and testing the model goes here

In the above code, we first load the pre-trained ResNet model using ‘models.resnet18(pretrained=True)‘. We then freeze the pre-trained layers by setting ‘requires_grad=False‘ for all the model parameters. Finally, we replace the original classification layer of the ResNet model with a custom classifier that matches the number of classes in our new dataset.

Once we have our new model with the added classifier, we can train it on our new dataset by optimizing the weights of the classifier using ‘torch.optim.Adam‘ and computing the classification loss using ‘nn.CrossEntropyLoss‘.

In conclusion, transfer learning is a powerful technique that saves time and resources while also improving the accuracy of the model. In PyTorch, it can be implemented by loading a pre-trained model and replacing the classification layer with a new one to fit the new dataset.

Reading is step one. Saying it out loud is the interview. Our AI interviewer calls your phone and runs a realistic PyTorch interview — then scores it.
📞 Practice PyTorch — free 15 min
📕 Buy this interview preparation book: 100 PyTorch questions & answers — PDF + EPUB for $5

All 100 PyTorch questions · All topics