Skip to main content

Struct2Tensor is a package for parsing and manipulating structured data for TensorFlow

Project description

Struct2Tensor

Python PyPI

Introduction

struct2tensor is a library for parsing structured data inside of tensorflow. In particular, it makes it easy to manipulate structured data, e.g., slicing, flattening, copying substructures, and so on, as part of a TensorFlow model graph. The notebook in 'examples/prensor_playground.ipynb' provides a few examples of struct2tensor in action and an introduction to the main concepts. You can run the notebook in your browser through Google's colab environment, or download the file to run it in your own Jupyter environment.

There are two main use cases of this repo:

  1. To create a PIP package. The PIP package contains plug-ins (OpKernels) to an existing tensorflow installation.
  2. To staticlly link with tensorflow-serving.

As these processes are independent, one can follow either set of directions below.

Use a pre-built Linux PIP package.

From a virtual environment, run:

pip install struct2tensor

Nightly Packages

Struct2Tensor also hosts nightly packages at https://pypi-nightly.tensorflow.org on Google Cloud. To install the latest nightly package, please use the following command:

pip install --extra-index-url https://pypi-nightly.tensorflow.org/simple struct2tensor

This will install the nightly packages for the major dependencies of struct2tensor such as TensorFlow Metadata (TFMD).

Creating a PIP package.

The struct2tensor PIP package is useful for creating models. It works with tensorflow 2.x.

In order to unify the process, we recommend compiling struct2tensor inside a docker container.

Downloading the Code

Go to your home directory.

Download the source code.

git clone https://github.com/google/struct2tensor.git
cd ~/struct2tensor

Use docker-compose

Install docker-compose.

Use it to build a pip wheel for Python 3.8 with tensorflow version 2:

docker-compose build --build-arg PYTHON_VERSION=3.8 manylinux2014
docker-compose run -e TF_VERSION=RELEASED_TF_2 manylinux2014

This will create a manylinux package in the ~/struct2tensor/dist directory.

Creating a static library

In order to construct a static library for tensorflow-serving, we run:

bazel build -c opt struct2tensor:struct2tensor_kernels_and_ops

This can also be linked into another library.

TensorFlow Serving docker image

struct2tensor needs a couple of custom TensorFlow ops to function. If you train a model with struct2tensor and wants to serve it with TensorFlow Serving, the TensorFlow Serving binary needs to link with those custom ops. We have a pre-built docker image that contains such a binary. The Dockerfile is available at tools/tf_serving_docker/Dockerfile. The image is available at gcr.io/tfx-oss-public/s2t_tf_serving.

Please see the Dockerfile for details. But in brief, the image exposes port 8500 as the gRPC endpoint and port 8501 as the REST endpoint. You can set two environment variables MODEL_BASE_PATH and MODEL_NAME to point it to your model (either mount it to the container, or put your model on GCS). It will look for a saved model at ${MODEL_BASE_PATH}/${MODEL_NAME}/${VERSION_NUMBER}, where VERSION_NUMBER is an integer.

Compatibility

struct2tensor tensorflow
0.47.0 2.16.2
0.46.0 2.15.0
0.45.0 2.13.0
0.44.0 2.12.0
0.43.0 2.11.0
0.42.0 2.10.0
0.41.0 2.9.0
0.40.0 2.9.0
0.39.0 2.8.0
0.38.0 2.8.0
0.37.0 2.7.0
0.36.0 2.7.0
0.35.0 2.6.0
0.34.0 2.6.0
0.33.0 2.5.0
0.32.0 2.5.0
0.31.0 2.5.0
0.30.0 2.4.0
0.29.0 2.4.0
0.28.0 2.4.0
0.27.0 2.4.0
0.26.0 2.3.0
0.25.0 2.3.0
0.24.0 2.3.0
0.23.0 2.3.0
0.22.0 2.2.0
0.21.1 2.1.0
0.21.0 2.1.0
0.0.1.dev* 1.15

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

struct2tensor-0.47.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

struct2tensor-0.47.0-cp311-cp311-macosx_12_0_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.11 macOS 12.0+ x86-64

struct2tensor-0.47.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

struct2tensor-0.47.0-cp310-cp310-macosx_12_0_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.10 macOS 12.0+ x86-64

struct2tensor-0.47.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

struct2tensor-0.47.0-cp39-cp39-macosx_12_0_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.9 macOS 12.0+ x86-64

File details

Details for the file struct2tensor-0.47.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for struct2tensor-0.47.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 20034358c53f8f32bd45c2338168460fa9845325925cb0389895be7e2c641991
MD5 892e4b75393cc7339f6f93085a9a46d4
BLAKE2b-256 28cfdb9f55700404af98fecb2d05f19610f627358702d6541602d4a1e173abee

See more details on using hashes here.

File details

Details for the file struct2tensor-0.47.0-cp311-cp311-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for struct2tensor-0.47.0-cp311-cp311-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 c3fc12b27e551ac51ca929594159f93e0bc56251af9fbc4a48a1a98ac048f9cb
MD5 9176828148bd9fcbf02c6504ae1b37ae
BLAKE2b-256 869104ec5f32705fba23e4a6af0c80d6ed565b68039da0e193de89fffde3d8a7

See more details on using hashes here.

File details

Details for the file struct2tensor-0.47.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for struct2tensor-0.47.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 57c2274e1bb8efbbadf711df1f775b41a1554b83ceb201f37c6952edcc66a979
MD5 ebeb129922eee3468c5898062bdb1b5a
BLAKE2b-256 de913ec0533fddd7dbb7b6e0de63813e6156e1697ba48ec1dd7387f6a1f670af

See more details on using hashes here.

File details

Details for the file struct2tensor-0.47.0-cp310-cp310-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for struct2tensor-0.47.0-cp310-cp310-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 040b6a188e83f614eabcce5593dec9f4931cd9245e8cf03d7e06d936d0ac33f4
MD5 72000a49585af156dd7d77fbe8622e60
BLAKE2b-256 061f7db2cd6dab6709e80f19451993e7989286406be62d867e4187f992777fa3

See more details on using hashes here.

File details

Details for the file struct2tensor-0.47.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for struct2tensor-0.47.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 1eb9205becda68cc6d9d53c197cb6788de4ad3ebbab3e574e2957ba60ed6eaa0
MD5 003c8cafa78c2f6a95f5e334371293f0
BLAKE2b-256 d35b458fa29115b5192a416f845aaad933e803fa255ccdf40e5544bbcc61d1ba

See more details on using hashes here.

File details

Details for the file struct2tensor-0.47.0-cp39-cp39-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for struct2tensor-0.47.0-cp39-cp39-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 9bfdd6bb365162022f416bf582685061b6d4c75085e97cb5d9426312221b07b5
MD5 0dabf4bb08aed1767f798f033f8a5071
BLAKE2b-256 a6c0f53ce22778c18dff73aa161625c8f00a4200b0661f1ec65953a54d22c3eb

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