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.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.42.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.42.0-cp39-cp39-macosx_10_14_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.9 macOS 10.14+ x86-64

struct2tensor-0.42.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

struct2tensor-0.42.0-cp38-cp38-macosx_10_9_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

struct2tensor-0.42.0-cp37-cp37m-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.0 MB view details)

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

struct2tensor-0.42.0-cp37-cp37m-macosx_10_9_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

File details

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

File metadata

File hashes

Hashes for struct2tensor-0.42.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 5845f3a8b35701bc20f15c5fd86ee692eb76d276a300cd5cd9c621ff20dbdc8d
MD5 815cc7f9e36cff77f62462f295daa434
BLAKE2b-256 5b6fd46f9f5ee96557d8abeb8022e37404ddb4c9c3d5af47ff40dd39490642ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for struct2tensor-0.42.0-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 de15ee691dc384826732a388447c9ec053f344b373ec14fc64df27f2e0014767
MD5 ae807129d27074035371fc151af323cb
BLAKE2b-256 c49f54d9dbe1a403360089a8a9318b6d25cc9d35c302bc04789d8c11a9da8a8f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for struct2tensor-0.42.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 9bdf533485efeb3339c09174ac516ec1d44fb6b27d3852932c0e6d641406a875
MD5 598bc4c130bb142ec5b60d5743a17b39
BLAKE2b-256 08867361c2069bc1fade8fff57b091063278f6877cbdd70bcc490a50941d8fb3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for struct2tensor-0.42.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 28ec9e0fa25c2d5f6e72df73e852bbfb260fe0180ad692c1efb840008fe1037a
MD5 477751401159cc4ebbe1d0d43af57ab4
BLAKE2b-256 af8bcb3e1361791248c90e11f214f626e52f98bc1997df01f0a4109db5cef5d5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for struct2tensor-0.42.0-cp37-cp37m-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 1149b334bab02f349089da75732511f4b5228dd447ea9b6aab0f5ea34836b870
MD5 2b2d8781dbaef1861b2e28001fcf95a4
BLAKE2b-256 65e33e85a397875f4b42cad891a5ccd66b05f84e64ccb0e878e474d1c482c941

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for struct2tensor-0.42.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 69da33bb1752c8bd1020866cab4a59de73f293143571bda642ad38d687c01c1e
MD5 538ebb0a89b7074e74f245d4451be8c3
BLAKE2b-256 8790e375386bbbd278e61377b930396e5d25fb3736bdb730d295ba5da36d2f54

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