kitepy - Dead Simple Deep Learning 🚀
Build and train deep learning models with one line of code.
from kitepy import CNN
CNN("resnet18").train("cifar10")
That's it. No boilerplate. No configuration hell. Just magic. ✨
Features
- 🎯 One-Line Training:
CNN("resnet18").train("cifar10") - 🔧 Zero Configuration: Smart defaults that just work
- 🎨 Full Customization: Override anything when needed
- 🌐 Multi-Modal: CNNs & Transformers (LLMs, VLMs coming soon)
- ⚡ Production Ready: Built on PyTorch and timm (HuggingFace coming soon)
- 🚄 Fast: Automatic mixed precision (multi-GPU & distributed coming soon)
Installation
# Minimal install (CNN support)
pip install kitepy
# With LLM support
pip install kitepy[llm]
# Full install (all features)
pip install kitepy[all]
# Development install
git clone https://github.com/ExtraKaizen/kitepy
cd kitepy
pip install -e .
Quick Start
Example 1: Simplest Possible
from kitepy import CNN
# Train ResNet-18 on CIFAR-10
CNN("resnet18").train("cifar10")
Example 2: Custom Settings
# Override any parameter
CNN("resnet50").train(
data="cifar100",
epochs=50,
batch_size=128,
lr=0.001,
)
Example 3: Save and Load
# Train and save
model = CNN("resnet18")
model.train("cifar10", epochs=10)
model.save("my_model.pt")
# Load and use
loaded = CNN.load("my_model.pt")
predictions = loaded.predict(my_images)
Example 4: Custom PyTorch Model
import torch.nn as nn
# Use your own model
my_model = nn.Sequential(
nn.Conv2d(3, 64, 3),
nn.ReLU(),
# ... your architecture
)
CNN(my_model).train("my_dataset")
Supported Models
CNNs (Vision)
- ResNet:
resnet18,resnet34,resnet50,resnet101,resnet152 - EfficientNet:
efficientnet_b0throughefficientnet_b7 - MobileNet:
mobilenet_v2,mobilenet_v3_small,mobilenet_v3_large - VGG:
vgg11,vgg13,vgg16,vgg19 - DenseNet:
densenet121,densenet169,densenet201 - And 800+ more from timm!
Vision Transformers
- ViT:
vit_tiny,vit_small,vit_base,vit_large,vit_huge - DeiT:
deit_tiny,deit_small,deit_base - Swin:
swin_tiny,swin_small,swin_base,swin_large
Coming Soon (Phase 2+)
- LLMs: GPT, LLaMA, Mistral (Phase 3)
- VLMs: CLIP, BLIP, Flamingo (Phase 4)
- Audio: Whisper, AST (Phase 5)
- Diffusion: Stable Diffusion (Phase 5)
Supported Datasets
Built-in Vision Datasets
cifar10,cifar100mnist,fashion_mnistimagenet(requires manual download)
Custom Datasets
# From path (ImageFolder structure)
CNN("resnet18").train("/path/to/my/dataset")
# From PyTorch DataLoader
from torch.utils.data import DataLoader
my_loader = DataLoader(...)
CNN("resnet18").train(my_loader)
Advanced Usage
Configuration System
from kitepy import CNN, CNNConfig, TrainingConfig
# Method 1: Config objects
model_config = CNNConfig(
depth=50,
num_classes=100,
dropout=0.5
)
train_config = TrainingConfig(
epochs=100,
batch_size=256,
lr=0.01,
optimizer="adamw",
scheduler="cosine",
)
model = CNN("resnet50", config=model_config)
model.train("cifar100", **train_config.to_dict())
YAML Configuration
# config.yaml
model:
arch: resnet
depth: 50
num_classes: 100
training:
epochs: 100
batch_size: 256
lr: 0.01
optimizer: adamw
model = CNN(config="config.yaml")
model.train("cifar100")
Model Inspection
model = CNN("resnet18")
# Show architecture and config
model.describe()
# Show parameter count
model.summary()
# Show all config options
model.explain_config()
# Get underlying PyTorch model
pytorch_model = model.unwrap()
List Available Models
from kitepy import list_models, list_datasets
# List all CNN models
models = list_models("cnn")
print(models) # ['resnet18', 'resnet50', ...]
# List all datasets
datasets = list_datasets()
print(datasets) # ['cifar10', 'imagenet', ...]
Register Custom Presets
from kitepy import register_preset
register_preset("cnn", "my_custom_resnet", {
"arch": "resnet",
"depth": 101,
"width_multiplier": 2.0,
})
# Now use it
CNN("my_custom_resnet").train("imagenet")
API Reference
CNN
CNN(
model: str | nn.Module, # Model name or custom PyTorch model
config: dict | Config | str, # Config dict, object, or YAML path
**kwargs # Override any config value
)
Methods:
.train(data, epochs, **kwargs)- Train the model.evaluate(data)- Evaluate on test data.predict(input)- Run inference.save(path)- Save checkpoint.load(path)- Load checkpoint (classmethod).describe()- Print model info.summary()- Print parameter count.explain_config()- Show config options.unwrap()- Get PyTorch model
Architecture
kitepy/
├── api/ # Public APIs (CNN, LLM, VLM, etc.)
├── core/ # Core engines (training, data, optimization)
├── config/ # Configuration system
├── models/ # Architecture templates
├── data/ # Data loading
├── wrappers/ # timm, HuggingFace wrappers
└── utils/ # Utilities
Key Principle: We wrap existing ecosystems (PyTorch, timm, HuggingFace) instead of reimplementing.
Development Roadmap
- Phase 1: CNN Module ✅
- Phase 2: Vision Transformers ✅
- Phase 3: LLM Module (Coming Soon)
- Phase 4: VLM Module (Planned)
- Phase 5: Audio & Diffusion (Planned)
Requirements
- Python >= 3.8
- PyTorch >= 2.0.0
- timm >= 0.9.0 (for vision models)
- transformers >= 4.30.0 (for LLMs, optional)
Contributing
We welcome contributions! See CONTRIBUTING.md for guidelines.
License
MIT License - see LICENSE for details.
Citation
If you use kitepy in your research, please cite:
@software{kitepy2026,
title={kitepy: Dead Simple Deep Learning},
author={ExtraKaizen},
year={2026},
url={https://github.com/ExtraKaizen/kitepy}
}
Acknowledgments
Built on the shoulders of giants:
Made with ❤️ for the AI community
Metadata
Release files for kitepy 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| kitepy-0.1.0.tar.gz | 49.2 kB | Without provenance | Details for kitepy-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| kitepy-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for kitepy-0.1.0-py3-none-any.whl |
Total release size: 98.0 kB
Release files / kitepy-0.1.0.tar.gz
| Download URL | kitepy-0.1.0.tar.gz |
|---|---|
| Size | 49.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2f212599546da45e24488d53d4ea3ac65c117dc97ba0592c6e6a6bbde933ce2e
|
|
BLAKE2b-256 checksum How to use checksums |
71905d946c3dbd68815c03245cdde8ffaa06a8bd02dd47a7df1ba5b97a1fef25
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Release files / kitepy-0.1.0-py3-none-any.whl
| Download URL | kitepy-0.1.0-py3-none-any.whl |
|---|---|
| Size | 48.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0b211b84f0a02c1194211933d6cbb6acc792d726583ba5ba508b3e550b56d854
|
|
BLAKE2b-256 checksum How to use checksums |
8f3dddb0b217dc3b8189bea4ff2f73b49810d81b0f713b5f9d4153a8dc2b9ec0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.3
|
Security for kitepy 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.