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

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.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.20.0-cp39-cp39-win_amd64.whl (21.3 MB view details)

Uploaded CPython 3.9 Windows x86-64

tensorflow_io-0.20.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (22.7 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.12+ x86-64

tensorflow_io-0.20.0-cp39-cp39-macosx_10_14_x86_64.whl (22.8 MB view details)

Uploaded CPython 3.9 macOS 10.14+ x86-64

tensorflow_io-0.20.0-cp38-cp38-win_amd64.whl (21.3 MB view details)

Uploaded CPython 3.8 Windows x86-64

tensorflow_io-0.20.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (22.7 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.12+ x86-64

tensorflow_io-0.20.0-cp38-cp38-macosx_10_14_x86_64.whl (22.8 MB view details)

Uploaded CPython 3.8 macOS 10.14+ x86-64

tensorflow_io-0.20.0-cp37-cp37m-win_amd64.whl (21.3 MB view details)

Uploaded CPython 3.7m Windows x86-64

tensorflow_io-0.20.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (22.7 MB view details)

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

tensorflow_io-0.20.0-cp37-cp37m-macosx_10_14_x86_64.whl (22.8 MB view details)

Uploaded CPython 3.7m macOS 10.14+ x86-64

tensorflow_io-0.20.0-cp36-cp36m-win_amd64.whl (21.3 MB view details)

Uploaded CPython 3.6m Windows x86-64

tensorflow_io-0.20.0-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (22.7 MB view details)

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

tensorflow_io-0.20.0-cp36-cp36m-macosx_10_14_x86_64.whl (22.8 MB view details)

Uploaded CPython 3.6m macOS 10.14+ x86-64

File details

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

File metadata

  • Download URL: tensorflow_io-0.20.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 21.3 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.10

File hashes

Hashes for tensorflow_io-0.20.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 3eec4c85805633b7748f242ceaeb2f76250383e64e77700567279c6168300cad
MD5 bc62c5e984ade1b1514258db641cdbee
BLAKE2b-256 da97caf3c9469595c00c9321887e177440f0b0486f992bd6ac15d5d482580f81

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tensorflow_io-0.20.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 2b53d6d790afe8e7ea065fafe7c954f4d18cc4808f141a123736e176e4880aac
MD5 ab12af3e967d0292b6f222da46c3e3c9
BLAKE2b-256 13a19a10ef3dd38a73f1672994aae84303a72e30d8ebee3ad46f1347964b303b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tensorflow_io-0.20.0-cp39-cp39-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 22.8 MB
  • Tags: CPython 3.9, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.10

File hashes

Hashes for tensorflow_io-0.20.0-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 1566363bcc9c9d10414822db60e4430f4cfe59bdfbb4ce88b23ed1a563d0ba99
MD5 b07c4f5be91dbcf5d92a1aefaf339e14
BLAKE2b-256 2dcf145b1bf92fd19bc72f80b31def72b24c8ed35bc14424214321b469dcf4fb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tensorflow_io-0.20.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 21.3 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.10

File hashes

Hashes for tensorflow_io-0.20.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 1951bb11733c9a0f827f2e50e1ed71025e81734834803c069cfa78a238c4cf20
MD5 43a6def4b0e99a718b6816309efd5bd4
BLAKE2b-256 9b27e98865adae515a1f0ec75c5911e81a8786f06f3814ff049b3227ab578ce7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tensorflow_io-0.20.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 0109e010bb72144b52e5d48587fa2a300dfaba853e09499a5b640553b19e709d
MD5 4779e3d4ea2b918f2cea91c91c9001b6
BLAKE2b-256 df3341f69874577ae010aac2937916a8b4063c372b8ebd16c660d70eba81d1a5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tensorflow_io-0.20.0-cp38-cp38-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 22.8 MB
  • Tags: CPython 3.8, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.10

File hashes

Hashes for tensorflow_io-0.20.0-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 65131fb265e96fc4353400b0cf75c8104b4ce65c95269ab4a13b20225264599f
MD5 b2f34fd66eadba7d42e1100bf0be0dbd
BLAKE2b-256 db416b73a959cb4949bb3cc59377d1d140fb97a8a34a3764ad761a3f3cceb227

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tensorflow_io-0.20.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 21.3 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.10

File hashes

Hashes for tensorflow_io-0.20.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 4ba6c45d8f353dea650b000cca842bac82db07d8b1723006b2f897b0e160e025
MD5 246558febc91bf61e203af6affabfae2
BLAKE2b-256 7c5fe5901590d267565cbc9ea3162e5c4f91bdc7a5231b91358a5159888fb779

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tensorflow_io-0.20.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 d0dde523912e0352ee5321b03842625e5335b85491bacc0a292e790527321026
MD5 e8aad2cfd79ec48fe8639d1abc29d37d
BLAKE2b-256 b89c10159c022513a1b35fe2f8e3abe385da52e66ff606f32aebed8ea517d246

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tensorflow_io-0.20.0-cp37-cp37m-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 22.8 MB
  • Tags: CPython 3.7m, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.10

File hashes

Hashes for tensorflow_io-0.20.0-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 874502af85405728c1840f07cc25a8be0f8829387ef48072e8b4809a2a08c495
MD5 643d33e35979dfa38733b42221c56e47
BLAKE2b-256 fd1fd9282103286de78bccceacdd7b83a6710b9e50bc070d107335246072ac59

See more details on using hashes here.

File details

Details for the file tensorflow_io-0.20.0-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: tensorflow_io-0.20.0-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 21.3 MB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.10

File hashes

Hashes for tensorflow_io-0.20.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 70786db20419a97c71f0c89e335d56d7e872eb8098891a8bf773863842583033
MD5 8ff18e4349f1a777eb514041783f4373
BLAKE2b-256 cb17568de8553e6ff0f8b8224852cda6e6419ea385610849f677f689e3eff95a

See more details on using hashes here.

File details

Details for the file tensorflow_io-0.20.0-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for tensorflow_io-0.20.0-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 cda44bff665d3f1127d7b3042099631405b586d1129fa3868215963c9444199c
MD5 ff5be2e6128a168712b9cca83dbf29e4
BLAKE2b-256 796db0256799ebadba072cf354af938f8084584930d734ed05e21bff93fd040b

See more details on using hashes here.

File details

Details for the file tensorflow_io-0.20.0-cp36-cp36m-macosx_10_14_x86_64.whl.

File metadata

  • Download URL: tensorflow_io-0.20.0-cp36-cp36m-macosx_10_14_x86_64.whl
  • Upload date:
  • Size: 22.8 MB
  • Tags: CPython 3.6m, macOS 10.14+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.8.10

File hashes

Hashes for tensorflow_io-0.20.0-cp36-cp36m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 63d08b444791b978e33ebd0d82c9a79ba4c25fce3249976e4cfadd98ed5acbc8
MD5 a04bada023c0fa3d7fe672c2b2c90bd6
BLAKE2b-256 db5bcb9e5ea4f3522803c795c572f5ff0be8fc95a262950a8d962ad7a1676015

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