Skip to main content

TensorGuard helps to guard against bad Tensor Shapes

Project description

TensorGuard

tensorguard logo

PyPI version fury.io PyPI pyversions PyPI download month GitHub followers


TensorGuard helps to guard against bad Tensor shapes in any tensor based library (e.g. Numpy, Pytorch, Tensorflow) using an intuitive symbolic-based syntax

Installation

pip install tensorguard

Basic Usage

import numpy as np  # could be tensorflow or torch as well
import tensorguard as tg

# tensorguard = tg.TensorGuard()  #could be done in a OOP fashion
img = np.ones([64, 32, 32, 3])
flat_img = np.ones([64, 1024])
labels = np.ones([64])

# check shape consistency
tg.guard(img, "B, H, W, C")
tg.guard(labels, "B, 1")  # raises error because of rank mismatch
tg.guard(flat_img, "B, H*W*C")  # raises error because 1024 != 32*32*3

# guard also returns the tensor, so it can be inlined
mean_img = tg.guard(np.mean(img, axis=0), "H, W, C")

# more readable reshapes
flat_img = tg.reshape(img, 'B, H*W*C')

# evaluate templates
assert tg.get_dims('H, W*C+1') == [32, 97]

Shape Template Syntax

The shape template mini-DSL supports many different ways of specifying shapes:

  • numbers: "64, 32, 32, 3"
  • named dimensions: "B, width, height2, channels"
  • wildcards: "B, *, *, *"
  • ellipsis: "B, ..., 3"
  • addition, subtraction, multiplication, division: "B*N, W/2, H*(C+1)"
  • dynamic dimensions: "?, H, W, C" (only matches [None, H, W, C])

Original Repo link: https://github.com/Qwlouse/shapeguard

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

tensorguard-1.0.2.tar.gz (32.7 kB view details)

Uploaded Source

Built Distribution

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

tensorguard-1.0.2-py3-none-any.whl (33.6 kB view details)

Uploaded Python 3

File details

Details for the file tensorguard-1.0.2.tar.gz.

File metadata

  • Download URL: tensorguard-1.0.2.tar.gz
  • Upload date:
  • Size: 32.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for tensorguard-1.0.2.tar.gz
Algorithm Hash digest
SHA256 093b685f52b782b7ed1f47ea76b0ff1df50f124fdbe7a4d3a1bb1f365187c5bb
MD5 a578cc4fbcdda692316da0575fb7d03b
BLAKE2b-256 198b7605dd8a170612fb8be51db5cf648d02fdd64e96a465d25f2924708b4d94

See more details on using hashes here.

Provenance

The following attestation bundles were made for tensorguard-1.0.2.tar.gz:

Publisher: publish-to-pypi.yml on Michedev/tensorguard

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

File details

Details for the file tensorguard-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: tensorguard-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 33.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for tensorguard-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 bff962f50ca299c79ef1778142cd688b49c2d295afed4974250c1168b173ea32
MD5 39e9e4ad555dc87c5b3c28b0f73fb7be
BLAKE2b-256 337647b265afabf99f370a7cc74a35faf22bb390a206286fd9a200795adc1956

See more details on using hashes here.

Provenance

The following attestation bundles were made for tensorguard-1.0.2-py3-none-any.whl:

Publisher: publish-to-pypi.yml on Michedev/tensorguard

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