Skip to main content

TensorFlow IO

Project description




TensorFlow I/O

GitHub CI PyPI License Documentation

TensorFlow I/O is a collection of file systems and file formats that are not available in TensorFlow's built-in support. A full list of supported file systems and file formats by TensorFlow I/O can be found here.

The use of tensorflow-io is straightforward with keras. Below is an example to Get Started with TensorFlow with the data processing aspect replaced by tensorflow-io:

import tensorflow as tf
import tensorflow_io as tfio

# Read the MNIST data into the IODataset.
dataset_url = "https://storage.googleapis.com/cvdf-datasets/mnist/"
d_train = tfio.IODataset.from_mnist(
    dataset_url + "train-images-idx3-ubyte.gz",
    dataset_url + "train-labels-idx1-ubyte.gz",
)

# Shuffle the elements of the dataset.
d_train = d_train.shuffle(buffer_size=1024)

# By default image data is uint8, so convert to float32 using map().
d_train = d_train.map(lambda x, y: (tf.image.convert_image_dtype(x, tf.float32), y))

# prepare batches the data just like any other tf.data.Dataset
d_train = d_train.batch(32)

# Build the model.
model = tf.keras.models.Sequential(
    [
        tf.keras.layers.Flatten(input_shape=(28, 28)),
        tf.keras.layers.Dense(512, activation=tf.nn.relu),
        tf.keras.layers.Dropout(0.2),
        tf.keras.layers.Dense(10, activation=tf.nn.softmax),
    ]
)

# Compile the model.
model.compile(
    optimizer="adam", loss="sparse_categorical_crossentropy", metrics=["accuracy"]
)

# Fit the model.
model.fit(d_train, epochs=5, steps_per_epoch=200)

In the above MNIST example, the URL's to access the dataset files are passed directly to the tfio.IODataset.from_mnist API call. This is due to the inherent support that tensorflow-io provides for HTTP/HTTPS file system, thus eliminating the need for downloading and saving datasets on a local directory.

NOTE: Since tensorflow-io is able to detect and uncompress the MNIST dataset automatically if needed, we can pass the URL's for the compressed files (gzip) to the API call as is.

Please check the official documentation for more detailed and interesting usages of the package.

Installation

Python Package

The tensorflow-io Python package can be installed with pip directly using:

$ pip install tensorflow-io

People who are a little more adventurous can also try our nightly binaries:

$ pip install tensorflow-io-nightly

To ensure you have a version of TensorFlow that is compatible with TensorFlow-IO, you can specify the tensorflow extra requirement during install:

pip install tensorflow-io[tensorflow]

Similar extras exist for the tensorflow-gpu, tensorflow-cpu and tensorflow-rocm packages.

Docker Images

In addition to the pip packages, the docker images can be used to quickly get started.

For stable builds:

$ docker pull tfsigio/tfio:latest
$ docker run -it --rm --name tfio-latest tfsigio/tfio:latest

For nightly builds:

$ docker pull tfsigio/tfio:nightly
$ docker run -it --rm --name tfio-nightly tfsigio/tfio:nightly

R Package

Once the tensorflow-io Python package has been successfully installed, you can install the development version of the R package from GitHub via the following:

if (!require("remotes")) install.packages("remotes")
remotes::install_github("tensorflow/io", subdir = "R-package")

TensorFlow Version Compatibility

To ensure compatibility with TensorFlow, it is recommended to install a matching version of TensorFlow I/O according to the table below. You can find the list of releases here.

TensorFlow I/O Version TensorFlow Compatibility Release Date
0.26.0 2.9.x May 17, 2022
0.25.0 2.8.x Apr 19, 2022
0.24.0 2.8.x Feb 04, 2022
0.23.1 2.7.x Dec 15, 2021
0.23.0 2.7.x Dec 14, 2021
0.22.0 2.7.x Nov 10, 2021
0.21.0 2.6.x Sep 12, 2021
0.20.0 2.6.x Aug 11, 2021
0.19.1 2.5.x Jul 25, 2021
0.19.0 2.5.x Jun 25, 2021
0.18.0 2.5.x May 13, 2021
0.17.1 2.4.x Apr 16, 2021
0.17.0 2.4.x Dec 14, 2020
0.16.0 2.3.x Oct 23, 2020
0.15.0 2.3.x Aug 03, 2020
0.14.0 2.2.x Jul 08, 2020
0.13.0 2.2.x May 10, 2020
0.12.0 2.1.x Feb 28, 2020
0.11.0 2.1.x Jan 10, 2020
0.10.0 2.0.x Dec 05, 2019
0.9.1 2.0.x Nov 15, 2019
0.9.0 2.0.x Oct 18, 2019
0.8.1 1.15.x Nov 15, 2019
0.8.0 1.15.x Oct 17, 2019
0.7.2 1.14.x Nov 15, 2019
0.7.1 1.14.x Oct 18, 2019
0.7.0 1.14.x Jul 14, 2019
0.6.0 1.13.x May 29, 2019
0.5.0 1.13.x Apr 12, 2019
0.4.0 1.13.x Mar 01, 2019
0.3.0 1.12.0 Feb 15, 2019
0.2.0 1.12.0 Jan 29, 2019
0.1.0 1.12.0 Dec 16, 2018

