# pytorch_tabular: install lines with curly quotes, a git:// clone URL, and a Makefile without requirements.txt

> PyTorch Tabular wraps ten published tabular architectures behind one config-object API on top of PyTorch Lightning. Its front page is worth reading carefully as an artifact: the install commands carry typographic quotes, the clone link still points at a per-user path using a protocol GitHub no longer serves, and the usage example never builds the model it imports.

**pytorch-tabular/pytorch_tabular** — A unified framework for Deep Learning Models on tabular data

- Repository: https://github.com/pytorch-tabular/pytorch_tabular
- Website: https://pytorch-tabular.readthedocs.io/
- Stars: 1,693 · Forks: 179
- Language: Python
- License: MIT
- Published: 2026-09-10 · Updated: 2026-09-10 · Language: en
- Canonical page: https://hysenlabs.com/projects/pytorch-tabular-pytorch-tabular

## The install lines carry typographic quotes, not shell quotes

Two installation forms are given, one with the extra dependencies for Weights and Biases and Plotly and one bare. Both are written like this:

```bash
pip install -U “pytorch_tabular[extra]”
```

The quotation marks around the requirement are curly, not ASCII. A shell does not treat those as quoting characters, so the token handed to pip includes the marks and the extras syntax is no longer parsed as an extras spec. The source install path below them has no quoting problem, since cd pytorch_tabular && pip install .[extra] uses none. The page also tells you to install PyTorch yourself first from the upstream site, picking the CUDA build for your machine, while admitting that the install includes PyTorch anyway. That ordering advice is the right one to follow regardless of the quoting.

## The clone URL uses the git protocol and the maintainer's own account

The source instructions offer git clone git://github.com/manujosephv/pytorch_tabular, which has two problems in one line. The git protocol is no longer served by GitHub, so that form will fail before it reaches the repository. And the path belongs to an individual account rather than to the pytorch-tabular organisation that now holds the repository. The drift is not confined to one command: the issue badge, the tutorial notebook link and the guide for implementing new models all still address the same per-user path. A reader who trusts the front page for those links is being sent to where the project used to live.

## numpy has a ceiling and no floor, Lightning has a ceiling

The manifest pins its direct dependencies with a mix of styles that tells you how much freedom you have. torch is given a floor of 1.11.0 and no ceiling, so pip will take the newest release that satisfies everything else. numpy is the mirror image: numpy<=3.0.0 with no lower bound at all, which lets any 2.x or 1.x satisfy it. Lightning is capped at a range ending below 2.7.0, torchmetrics below 1.9.0 and einops below 0.9.0, all of which are moving targets that will need attention before they become a problem. The rest is looser: pandas is capped below 3.0.0, scikit-learn below 2.0, scipy below 2.0, with omegaconf and rich and scikit-base unbounded above. Python itself is bounded to a range of >=3.10,<3.15.

## GATE and GANDALF point at the same arXiv entry

The available models section runs to ten architectures plus one semi-supervised entry, and the citations are worth checking against the paper titles. The GATE entry, Gated Additive Tree Ensemble, links to arXiv 2207.08548v3. The GANDALF entry immediately after it, described as a pared-down version of GATE that is more efficient and performs better, links to arXiv 2207.08548, the same identifier without the version suffix. The rest of the list is unambiguous: NODE from ICLR 2020, TabNet from Google Research using sparse attention across multiple decision steps, Mixture Density Networks for probabilistic regression output, AutoInt, TabTransformer, FT Transformer, DANets with its AbstLay blocks, and a plain feed forward network with category embeddings. One description credits NODE with having beaten well tuned gradient boosting models on many datasets, attributed to its own authors.

## The usage snippet builds three config objects and stops

The whole usage section is this:

```python
from pytorch_tabular import TabularModel
from pytorch_tabular.models import CategoryEmbeddingModelConfig
from pytorch_tabular.config import (
    DataConfig,
    OptimizerConfig,
    TrainerConfig,
    ExperimentConfig,
)

data_config = DataConfig(
    target=[
        "target"
    ],  # target should always be a list.
    continuous_cols=num_col_names,
    categorical_cols=cat_col_names,
)
trainer_config = TrainerConfig(
    auto_lr_find=True,  # Runs the LRFinder to automatically derive a learning rate
    batch_size=1024,
    max_epochs=100,
)
optimizer_config = OptimizerConfig()
```

It imports TabularModel and a model config and an experiment config, then never uses any of the three. What it does show is the shape of the API: data columns are declared by name, the target is a list even when there is one column, and the trainer can hand the learning rate search to the library instead of fixing a rate by hand.

## The Makefile reads a requirements.txt the repository does not contain

