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.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.43.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.43.0-cp39-cp39-macosx_12_0_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.9 macOS 12.0+ x86-64

struct2tensor-0.43.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.43.0-cp38-cp38-macosx_12_0_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.8 macOS 12.0+ x86-64

struct2tensor-0.43.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.43.0-cp37-cp37m-macosx_12_0_x86_64.whl (1.9 MB view details)

Uploaded CPython 3.7m macOS 12.0+ x86-64

File details

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

File metadata

File hashes

Hashes for struct2tensor-0.43.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 f3305432e2baf55d5bd343daf40619e5705eff5c3acbe3075f76eae93f3dd92f
MD5 b1193dd2ce2a6cd974c5f91dfa793162
BLAKE2b-256 4457b05ec2140d257a1015d52c4db64381fa5405ebbfd65ec8aea9bdc308b6cf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for struct2tensor-0.43.0-cp39-cp39-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 425f9fa09969323291bac54ff85d2e8142abb00f70638ac15674b85157a58e04
MD5 ece487ff7c0da5901c4a12dd774bdc6d
BLAKE2b-256 6e9fa11a4f2b247a6ebf8ab1299bab112c8bbec6839c5782027c157cea57aaaa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for struct2tensor-0.43.0-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 4078f2e2b5bb425979f2b2b57121a89b651c3ccf05cc741e0e5afbbd674048bb
MD5 962b36be2166afa11b3b4b65abc5a752
BLAKE2b-256 b6babcea3f6803298bf787d69aaec06b0f9693d996eeb9c70ac1ce06d549be92

See more details on using hashes here.

File details

Details for the file struct2tensor-0.43.0-cp38-cp38-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for struct2tensor-0.43.0-cp38-cp38-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 0c634308d453ef87cf148370440267608c4009c7a76670024f2e2573be08840d
MD5 d5478847c164f66f5d5cc30ca74b331f
BLAKE2b-256 50dd4dbf37ffebe960f049027fcb81e1796206735b162fa8a132b525e44c1dc6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for struct2tensor-0.43.0-cp37-cp37m-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 5b633bce45963c118b683ecd89bfeeb8de591488f0f4b522ce6bd44bd2619431
MD5 4c8624eed4b6014e4d38716c5322306e
BLAKE2b-256 bb46b691ce36c47c4ba404f992c62e28cec59892ca1ac8d5426c96fbf2208363

See more details on using hashes here.

File details

Details for the file struct2tensor-0.43.0-cp37-cp37m-macosx_12_0_x86_64.whl.

File metadata

File hashes

Hashes for struct2tensor-0.43.0-cp37-cp37m-macosx_12_0_x86_64.whl
Algorithm Hash digest
SHA256 18615ff153f84fe50ee0052b9cac481d9521abe5021869776794abe93abe386c
MD5 356a1b889577c0170458d2b0535a06f4
BLAKE2b-256 fd3c1afd40aac8a6517b258461e84d531baf51f2a669986a24c53a18969a09cf

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