paGating


NamepaGating JSON
Version 0.1.0 PyPI version JSON
download
home_pagehttps://github.com/guglxni/paGating
SummaryParameterized Activation Gating Framework for Flexible and Efficient Neural Networks
upload_time2025-08-30 18:29:20
maintainerNone
docs_urlNone
authorAaryan Guglani
requires_python>=3.8
licenseNone
keywords deep-learning neural-networks activation-functions pytorch gating transformer machine-learning
VCS
bugtrack_url
requirements torch transformers datasets accelerate onnx onnxruntime coremltools numpy matplotlib tqdm pillow pyyaml pandas seaborn tf-keras
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # paGating: Parameterized Activation Gating Framework

[![PyTorch](https://img.shields.io/badge/PyTorch-1.9%2B-orange)](https://pytorch.org/)
[![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![Python](https://img.shields.io/badge/Python-3.8%2B-blue)](https://python.org/)
[![Tests](https://img.shields.io/badge/Tests-93%25%20Coverage-green)](./tests/)
[![Paper](https://img.shields.io/badge/Paper-IEEE%20TNNLS-red)](https://github.com/guglxni/paGating)

> **๐Ÿš€ Production-Ready Framework for Parameterized Activation Gating in Neural Networks**

A comprehensive, open-source framework that unifies gated activation functions through a single parameterization scheme. Featured in our IEEE TNNLS submission: *"paGating: A Parameterized Activation Gating Framework for Flexible and Efficient Neural Networks for GenAI"*.

## ๐ŸŽฏ Key Results

Our framework demonstrates significant improvements across multiple domains:

| Domain | Metric | Improvement | Hardware |
|--------|--------|-------------|----------|
| **Language Modeling** | WikiText-103 Eval Loss | **1.9% improvement** | GPT-2 Small |
| **Image Classification** | CIFAR-10 Accuracy | **+1.9 percentage points** | ResNet variants |
| **Hardware Efficiency** | Apple M4 Inference | **3.11ร— speedup** | 15% memory reduction |

## ๐Ÿš€ Features

- **๐Ÿ”ฌ 7 Core Gating Units + Specialized Components**: paGLU, paGTU, paSwishU, paReGLU, paGELU, paMishU, paSiLU, paUnit (template), PaGRUCell
- **โšก Production Ready**: ONNX and CoreML export pipelines for deployment
- **๐Ÿงช Comprehensive Testing**: 93% test coverage with continuous integration
- **๐Ÿ“Š Benchmarking Tools**: Built-in performance analysis and visualization
- **๐Ÿ”„ PyTorch Lightning**: Seamless integration with modern training workflows
- **๐Ÿ“ฑ Cross-Platform**: CPU, CUDA, MPS (Apple Silicon) support
- **๐ŸŽ›๏ธ Flexible Alpha**: Fixed, learnable, or scheduled parameter control

## Project Structure

The project has been organized into the following structure:

```
paGating/
โ”œโ”€โ”€ assets/                  # Static assets
โ”‚   โ””โ”€โ”€ images/              # Image files
โ”‚       โ”œโ”€โ”€ figures/         # Paper figures
โ”‚       โ””โ”€โ”€ plots/           # Plot outputs from experiments
โ”œโ”€โ”€ benchmark_results/       # Results from various benchmarks
โ”‚   โ”œโ”€โ”€ coreml/              # CoreML benchmark results
โ”‚   โ”œโ”€โ”€ regression/          # Regression task results
โ”‚   โ””โ”€โ”€ transformer/         # Transformer model results
โ”œโ”€โ”€ coreml_models/           # Exported CoreML models
โ”œโ”€โ”€ datamodules/             # PyTorch Lightning data modules
โ”œโ”€โ”€ docs/                    # Documentation
โ”‚   โ”œโ”€โ”€ paper/               # Research paper and references
โ”‚   โ””โ”€โ”€ results_summary.md   # Summary of experiment results
โ”œโ”€โ”€ experiments/             # Experiment configurations
โ”œโ”€โ”€ lightning_modules/       # PyTorch Lightning modules
โ”œโ”€โ”€ models/                  # Model implementations
โ”œโ”€โ”€ onnx_models/             # Exported ONNX models
โ”œโ”€โ”€ paGating/                # Core package
โ”‚   โ”œโ”€โ”€ __init__.py          # Package exports
โ”‚   โ”œโ”€โ”€ base.py              # Base classes
โ”‚   โ”œโ”€โ”€ paGLU.py             # Gated Linear Unit implementation
โ”‚   โ”œโ”€โ”€ paGTU.py             # Gated Tanh Unit implementation
โ”‚   โ”œโ”€โ”€ paSwishU.py          # Swish Unit implementation
โ”‚   โ”œโ”€โ”€ paReGLU.py           # ReLU Gated Linear Unit implementation
โ”‚   โ”œโ”€โ”€ paGELU.py            # GELU Gated Unit implementation
โ”‚   โ”œโ”€โ”€ paMishU.py           # Mish Unit implementation
โ”‚   โ”œโ”€โ”€ paSiLU.py            # SiLU/Swish gating implementation
โ”‚   โ”œโ”€โ”€ paUnit.py            # Generic gating unit template
โ”‚   โ””โ”€โ”€ paGRU.py             # Parameterized GRU cell
โ”œโ”€โ”€ scripts/                 # Utility scripts
โ”‚   โ”œโ”€โ”€ benchmark/           # Benchmarking scripts
โ”‚   โ””โ”€โ”€ utilities/           # Utility scripts
โ”œโ”€โ”€ src/                     # Source code (application-specific)
โ”œโ”€โ”€ tests/                   # Test suite
โ”œโ”€โ”€ requirements.txt         # Project dependencies
โ””โ”€โ”€ README.md                # This file
```

## Implemented Gating Units

| Unit | Description | Formula |
|------|-------------|---------|
| paGLU | Parameterized Gated Linear Unit | x * (ฮฑ * sigmoid(x) + (1-ฮฑ)) |
| paGTU | Parameterized Gated Tanh Unit | x * (ฮฑ * tanh(x) + (1-ฮฑ)) |
| paSwishU | Parameterized Swish Unit | x * (ฮฑ * sigmoid(x) + (1-ฮฑ) * x) |
| paReGLU | Parameterized ReLU Gated Linear Unit | x * (ฮฑ * ReLU(x) + (1-ฮฑ)) |
| paGELU | Parameterized Gated GELU | x * (ฮฑ * GELU(x) + (1-ฮฑ)) |
| paMishU | Parameterized Mish Unit | x * (ฮฑ * mish(x) + (1-ฮฑ)) |
| paSiLU | Parameterized SiLU/Swish gating | x * (ฮฑ * SiLU(x) + (1-ฮฑ) * x) |
| paUnit | Generic Template for Custom Units | x * (ฮฑ * custom_fn(x) + (1-ฮฑ)) |
| PaGRUCell | Parameterized GRU Cell | Specialized recurrent architecture |

## Installation

Clone the repository:
```bash
git clone https://github.com/guglxni/paGating.git
cd paGating
```

Install requirements:
```bash
pip install -r requirements.txt
```

Set up data directories and download datasets:
```bash
python scripts/download_data.py
```

> **Note**: This repository uses symlinks for large data files. See [docs/DATA_SETUP.md](docs/DATA_SETUP.md) for detailed setup instructions.

## Quick Start

### Using a paGating unit in your model

```python
import torch
from paGating import paGLU

# Create a layer with fixed alpha
gating_layer = paGLU(input_dim=512, output_dim=512, alpha=0.5)

# Or with learnable alpha
learnable_gating_layer = paGLU(input_dim=512, output_dim=512, learnable_alpha=True)

# Use in a model
x = torch.randn(32, 512)  # batch_size, input_dim
output = gating_layer(x)  # shape: (32, 512)
```

### Integration with PyTorch models

```python
import torch
import torch.nn as nn
from paGating import paGLU

class MyModel(nn.Module):
    def __init__(self):
        super().__init__()
        self.fc1 = nn.Linear(784, 512)
        self.gate = paGLU(512, 512, alpha=0.5)  # paGating unit
        self.fc2 = nn.Linear(512, 10)
        
    def forward(self, x):
        x = self.fc1(x)
        x = self.gate(x)
        x = self.fc2(x)
        return x
```

## Experimenting with paGating

### Running Benchmarks

The framework includes tools for benchmarking different gating units:

```bash
python scripts/benchmark/benchmark_gateflow.py
```

This generates plots comparing the performance of different units.

### Running a Hyperparameter Sweep

To compare different units and alpha values:

```bash
python scripts/utilities/run_experiment_pipeline.py --experiment_name my_experiment --units paGLU paGTU paMishU --alpha_values 0.0 0.2 0.5 0.8 1.0
```

This will:
1. Run a hyperparameter sweep
2. Generate a leaderboard
3. Create visualizations

### Testing with Transformer Models

To test a gating unit in a transformer for sequence classification:

```bash
python experiments/test_transformer.py --unit paMishU --alpha 0.5 --epochs 20
```

## Export to CoreML

You can export trained models to CoreML format for deployment on Apple devices:

```bash
python scripts/coreml_export.py --unit paGLU --alpha 0.5
```

Test the exported model:

```bash
python tests/test_coreml_model.py --unit paGLU --alpha 0.5
```

## Results Summary

For detailed results and comparisons of different gating units, see [docs/results_summary.md](docs/results_summary.md).

## Creating Your Own Gating Unit

To create a custom gating unit:

1. Create a new file in the paGating directory (e.g., `paGating/paMyCustomU.py`)
2. Extend the `paGatingBase` class
3. Implement the required methods
4. Update `__init__.py` to expose your new unit

Example:

```python
from .base import paGatingBase
import torch
import torch.nn as nn
import torch.nn.functional as F

class paMyCustomU(paGatingBase):
    """
    My custom parameterized activation gating unit.
    """
    
    def __init__(self, input_dim, output_dim, alpha=0.5, learnable_alpha=False, alpha_init=None, bias=True):
        super().__init__(
            input_dim=input_dim, 
            output_dim=output_dim, 
            alpha=alpha,
            learnable_alpha=learnable_alpha,
            alpha_init=alpha_init,
            bias=bias
        )
        
    def compute_gate_activation(self, x):
        # Implement your custom activation function
        return my_custom_activation(x)
        
    def forward(self, x):
        # Standard implementation, can be customized if needed
        x = self.linear(x)
        gates = self.compute_gate_activation(x)
        return x * gates
```

Then update `__init__.py`:

```python
from .paMyCustomU import paMyCustomU

__all__ = [
    # ... existing units
    'paMyCustomU',
]
```

## License

This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.

**Commercial Use**: For commercial applications, please contact the authors for licensing arrangements.

## ๐Ÿ“„ Research Paper

This framework is featured in our IEEE TNNLS submission:

**"paGating: A Parameterized Activation Gating Framework for Flexible and Efficient Neural Networks for GenAI"**

- **Authors**: Aaryan Guglani, Dr. Rajashree Shettar
- **Institution**: RV College of Engineering, Bengaluru
- **Status**: Under Review at IEEE Transactions on Neural Networks and Learning Systems
- **Reproducibility**: Complete reproduction guide available in [`docs/REPRODUCIBILITY.md`](docs/REPRODUCIBILITY.md)

## ๐Ÿ“š Documentation

- **[Reproducibility Guide](docs/REPRODUCIBILITY.md)**: Step-by-step instructions to reproduce all paper results
- **[Contributing Guide](CONTRIBUTING.md)**: How to contribute to the project
- **[API Documentation](docs/)**: Detailed API reference and examples

## ๐Ÿ† Citation

If you use paGating in your research, please cite:

```bibtex
@article{guglani2025pagating,
  title={paGating: A Parameterized Activation Gating Framework for Flexible and Efficient Neural Networks for GenAI},
  author={Guglani, Aaryan and Shettar, Rajashree},
  journal={IEEE Transactions on Neural Networks and Learning Systems},
  year={2025},
  note={Under Review},
  url={https://github.com/guglxni/paGating}
}
```

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## Interactive Dashboard

The project includes a Streamlit dashboard for visualizing experiment results:

```bash
# Install required packages if not already installed
pip install streamlit plotly pandas

# Run the dashboard with a specific results directory
streamlit run scripts/streamlit_dashboard.py -- --results_dir results/your_experiment_dir

# Or run the dashboard and select the results directory in the UI
streamlit run scripts/streamlit_dashboard.py
```

Dashboard features:
- Compare performance across different gating units
- Analyze the effect of different alpha values
- Explore the behavior of learnable alpha parameters
- View training curves and leaderboards
- Generate insights and recommendations

## Experiments

Run a hyperparameter sweep:

```bash
python scripts/utilities/run_experiment_pipeline.py
```

This will:
1. Run a sweep over different units and alpha values
2. Generate a leaderboard
3. Create visualizations
4. Run the analysis

## Research Paper

A detailed research paper describing the paGating framework, its implementation, and experimental results is available in the [docs/paper/](docs/paper/) directory.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/guglxni/paGating",
    "name": "paGating",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "Aaryan Guglani <aaryanguglani.cs21@rvce.edu.in>",
    "keywords": "deep-learning, neural-networks, activation-functions, pytorch, gating, transformer, machine-learning",
    "author": "Aaryan Guglani",
    "author_email": "Aaryan Guglani <aaryanguglani.cs21@rvce.edu.in>",
    "download_url": "https://files.pythonhosted.org/packages/d8/1a/6186a14081ffe47c3084b3314f2a4a9b4caef3f193cb562dd319fc2e32eb/pagating-0.1.0.tar.gz",
    "platform": null,
    "description": "# paGating: Parameterized Activation Gating Framework\n\n[![PyTorch](https://img.shields.io/badge/PyTorch-1.9%2B-orange)](https://pytorch.org/)\n[![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![Python](https://img.shields.io/badge/Python-3.8%2B-blue)](https://python.org/)\n[![Tests](https://img.shields.io/badge/Tests-93%25%20Coverage-green)](./tests/)\n[![Paper](https://img.shields.io/badge/Paper-IEEE%20TNNLS-red)](https://github.com/guglxni/paGating)\n\n> **\ud83d\ude80 Production-Ready Framework for Parameterized Activation Gating in Neural Networks**\n\nA comprehensive, open-source framework that unifies gated activation functions through a single parameterization scheme. Featured in our IEEE TNNLS submission: *\"paGating: A Parameterized Activation Gating Framework for Flexible and Efficient Neural Networks for GenAI\"*.\n\n## \ud83c\udfaf Key Results\n\nOur framework demonstrates significant improvements across multiple domains:\n\n| Domain | Metric | Improvement | Hardware |\n|--------|--------|-------------|----------|\n| **Language Modeling** | WikiText-103 Eval Loss | **1.9% improvement** | GPT-2 Small |\n| **Image Classification** | CIFAR-10 Accuracy | **+1.9 percentage points** | ResNet variants |\n| **Hardware Efficiency** | Apple M4 Inference | **3.11\u00d7 speedup** | 15% memory reduction |\n\n## \ud83d\ude80 Features\n\n- **\ud83d\udd2c 7 Core Gating Units + Specialized Components**: paGLU, paGTU, paSwishU, paReGLU, paGELU, paMishU, paSiLU, paUnit (template), PaGRUCell\n- **\u26a1 Production Ready**: ONNX and CoreML export pipelines for deployment\n- **\ud83e\uddea Comprehensive Testing**: 93% test coverage with continuous integration\n- **\ud83d\udcca Benchmarking Tools**: Built-in performance analysis and visualization\n- **\ud83d\udd04 PyTorch Lightning**: Seamless integration with modern training workflows\n- **\ud83d\udcf1 Cross-Platform**: CPU, CUDA, MPS (Apple Silicon) support\n- **\ud83c\udf9b\ufe0f Flexible Alpha**: Fixed, learnable, or scheduled parameter control\n\n## Project Structure\n\nThe project has been organized into the following structure:\n\n```\npaGating/\n\u251c\u2500\u2500 assets/                  # Static assets\n\u2502   \u2514\u2500\u2500 images/              # Image files\n\u2502       \u251c\u2500\u2500 figures/         # Paper figures\n\u2502       \u2514\u2500\u2500 plots/           # Plot outputs from experiments\n\u251c\u2500\u2500 benchmark_results/       # Results from various benchmarks\n\u2502   \u251c\u2500\u2500 coreml/              # CoreML benchmark results\n\u2502   \u251c\u2500\u2500 regression/          # Regression task results\n\u2502   \u2514\u2500\u2500 transformer/         # Transformer model results\n\u251c\u2500\u2500 coreml_models/           # Exported CoreML models\n\u251c\u2500\u2500 datamodules/             # PyTorch Lightning data modules\n\u251c\u2500\u2500 docs/                    # Documentation\n\u2502   \u251c\u2500\u2500 paper/               # Research paper and references\n\u2502   \u2514\u2500\u2500 results_summary.md   # Summary of experiment results\n\u251c\u2500\u2500 experiments/             # Experiment configurations\n\u251c\u2500\u2500 lightning_modules/       # PyTorch Lightning modules\n\u251c\u2500\u2500 models/                  # Model implementations\n\u251c\u2500\u2500 onnx_models/             # Exported ONNX models\n\u251c\u2500\u2500 paGating/                # Core package\n\u2502   \u251c\u2500\u2500 __init__.py          # Package exports\n\u2502   \u251c\u2500\u2500 base.py              # Base classes\n\u2502   \u251c\u2500\u2500 paGLU.py             # Gated Linear Unit implementation\n\u2502   \u251c\u2500\u2500 paGTU.py             # Gated Tanh Unit implementation\n\u2502   \u251c\u2500\u2500 paSwishU.py          # Swish Unit implementation\n\u2502   \u251c\u2500\u2500 paReGLU.py           # ReLU Gated Linear Unit implementation\n\u2502   \u251c\u2500\u2500 paGELU.py            # GELU Gated Unit implementation\n\u2502   \u251c\u2500\u2500 paMishU.py           # Mish Unit implementation\n\u2502   \u251c\u2500\u2500 paSiLU.py            # SiLU/Swish gating implementation\n\u2502   \u251c\u2500\u2500 paUnit.py            # Generic gating unit template\n\u2502   \u2514\u2500\u2500 paGRU.py             # Parameterized GRU cell\n\u251c\u2500\u2500 scripts/                 # Utility scripts\n\u2502   \u251c\u2500\u2500 benchmark/           # Benchmarking scripts\n\u2502   \u2514\u2500\u2500 utilities/           # Utility scripts\n\u251c\u2500\u2500 src/                     # Source code (application-specific)\n\u251c\u2500\u2500 tests/                   # Test suite\n\u251c\u2500\u2500 requirements.txt         # Project dependencies\n\u2514\u2500\u2500 README.md                # This file\n```\n\n## Implemented Gating Units\n\n| Unit | Description | Formula |\n|------|-------------|---------|\n| paGLU | Parameterized Gated Linear Unit | x * (\u03b1 * sigmoid(x) + (1-\u03b1)) |\n| paGTU | Parameterized Gated Tanh Unit | x * (\u03b1 * tanh(x) + (1-\u03b1)) |\n| paSwishU | Parameterized Swish Unit | x * (\u03b1 * sigmoid(x) + (1-\u03b1) * x) |\n| paReGLU | Parameterized ReLU Gated Linear Unit | x * (\u03b1 * ReLU(x) + (1-\u03b1)) |\n| paGELU | Parameterized Gated GELU | x * (\u03b1 * GELU(x) + (1-\u03b1)) |\n| paMishU | Parameterized Mish Unit | x * (\u03b1 * mish(x) + (1-\u03b1)) |\n| paSiLU | Parameterized SiLU/Swish gating | x * (\u03b1 * SiLU(x) + (1-\u03b1) * x) |\n| paUnit | Generic Template for Custom Units | x * (\u03b1 * custom_fn(x) + (1-\u03b1)) |\n| PaGRUCell | Parameterized GRU Cell | Specialized recurrent architecture |\n\n## Installation\n\nClone the repository:\n```bash\ngit clone https://github.com/guglxni/paGating.git\ncd paGating\n```\n\nInstall requirements:\n```bash\npip install -r requirements.txt\n```\n\nSet up data directories and download datasets:\n```bash\npython scripts/download_data.py\n```\n\n> **Note**: This repository uses symlinks for large data files. See [docs/DATA_SETUP.md](docs/DATA_SETUP.md) for detailed setup instructions.\n\n## Quick Start\n\n### Using a paGating unit in your model\n\n```python\nimport torch\nfrom paGating import paGLU\n\n# Create a layer with fixed alpha\ngating_layer = paGLU(input_dim=512, output_dim=512, alpha=0.5)\n\n# Or with learnable alpha\nlearnable_gating_layer = paGLU(input_dim=512, output_dim=512, learnable_alpha=True)\n\n# Use in a model\nx = torch.randn(32, 512)  # batch_size, input_dim\noutput = gating_layer(x)  # shape: (32, 512)\n```\n\n### Integration with PyTorch models\n\n```python\nimport torch\nimport torch.nn as nn\nfrom paGating import paGLU\n\nclass MyModel(nn.Module):\n    def __init__(self):\n        super().__init__()\n        self.fc1 = nn.Linear(784, 512)\n        self.gate = paGLU(512, 512, alpha=0.5)  # paGating unit\n        self.fc2 = nn.Linear(512, 10)\n        \n    def forward(self, x):\n        x = self.fc1(x)\n        x = self.gate(x)\n        x = self.fc2(x)\n        return x\n```\n\n## Experimenting with paGating\n\n### Running Benchmarks\n\nThe framework includes tools for benchmarking different gating units:\n\n```bash\npython scripts/benchmark/benchmark_gateflow.py\n```\n\nThis generates plots comparing the performance of different units.\n\n### Running a Hyperparameter Sweep\n\nTo compare different units and alpha values:\n\n```bash\npython scripts/utilities/run_experiment_pipeline.py --experiment_name my_experiment --units paGLU paGTU paMishU --alpha_values 0.0 0.2 0.5 0.8 1.0\n```\n\nThis will:\n1. Run a hyperparameter sweep\n2. Generate a leaderboard\n3. Create visualizations\n\n### Testing with Transformer Models\n\nTo test a gating unit in a transformer for sequence classification:\n\n```bash\npython experiments/test_transformer.py --unit paMishU --alpha 0.5 --epochs 20\n```\n\n## Export to CoreML\n\nYou can export trained models to CoreML format for deployment on Apple devices:\n\n```bash\npython scripts/coreml_export.py --unit paGLU --alpha 0.5\n```\n\nTest the exported model:\n\n```bash\npython tests/test_coreml_model.py --unit paGLU --alpha 0.5\n```\n\n## Results Summary\n\nFor detailed results and comparisons of different gating units, see [docs/results_summary.md](docs/results_summary.md).\n\n## Creating Your Own Gating Unit\n\nTo create a custom gating unit:\n\n1. Create a new file in the paGating directory (e.g., `paGating/paMyCustomU.py`)\n2. Extend the `paGatingBase` class\n3. Implement the required methods\n4. Update `__init__.py` to expose your new unit\n\nExample:\n\n```python\nfrom .base import paGatingBase\nimport torch\nimport torch.nn as nn\nimport torch.nn.functional as F\n\nclass paMyCustomU(paGatingBase):\n    \"\"\"\n    My custom parameterized activation gating unit.\n    \"\"\"\n    \n    def __init__(self, input_dim, output_dim, alpha=0.5, learnable_alpha=False, alpha_init=None, bias=True):\n        super().__init__(\n            input_dim=input_dim, \n            output_dim=output_dim, \n            alpha=alpha,\n            learnable_alpha=learnable_alpha,\n            alpha_init=alpha_init,\n            bias=bias\n        )\n        \n    def compute_gate_activation(self, x):\n        # Implement your custom activation function\n        return my_custom_activation(x)\n        \n    def forward(self, x):\n        # Standard implementation, can be customized if needed\n        x = self.linear(x)\n        gates = self.compute_gate_activation(x)\n        return x * gates\n```\n\nThen update `__init__.py`:\n\n```python\nfrom .paMyCustomU import paMyCustomU\n\n__all__ = [\n    # ... existing units\n    'paMyCustomU',\n]\n```\n\n## License\n\nThis project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.\n\n**Commercial Use**: For commercial applications, please contact the authors for licensing arrangements.\n\n## \ud83d\udcc4 Research Paper\n\nThis framework is featured in our IEEE TNNLS submission:\n\n**\"paGating: A Parameterized Activation Gating Framework for Flexible and Efficient Neural Networks for GenAI\"**\n\n- **Authors**: Aaryan Guglani, Dr. Rajashree Shettar\n- **Institution**: RV College of Engineering, Bengaluru\n- **Status**: Under Review at IEEE Transactions on Neural Networks and Learning Systems\n- **Reproducibility**: Complete reproduction guide available in [`docs/REPRODUCIBILITY.md`](docs/REPRODUCIBILITY.md)\n\n## \ud83d\udcda Documentation\n\n- **[Reproducibility Guide](docs/REPRODUCIBILITY.md)**: Step-by-step instructions to reproduce all paper results\n- **[Contributing Guide](CONTRIBUTING.md)**: How to contribute to the project\n- **[API Documentation](docs/)**: Detailed API reference and examples\n\n## \ud83c\udfc6 Citation\n\nIf you use paGating in your research, please cite:\n\n```bibtex\n@article{guglani2025pagating,\n  title={paGating: A Parameterized Activation Gating Framework for Flexible and Efficient Neural Networks for GenAI},\n  author={Guglani, Aaryan and Shettar, Rajashree},\n  journal={IEEE Transactions on Neural Networks and Learning Systems},\n  year={2025},\n  note={Under Review},\n  url={https://github.com/guglxni/paGating}\n}\n```\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## Interactive Dashboard\n\nThe project includes a Streamlit dashboard for visualizing experiment results:\n\n```bash\n# Install required packages if not already installed\npip install streamlit plotly pandas\n\n# Run the dashboard with a specific results directory\nstreamlit run scripts/streamlit_dashboard.py -- --results_dir results/your_experiment_dir\n\n# Or run the dashboard and select the results directory in the UI\nstreamlit run scripts/streamlit_dashboard.py\n```\n\nDashboard features:\n- Compare performance across different gating units\n- Analyze the effect of different alpha values\n- Explore the behavior of learnable alpha parameters\n- View training curves and leaderboards\n- Generate insights and recommendations\n\n## Experiments\n\nRun a hyperparameter sweep:\n\n```bash\npython scripts/utilities/run_experiment_pipeline.py\n```\n\nThis will:\n1. Run a sweep over different units and alpha values\n2. Generate a leaderboard\n3. Create visualizations\n4. Run the analysis\n\n## Research Paper\n\nA detailed research paper describing the paGating framework, its implementation, and experimental results is available in the [docs/paper/](docs/paper/) directory.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Parameterized Activation Gating Framework for Flexible and Efficient Neural Networks",
    "version": "0.1.0",
    "project_urls": {
        "Changelog": "https://github.com/guglxni/paGating/blob/master/CHANGELOG.md",
        "Documentation": "https://github.com/guglxni/paGating#readme",
        "Homepage": "https://github.com/guglxni/paGating",
        "Issues": "https://github.com/guglxni/paGating/issues",
        "Repository": "https://github.com/guglxni/paGating"
    },
    "split_keywords": [
        "deep-learning",
        " neural-networks",
        " activation-functions",
        " pytorch",
        " gating",
        " transformer",
        " machine-learning"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fdcf681a69a796a2383765290e17219fe240df6aab65ddbb072dffc3068601af",
                "md5": "930fc48656808d5e6ff2f94d940b0692",
                "sha256": "5510bb64624d0c8191fe40364b0d219dc0784b09c45505f63797db86de3ba778"
            },
            "downloads": -1,
            "filename": "pagating-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "930fc48656808d5e6ff2f94d940b0692",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 6852316,
            "upload_time": "2025-08-30T18:29:07",
            "upload_time_iso_8601": "2025-08-30T18:29:07.362529Z",
            "url": "https://files.pythonhosted.org/packages/fd/cf/681a69a796a2383765290e17219fe240df6aab65ddbb072dffc3068601af/pagating-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d81a6186a14081ffe47c3084b3314f2a4a9b4caef3f193cb562dd319fc2e32eb",
                "md5": "ffd835c9ede32b976ecb6e28487e18ce",
                "sha256": "0f0efee1040c8bc14641777852e1b6b6078bdac4da256cec6bff415b203842e7"
            },
            "downloads": -1,
            "filename": "pagating-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "ffd835c9ede32b976ecb6e28487e18ce",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 6877218,
            "upload_time": "2025-08-30T18:29:20",
            "upload_time_iso_8601": "2025-08-30T18:29:20.812326Z",
            "url": "https://files.pythonhosted.org/packages/d8/1a/6186a14081ffe47c3084b3314f2a4a9b4caef3f193cb562dd319fc2e32eb/pagating-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-30 18:29:20",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "guglxni",
    "github_project": "paGating",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "torch",
            "specs": [
                [
                    ">=",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "transformers",
            "specs": [
                [
                    ">=",
                    "4.30.0"
                ]
            ]
        },
        {
            "name": "datasets",
            "specs": [
                [
                    ">=",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "accelerate",
            "specs": [
                [
                    ">=",
                    "0.20.0"
                ]
            ]
        },
        {
            "name": "onnx",
            "specs": [
                [
                    ">=",
                    "1.14.0"
                ]
            ]
        },
        {
            "name": "onnxruntime",
            "specs": [
                [
                    ">=",
                    "1.15.0"
                ]
            ]
        },
        {
            "name": "coremltools",
            "specs": [
                [
                    ">=",
                    "7.0"
                ]
            ]
        },
        {
            "name": "numpy",
            "specs": [
                [
                    ">=",
                    "1.20.0"
                ]
            ]
        },
        {
            "name": "matplotlib",
            "specs": [
                [
                    ">=",
                    "3.4.0"
                ]
            ]
        },
        {
            "name": "tqdm",
            "specs": [
                [
                    ">=",
                    "4.61.0"
                ]
            ]
        },
        {
            "name": "pillow",
            "specs": [
                [
                    ">=",
                    "8.2.0"
                ]
            ]
        },
        {
            "name": "pyyaml",
            "specs": []
        },
        {
            "name": "pandas",
            "specs": []
        },
        {
            "name": "seaborn",
            "specs": []
        },
        {
            "name": "tf-keras",
            "specs": [
                [
                    ">=",
                    "2.13.1"
                ]
            ]
        }
    ],
    "lcname": "pagating"
}
        
Elapsed time: 0.41899s