我最近将我的程序中使用的tensorflow版本升级到了最近发布的2. 6. 0,但是我遇到了一个麻烦。
import tensorflow as tf
pattern = 'hdfs://mypath'
print(tf.io.gfile.glob(pattern))
上述API在2.6版中抛出异常:
tensorflow.python.framework.errors_impl.UnimplementedError: File system scheme'hdfs' not implemented (file:xxxxx)
然后我检查了相关的实现代码,发现官方推荐使用tensorflow/io
访问hdfs,并提供了环境变量TF_USE_MODULAR_FILESYSTEM
来使用legacy访问支持,由于我的代码比较复杂,很难在短时间内重构,所以我尝试使用这个环境变量,但仍然失败了。
总的来说,我的问题是:
1.在最新版本的tensorflow中,如果不使用“tfio”,我如何仍然可以访问HDFS文件?
1.如果必须使用“tfio”,tf.io.gfile.glob
的等效代码调用是什么?
1条答案
按热度按时间pinkon5k1#
TL.DR.安装
tensorflow-io
并将其导入.经过一番折腾,我找到了一个解决办法(可能是官方推荐的办法):
自v2.6.0起,Tensorflow不再在框架中提供HDFS、GCS和其他文件系统支持,而是将这些支持转移到Tensorflow/IO项目。
因此,在未来版本中,要支持HDFS、GCS和其他文件系统,您只需安装tensorflow-io并将其导入到培训计划:
它将加载libtensorflow_io. so和libtensorflow_io_plugins. so,其中包含每个extras文件系统的实现和注册逻辑:
参考编号: