| --- |
| license: mit |
| datasets: |
| - alkzar90/NIH-Chest-X-ray-dataset |
| language: |
| - en |
| metrics: |
| - roc_auc |
| base_model: |
| - galactixx/Torchvision-DenseNet121-a639ec97 |
| pipeline_tag: image-classification |
| tags: |
| - Ai |
| - fine-tuned |
| - image-classification |
| --- |
| # DenseNet121 Image Classifier |
|
|
| This model is a custom image classifier built with **PyTorch**, leveraging a pretrained **DenseNet121** backbone. The model extracts rich visual features from the pretrained weights and uses a custom classification head to predict the target categories. |
|
|
| ## Model Details |
|
|
| - **Developed by:** [Aditya chaubey] |
| - **Model type:** Image Classification (Convolutional Neural Network) |
| - **Architecture:** DenseNet121 (Dense Convolutional Network) |
| - **Library:** PyTorch |
| - **License:** Mit |
| - **Pretrained Backbone:** torchvision.models.densenet121 |
|
|
| ## Intended Uses & Limitations |
|
|
| ### Intended Uses |
| - Automated classification of images into [14] categories. |
| - Fine-tuning or feature extraction for related computer vision tasks. |
|
|
| ### Limitations & Bias |
| - **Image Resolution:** The backbone expects standard image sizes (typically 322x322 pixels). Performance may degrade on highly distorted or low-resolution images. |
| - **Domain Bias:** The model inherits the features learned from ImageNet. It may perform poorly on highly niche domains (e.g., specific medical imaging or satellite data) unless heavily fine-tuned on target data. |
|
|
| ## How to Get Started with the Model |
|
|
| You can load and run inference with this model directly using standard PyTorch tools. |
|
|
| First, ensure you have the `huggingface_hub`, `torch`, and `torchvision` libraries installed: |
| ```bash |
| pip install torch torchvision huggingface_hub pillow |
| ``` |
|
|
| Use the snippet below to download the model weights and run a prediction: |
|
|
| ```python |
| import torch |
| import torchvision.models as models |
| import torchvision.transforms as transforms |
| from PIL import Image |
| from huggingface_hub import hf_hub_download |
| |
| # 1. Recreate the model architecture |
| model = models.densenet121(weights=None) # Initialize architecture |
| |
| # Replace the final classifier head to match your custom number of classes |
| # Example: num_classes = 10 (Change this to your actual number of classes) |
| num_classes = 10 |
| model.classifier = torch.nn.Linear(model.classifier.in_features, num_classes) |
| |
| # 2. Download and load the weights from Hugging Face Hub |
| # Replace 'your-username/your-model-name' with your repository ID |
| checkpoint_path = hf_hub_download(repo_id="adityachaubey/ChestNet", filename="model.pt") |
| model.load_state_dict(torch.load(checkpoint_path, map_location=torch.device('cpu'))) |
| model.eval() |
| |
| # 3. Prepare the input image |
| transform = transforms.Compose([ |
| transforms.Resize(256), |
| transforms.CenterCrop(224), |
| transforms.ToTensor(), |
| transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]), |
| ]) |
| |
| image = Image.open("path_to_your_image.jpg").convert("RGB") |
| input_tensor = transform(image).unsqueeze(0) # Add batch dimension |
| |
| # 4. Run inference |
| with torch.no_grad(): |
| outputs = model(input_tensor) |
| probabilities = torch.nn.functional.softmax(outputs[0], dim=0) |
| predicted_class = torch.argmax(probabilities).item() |
| |
| print(f"Predicted Class Index: {predicted_class}") |
| ``` |
|
|
| ## Training Details |
|
|
| ### Training Data |
| The model was fine-tuned on the [NIH-Chest-X-ray-dataste] dataset, which contains [112,120] images across [14] classes. |
|
|
| ### Data Preprocessing |
| Images were resized, cropped to 224x224, and normalized using standard ImageNet mean and standard deviation values: |
| - **Mean:** `[0.485, 0.456, 0.406]` |
| - **Std:** `[0.229, 0.224, 0.225]` |
|
|
| ### Training Hyperparameters |
| - **Optimizer:** [Adam] |
| - **Learning Rate:** [1e-5] |
| - **Batch Size:** [e.g., 32] |
| - **Epochs:** [10] |
|
|
| ## Evaluation Results |
|
|
| The model achieved the following performance metrics on the validation/test set: |
| - **Accuracy:** [83%] |
| - **Loss:** [Insert validation loss] |
|
|