跳转到主要内容

TensorFlow IO

项目描述




TensorFlow I/O

GitHub CI PyPI License Documentation

TensorFlow I/O 是一系列在 TensorFlow 内置支持中不可用的文件系统和文件格式。可以通过以下链接查看 TensorFlow I/O 支持的所有文件系统和文件格式的完整列表:这里

使用 tensorflow-io 与 keras 结合非常简单。以下是一个使用 tensorflow-io 替换数据处理的 TensorFlow 入门示例:TensorFlow 快速入门

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)

在上面的 MNIST 示例中,访问数据集文件的 URL 直接传递给 tfio.IODataset.from_mnist API 调用。这是由于 tensorflow-io 内置对 HTTP/HTTPS 文件系统的支持,从而消除了在本地目录中下载和保存数据集的需求。

注意:由于 tensorflow-io 可以在需要时自动检测和解压 MNIST 数据集,因此我们可以直接将压缩文件的 URL(gzip)传递给 API 调用。

请查阅官方 文档 了解该软件包更详细和有趣的用法。

安装

Python 包

可以使用以下命令使用 pip 直接安装 tensorflow-io Python 包:

$ pip install tensorflow-io

对于那些稍微有些冒险精神的人,也可以尝试我们的夜间二进制文件

$ pip install tensorflow-io-nightly

为了确保您拥有与 TensorFlow-IO 兼容的 TensorFlow 版本,您可以在安装期间指定 tensorflow 额外需求

pip install tensorflow-io[tensorflow]

对于 tensorflow-gputensorflow-cputensorflow-rocm 包也存在类似的额外需求。

Docker 镜像

除了 pip 包之外,还可以使用 Docker 镜像来快速开始。

对于稳定构建

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

对于夜间构建

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

R 包

一旦成功安装了 tensorflow-io Python 包,您就可以通过以下方式安装 GitHub 上的 R 包的开发版本:

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

TensorFlow 版本兼容性

为了确保与 TensorFlow 的兼容性,建议根据以下表格安装匹配版本的 TensorFlow I/O。您可以通过以下链接找到发布列表:这里

TensorFlow I/O 版本 TensorFlow 兼容性 发布日期
0.37.1 2.16.x 2024 年 7 月 1 日
0.37.0 2.16.x 2024 年 4 月 25 日
0.36.0 2.15.x 2024 年 2 月 2 日
0.35.0 2.14.x 2023 年 12 月 18 日
0.34.0 2.13.x 2023 年 9 月 8 日
0.33.0 2.13.x 2023 年 8 月 1 日
0.32.0 2.12.x 2023 年 3 月 28 日
0.31.0 2.11.x 2023 年 2 月 25 日
0.30.0 2.11.x 2023 年 1 月 20 日
0.29.0 2.11.x 2022 年 12 月 18 日
0.28.0 2.11.x 2022 年 11 月 21 日
0.27.0 2.10.x 2022 年 9 月 8 日
0.26.0 2.9.x 2022 年 5 月 17 日
0.25.0 2.8.x 2022 年 4 月 19 日
0.24.0 2.8.x 2022 年 2 月 4 日
0.23.1 2.7.x 2021年12月15日
0.23.0 2.7.x 2021年12月14日
0.22.0 2.7.x 2021年11月10日
0.21.0 2.6.x 2021年9月12日
0.20.0 2.6.x 2021年8月11日
0.19.1 2.5.x 2021年7月25日
0.19.0 2.5.x 2021年6月25日
0.18.0 2.5.x 2021年5月13日
0.17.1 2.4.x 2021年4月16日
0.17.0 2.4.x 2020年12月14日
0.16.0 2.3.x 2020年10月23日
0.15.0 2.3.x 2020年8月3日
0.14.0 2.2.x 2020年7月8日
0.13.0 2.2.x 2020年5月10日
0.12.0 2.1.x 2020年2月28日
0.11.0 2.1.x 2020年1月10日
0.10.0 2.0.x 2019年12月5日
0.9.1 2.0.x 2019年11月15日
0.9.0 2.0.x 2019年10月18日
0.8.1 1.15.x 2019年11月15日
0.8.0 1.15.x 2019年10月17日
0.7.2 1.14.x 2019年11月15日
0.7.1 1.14.x 2019年10月18日
0.7.0 1.14.x 2019年7月14日
0.6.0 1.13.x 2019年5月29日
0.5.0 1.13.x 2019年4月12日
0.4.0 1.13.x 2019年3月1日
0.3.0 1.12.0 2019年2月15日
0.2.0 1.12.0 2019年1月29日
0.1.0 1.12.0 2018年12月16日

性能基准测试

我们使用GitHub页面来记录API性能基准测试的结果。基准测试任务在提交到master分支时触发,有助于跟踪性能与提交的关系。

贡献

