AshBeeXD
Initial Commit: Testing App
f1ca632
Raw
History Blame Contribute Delete
1.21 kB
"""
Model definition module.
Provides a function to create a pre-trained ResNet50 model
modified for CIFAR-100 (100 output classes).
"""
import torch
import torch.nn as nn
from torchvision import models
def create_resnet50_model(num_classes=100):
print(f"Loading ResNet50 model with IMAGENET1K_V1 weights...")
model = models.resnet50(weights=models.ResNet50_Weights.IMAGENET1K_V1)
num_ftrs = model.fc.in_features
model.fc = nn.Linear(num_ftrs, num_classes)
print(f"Model final layer replaced with {num_ftrs} -> {num_classes} outputs.")
return model
if __name__ == "__main__":
print("Testing model module...")
model_100 = create_resnet50_model(num_classes=100)
test_tensor_100 = torch.randn(1, 3, 32, 32)
output_100 = model_100(test_tensor_100)
print(f"Output shape for 100 classes: {output_100.shape}")
model_10 = create_resnet50_for_cifar(num_classes=10)
test_tensor_10 = torch.randn(1, 3, 32, 32)
output_10 = model_10(test_tensor_10)
print(f"Output shape for 10 classes: {output_10.shape}")
assert output_100.shape == (1, 100)
assert output_10.shape == (1, 10)
print("\nModel module test passed!")