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.3.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.3-py3-none-any.whl (33.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for tensorguard-1.0.3.tar.gz
Algorithm Hash digest
SHA256 108d0ff457338c572d5e4f103fc1e2326d42135cdeb6382295434e29c0b97d6a
MD5 5abbfdbc246931146c53e9a94358d07e
BLAKE2b-256 455c1ee4b9128990dda58945b5ae9bbe32420ac230fcc6cc8476ff7926a05277

See more details on using hashes here.

Provenance

The following attestation bundles were made for tensorguard-1.0.3.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.3-py3-none-any.whl.

File metadata

  • Download URL: tensorguard-1.0.3-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.13.7

File hashes

Hashes for tensorguard-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 14847817d5913717ce65c85b71d9be53ef9837f285d014a9899d89f426460718
MD5 d2ac17932943a216a357370131ccddf4
BLAKE2b-256 f240170f67381ed7cf1047c4468474793a918b2e0a38ef5968eec77b5ce7aac4

See more details on using hashes here.

Provenance

The following attestation bundles were made for tensorguard-1.0.3-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