The build file is recognisably a generated template, and it shows. The default goal is help, which greps the file's own comments for a two-field pattern to print a target list, and the browser target is a small embedded Python snippet. The env target is where the template has not been adjusted: it creates a directory, builds a virtual environment with python3 -m venv, then tries to activate it with source .env/$name/bin/activate, where the variable $name is never set anywhere in the file. The next line reads the contents of requirements.txt and installs from it, and there is no requirements.txt in the tree, whose dependencies live in pyproject.toml instead. Running that target as written will fail before it installs anything. The targets that do work are the conventional ones: test runs pytest, test-all runs tox, and the clean targets sweep build, egg and cache directories.

## The classifier says Beta and the version says 1.2.0

Two more details live in the manifest rather than in the prose. The development status classifier reads 4 - Beta while the version field reads 1.2.0, which is the sort of combination that makes people hesitate before depending on something. The Python classifiers list five interpreters, 3.10 through 3.14, matching the requires-python range. The dev extra is where the tooling sits, including a hard pin on bump2version at exactly 1.0.1, a hard pin on mknotebooks at the 0.8 series, and torch_optimizer, which is a training dependency sitting in the development extra rather than in the runtime one. The extra extra pulls Weights and Biases and Plotly for the logging and plotting path.

## v1.2.0 landed in January and the branch has moved since

The release history is uneven. v1.1.0 shipped on 2024-01-15, v1.1.1 on 2024-11-29, and v1.2.0 on 2026-01-26, so the gap between the two 1.1 patches was over ten months and the gap to 1.2.0 was another two. The branch itself was last pushed to on 2026-09-21, roughly eight months after the newest tag, so the working tree has moved well past what 1.2.0 describes. The tree explains the release machinery better than the dates do: a .pre-commit-config.yaml at the root, a MANIFEST.in for packaging, a src/ layout, and a docs setup built on mkdocs with the mknotebooks plugin, a .readthedocs.yml and an mkdocs.yml side by side. Examples live in their own directory, including a YAML-driven variant of one of the scripts, which pairs with the omegaconf dependency.

## Conclusion

pytorch_tabular is worth a look if you want several tabular architectures behind one interface rather than one architecture done carefully, and if you are already inside PyTorch Lightning. Three checks before you commit. Copy the install commands by hand rather than pasting them, since the extra and bare forms in the README use typographic quotation marks that a shell will not treat as quoting. Clone over https rather than the git protocol the README shows, and note that several links still point at the maintainer's personal account rather than the organisation. And read the dependency bounds in pyproject.toml before you pin anything, because numpy carries an upper bound with no lower bound and Lightning is capped below its current release.

## FAQ

### Is pytorch_tabular better than gradient boosting on tabular data?

The repository does not position itself against gradient boosting in general. Its model list credits the Neural Oblivious Decision Ensembles paper, with the attribution to its own authors, with having beaten well tuned gradient boosting models on many datasets. Everything else in the list is described by architecture rather than by comparison.

### How do I install pytorch_tabular with the extra dependencies?

Use pip install -U pytorch_tabular[extra], which pulls Weights and Biases and Plotly, or pip install -U pytorch_tabular for the bare essentials. Installing PyTorch yourself first from the upstream site, with the CUDA build that matches your machine, is the recommended order.

### Which architectures does pytorch_tabular include?

Ten, plus one semi-supervised entry: a feed forward network with category embeddings, NODE, TabNet, Mixture Density Networks, AutoInt, TabTransformer, FT Transformer, GATE, GANDALF and DANets, along with a Denoising AutoEncoder for semi-supervised use.

### What Python versions does pytorch_tabular support?

The manifest requires >=3.10,<3.15 and lists classifiers for 3.10, 3.11, 3.12, 3.13 and 3.14. Runtime dependencies include torch>=1.11.0, numpy<=3.0.0, pandas below 3.0.0, scikit-learn below 2.0 and pytorch-lightning below 2.7.0.

### Can pytorch_tabular be configured with YAML instead of Python?

The example directory carries a YAML-driven variant of one of its scripts next to a yaml_config folder, and omegaconf is a direct runtime dependency. The API shown in the usage section is built from DataConfig, TrainerConfig, OptimizerConfig and ExperimentConfig objects.

## Sources

- [License: MIT](https://github.com/pytorch-tabular/pytorch_tabular/blob/main/LICENSE)
- [Project website](https://pytorch-tabular.readthedocs.io/)
- [pytorch-tabular/pytorch_tabular on GitHub](https://github.com/pytorch-tabular/pytorch_tabular)
- [README](https://github.com/pytorch-tabular/pytorch_tabular/blob/main/README.md)
- [Releases](https://github.com/pytorch-tabular/pytorch_tabular/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/pytorch-tabular-pytorch-tabular
