Skip to main content

Tesseract Torch wraps Tesseracts as differentiable PyTorch operations, with full support for reverse-mode and forward-mode automatic differentiation.

Project description

Tesseract-Torch

Tesseract-Torch is a lightweight extension to Tesseract Core that wraps Tesseracts as differentiable PyTorch operations, with full support for reverse-mode and forward-mode automatic differentiation.

Read the docs | Explore the examples | Report an issue | Talk to the community | Contribute


The API of Tesseract-Torch consists of a single function, apply_tesseract(tesseract, inputs), which integrates any Tesseract into PyTorch's autograd graph:

result = apply_tesseract(my_tesseract, {"x": x_tensor})
result["y"].sum().backward()  # reverse-mode AD
x_tensor.grad  # gradients flow through the Tesseract

Quick start

[!NOTE] Before proceeding, make sure you have a working installation of Docker and a modern Python installation (Python 3.10+).

[!IMPORTANT] For more detailed installation instructions, please refer to the Tesseract Core documentation.

  1. Install Tesseract-Torch:

    $ pip install tesseract-torch
    
  2. Build an example Tesseract:

    $ git clone https://github.com/pasteurlabs/tesseract-torch
    $ tesseract build tesseract-torch/examples/simple/vectoradd_torch
    
  3. Use it as part of a PyTorch program via apply_tesseract:

    import torch
    from tesseract_core import Tesseract
    from tesseract_torch import apply_tesseract
    
    # Load the Tesseract
    t = Tesseract.from_image("vectoradd_torch")
    t.serve()
    
    # Run it with PyTorch tensors
    x = torch.ones(1000, requires_grad=True)
    y = torch.ones(1000)
    
    def vector_sum(x, y):
        res = apply_tesseract(t, {"a": {"v": x}, "b": {"v": y}})
        return res["vector_add"]["result"].sum()
    
    loss = vector_sum(x, y)
    loss.backward()
    print(x.grad)  # gradients via the Tesseract's VJP endpoint
    
    # Forward-mode AD is also supported via torch.autograd.forward_ad
    

[!TIP] Now you're ready to jump into our examples for more ways to use Tesseract-Torch.

Sharp edges

  • Required endpoints: Using apply_tesseract with reverse-mode AD (.backward(), torch.autograd.grad) requires the Tesseract to define a vector_jacobian_product endpoint. Forward-mode AD (torch.autograd.forward_ad) requires jacobian_vector_product.

  • torch.func transforms are not supported: apply_tesseract works with PyTorch's standard autograd API (.backward(), torch.autograd.grad, torch.autograd.forward_ad), but not with torch.func transforms (torch.func.vjp, torch.func.jvp, torch.func.grad, torch.func.vmap). These transforms create functionalized tensors that cannot be converted to NumPy arrays, which Tesseract endpoints require. Calling apply_tesseract inside a torch.func transform will raise a clear error.

License

Tesseract-Torch is licensed under the Apache License 2.0 and is free to use, modify, and distribute (under the terms of the license).

Tesseract is a registered trademark of Pasteur Labs, Inc. and may not be used without permission.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tesseract_torch-0.1.0.tar.gz (18.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tesseract_torch-0.1.0-py3-none-any.whl (11.9 kB view details)

Uploaded Python 3

File details

Details for the file tesseract_torch-0.1.0.tar.gz.

File metadata

  • Download URL: tesseract_torch-0.1.0.tar.gz
  • Upload date:
  • Size: 18.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tesseract_torch-0.1.0.tar.gz
Algorithm Hash digest
SHA256 89b6b354bdcc339f8cc1cc98634cea6d8b2ac6da8ebda3589288a0f51ad6e16d
MD5 b19d8c88e4e0a5dffc8710ea862b3ce1
BLAKE2b-256 91b65a99b712feaa88148c34a859caa925e31bda8b73c3784a4f5d81b5ff671d

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_torch-0.1.0.tar.gz:

Publisher: publish.yml on pasteurlabs/tesseract-torch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tesseract_torch-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: tesseract_torch-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tesseract_torch-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 33408808e088f5168d77c85c405631155f847442a13b3606c90ac6afae705b6c
MD5 072ce069350e01546def872689ae250e
BLAKE2b-256 7df8302f35a3d7fdae4b9833b06036fc97eb175121fc7768582faf586905e0f6

See more details on using hashes here.

Provenance

The following attestation bundles were made for tesseract_torch-0.1.0-py3-none-any.whl:

Publisher: publish.yml on pasteurlabs/tesseract-torch

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page