TINTOlib - Python library for transforming tabular data into synthetic images
TINTOlib — Tabular Data → Synthetic Images
Open-source Python library to convert tidy tabular data into synthetic images and train CNNs, ViTs, and hybrid architectures.
🎉 New Free Course on Udemy! 🎉
We’ve just launched a 100% free course on Udemy about using TINTOlib and developing Hybrid Neural Networks.
Learn how to turn tabular data into synthetic images and apply CNNs, ViTs, and hybrid architectures.
🧠 Overview
TINTOlib transforms tidy tabular data into synthetic images, enabling deep learning with CNNs and Vision Transformers (ViTs) for classification and regression. It bridges structured data and image-based learning, and supports hybrid models combining both worlds.
🎬 TINTOlib — Overview Video
📺 VideoTutorial Course (English/Spanish)
Prefer not to register on Udemy or looking for the English version? Follow the full bilingual course on GitHub, with videos and practical notebooks covering CNNs, ViTs, and hybrid architectures.
📊 Benchmark of TINTOlib vs Classical Models
This benchmark compares TINTOlib transformation methods and neural architectures against traditional and ensemble models on multiple datasets. You can explore the interactive version directly on the official site.
🔧 Features
- Input formats: CSV or Pandas DataFrame.
- Designed for tidy data (target column at the end).
- Output: grayscale images produced by reduction/transformation methods.
- Compatible with Linux, Windows, macOS.
- Requires Python 3.7+.
🧪 Supported Models
Supported image transformation models include:
| Models | Class | Hyperparameters |
|---|---|---|
| TINTO | TINTO() | problem normalize verbose pixels algorithm blur submatrix amplification distance steps option times train_m zoom random_seed |
| IGTD | IGTD() | problem normalize verbose scale fea_dist_method image_dist_method error max_step val_step switch_t min_gain zoom random_seed |
| REFINED | REFINED() | problem normalize verbose hcIterations n_processors zoom random_seed |
| BarGraph | BarGraph() | problem normalize verbose pixel_width gap zoom |
| DistanceMatrix | DistanceMatrix() | problem normalize verbose zoom |
| Combination | Combination() | problem normalize verbose zoom |
| SuperTML | SuperTML() | problem normalize verbose pixels feature_importance font_size random_seed |
| FeatureWrap | FeatureWrap() | problem normalize verbose size bins zoom |
| BIE | BIE() | problem normalize verbose precision zoom |
🚀 Getting Started
Install via pip:
pip install TINTOlib
- Use
requirements.txtfor the base environment. - Use
requirements-example.txtfor full deep learning workflows.
🧩 Example
from TINTOlib.tinto import TINTO
# Create and run TINTO on your tidy DataFrame (target column last)
model = TINTO(problem="supervised", blur=True, pixels=64, random_seed=42)
model.fit_transform(data, folder="outputs")
📚 Additional Resources
🧠 Research and Software Publications
📄 Research Articles
- Manuel Castillo-Cara et al. MIMO-Based Indoor Localisation with Hybrid Neural Networks. IEEE JSTSP. DOI: 10.1109/JSTSP.2025.3555067
- Reewos Talla-Chumpitaz, Manuel Castillo-Cara et al. Blurring Image Techniques for Bluetooth-based Indoor Localisation. Information Fusion. DOI: 10.1016/j.inffus.2022.10.011
💾 Software Articles
- Manuel Castillo-Cara et al. TINTO: Converting Tidy Data into Images. SoftwareX. DOI: 10.1016/j.softx.2023.101391
🎓 License
TINTOlib is released under the Apache License 2.0.
🏛️ Institutions

