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.7 with tensorflow version 2:

docker-compose build --build-arg PYTHON_VERSION=3.7 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.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.41.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

struct2tensor-0.41.0-cp39-cp39-macosx_10_14_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.9 macOS 10.14+ x86-64

struct2tensor-0.41.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

struct2tensor-0.41.0-cp38-cp38-macosx_10_9_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

struct2tensor-0.41.0-cp37-cp37m-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

struct2tensor-0.41.0-cp37-cp37m-macosx_10_9_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

File details

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

File metadata

File hashes

Hashes for struct2tensor-0.41.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 134f498d39b8486d5f3b96af013738d2c08e3b1d29617f561e57b47eb634ee2d
MD5 67a8842f70e5f9834c33beb0608c8a33
BLAKE2b-256 eba66677baa6bf7b1938fd83a8f63ef501f9692412a52320e84b22d1c0235af1

See more details on using hashes here.

Provenance

File details

Details for the file struct2tensor-0.41.0-cp39-cp39-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for struct2tensor-0.41.0-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 3d672354c3c2781cd341f7aca77002ee33a7f528fe35ae25a1b5acdd4c2ed249
MD5 a89b4661bbd0c2ec9da48b81e55a533e
BLAKE2b-256 9425a3e5f94653af6814e0131dfa742f5e3d5f0fadb9c86ff6c8772d386ffd70

See more details on using hashes here.

Provenance

File details

Details for the file struct2tensor-0.41.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for struct2tensor-0.41.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 122ceaec9b83942785be456e73c0113aa50b49e389483935fc6dfb357ec46ea6
MD5 7236705db88c1cfa58c84909df57961d
BLAKE2b-256 d4ceada18001175600ce7b5a0630f414100353dd655ccf0da2f0ee35c7881652

See more details on using hashes here.

Provenance

File details

Details for the file struct2tensor-0.41.0-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for struct2tensor-0.41.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 84d2586a25f4604da0ab7ca1e081163c6cec264de695c235ecf59c855b177a1d
MD5 82ac37f637d9e1c1165a84d99b60305a
BLAKE2b-256 20afa070485a9ada9193d78e67f5b5dff5843e1425747630c0c3a71f803d25e8

See more details on using hashes here.

Provenance

File details

Details for the file struct2tensor-0.41.0-cp37-cp37m-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for struct2tensor-0.41.0-cp37-cp37m-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 5cf0ea9d38db208a8dfdc082a6527d1fdb44d86940254fb832bb0947aad22d61
MD5 9c1fc5bb9bf74889440b86d9536a49d6
BLAKE2b-256 00b9079408c076d34f6436a437967d68f22942267639ff7e1f438acc41aa313e

See more details on using hashes here.

Provenance

File details

Details for the file struct2tensor-0.41.0-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for struct2tensor-0.41.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 adec371dc5f6184ad5c01e721e18a009741a2d46a979988b67d286f259119e21
MD5 e3970f6ad1d53a412329973b23c18af6
BLAKE2b-256 c42d6fbb4e8f41c6fec5be7bcfb9f664d07fd157af269fc6cdc2cbf4f960d23d

See more details on using hashes here.

Provenance

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