Instructions to use emergentai/cancer-efficientnetb7-undersampling with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Keras
How to use emergentai/cancer-efficientnetb7-undersampling with Keras:
# !pip install -U keras tensorflow huggingface_hub # Keras needs TensorFlow installed to read "hf://" paths, so the tensorflow backend is selected here; # "jax" and "torch" also work for computation once TensorFlow is installed. import os os.environ["KERAS_BACKEND"] = "tensorflow" import keras model = keras.saving.load_model("hf://emergentai/cancer-efficientnetb7-undersampling") - Notebooks
- Google Colab
- Kaggle
|
Download README.md from emergentai/cancer-efficientnetb7-undersampling: direct link, hf CLI and curl.
- Browser
- Download file 5.59 kB
-
https://huggingface.co/emergentai/cancer-efficientnetb7-undersampling/resolve/main/README.md
- Command line
-
hf download hf://emergentai/cancer-efficientnetb7-undersampling/README.md
-
curl -L -o README.md https://huggingface.co/emergentai/cancer-efficientnetb7-undersampling/resolve/main/README.md
5.59 kB
| license: mit | |
| metrics: | |
| - accuracy | |
| - precision | |
| - recall | |
| - f1 | |
| base_model: | |
| - google/efficientnet-b7 | |
| pipeline_tag: image-classification | |
| tags: | |
| - medical | |
| - cervical-cancer | |
| - histopathology | |
| - undersampling | |
| # Model Card: EfficientNet-B7 for Cervical Cancer Image Classification | |
| This model fine-tunes **EfficientNet-B7** for the task of binary cervical cancer image classification (Negative vs. Positive). It was trained using undersampling to handle class imbalance. | |
| --- | |
| ## Model Details | |
| - **Developed by:** Beijuka / Pathogen Lab | |
| - **Funded by:** STI | |
| - **Model type:** Convolutional Neural Network (CNN) | |
| - **Input type:** Histopathology images (600x600, RGB) | |
| - **Output type:** Binary classification (Negative, Positive) | |
| - **License:** MIT | |
| - **Finetuned from:** `google/efficientnet-b7` | |
| <!-- ### Model Sources | |
| - **Repository:** [Your HF Repo URL] | |
| - **Paper [optional]:** [If you want to link e.g., EfficientNet or related research] | |
| - **Demo [optional]:** [Streamlit/Gradio app if you plan one] | |
| --> | |
| --- | |
| ## Uses | |
| ### Direct Use | |
| - classification of cervical cancer images into Negative vs Positive cases. | |
| ### Downstream Use | |
| - Could be integrated into diagnostic support pipelines. | |
| - Adapted for related medical imaging classification tasks. | |
| ### Out-of-Scope Use | |
| - **Not** a replacement for professional medical diagnosis. | |
| - Should not be deployed clinically without regulatory approval. | |
| - Not suitable for non-cervical images. | |
| --- | |
| ## Bias, Risks, and Limitations | |
| - The dataset was undersampled → may affect generalizability. | |
| - Model performance varies by threshold (see below). | |
| - Limited dataset size (19 test images) means results may not generalize. | |
| - Potential domain shift if applied to different staining/preparation protocols. | |
| ### Recommendations | |
| - Validate on larger, more diverse datasets. | |
| - Carefully calibrate decision threshold depending on application (screening vs confirmatory). | |
| - Use alongside clinical expertise, not as a standalone tool. | |
| --- | |
| ## How to Get Started | |
| ```python | |
| from huggingface_hub import hf_hub_download | |
| from tensorflow import keras | |
| model_path = hf_hub_download( | |
| "Beijuka/cancer-efficientnetb7-undersampling", | |
| "cancer_efficientnetB7_undersampling.keras" | |
| ) | |
| model = keras.models.load_model(model_path) | |
| ```` | |
| --- | |
| ## Training Details | |
| ### Training Data | |
| * Histopathology images of cervical cancer (size 600x600, RGB). | |
| * Class imbalance addressed via **undersampling**: | |
| * Positive: 84 images | |
| * Negative: 100 images | |
| * Preprocessing: Normalization + resizing. | |
| ### Training Procedure | |
| * Optimizer: Adam | |
| * Loss: Binary Crossentropy | |
| * Batch size: 8 | |
| * Learning rate: 1e-3 (initial), 1e-5 (fine-tuning) | |
| * Epochs: 50 (initial), 20 (fine-tuning) | |
| * EarlyStopping and ModelCheckpoint callbacks used. | |
| ### Data Splits (70:20:10) | |
| * **Training:** 128 images (70 Negative, 29 Positive Post-stained, 29 Positive Pre-stained) | |
| * **Validation:** 37 images (20 Negative, 8 Positive Post-stained, 9 Positive Pre-stained) | |
| * **Test:** 19 images (10 Negative, 5 Positive Post-stained, 4 Positive Pre-stained) | |
| ### Hardware | |
| * GPU: Tesla T4 (14GB) | |
| * CUDA Version: 12.4 | |
| * Software: TensorFlow/Keras | |
| --- | |
| ## Evaluation | |
| ### Testing Data | |
| * Independent test set: 19 images (10 Negative, 9 Positive) | |
| ### Metrics at Threshold 0.5 | |
| * **Accuracy:** 0.7368 | |
| * **Precision (Positive):** 0.8333 | |
| * **Recall (Positive):** 0.5556 | |
| * **F1-Score (Positive):** 0.6667 | |
| #### Confusion Matrix | |
| ``` | |
| [[9, 1], | |
| [4, 5]] | |
| ``` | |
| #### Sensitivity / Specificity | |
| * Negative: Sensitivity 0.90, Specificity 0.56 | |
| * Positive: Sensitivity 0.56, Specificity 0.90 | |
| ### Threshold Analysis | |
| * Best balance observed near 0.45–0.50 | |
| * Lower thresholds → higher recall, more false positives | |
| * Higher thresholds (>0.65) → model collapses to predicting only one class | |
| | Threshold | Accuracy | Precision | Recall | F1 | | |
| | --------- | -------- | --------- | ------ | ------ | | |
| | 0.00 | 0.4737 | 0.4737 | 1.0000 | 0.6429 | | |
| | 0.05 | 0.4737 | 0.4737 | 1.0000 | 0.6429 | | |
| | 0.10 | 0.5263 | 0.5000 | 1.0000 | 0.6667 | | |
| | 0.15 | 0.5263 | 0.5000 | 0.8889 | 0.6400 | | |
| | 0.20 | 0.6316 | 0.5714 | 0.8889 | 0.6957 | | |
| | 0.25 | 0.6316 | 0.5833 | 0.7778 | 0.6667 | | |
| | 0.30 | 0.6316 | 0.6250 | 0.5556 | 0.5882 | | |
| | 0.35 | 0.6316 | 0.6250 | 0.5556 | 0.5882 | | |
| | 0.40 | 0.6842 | 0.7143 | 0.5556 | 0.6250 | | |
| | 0.45 | 0.7368 | 0.8333 | 0.5556 | 0.6667 | | |
| | 0.50 | 0.7368 | 0.8333 | 0.5556 | 0.6667 | | |
| | 0.55 | 0.6842 | 0.8000 | 0.4444 | 0.5714 | | |
| | 0.60 | 0.6842 | 1.0000 | 0.3333 | 0.5000 | | |
| | 0.65 | 0.5263 | 0.0000 | 0.0000 | 0.0000 | | |
| | 0.70 | 0.5263 | 0.0000 | 0.0000 | 0.0000 | | |
| | 0.75 | 0.5263 | 0.0000 | 0.0000 | 0.0000 | | |
| | 0.80 | 0.5263 | 0.0000 | 0.0000 | 0.0000 | | |
| | 0.85 | 0.5263 | 0.0000 | 0.0000 | 0.0000 | | |
| | 0.90 | 0.5263 | 0.0000 | 0.0000 | 0.0000 | | |
| | 0.95 | 0.5263 | 0.0000 | 0.0000 | 0.0000 | | |
| ### Comparison of performance on Pre vs Post-stained images | |
| | Comparison | Accuracy | F1-Score | Precision |Recall | | |
| | ------------------------------ | -------- | -------- | -------- | ------- | | |
| | Pre-stained Prediction | 0.6087 | 0.2703 |0.1613 |0.8333| | |
| | Post-stained Prediction | 0.7474 | 0.3441 |0.2222 |0.7619| | |
| --- | |
| ## Technical Specifications | |
| ### Model Architecture | |
| * EfficientNet-B7 backbone | |
| * Final Dense layer with sigmoid activation for binary classification | |
| ### Compute Infrastructure | |
| * **Hardware:** Tesla T4 GPU | |
| * **Software:** TensorFlow/Keras | |
| --- | |