--- --- tags: - image-classification - cnn - cifar-10 license: apache-2.0 library_name: pytorch --- # Tiny CNN Classifier for CIFAR-10 This is a custom **Convolutional Neural Network (CNN)** trained on the **CIFAR-10 dataset**. It classifies images into 10 categories: `airplane, automobile, bird, cat, deer, dog, frog, horse, ship, truck` --- ## 📖 Model Overview - **Type**: Convolutional Neural Network (CNN) - **Architecture**: - 2 convolutional layers - 2 max-pooling layers - 2 fully connected layers - ReLU activation functions - **Dataset**: CIFAR-10 (10 classes) - **Framework**: PyTorch - **Test Accuracy**: **69.90%** - **Training Epochs**: 5 The model uses two convolutional layers followed by max-pooling and fully connected layers to classify images. It was trained using Adam optimizer and Cross-Entropy loss. --- ## How to Use > ⚠️ Note: This is **not a Hugging Face Transformers model**. > You **cannot** use `pipeline()`. Instead, load it directly with **PyTorch**. ### 1. Clone the repository ```bash git clone https://huggingface.co/Udayan012/tiny-cnn-classifier cd tiny-cnn-classifier ``` ### 2. Install Dependencies ```bash pip install torch torchvision pillow ``` ### 3. Load the model ```python import torch from model import CustomCNN # Initialize model and load weights model = CustomCNN() model.load_state_dict(torch.load("cnn_model.pth", map_location="cpu")) model.eval() ``` ### 4. Run inference on an image ```python from torchvision import transforms from PIL import Image # CIFAR-10 preprocessing (32x32 RGB) transform = transforms.Compose([ transforms.Resize((32, 32)), transforms.ToTensor(), ]) # Load an image img = Image.open("your_image_path.jpg").convert("RGB") x = transform(img).unsqueeze(0) # Predict with torch.no_grad(): output = model(x) pred_class = output.argmax(1).item() classes = ['airplane','automobile','bird','cat','deer','dog','frog','horse','ship','truck'] print("Predicted class:", classes[pred_class]) ``` ### Training Information Dataset: CIFAR-10 Optimizer: Adam Loss Function: Cross-Entropy Loss Epochs: 5 Batch Size: 32 Learning Rate: 0.001 ### Model Limitations Trained only on CIFAR-10 → works best on 32x32 images with simple backgrounds. May not generalize well to high-resolution or real-world images. ### License This model is released under the Apache 2.0 License. You can freely use, modify, and distribute this model.