| from src.data_loader import load_data | |
| from src.model import create_model | |
| from src.train import train_model | |
| from src.evaluate import evaluate_model | |
| import torch | |
| import os | |
| def main(): | |
| print("Starting CNN CIFAR-10 Project (PyTorch)...") | |
| # Load Data | |
| print("Loading data...") | |
| trainloader, testloader, classes = load_data() | |
| print(f"Data loaded: Train batches {len(trainloader)}, Test batches {len(testloader)}") | |
| # Create Model | |
| print("Creating model...") | |
| model = create_model() | |
| # print(model) | |
| # Train Model | |
| print("Training model...") | |
| # Using 1 epoch for verification | |
| history = train_model(model, trainloader, testloader, epochs=10) | |
| # Evaluate Model | |
| print("Evaluating model...") | |
| accuracy = evaluate_model(model, testloader) | |
| print(f"Test Accuracy: {accuracy:.4f}") | |
| # Save Model | |
| if not os.path.exists('models'): | |
| os.makedirs('models') | |
| torch.save(model.state_dict(), 'models/cifar10_cnn.pth') | |
| print("Model saved to models/cifar10_cnn.pth") | |
| if __name__ == "__main__": | |
| main() | |