File size: 1,110 Bytes
3a2b1aa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

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()