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 -i https://pypi-nightly.tensorflow.org/simple struct2tensor

This will install the nightly packages for the major dependencies of Fairness Indicators 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.6 with tensorflow version 2:

docker-compose build manylinux2010
docker-compose run -e PYTHON_VERSION=36 -e TF_VERSION=RELEASED_TF_2 manylinux2010

Or build a pip wheel for Python 3.7 with tensorflow version 2 (note that if you run one of these docker-compose commands after the other, the second will erase the result from the first):

docker-compose build manylinux2010
docker-compose run -e PYTHON_VERSION=37 -e TF_VERSION=RELEASED_TF_2 manylinux2010

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.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.39.0-cp39-cp39-manylinux2010_x86_64.manylinux_2_12_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

struct2tensor-0.39.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.39.0-cp38-cp38-manylinux2010_x86_64.manylinux_2_12_x86_64.whl (2.2 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

struct2tensor-0.39.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.39.0-cp37-cp37m-manylinux2010_x86_64.manylinux_2_12_x86_64.whl (2.2 MB view details)

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

struct2tensor-0.39.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.39.0-cp39-cp39-manylinux2010_x86_64.manylinux_2_12_x86_64.whl.

File metadata

File hashes

Hashes for struct2tensor-0.39.0-cp39-cp39-manylinux2010_x86_64.manylinux_2_12_x86_64.whl
Algorithm Hash digest
SHA256 c41461c90ae6ef687c7453bea64162526cbfece55f047aa29b053025af0665ae
MD5 1317b267d42c3bb23e85b4a2fbf6e288
BLAKE2b-256 546b524b557716515fa9d69be901d53d2b5743b96c3c4fa0420e8b05cacb9b3b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for struct2tensor-0.39.0-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 e0e55573080079daa615871867e5a6091ac7cea5d30bf6810c282d0198a0e8a0
MD5 619d3e2e2dcdf5dc4ade228095d1e117
BLAKE2b-256 39a4077eccbdaf640beb90a6e8c8acdb07d8812cf9ca62958c700a7dee6df4aa

See more details on using hashes here.

File details

Details for the file struct2tensor-0.39.0-cp38-cp38-manylinux2010_x86_64.manylinux_2_12_x86_64.whl.

File metadata

File hashes

Hashes for struct2tensor-0.39.0-cp38-cp38-manylinux2010_x86_64.manylinux_2_12_x86_64.whl
Algorithm Hash digest
SHA256 120349f4b5ababd5fdaa2e075cc7359085cf08d110b4cb8cce8e3c349f4e2fca
MD5 dc07878045e5d2143e887d888a842ed5
BLAKE2b-256 f0a477ea9d24ecd01f611ee89a9a5d64897951fa8c38da349fab3a7bf4b1097f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for struct2tensor-0.39.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 25662a677b446ad2672d96a2e483758bffb4a2418ac008c6a030d155a6467974
MD5 ce7161ff02e0366900f3beabc53ac49c
BLAKE2b-256 f9bbb382372f4a99821870119713b8d0532fd556864395f05643917a039e8568

See more details on using hashes here.

File details

Details for the file struct2tensor-0.39.0-cp37-cp37m-manylinux2010_x86_64.manylinux_2_12_x86_64.whl.

File metadata

File hashes

Hashes for struct2tensor-0.39.0-cp37-cp37m-manylinux2010_x86_64.manylinux_2_12_x86_64.whl
Algorithm Hash digest
SHA256 a350f6b1a7ca149c0605a69f3e0977e225c31e3e8fe8945bb06cb5c9e31bf0e9
MD5 a9c366026196bcd1ee3060f538c0a103
BLAKE2b-256 9275810e4fb650bf7795da5f7fe6a4eee7e24298d4cda9bd35e3a40baca86665

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for struct2tensor-0.39.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 553a1ea6713f8495b8bc6426348c27b59fcc37c11304fef0b52345d8af979767
MD5 80416b037b65370a42860546cfa69443
BLAKE2b-256 3e3351f3b03b6e27b665232336d0626b76c39cd42289189e6c258f8a816053e0

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