TensorFlow I/O是一个由社区领导的开源项目。因此,该项目依赖于公共贡献、错误修复和文档。请参阅

  • 贡献指南,了解如何贡献的说明。
  • 开发文档,了解开发环境设置的说明。
  • 教程,了解教程笔记本列表和编写教程的说明。

构建状态和持续集成

构建 状态
Linux CPU Python 2 Status
Linux CPU Python 3 Status
Linux GPU Python 2 Status
Linux GPU Python 3 Status

由于manylinux2010的要求,TensorFlow I/O在Linux上使用Ubuntu:16.04 + Developer Toolset 7 (GCC 7.3)进行构建。在Ubuntu 16.04上配置Developer Toolset 7并不完全直接。如果系统已安装docker,则以下命令将自动构建兼容manylinux2010的whl包

#!/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/*

构建需要一些时间,但一旦完成,将在wheelhouse目录中提供与python 3.53.63.7兼容的whl包。

在macOS上,可以使用相同的命令。但是,脚本期望shell中的python,并且只会生成与shell中python版本匹配的whl包。如果您想要为特定的python构建whl包,则必须将此版本的python在shell中别名为python。有关如何操作的说明,请参阅.github/workflows/build.yml中的Auditwheel步骤。

注意,上述命令也是我们用于发布Linux和macOS软件包时使用的命令。

TensorFlow I/O使用GitHub Workflows和Google CI (Kokoro)进行持续集成。GitHub Workflows用于macOS构建和测试。Kokoro用于Linux构建和测试。同样,由于manylinux2010的要求,在Linux上whl包始终使用Ubuntu 16.04 + Developer Toolset 7构建。测试在具有不同python3版本的多种系统上进行,以确保良好的覆盖率。

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与许多系统和云供应商集成,例如Prometheus、Apache Kafka、Apache Ignite、Google Cloud PubSub、AWS Kinesis、Microsoft Azure Storage、Alibaba Cloud OSS等。

我们尽最大努力在持续集成中对这些系统进行测试。一些测试,如Prometheus、Kafka和Ignite,是在实时系统上进行的,这意味着在测试运行之前,我们在CI机器上安装Prometheus/Kafka/Ignite。一些测试,如Kinesis、PubSub和Azure存储,是通过官方或非官方的模拟器进行的。在可能的情况下,也会进行离线测试,尽管通过离线测试覆盖的系统可能没有实时系统或模拟器那样的覆盖水平。

实时系统 模拟器 CI集成 离线
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存储 :heavy_check_mark :heavy_check_mark
AWS Kinesis :heavy_check_mark :heavy_check_mark
阿里云OSS :heavy_check_mark
Google BigTable/BigQuery 待添加
Elasticsearch(实验性) :heavy_check_mark :heavy_check_mark
MongoDB(实验性) :heavy_check_mark :heavy_check_mark

模拟器的参考资料

社区

更多信息

许可证

Apache License 2.0

项目详情


下载文件

下载适用于您平台文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

此版本没有可用的源代码分发文件。请参阅生成分发归档的教程。

构建分发

tensorflow_io-0.37.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (49.6 MB 查看哈希)

上传于 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 查看哈希值)

上传于 CPython 3.12 manylinux: glibc 2.17+ ARM64

tensorflow_io-0.37.1-cp312-cp312-macosx_12_0_arm64.whl (31.8 MB 查看哈希值)

上传于 CPython 3.12 macOS 12.0+ ARM64

tensorflow_io-0.37.1-cp312-cp312-macosx_10_14_x86_64.whl (22.1 MB 查看哈希值)

上传于 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 查看哈希值)

上传于 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 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ ARM64

tensorflow_io-0.37.1-cp311-cp311-macosx_12_0_arm64.whl (31.8 MB 查看哈希值)

上传于 CPython 3.11 macOS 12.0+ ARM64

tensorflow_io-0.37.1-cp311-cp311-macosx_10_14_x86_64.whl (22.1 MB 查看哈希值)

上传于 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 查看哈希值)

上传于 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 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ ARM64

tensorflow_io-0.37.1-cp310-cp310-macosx_12_0_arm64.whl (31.8 MB 查看哈希值)

上传于 CPython 3.10 macOS 12.0+ ARM64

tensorflow_io-0.37.1-cp310-cp310-macosx_10_14_x86_64.whl (22.1 MB 查看哈希值)

上传时间 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 查看哈希值)

上传时间 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 查看哈希值)

上传时间 CPython 3.9 manylinux: glibc 2.17+ ARM64

tensorflow_io-0.37.1-cp39-cp39-macosx_12_0_arm64.whl (31.8 MB 查看哈希值)

上传时间 CPython 3.9 macOS 12.0+ ARM64

tensorflow_io-0.37.1-cp39-cp39-macosx_10_14_x86_64.whl (22.1 MB 查看哈希值)

上传时间 CPython 3.9 macOS 10.14+ x86-64

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页