Alpha Hybrid CNN model for Image classification tasks
Project description
NetAlpha
NetAlpha is a Python package designed to train a multi-branch Convolutional Neural Network (CNN) model that integrates ResNet50V2 and DenseNet169 architectures for superior image classification tasks.
Table of Contents
- Introduction
- Features
- Installation
- Usage
- Programmatic Usage
- Project Structure
- Documentation
- Contributing
- License
- Contact
- Acknowledgments
Introduction
NetAlpha offers a hybrid architecture combining the strengths of ResNet50V2 and DenseNet169 for high-performance image classification. By integrating these architectures, NetAlpha provides robust feature extraction and better generalization for diverse datasets.
Features
- Hybrid Architecture: Combines ResNet50V2 and DenseNet169 for enhanced feature extraction.
- Data Augmentation: Advanced augmentation techniques to improve model robustness.
- Early Stopping & Learning Rate Scheduling: Built-in callbacks for better training control.
- Command-Line Interface (CLI): Simplified training and configuration through CLI commands.
- Customizable Hyperparameters: Fine-tune learning rate, batch size, and more.
- Training Visualization: Plot training and validation metrics for better insights.
Installation
Prerequisites
- Python: Version 3.6 or higher.
- TensorFlow: Version 2.x or later.
- pip: Latest version recommended.
Installation via Pip
Install NetAlpha directly from PyPI:
pip install netalpha
Usage
Command-Line Interface
Once installed, you can use the netalpha_train command.
Basic Usage
netalpha_train --train_dir PATH_TO_TRAIN_DIR --val_dir PATH_TO_VAL_DIR [OPTIONS]
Options
--train_dir: (Required) Path to the training data directory.--val_dir: (Required) Path to the validation data directory.--epochs: Number of epochs (default: 50).--batch_size: Batch size (default: 8).--initial_lr: Initial learning rate (default: 1e-4).--output_dir: Directory to save model outputs (default:./).--plot: Add this flag to generate training plots.
Help
To see a detailed list of options, run:
netalpha_train --help
Examples
Example 1: Basic Training
netalpha_train --train_dir ./data/train --val_dir ./data/val --epochs 30 --batch_size 16
Example 2: Training with Custom Parameters
netalpha_train --train_dir ./data/train --val_dir ./data/val --epochs 40 --batch_size 32 --initial_lr 5e-5 --output_dir ./outputs --plot
Data Preparation
Organize your dataset as follows:
dataset/
├── train/
│ ├── class1/
│ │ ├── image1.jpg
│ │ ├── image2.jpg
│ │ └── ...
│ └── class2/
│ ├── image1.jpg
│ ├── image2.jpg
│ └── ...
└── val/
├── class1/
│ ├── image1.jpg
│ ├── image2.jpg
│ └── ...
└── class2/
├── image1.jpg
├── image2.jpg
└── ...
Programmatic Usage
NetAlpha can also be used in Python scripts:
from netalpha import build_model
# Build the model
model = build_model(input_shape=(224, 224, 3), num_classes=2)
# Compile the model
model.compile(
optimizer="adam",
loss="categorical_crossentropy",
metrics=["accuracy"]
)
# Train or evaluate as needed
Project Structure
netalpha/
├── netalpha/
│ ├── __init__.py
│ ├── model.py
│ └── utils.py
├── scripts/
│ └── train_model.py
├── setup.py
├── README.md
├── LICENSE
└── requirements.txt
Documentation
For detailed documentation, visit the GitHub repository.
Contributing
Contributions are welcome! Follow these steps to contribute:
- Fork the repository.
- Clone your fork:
git clone https://github.com/yourusername/netalpha.git
- Create a new branch:
git checkout -b feature/new-feature
- Commit your changes:
git commit -am "Add new feature"
- Push the branch:
git push origin feature/new-feature
- Open a pull request.
Reporting Issues
If you encounter any issues, please open an issue.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contact
- Author: Ihtesham Jahangir
- Email: ihteshamjahangir21@gmail.com
- GitHub: ihtesham-jahangir
Acknowledgments
- TensorFlow and Keras Teams: For their excellent frameworks.
- Researchers: Behind ResNet and DenseNet architectures.
- Open Source Community: For fostering innovation and collaboration.
This README provides detailed information about NetAlpha, making it easy for users to install, use, and contribute to the project.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file alphanetworks-0.1.2.tar.gz.
File metadata
- Download URL: alphanetworks-0.1.2.tar.gz
- Upload date:
- Size: 6.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2b6b803357ebed930ba268bf1431e2bc8f560352ff10d7715f637dc45c22a8e
|
|
| MD5 |
6a2541ed702bda483e6a109913939e2e
|
|
| BLAKE2b-256 |
fb770e933c77b97eb0a961d25d47f896ae8a3dd259884f4589bc2185ac730416
|
File details
Details for the file alphanetworks-0.1.2-py3-none-any.whl.
File metadata
- Download URL: alphanetworks-0.1.2-py3-none-any.whl
- Upload date:
- Size: 8.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b0c7772ce1fdf4a43a1c0a7fa904d6cd9f1d5c26639b3e78d04f64e996f44d38
|
|
| MD5 |
f7447542fc5ea59042270f77bd980e21
|
|
| BLAKE2b-256 |
fa65a334ef7bb9adf132abe31946f6a3eb41d812eba4ec118920a315c753c908
|