TensorFlow I/O
项目描述
TensorFlow I/O
TensorFlow I/O 是一组文件系统和文件格式,这些系统在 TensorFlow 的内置支持中不可用。TensorFlow I/O 支持的文件系统和文件格式的完整列表可以在这里找到。
使用 tensorflow-io 与 keras 一起使用非常简单。以下是一个示例,用 tensorflow-io 替换了数据处理的方面,以开始使用 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 数据集,因此我们可以直接将压缩文件(gzip)的 URL 传递给 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-gpu
、tensorflow-cpu
和 tensorflow-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.31.0 | 2.11.x | 2022 年 2 月 25 日 |
0.30.0 | 2.11.x | 2022 年 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-pages 来记录 API 性能基准测试的结果。基准测试作业在每次向 master
分支提交时触发,并有助于跟踪与提交相关的性能。
贡献
Tensorflow I/O 是一个由社区领导的开源项目。因此,该项目依赖于公共贡献、错误修复和文档。请参阅
- 贡献指南 了解如何贡献。
- 开发文档development doc,用于设置开发环境。
- 教程tutorials,提供教程笔记本列表以及如何编写教程的说明。
构建状态和持续集成
构建 | 状态 |
---|---|
Linux CPU Python 2 | |
Linux CPU Python 3 | |
Linux GPU Python 2 | |
Linux GPU Python 3 |
由于许多linux2010的要求,TensorFlow I/O在Linux上使用Ubuntu:16.04 + Developer Toolset 7 (GCC 7.3)构建。在Ubuntu 16.04上使用Developer Toolset 7进行配置并不完全直接。如果系统已安装Docker,则以下命令将自动构建许多linux2010兼容的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.5
、3.6
、3.7
兼容的whl软件包。
在macOS上,可以使用相同的命令。然而,脚本期望在shell中使用python
,并且只会生成与shell中python
版本匹配的whl软件包。如果您想为特定的python构建whl软件包,则必须在shell中将此版本的python别名为python
。有关如何操作的说明,请参阅.github/workflows/build.yml中的Auditwheel步骤。
注意,上述命令也是我们用于发布Linux和macOS软件包的命令。
TensorFlow I/O使用GitHub Workflows和Google CI (Kokoro)进行持续集成。GitHub Workflows用于macOS构建和测试。Kokoro用于Linux构建和测试。再次强调,由于许多linux2010的要求,在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 Storage)是通过官方或非官方的模拟器进行的。只要可能,也会进行离线测试,尽管通过离线测试覆盖的系统可能没有实时系统或模拟器那样的覆盖率。
实时系统 | 模拟器 | 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 Storage | :heavy_check_mark | :heavy_check_mark | ||
AWS Kinesis | :heavy_check_mark | :heavy_check_mark | ||
Alibaba Cloud OSS | :heavy_check_mark | |||
Google BigTable/BigQuery | 待添加 | |||
Elasticsearch (实验性) | :heavy_check_mark | :heavy_check_mark | ||
MongoDB (实验性) | :heavy_check_mark | :heavy_check_mark |
模拟器的参考资料
- Google Cloud为Cloud PubSub提供的官方PubSub模拟器。
- Azure为Azure Storage提供的官方Azurite模拟器。
- LocalStack为AWS Kinesis提供的非官方LocalStack模拟器。
社区
- SIG IO Google Group和邮件列表:io@tensorflow.org
- SIG IO 每月会议记录
- Gitter房间:tensorflow/sig-io
其他信息
- 使用分层存储和无数据湖的流式机器学习 - Kai Waehner
- TensorFlow 与 Apache Arrow 数据集 - Bryan Cutler
- 如何为 TensorFlow 构建自定义数据集 - Ivelin Ivanov
- TensorFlow 在 Apache Ignite 上运行 - Anton Dmitriev
许可证
项目详情
tensorflow_io_gcs_filesystem_nightly-0.31.0.dev20230309180344-cp311-cp311-win_amd64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 249505b09775902715c3714d197de553a1e7476fcf003a8273a00d228e3180c7 |
|
MD5 | 15151d0a7be7248580f93ca1e1f73c76 |
|
BLAKE2b-256 | e963cc97e3f1c520a7357268ad2c0f46e53da32d1e2852b83a315ed3d2c434b1 |
tensorflow_io_gcs_filesystem_nightly-0.31.0.dev20230309180344-cp311-cp311-manylinux_2_12_x86_64.manylinux2010_x86_64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d5b53b523f82971c556634662412a2b0c97982e031b3f6926c47d0070b6016bd |
|
MD5 | fe2ae49ab6f3833aca9b52ffd7ea2717 |
|
BLAKE2b-256 | c5fc0e4f1204267ea95a5874a5ac1164b90a7754b43e325396dce4f168828b5c |
tensorflow_io_gcs_filesystem_nightly-0.31.0.dev20230309180344-cp311-cp311-macosx_10_14_x86_64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fc27209d185fa73929e6ef81b8fdb627bb08c292f89cf7db3854215ce749c9f2 |
|
MD5 | e6a9152ae5d5c27891da083480b2aafc |
|
BLAKE2b-256 | bfbc8457357e4df1ec24e6aa6184478ebc859a1442a9b5d8e0ff0805b1688410 |
tensorflow_io_gcs_filesystem_nightly-0.31.0.dev20230309180344-cp310-cp310-win_amd64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a822952b4e73d0a7783073eae039c557c0509b9ad257a6c94df5a0eec94a5419 |
|
MD5 | 17a286a212ee30f99d27ef974783dd78 |
|
BLAKE2b-256 | 90a8873f9bc33048804b2dfcb38df831ab4140ae26a7131b2eea0c4393e84f81 |
tensorflow_io_gcs_filesystem_nightly-0.31.0.dev20230309180344-cp310-cp310-manylinux_2_12_x86_64.manylinux2010_x86_64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b4e254e9e16df7e3024fa5599cffca9bf9d1de75bffdb8dfda960c34faaa88e4 |
|
MD5 | 3fe848f98c090067307401b4448c470d |
|
BLAKE2b-256 | 7e8313638dd67ee9e477a4bd51fa08e9a722b6213d2d4a47cbf5660dd13c42c1 |
tensorflow_io_gcs_filesystem_nightly-0.31.0.dev20230309180344-cp310-cp310-macosx_10_14_x86_64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3a324cca2149a2462e894fd3c206e3559550aceb9bcbe02559ee1818bed11998 |
|
MD5 | a48e3825e4bca5d0e9ca692ab661854d |
|
BLAKE2b-256 | 17f394ca19c7d7b5f5aa44238d8c6226f9922f44d58c5c31ef1f7f8e1d93a832 |
tensorflow_io_gcs_filesystem_nightly-0.31.0.dev20230309180344-cp39-cp39-win_amd64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 82eeb402b286abdde83aeec0061853bf8b96efe436e2932e8f4c61afd6b299dd |
|
MD5 | 6ccc58c4b0896a2ce678aadac39c08f2 |
|
BLAKE2b-256 | 6dcfc457e01d6242b37b2771c5c57e4f84722c1a37f9c51b656b39690c37ef69 |
tensorflow_io_gcs_filesystem_nightly-0.31.0.dev20230309180344-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a5599551bcd9e4a355bb337d73321ccfa3c088d03d28254115fbb2fc156c7e55 |
|
MD5 | d850b8e02c5a5974c6337a1796c93029 |
|
BLAKE2b-256 | 550da8939e4141da6b4a549a02e2e75af0241242311a5342fb16aedb354d5916 |
哈希值 用于 tensorflow_io_gcs_filesystem_nightly-0.31.0.dev20230309180344-cp39-cp39-macosx_10_14_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 22e0c30057f40e3820366cacb5cdc58d3b9097ba0571c06864b811c3f896d76c |
|
MD5 | 11b91e4ab02e459883b2d949940a2c54 |
|
BLAKE2b-256 | f52b809bf9947d9c2ecd8c76924f73675c3507a85bf8110dc4118816945fac47 |
哈希值 用于 tensorflow_io_gcs_filesystem_nightly-0.31.0.dev20230309180344-cp38-cp38-win_amd64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 38b393603dd046a8718b70b3bd3d297fdae6c3e5632f4eba888c3c0d68fdfbe6 |
|
MD5 | 0e5e18d090bc39b7908bf81a9b3ce780 |
|
BLAKE2b-256 | 9822ce134cc52dbbb26ebbe76fc5f2748c48588d86ea709db0517ad2031e2b2c |
哈希值 用于 tensorflow_io_gcs_filesystem_nightly-0.31.0.dev20230309180344-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9655f38cc712c9656beb7e7c79963acf166411930607def27582c1c0421ec693 |
|
MD5 | af03a2e2bdde8909312133cbfada21e9 |
|
BLAKE2b-256 | 5343d05410dfe6269160ef728f1c82130a0a3074eb26e7d061952823b134e268 |
哈希值 用于 tensorflow_io_gcs_filesystem_nightly-0.31.0.dev20230309180344-cp38-cp38-macosx_10_14_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 476f19862f47fd33755c4595afdd19652445808b9d7f3515b8cf9c86a8ffd3c2 |
|
MD5 | b899142260fc6a3cbb9d295fb81d411a |
|
BLAKE2b-256 | 7fdc6dac967ed6db93f0c4d073f47c6daba1aa9504f94c0d84083c276ee12a7b |
哈希值 用于 tensorflow_io_gcs_filesystem_nightly-0.31.0.dev20230309180344-cp37-cp37m-win_amd64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a4867df66ab3c584279d4030708bbf0c6fc46c11dc776251004737a18feeb704 |
|
MD5 | 9ff9dad777ceda903e163508224cc50b |
|
BLAKE2b-256 | 87da2a7375ff4af2901dd095cc77b324b96f812321c0850b8967887ea2a534d0 |
哈希值 用于 tensorflow_io_gcs_filesystem_nightly-0.31.0.dev20230309180344-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ee301600b92ba56e5fa6f573c9d17b9c82d4bc763bbe2fa2b647a9eb267aec80 |
|
MD5 | 02f38978789862d12e3fbe542f962cc3 |
|
BLAKE2b-256 | c1dc19c7cf60f354ef52a71b1bf371ee4474506a2d257f65bd510be3ccfef560 |
哈希值 用于 tensorflow_io_gcs_filesystem_nightly-0.31.0.dev20230309180344-cp37-cp37m-macosx_10_14_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 982b7a0baf405631d95867442ccbedbfc5def0b29677446bb355d9d9d0fb00fc |
|
MD5 | 79b3ace4bc7f012350ae65b180ce5b2a |
|
BLAKE2b-256 | 88a361c4723ccb8e23f024135a093a401449e4263a0f119d52d7a98cc028956a |