Performance Benchmarking

We use github-pages to document the results of API performance benchmarks. The benchmark job is triggered on every commit to master branch and facilitates tracking performance w.r.t commits.

Contributing

Tensorflow I/O is a community led open source project. As such, the project depends on public contributions, bug-fixes, and documentation. Please see:

Build Status and CI

Build Status
Linux CPU Python 2 Status
Linux CPU Python 3 Status
Linux GPU Python 2 Status
Linux GPU Python 3 Status

Because of manylinux2010 requirement, TensorFlow I/O is built with Ubuntu:16.04 + Developer Toolset 7 (GCC 7.3) on Linux. Configuration with Ubuntu 16.04 with Developer Toolset 7 is not exactly straightforward. If the system have docker installed, then the following command will automatically build manylinux2010 compatible whl package:

#!/usr/bin/env bash

ls dist/*
for f in dist/*.whl; do
  docker run -i --rm -v $PWD:/v -w /v --net=host quay.io/pypa/manylinux2010_x86_64 bash -x -e /v/tools/build/auditwheel repair --plat manylinux2010_x86_64 $f
done
sudo chown -R $(id -nu):$(id -ng) .
ls wheelhouse/*

It takes some time to build, but once complete, there will be python 3.5, 3.6, 3.7 compatible whl packages available in wheelhouse directory.

On macOS, the same command could be used. However, the script expects python in shell and will only generate a whl package that matches the version of python in shell. If you want to build a whl package for a specific python then you have to alias this version of python to python in shell. See .github/workflows/build.yml Auditwheel step for instructions how to do that.

Note the above command is also the command we use when releasing packages for Linux and macOS.

TensorFlow I/O uses both GitHub Workflows and Google CI (Kokoro) for continuous integration. GitHub Workflows is used for macOS build and test. Kokoro is used for Linux build and test. Again, because of the manylinux2010 requirement, on Linux whl packages are always built with Ubuntu 16.04 + Developer Toolset 7. Tests are done on a variatiy of systems with different python3 versions to ensure a good coverage:

Python Ubuntu 18.04 Ubuntu 20.04 macOS + osx9 Windows-2019
2.7 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: N/A
3.7 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:
3.8 :heavy_check_mark: :heavy_check_mark: :heavy_check_mark: :heavy_check_mark:

TensorFlow I/O has integrations with many systems and cloud vendors such as Prometheus, Apache Kafka, Apache Ignite, Google Cloud PubSub, AWS Kinesis, Microsoft Azure Storage, Alibaba Cloud OSS etc.

We tried our best to test against those systems in our continuous integration whenever possible. Some tests such as Prometheus, Kafka, and Ignite are done with live systems, meaning we install Prometheus/Kafka/Ignite on CI machine before the test is run. Some tests such as Kinesis, PubSub, and Azure Storage are done through official or non-official emulators. Offline tests are also performed whenever possible, though systems covered through offine tests may not have the same level of coverage as live systems or emulators.

Live System Emulator CI Integration Offline
Apache Kafka :heavy_check_mark: :heavy_check_mark:
Apache Ignite :heavy_check_mark: :heavy_check_mark:
Prometheus :heavy_check_mark: :heavy_check_mark:
Google PubSub :heavy_check_mark: :heavy_check_mark:
Azure Storage :heavy_check_mark: :heavy_check_mark:
AWS Kinesis :heavy_check_mark: :heavy_check_mark:
Alibaba Cloud OSS :heavy_check_mark:
Google BigTable/BigQuery to be added
Elasticsearch (experimental) :heavy_check_mark: :heavy_check_mark:
MongoDB (experimental) :heavy_check_mark: :heavy_check_mark:

References for emulators:

Community

Additional Information

License

Apache License 2.0

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

tensorflow_io-0.26.0-cp310-cp310-win_amd64.whl (22.5 MB view details)

Uploaded CPython 3.10 Windows x86-64

tensorflow_io-0.26.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (37.2 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

tensorflow_io-0.26.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (25.9 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.12+ x86-64

tensorflow_io-0.26.0-cp310-cp310-macosx_10_14_x86_64.whl (24.6 MB view details)

Uploaded CPython 3.10 macOS 10.14+ x86-64

tensorflow_io-0.26.0-cp39-cp39-win_amd64.whl (22.5 MB view details)

Uploaded CPython 3.9 Windows x86-64

tensorflow_io-0.26.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (37.2 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

tensorflow_io-0.26.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (25.9 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

tensorflow_io-0.26.0-cp39-cp39-macosx_10_14_x86_64.whl (24.6 MB view details)

Uploaded CPython 3.9 macOS 10.14+ x86-64

tensorflow_io-0.26.0-cp38-cp38-win_amd64.whl (22.5 MB view details)

Uploaded CPython 3.8 Windows x86-64

tensorflow_io-0.26.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (37.2 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

tensorflow_io-0.26.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (25.9 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

tensorflow_io-0.26.0-cp38-cp38-macosx_10_14_x86_64.whl (24.6 MB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

tensorflow_io-0.26.0-cp37-cp37m-win_amd64.whl (22.5 MB view details)

Uploaded CPython 3.7m Windows x86-64

tensorflow_io-0.26.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (37.2 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

tensorflow_io-0.26.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (25.9 MB view details)

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

tensorflow_io-0.26.0-cp37-cp37m-macosx_10_14_x86_64.whl (24.6 MB view details)

Uploaded CPython 3.7m macOS 10.14+ x86-64

File details

Details for the file tensorflow_io-0.26.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for tensorflow_io-0.26.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 38868f2823809fb2d7200bae5ba9306ba183d45b5ebe8d648dc9d96aa33a4bfc
MD5 7c0911884346f6d6b664923fe945ddb8
BLAKE2b-256 62d6daa3417b18def2a472e80f9dad1a85835f767bf37e4f316949779f298f4d

See more details on using hashes here.

File details

Details for the file tensorflow_io-0.26.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tensorflow_io-0.26.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5ad0f73af0fe16b86b678c603fc9b080f56a143ecc178d57fd8129eb0687a5cd
MD5 823f3f17a9b8b231263c4eef73d7c066
BLAKE2b-256 8b1967edc22d497956afbe0f84ba07f489595845a28275890323a684bf615dfd

See more details on using hashes here.

File details

Details for the file tensorflow_io-0.26.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for tensorflow_io-0.26.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 c79ee2692582697e4b8198b3681a5d09cb6155149df481228228694a1aacca21
MD5 6a4695885e7010b3efa9661e5ade41fd
BLAKE2b-256 39e296196e0a01f266dca776dfcd8ce30980886448600211701e969981f68ed7

See more details on using hashes here.

File details

Details for the file tensorflow_io-0.26.0-cp310-cp310-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for tensorflow_io-0.26.0-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 1953a686befe00e4729330140b1c0ab095860d2b8db6254e76f744ef6c6c6f0a
MD5 9371433e94af2dccd3cd26c22ba34c07
BLAKE2b-256 fbee820b8fe1e9437ceff66224e8d9d1a37bf8002812c3807c5b6131595ee9cd

See more details on using hashes here.

File details

Details for the file tensorflow_io-0.26.0-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for tensorflow_io-0.26.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 64dc556b38d86269d969614f218bfa15cd065d63ebe417339a1b7e7c9c7b4fac
MD5 b2e0e7c7765dcae9b9e096f4534e99ad
BLAKE2b-256 80683470d3b68a322e61bf5561cd35ea18f7321c2d9469d6592d844ccc862c65

See more details on using hashes here.

File details

Details for the file tensorflow_io-0.26.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tensorflow_io-0.26.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d8075a38e230908674b6dec8d83d363f64205f6d42facb2b96833cab6e0aba73
MD5 6335cb550541ee29be80b4c24377559a
BLAKE2b-256 40141266a5a2c95885c7b95b28cdb02126d0f1d7e55767c5427e8a1f0503c112

See more details on using hashes here.

File details

Details for the file tensorflow_io-0.26.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for tensorflow_io-0.26.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 84c6c915e7c9ab81493c414c0dd46c57b06f4861e311c19386c92b251ed8e6c4
MD5 4a475f747fdb0b5386598967d61c8192
BLAKE2b-256 94c15bd403ddc08c6197723a2e88e73261f5b64c41782d9cb0ed6d0c357d303b

See more details on using hashes here.

File details

Details for the file tensorflow_io-0.26.0-cp39-cp39-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for tensorflow_io-0.26.0-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 68e50abbb5c592a4d6f64b06ce573c884735bd21922170fa6808150b38f931c2
MD5 bf6a5c7edf21ec729acc6e9039ebe396
BLAKE2b-256 e91fdf8f101a35e36024824703ef9aa2345ff4bc62bff7f456b33cbaf29a4d18

See more details on using hashes here.

File details

Details for the file tensorflow_io-0.26.0-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for tensorflow_io-0.26.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 f268c383cf80079b61248eda49ac911fba4ca61f91ce18cc04616729a2dc3984
MD5 dd0eb51a944ad22d4228ab98c4d881c0
BLAKE2b-256 52eb7d4639d0fb75d1589ff18e898b1ab178b67b87c17fccc35fc3c0c10f6d66

See more details on using hashes here.

File details

Details for the file tensorflow_io-0.26.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tensorflow_io-0.26.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4fc500f1f03164d69e229ec682056ed6c76be954a5795bbe485b9d120f8d09ac
MD5 74e63633bb99a3d6eca550673a33a0f9
BLAKE2b-256 f31c1505af233fd372b89ee014ddb65939a505387a0c723f5bdd6eebc93eb7ce

See more details on using hashes here.

File details

Details for the file tensorflow_io-0.26.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for tensorflow_io-0.26.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 ec4fe5ae74afa4e34bc1c8cda883eb77cfbf33cd86d4807ba7e7048a11d78dcd
MD5 4baf779305f701174d29719350c6f763
BLAKE2b-256 33bdef58ce4c13d08e0f454c7038f4eb56fc3bfe7583dd731aba229807df5487

See more details on using hashes here.

File details

Details for the file tensorflow_io-0.26.0-cp38-cp38-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for tensorflow_io-0.26.0-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 b9c94b10bff01ed3d9d918b408dab563cdb110cacfd0ffd35ea5f47536dc10a3
MD5 0926a72309dcd9dc2fb2e851ba2a6ffe
BLAKE2b-256 c84970b1b6f07a0390ac31623aecaa2f1b94eb066a455630b732a44500823550

See more details on using hashes here.

File details

Details for the file tensorflow_io-0.26.0-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for tensorflow_io-0.26.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 ee91a9a237c8edb60fb5700ff655916d6a72447d20a9b5328b863faf7ba0ad5a
MD5 49f7b72f48a371c0a855437fc89ee0eb
BLAKE2b-256 9609c13ee3ffe1eda2b9e8a68520ab68d0bd9492990871755e0b518e5f6f9edb

See more details on using hashes here.

File details

Details for the file tensorflow_io-0.26.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tensorflow_io-0.26.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 572ce60a8c148d60ceec7ba87921d7aa70983d6561102757ed690f5470e54562
MD5 5ae6472671b0000e5927f0a758c6a910
BLAKE2b-256 ecfa3e07095742dc042fbe4929abc6c9cee3a97f2b85bd2f52d51e1285c91092

See more details on using hashes here.

File details

Details for the file tensorflow_io-0.26.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for tensorflow_io-0.26.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 ea0fc094ffd9d6372bdd93ad0624d3fcae297f9a73bd6f9b64c7609c3c1d55ab
MD5 60bc63853ec492bb9eb21ffaf7481997
BLAKE2b-256 44540bb0495ecbbcd6b0f07094fffede7bf679c2f6f2c98fb60d716ab15a08f7

See more details on using hashes here.

File details

Details for the file tensorflow_io-0.26.0-cp37-cp37m-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for tensorflow_io-0.26.0-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 c71ec5b2dcc32f1265637fb7991f474f0a86bafec2f66485f6d730daf4f437d3
MD5 2408b67eb038b9512c33ae9c1e377cff
BLAKE2b-256 11f38c61994fa92fa41ba22b950cb45442fbabb79be9a9c348bb886bfa5ccc9b

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