ZH ·
🌏 English

解决 TensorFlow I/O 版本不兼容导致的报错

最近在 Kaggle 的 IPython Notebook 中尝试新方案时,执行 import tensorflow_io 出现了报错。代码如下:

import tensorflow_io

系统提示了一个错误,核心内容为:

libtensorflow_io.so undefined symbol:
_ZN10tensorflow0pKernel11TraceStringEPNS_150pKernelContextEb'

我对 tensorflow-io 并不熟悉,于是直接在 Google 上进行搜索。虽然搜到了一些讨论(例如 Stack Overflow 上的相关问题),但很多建议只是简单粗暴地让用户卸载并重装 tensorflow-gputensorflow-io,这显然不是解决问题的根本方法。

为什么会出现这个问题?

根本原因其实很简单:tensorflow-iotensorflow 的版本必须严格匹配(兼容)。tensorflow-io 的官方 GitHub 仓库提供了一份详细的版本对应表。

我对照表格检查了一下,发现 Kaggle 笔记本环境预装的 TensorFlow 版本是 2.12,而安装的 tensorflow-io 版本却是 0.31.0。根据兼容性表,我应该安装 tensorflow-io 0.32.0 版本。在笔记本中执行以下命令后:

!pip install tensorflow-io==0.32.0

错误随即消失。看来即便是官方提供的计算环境,也难免会出现依赖版本不匹配的情况。

表格链接:tensorflow-version-compatibility

TensorFlow I/O VersionTensorFlow CompatibilityRelease Date
0.32.02.12.xMar 28, 2023
0.31.02.11.xFeb 25, 2023
0.30.02.11.xJan 20, 2023
0.29.02.11.xDec 18, 2022
0.28.02.11.xNov 21, 2022
0.27.02.10.xSep 08, 2022
0.26.02.9.xMay 17, 2022
0.25.02.8.xApr 19, 2022
0.24.02.8.xFeb 04, 2022
0.23.12.7.xDec 15, 2021
0.23.02.7.xDec 14, 2021
0.22.02.7.xNov 10, 2021
0.21.02.6.xSep 12, 2021
0.20.02.6.xAug 11, 2021
0.19.12.5.xJul 25, 2021
0.19.02.5.xJun 25, 2021
0.18.02.5.xMay 13, 2021
0.17.12.4.xApr 16, 2021
0.17.02.4.xDec 14, 2020
0.16.02.3.xOct 23, 2020
0.15.02.3.xAug 03, 2020
0.14.02.2.xJul 08, 2020
0.13.02.2.xMay 10, 2020
0.12.02.1.xFeb 28, 2020
0.11.02.1.xJan 10, 2020
0.10.02.0.xDec 05, 2019
0.9.12.0.xNov 15, 2019
0.9.02.0.xOct 18, 2019
0.8.11.15.xNov 15, 2019
0.8.01.15.xOct 17, 2019
0.7.21.14.xNov 15, 2019
0.7.11.14.xOct 18, 2019
0.7.01.14.xJul 14, 2019
0.6.01.13.xMay 29, 2019
0.5.01.13.xApr 12, 2019
0.4.01.13.xMar 01, 2019
0.3.01.12.0Feb 15, 2019
0.2.01.12.0Jan 29, 2019
0.1.01.12.0Dec 16, 2018