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.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.46.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.46.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.46.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.46.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.46.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.46.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.46.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for struct2tensor-0.46.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 6651ad6a798ffd5af81c0804c4baaf809755614e17bcf0714a9c93ac12479f77
MD5 abb54d889ae861b678cdee3e66a84eb0
BLAKE2b-256 314d5a9f5b021fc89f1ebd7cca31ce634ce7eb190e9f92669dc334df9c68f45a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for struct2tensor-0.46.0-cp311-cp311-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 4b7a83fcebf75eda32b73f31bc24273dcfd5b9bc66823685460857d382acfcf6
MD5 ac3dea131cd5a5c983919a3de740cced
BLAKE2b-256 57b0d7a54beb2bd57df9f1d34418c2b2d94d8ae603518cd3b601003e4f855ab4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for struct2tensor-0.46.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 c5801784161d48870f76cc0defe8a9bd8ace95f778f0c6e28db9aba8b4c45c49
MD5 cdbfe298e9082d6686c2b60cca1ac023
BLAKE2b-256 437a570946260884fa4daf7b314c5b1261870d2848da1a730d3cb3a23eeb089c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for struct2tensor-0.46.0-cp310-cp310-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 0d526bf850482f7cf6118626ce31411cf6585205b236e4a23baf1e8e91917c22
MD5 b7a634ed087e3302316ea538e167337f
BLAKE2b-256 6e132b28a69d0a8b4fe27184bbe030372b0f3342d26a04cac2b208030014e84d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for struct2tensor-0.46.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 0bcdba43b49fb5176f8cec9fe5ff2c823dc2843de4ef4231c6bd1ac9e30c3d9c
MD5 5eaa216a8a82a2c45cd35604af55ead7
BLAKE2b-256 889fa11b919e98ab5b95c3ccbffe68362fa705af88333c7c4491cccd5b18592d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for struct2tensor-0.46.0-cp39-cp39-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 f0eb1700a266510ece4b3c33b79136f5f94056aced602bb259a92cc2ccdbb4ce
MD5 6c4fbbcb3216de4a1ca4706154c6a133
BLAKE2b-256 d7b7030eb3b712c7837554ee2dd544d4446520cff0905de3108ac8672e0d4ac6

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