Get help with your project
Edit your project files
import torch import torch.nn as nn import torchvision.models as models import torchvision.transforms as transforms from torch.utils.data import DataLoader, Dataset # Define the model class MedicalImageClassifier(nn.Module): def __init__(self, num_classes=5): super(MedicalImageClassifier, self).__init__() # Load pre-trained ResNet-50 self.model = models.resnet50(pretrained=True) # Freeze early layers for param in list(self.model.parameters())[:-20]: param.requires_grad = False # Replace the final fully connected layer num_features = self.model.fc.in_features self.model.fc = nn.Linear(num_features, num_classes) def forward(self, x): return self.model(x) # Create the model model = MedicalImageClassifier(num_classes=5) criterion = nn.CrossEntropyLoss() optimizer = torch.optim.Adam(model.parameters(), lr=0.001) # Training function def train_model(model, dataloader, criterion, optimizer, num_epochs=10): for epoch in range(num_epochs): model.train() running_loss = 0.0 for inputs, labels in dataloader: optimizer.zero_grad() outputs = model(inputs) loss = criterion(outputs, labels) loss.backward() optimizer.step() running_loss += loss.item() epoch_loss = running_loss / len(dataloader) print(f'Epoch {epoch+1}/{num_epochs}, Loss: {epoch_loss:.4f}') return model # Main execution if __name__ == "__main__": # TODO: Load your dataset and create dataloaders # TODO: Train the model # TODO: Evaluate the model # TODO: Save the trained model print("Ready to start training!")