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.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.25.0-cp310-cp310-win_amd64.whl (21.8 MB view details)

Uploaded CPython 3.10 Windows x86-64

tensorflow_io-0.25.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (36.4 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

tensorflow_io-0.25.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (23.4 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.12+ x86-64

tensorflow_io-0.25.0-cp310-cp310-macosx_10_14_x86_64.whl (24.1 MB view details)

Uploaded CPython 3.10 macOS 10.14+ x86-64

tensorflow_io-0.25.0-cp39-cp39-win_amd64.whl (21.8 MB view details)

Uploaded CPython 3.9 Windows x86-64

tensorflow_io-0.25.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (36.4 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

tensorflow_io-0.25.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (23.4 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

tensorflow_io-0.25.0-cp39-cp39-macosx_10_14_x86_64.whl (24.1 MB view details)

Uploaded CPython 3.9 macOS 10.14+ x86-64

tensorflow_io-0.25.0-cp38-cp38-win_amd64.whl (21.8 MB view details)

Uploaded CPython 3.8 Windows x86-64

tensorflow_io-0.25.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (36.4 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

tensorflow_io-0.25.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (23.4 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

tensorflow_io-0.25.0-cp38-cp38-macosx_10_14_x86_64.whl (24.1 MB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

tensorflow_io-0.25.0-cp37-cp37m-win_amd64.whl (21.8 MB view details)

Uploaded CPython 3.7m Windows x86-64

tensorflow_io-0.25.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (36.4 MB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

tensorflow_io-0.25.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (23.4 MB view details)

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

tensorflow_io-0.25.0-cp37-cp37m-macosx_10_14_x86_64.whl (24.1 MB view details)

Uploaded CPython 3.7m macOS 10.14+ x86-64

File details

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

File metadata

File hashes

Hashes for tensorflow_io-0.25.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 840622cb6a13ac4fdbd751eb41c04be5b656097f94d37ba3da612db583613b6a
MD5 6d716885a32f7dcf3e292327ee9fe6da
BLAKE2b-256 10e4fe9ef3da225ad39343701b22f68231451e83f0b75962f1b196ec025e4960

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tensorflow_io-0.25.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4bda01649b8e603a96a5640410315a189bd2272cc790a13c50fbc16b9d8bbf18
MD5 0ed5a9c695fcf1b7e4c3cda650e4574e
BLAKE2b-256 7e1d5a0b884808505204635448fafae5b0ecf06f8e06db263e439db1ff9b727b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tensorflow_io-0.25.0-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 a60f9855dfbf47f20ed7074208e36c2f3a6921ac107c6bd77c1bf06f4e2cd28e
MD5 206b493226645f4840c710d0e5a4674b
BLAKE2b-256 23c2cd1afd121338d427febae21fd485c63937639f1754c8218fd7ed957b5cf3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tensorflow_io-0.25.0-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 3b602fdc978ef26e7b22e2d600a1032dd396547e724cedb55dc356502b9af0bd
MD5 cca4252b204eaa797c1e3df146492ea1
BLAKE2b-256 25a9b67f6497f4cff2d2022920d75502e5c3cfe86199b7bfa46db95cb806feb7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tensorflow_io-0.25.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 55e1c5b54395957e7f9bd0aa5abd90180d72c4a2ed1b42e9503f79e20462a12c
MD5 1fa816af958fca5b3f8410399b7e93d9
BLAKE2b-256 e29f4cb7045ca2cb79c1738aee0ee79414838c6ce7029117f6866728ab2cbe75

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tensorflow_io-0.25.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7696322e56feb6f8668f2c9f93555602b3eeed42d13d7f777e96f15ed0262e5e
MD5 f25304dcf77222b7166bdafc20ac88ad
BLAKE2b-256 0b70e1f10bea85e6fbce1db0531fa976fca5ec1cfc693683b760dac4f9d62476

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tensorflow_io-0.25.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 4acee075cfa9371839b548552bed8404c0b2773de460e7bc850c0691dfdfe8b0
MD5 6a1020dea7d5d36483817968c59d8e73
BLAKE2b-256 4a65ad43fd475babdb80b068f74d665555eeffecc2a9f4abe5ac873312a9eb3a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tensorflow_io-0.25.0-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 aa3977267655cb9f753c940d4e72b68e03b15af88a9d0deb638a6e2844218f91
MD5 e9d4635ad67fa74ff5348347f4e02e5b
BLAKE2b-256 5f283618ab9fd69fc8b91462b0ceb93792e6dd32ac38cd7d6c19bb7246665bfe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tensorflow_io-0.25.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 a6b03242530ec8532cf9ca5fe2a1403cd99ea16c1a7474c327350bbb5e207e8c
MD5 5964935fdba7dc329a02ef6e387f55ff
BLAKE2b-256 f4fa97517f0bdd70f81e47f79c2f4bbf406c39e067721c8c30c6d73045852d52

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tensorflow_io-0.25.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 17325df70a77a5ae7d09b59134d72e78148ddfe45beebc69c281743d443f60d4
MD5 2c279822944b8e44df4ad9b274b2e1b5
BLAKE2b-256 5930cc97e2fef2a75ee0357e1afcc7218307741199d7824f2053fb336cb4e3b1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tensorflow_io-0.25.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 9e8c052ac5faf8e256734941e693332068660633643af5ac53be751fcf64ba24
MD5 2061fa29e217a92c5274fd1f2f6ecff4
BLAKE2b-256 b0215036366d6cb0a46db4ef067e69daec8158936b7ee74dfa12e6c524dcf30b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tensorflow_io-0.25.0-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 37cf4830cd41e084a381cdb39b60058af7f4b2152109a79d652eb2ea0bdf510f
MD5 bc43ec6b7ecd4485eff1ce4093ab206a
BLAKE2b-256 84d02b376e4454c33a9a4dbd0d6998e5e520f12a0e5d51e0c3344118611ffd53

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tensorflow_io-0.25.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 0497904077767a56572f07942a4558891c876ee1e6c23b7075f9203f6089c3b8
MD5 4d8b930a6c2af01513950f1a732dd7d8
BLAKE2b-256 b0171bd793aff65ddb71e6d60e3cb8d11f4abb458a584ad2de7f524815a0020c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tensorflow_io-0.25.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7d20928ef37427f3b03a2d232e09eca016233535f6c0df7ae743e7ba87ff237e
MD5 eb1bd6f8f132fde77824132058b3b4b9
BLAKE2b-256 a88a1f4dfa6c3387fe6a5d3ae6567a541d9fb40339adc6722483998c30ef900c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tensorflow_io-0.25.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 91b930f71404e3e342477f47f6041039a7750336452896e6f74895a4e2f98a75
MD5 8d88f029f142a7e9e6d0e75f3a72aba8
BLAKE2b-256 f921fee961cd93f9e00de46548a5901a731c461abb5d1dba2a97524e7e53c8d3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tensorflow_io-0.25.0-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 da93bcf78bf524799b0961ccecfb2662f1e07db68835825884e38a0db215a08b
MD5 eb00c635bc81970715ba25d7b19b2e07
BLAKE2b-256 92a72322216a6d3684dff77023344c445a41a2b184a289b8d3d0d422a0e126bc

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