In [1]:
from IPython.core.display import display, HTML
display(HTML("<style>.container { width:140% !important; }</style>"))
PyTorch Model - timm library, torchvision.models part1)¶
Basic usage of timm and torchvision.model libraries
In [2]:
import torch
import torch.nn as nn
import torch.nn.functional as F
import timm
from torchvision import models
Timm Library¶
Select Model¶
timm.list_models('model name or regular exp', pretrained = True)
In [3]:
all_densenet_models = timm.list_models('*convnext*', pretrained = True)
all_densenet_models
Out[3]:
Check Model Architecture¶
model = timm.create_model('convnext_small', pretrained=True)
print(model)
In [4]:
model = timm.create_model('convnext_small', pretrained=True)
# print(model)
Change the last layer of the Model¶
model = timm.create_model('convnext_small', pretrained=True, num_classes = 100)
In [5]:
model = timm.create_model('convnext_small', pretrained=True, num_classes = 100)
# print(model2)
Testing¶
model = timm.create_model('convnext_small', pretrained=True, num_classes = 100)
model.eval()
result = model(torch.randn(1,3,224,224))
print(result)
print(result.shape)
In [6]:
model = timm.create_model('convnext_small', pretrained=True, num_classes = 100)
model.eval()
result = model(torch.randn(1,3,224,224))
print(result)
print(result.shape)
Torchvision models¶
Basic Template for Model¶
applicable any libraries based on pytorch
class MyModel(nn.Module):
def __init__(self):
super().__init__()
pass
def forward(self, x):
pass
Select Model¶
Check out the list of models on https://pytorch.org/vision/master/models.html
Check Model Architecture¶
model = models.densenet161(pretrained = True)
print(model)
In [7]:
model = models.densenet161(pretrained = True)
# print(model)
Change the last layer of the Model¶
Needs to manually check out the name of last layer : usually either 'fc' or 'classifier'
num_classes = 100
model.classifier = nn.Linear(in_features = model.classifier.in_features,
out_features = num_classes, bias = True)
print(model)
In [8]:
num_classes = 100
model.classifier = nn.Linear(in_features = model.classifier.in_features,
out_features = num_classes, bias = True)
# print(model)
Testing¶
model = models.densenet161(pretrained = True))
num_classes = 100
model.classifier = nn.Linear(in_features = model.classifier.in_features,
out_features = num_classes, bias = True)
model.eval()
result = model(torch.randn(1,3,224,224))
print(result)
print(result.shape)
In [9]:
model = models.densenet161(pretrained = True)
num_classes = 100
model.classifier = nn.Linear(in_features = model.classifier.in_features,
out_features = num_classes, bias = True)
model.eval()
result = model(torch.randn(1,3,224,224))
print(result)
print(result.shape)
'programming > pytorch' 카테고리의 다른 글
Pytorch - timm, torchvision.models part2) (0) | 2022.03.10 |
---|---|
Dataset, DataLoader 심화 2 (0) | 2022.03.07 |
Dataset, DataLoader 심화 (0) | 2022.03.05 |
Dataset, DataLoader Basics (0) | 2022.03.04 |
댓글