一 目的
本文介绍如何在文件存储HDFS版上使用 TensorFlow。
二 背景信息
TensorFlow 是一个采用数据流图(Data Flow Graphs)用于数值计算的开源软件库。
注意:TensorFlow 对文件系统的 Scheme 有特别的指定,目前在文件存储HDFS版上使用 TensorFlow 时需要对TensorFlow 源码进行修改,您可参考第四章节重新编译安装 TensorFlow。
三 准备工作
- 开通文件存储HDFS版服务并创建文件系统实例和挂载点,详情请参见:快速入门。
- 在 Hadoop 集群所有节点上安装JDK。版本不能低于1.8。
- 在 Hadoop 集群中配置文件存储HDFS版实例,详情请参见:挂载文件系统。
- 根据您目前使用的 TensorFlow 版本下载源码,下载地址:官方链接。本文档中使用的 TensorFlow 版本为 2.5.2。
四 配置 TensorFlow 支持文件存储HDFS版
4.1 添加文件存储HDFS版支持
在 TensorFlow 源码中添加对文件存储HDFS版支持 Patch:Support aliyun HDFS。
说明:TensorFlow 代码版本差异较大,如果您使用的 TensorFlow 非 2.5.2 版本,遇到代码问题,可以联系文件存储HDFS版团队协助。
4.2 编译TensorFlow
按照 4.1 章节对TensorFlow源码修改进行编译,编译步骤请参考官方编译文档:Build from source 。
五 验证
参考以下步骤,通过 TensorFlow 读取文件存储HDFS版上的数据进行连通性验证:
## 在文件存储HDFS版上创建测试文件 hadoop fs -mkdir dfs://f-xxxx.cn-xxxx.dfs.aliyuncs.com:10290/test_tensorflow hadoop fs -touchz dfs://f-xxxx.cn-xxxx.dfs.aliyuncs.com:10290/test_tensorflow/words echo "hello tensorflow" | hadoop fs -appendToFile - dfs://f-xxxx.cn-xxxx.dfs.aliyuncs.com:10290/test_tensorflow/words ## 使用 TensorFlow 查看文件存储HDFS版上的数据 ## 其中 f-xxxx.cn-xxxx.dfs.aliyuncs 为您的文件系统挂载点域名, 需根据实际情况进行修改。 >>> import tensorflow as tf >>> tf.__version__ '2.5.2' >>> tf.io.gfile.listdir('dfs://f-xxxx.cn-xxxx.dfs.aliyuncs.com:10290/test_tensorflow') ['words'] >>> with tf.compat.v2.io.gfile.GFile('dfs://f-xxxx.cn-xxxx.dfs.aliyuncs.com:10290/test_tensorflow/words') as rf: ... rf.read() ... 'hello tensorflow\n'
了解更多关于文件存储HDFS版的产品信息,欢迎访问https://www.aliyun.com/product/alidfs
如果您对文件存储HDFS版有任何问题,欢迎钉钉扫描以下二维码加入文件存储HDFS版技术交流群。