Skip to main content

ShapeGuard is a tool to help with handling shapes in Tensorflow.

Project description

Shape Guard

ShapeGuard is a tool to help with handling shapes in Tensorflow.

Basic Usage

import tensorflow as tf
from shapeguard import ShapeGuard

sg = ShapeGuard()

img = tf.ones([64, 32, 32, 3])
flat_img = tf.ones([64, 1024])
labels = tf.ones([64])

# check shape consistency
sg.guard(img, "B, H, W, C")
sg.guard(labels, "B, 1")  # raises error because of rank mismatch
sg.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 = sg.guard(tf.reduce_mean(img, axis=0), "H, W, C")

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

# evaluate templates
assert sg['H, W*C+1'] == [32, 97]

# attribute access to inferred dimensions
assert sg.B == 64

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])

DISCLAIMER

This is not an officially supported Google product.


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

shapeguard-0.1.1.tar.gz (29.3 kB view details)

Uploaded Source

Built Distribution

shapeguard-0.1.1-py3-none-any.whl (32.9 kB view details)

Uploaded Python 3

File details

Details for the file shapeguard-0.1.1.tar.gz.

File metadata

  • Download URL: shapeguard-0.1.1.tar.gz
  • Upload date:
  • Size: 29.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.17 CPython/3.7.3 Linux/4.15.0-62-generic

File hashes

Hashes for shapeguard-0.1.1.tar.gz
Algorithm Hash digest
SHA256 0bd2a80a924acbf6d2fb07a6b2cbed742f7f9ecdfd77ee106ae5f48538abb31f
MD5 8c8274965ac8e0c6edc9d086f6aa2bb2
BLAKE2b-256 4d44ce6a7100f94556aa4692cc9b150a0b909ed7470672ca6f72a9b23f324dea

See more details on using hashes here.

File details

Details for the file shapeguard-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: shapeguard-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 32.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.17 CPython/3.7.3 Linux/4.15.0-62-generic

File hashes

Hashes for shapeguard-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a489d6a8a33cdc6b6f4a2f7bf9e59d2824699373ca77b1c91ac12bb44b85b990
MD5 55dde609c56ed93007a197b1076c71ce
BLAKE2b-256 e54c4991b4503ad19de7a8d3586f97d8dab3ecf59541e649bac5218dbcd294cd

See more details on using hashes here.

Supported by

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