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

Uploaded CPython 3.9 Windows x86-64

tensorflow_io-0.19.1-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.19.1-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.19.1-cp38-cp38-win_amd64.whl (21.2 MB view details)

Uploaded CPython 3.8 Windows x86-64

tensorflow_io-0.19.1-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.19.1-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.19.1-cp37-cp37m-win_amd64.whl (21.2 MB view details)

Uploaded CPython 3.7m Windows x86-64

tensorflow_io-0.19.1-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.19.1-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.19.1-cp36-cp36m-win_amd64.whl (21.2 MB view details)

Uploaded CPython 3.6m Windows x86-64

tensorflow_io-0.19.1-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.19.1-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.19.1-cp39-cp39-win_amd64.whl.

File metadata

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

File hashes

Hashes for tensorflow_io-0.19.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 742418a4d9f6e4e65a3f2f60d564c4ec22859573a43c7fb47db848b60752aff5
MD5 c689673cb95e093780400de603c46d23
BLAKE2b-256 6e640955a0bab199f27b61d15ded49706a83b4cb08d325e4ce8a5f8ef62b270c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tensorflow_io-0.19.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 49905b251cbb8dade36678f2b45b4a57a667b6d81e10ec3d66aed71ed70a826c
MD5 04d23c9c229d183450dfaae0f0893091
BLAKE2b-256 3a6b9e2a6c18adabcca6f32856d168ed367049a1f6c2196b1d79c8722af3a6d8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tensorflow_io-0.19.1-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.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for tensorflow_io-0.19.1-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 c081a7b928988dc0658c622b306bf312cdff8fdfdccfb1102cd48dc8f373c49f
MD5 10731afb31dc83a7faa9884159148e38
BLAKE2b-256 56542e3ed99fe61cae6d558f9479aca48046c797c409149f6109b464be854fe1

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for tensorflow_io-0.19.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 aa9a7cc5a21b20a7d1e79d1597181128b029d3ff9b091f66691b87bc242fdcdd
MD5 ac3b2dad4044074b8ef62b4f6eae8727
BLAKE2b-256 81d7c968a3e9452374182eb1b10882feab73da21a9cfc13de297834ecd68d729

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tensorflow_io-0.19.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 e74af766dcbe56aca1ac74bfa45ed6d10a4650832f115bee52f112af336195ff
MD5 c1f697addb482091f557b6cd51831793
BLAKE2b-256 843f317258fa438b3e26548b38061b20551ef3cd0c1ca0b3869e52750de2385e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tensorflow_io-0.19.1-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.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for tensorflow_io-0.19.1-cp38-cp38-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 31f52ed6ced3ee9440d2d93c811b681da4ce33a75132c66e6e512503dfd68f16
MD5 4cb1d7e0e640e25d3181574ec23eecf7
BLAKE2b-256 0c7e64681d78d99b07331b5987ab112947fccfc1fd3a50cf72fac67f421edbea

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for tensorflow_io-0.19.1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 07a74db49c3bc42a8421549e7b4a3121ddbc41300bb9a929bfc6105be500c6fc
MD5 bcdad4806331f8129cf52a6682b40ef2
BLAKE2b-256 3d14929456a4b1b5ca77170fade898da9b926d4754116d340125f6fce39b9bf9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tensorflow_io-0.19.1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 373f4d75d6c994163bb0ac63e5f920fb7b9be8037aa3c9dd4e6535de172f177a
MD5 4959d75009ad53adbaa95fbac9537f2c
BLAKE2b-256 3ab0acc33a20851744fe545a3445fc69955e31d03cdf5ae0994aa14e52a98b35

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tensorflow_io-0.19.1-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.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for tensorflow_io-0.19.1-cp37-cp37m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 2cb37d144babfc39841561b6f001bd876afef425a39ebff4ab4de28240c43b5d
MD5 4b119a31da51760e5df4db00c24f536e
BLAKE2b-256 771d2fa60581af9c32946bd4aba3409e5f6ed8e4dec71525b0d3c913bdd7ced8

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for tensorflow_io-0.19.1-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 c8e081b838aa779d085b2c4ba24966ae04796a2650349025f569bda86ceab04f
MD5 712e947076c0a1e3cc2c47cd87a1ebe8
BLAKE2b-256 68450f20f63c2b695d1923d2ac97f9eeb90c26164d684a001b767b400a55670c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tensorflow_io-0.19.1-cp36-cp36m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 5edfb6cfb593449a432d4c32c1a889f79afee78b2745514be55c14bfd767827c
MD5 6e338c1839597d7a5cc48e006247f793
BLAKE2b-256 c4cf70f5a4cb18b108e19d18d3e04ecc1d8f965467a2895529849cc0da1f0f33

See more details on using hashes here.

File details

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

File metadata

  • Download URL: tensorflow_io-0.19.1-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.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.8.10

File hashes

Hashes for tensorflow_io-0.19.1-cp36-cp36m-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 3ce0c715bf574681789b359e72bd256503ae04b8695cefdc318164e6e8027a4e
MD5 3fed18b435ba4ccf718d70e75e0ec225
BLAKE2b-256 27bb2e290f228d44214379117bb38f0172668b047ffc196cf60ba5044a7919aa

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