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.37.1 2.16.x Jul 01, 2024
0.37.0 2.16.x Apr 25, 2024
0.36.0 2.15.x Feb 02, 2024
0.35.0 2.14.x Dec 18, 2023
0.34.0 2.13.x Sep 08, 2023
0.33.0 2.13.x Aug 01, 2023
0.32.0 2.12.x Mar 28, 2023
0.31.0 2.11.x Feb 25, 2023
0.30.0 2.11.x Jan 20, 2023
0.29.0 2.11.x Dec 18, 2022
0.28.0 2.11.x Nov 21, 2022
0.27.0 2.10.x Sep 08, 2022
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.37.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (49.6 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

tensorflow_io-0.37.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (48.6 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

tensorflow_io-0.37.1-cp312-cp312-macosx_12_0_arm64.whl (31.8 MB view details)

Uploaded CPython 3.12 macOS 12.0+ ARM64

tensorflow_io-0.37.1-cp312-cp312-macosx_10_14_x86_64.whl (22.1 MB view details)

Uploaded CPython 3.12 macOS 10.14+ x86-64

tensorflow_io-0.37.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (49.6 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

tensorflow_io-0.37.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (48.6 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

tensorflow_io-0.37.1-cp311-cp311-macosx_12_0_arm64.whl (31.8 MB view details)

Uploaded CPython 3.11 macOS 12.0+ ARM64

tensorflow_io-0.37.1-cp311-cp311-macosx_10_14_x86_64.whl (22.1 MB view details)

Uploaded CPython 3.11 macOS 10.14+ x86-64

tensorflow_io-0.37.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (49.6 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

tensorflow_io-0.37.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (48.6 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

tensorflow_io-0.37.1-cp310-cp310-macosx_12_0_arm64.whl (31.8 MB view details)

Uploaded CPython 3.10 macOS 12.0+ ARM64

tensorflow_io-0.37.1-cp310-cp310-macosx_10_14_x86_64.whl (22.1 MB view details)

Uploaded CPython 3.10 macOS 10.14+ x86-64

tensorflow_io-0.37.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (49.6 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

tensorflow_io-0.37.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (48.6 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

tensorflow_io-0.37.1-cp39-cp39-macosx_12_0_arm64.whl (31.8 MB view details)

Uploaded CPython 3.9 macOS 12.0+ ARM64

tensorflow_io-0.37.1-cp39-cp39-macosx_10_14_x86_64.whl (22.1 MB view details)

Uploaded CPython 3.9 macOS 10.14+ x86-64

File details

Details for the file tensorflow_io-0.37.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tensorflow_io-0.37.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1abf9b8db2faa37c94aed7fef267c93e0fba30b6ec30f857a39ea7e89bf3748d
MD5 7d65a79347d38f6fcf08f1f0b4886208
BLAKE2b-256 b44c3f673f2ca7660f7defde57716a2978333db5bb9882c28f720713b0c476bd

See more details on using hashes here.

File details

Details for the file tensorflow_io-0.37.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tensorflow_io-0.37.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1c51b213c8d9b933e1602fccfb8fd70e8b5719e27916fcbe088ca7f695c70f49
MD5 7d8ff9b7e985b1e79735075de3df1162
BLAKE2b-256 37ed27ada83e3802df4b235d921c8f402dbefd20b65c38e2915fed0cc914f851

See more details on using hashes here.

File details

Details for the file tensorflow_io-0.37.1-cp312-cp312-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for tensorflow_io-0.37.1-cp312-cp312-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 1fdc5c28c038ab9ae0ad505a9fce45e6cc6dadd1133932d4f38fdea8d8a05900
MD5 f0e901aabe4daf79fd2e5f11e6926774
BLAKE2b-256 65cfde4565efb945064b79225da5c18e16de56ff09e1436df3237bbfe3d2f5a1

See more details on using hashes here.

File details

Details for the file tensorflow_io-0.37.1-cp312-cp312-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for tensorflow_io-0.37.1-cp312-cp312-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 42c587d9962554adbcfd2da17b51415dbb04c18afb06055649b7c3be4c21a266
MD5 dba6dd962c9809bef855008a2a0393f7
BLAKE2b-256 7c746042510c333143c9ea7dda27cba7b7c3df1be1cd380ce018d7bc1c9ac3df

See more details on using hashes here.

File details

Details for the file tensorflow_io-0.37.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tensorflow_io-0.37.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b072ae78143df8f786d3cbb9060b76f17f966824dd1e7906d3252c79525d2358
MD5 9612c2a88fcd1e930d516c38e00f60a6
BLAKE2b-256 f05ef47443a14a00816fab54caf74599e2fcb34c05d6059e91f82126f8f4c68d

See more details on using hashes here.

File details

Details for the file tensorflow_io-0.37.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for tensorflow_io-0.37.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 144251635584e128060f7047a710e567bfac6171de03e0a79faf2b909bc689c4
MD5 c04333730fefb77906e9937d187054e8
BLAKE2b-256 f5348f3b1f9fd56ad6d0f1bd995c1c765d2bc137281f22976930db8ff5474247

See more details on using hashes here.

File details

Details for the file tensorflow_io-0.37.1-cp311-cp311-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for tensorflow_io-0.37.1-cp311-cp311-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 410b70c108ce93f657147b8e9528353e1df5292a5e33cd6555d4cd964c856b0e
MD5 25529e535bac9b3ce50861aa3abb9ad6
BLAKE2b-256 500f4770defb52f09d03b9cae6109dcfb329b471152a3c3e5cb472f59a28bece

See more details on using hashes here.

File details

Details for the file tensorflow_io-0.37.1-cp311-cp311-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for tensorflow_io-0.37.1-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 14c7ada03c2ab8ca3beca618833d0da8de1d693598827147c56a0dde54e17d87
MD5 5ceabb6b524782c37eed3e28bc69246f
BLAKE2b-256 df3591571185983a98453cf3baeee0cad433c3e5abacc2baf16f80ff39f3c067

See more details on using hashes here.

File details

Details for the file tensorflow_io-0.37.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tensorflow_io-0.37.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dee4a2d6c3586bda78d747d003d063ec503c6ac124c24d4dfcf4f105cd9309a1
MD5 7a92a1e404dfdcbb721707029b3cd2d5
BLAKE2b-256 fad6926232dff47d3425df15d6b269258c4770fc058edaae9f34209c97ad8785

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tensorflow_io-0.37.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d7ce860f864e3f9ef12bb8980c4e80a941713bfe7dbfe71e6e05dbb96003c8d6
MD5 53645032fb2fb4c21987a8e6f71dd31b
BLAKE2b-256 c9aa0b510a4914c0727c4244698aa3ff5c426eb1a8275e3c374a758e7ba0582e

See more details on using hashes here.

File details

Details for the file tensorflow_io-0.37.1-cp310-cp310-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for tensorflow_io-0.37.1-cp310-cp310-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 e9488e2d737057121e1218eeb34f96f2d2423ed3cf7d00eba68bc3a5b66d2366
MD5 2535a930895876b764b6ac503871d3a9
BLAKE2b-256 094b4ac0c7bacc6bfcf2ce1500931b288bcf52eacc6398ae946d7724f2f88421

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tensorflow_io-0.37.1-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 dc1adb4a39a02c2d389e2711439ca7d03c4ccf0c5074af5ee123c5d5ca372dcb
MD5 a05393faa36abe98821bf8b6dec49552
BLAKE2b-256 27c58f01fb6df8fc2eb0a7d6a5f1e3ff010268dd48bef55c2117e4eaa3c8720e

See more details on using hashes here.

File details

Details for the file tensorflow_io-0.37.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tensorflow_io-0.37.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 43e8234271e39aece83edb2595b0e47dbc056984b95f3dc3d26cd4f9433944ef
MD5 9c07fb9401c034c18b605d393e486978
BLAKE2b-256 24ce441e1c6d8018257e7249299f60bbe9ec90466d7bd75557f3d3f256a676be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tensorflow_io-0.37.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 255e26143b254db80b6a55e1f063f83dad74046e3429d7e95e63434cc418e335
MD5 95e01e626e636d07db614be89f422d54
BLAKE2b-256 7ec170b2dd8e55ab3a3eb6a2e701ce4bb5a4491c3331ff5b443f1c895599387d

See more details on using hashes here.

File details

Details for the file tensorflow_io-0.37.1-cp39-cp39-macosx_12_0_arm64.whl.

File metadata

File hashes

Hashes for tensorflow_io-0.37.1-cp39-cp39-macosx_12_0_arm64.whl
Algorithm Hash digest
SHA256 1f5da94e61350a3ec076b9fa2beb947ecd120a25ad3fed2817a1d150b983b30b
MD5 4627a5443a794b79718ff2b5f7e82275
BLAKE2b-256 e2531dd3be028a5fa4721253d54cfe126b836d85e6541ca019e9400a5d4d4712

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tensorflow_io-0.37.1-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 c36b50eaf97f26e2918b5e983e77c872024aded7d624b9cb2dc7514ff5f4b4ff
MD5 09cadced6241db92a5d2ededba978af4
BLAKE2b-256 f6006850d9813dd4b34c436ef413573a54d34f40a70ba3d91dce88b2596f84ec

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