直接使用
请打开PAIIO使用指南,并点击右上角 “ 在DSW中打开” 。
PAIIO是针对TensorFlow任务读取MaxCompute Table数据专门开发的模块,基于MaxCompute Tunnel实现,提供了TableRecordDataset dataset。有关TensorFlow Dataset使用可以参考该链接。
使用PAIIO时,您需要先在配置文件中配置账户AK等信息,否则无权读取MaxCompute Table。
说明:
- PAIIO已在DLC/DSW官方镜像中安装, 暂不支持自定义镜像;
- PAIIO仅支持TensorFlow任务,支持TF1.12、TF1.15、TF2.0以及TF2.3版本;
- 写表推荐使用COMMON_IO(COMMON_IO使用指南);
1. 准备工作:配置账户信息
配置文件内容格式如下所示,包含了MaxCompute access_id、access_key以及endpoint信息。
access_id/access_key获取方式参见链接。
end_point填入您的MaxCompute项目所在区域对应的Endpoint,可参考链接,例如杭州region endpoint为:http://service.cn-hangzhou.maxcompute.aliyun.com/api
access_id=xxxx
access_key=xxxx
end_point=http://xxxx
在代码中通过以下方式指定配置文件路径
os.environ['ODPS_CONFIG_FILE_PATH'] = ''
2. TableRecordDataset使用说明
TensorFlow社区推荐在1.2及以上版本中使用Dataset接口(详情请参见Dataset)替代原有的线程和队列接口构建数据流。通过多个Dataset接口的组合变换生成计算数据,可以简化数据输入部分的代码。TableRecordDataset是针对读取ODPS Table数据实现的Dataset。
2.1 接口定义
paiio.data.TableRecordDataset( filenames, record_defaults, selected_cols=None, excluded_cols=None, slice_id=0, slice_count=1, num_threads=0, capacity=0)
2.2 使用示例
假设在algo_platform_dev项目中存储了一张名为test的表,其部分内容如下所示。
以下代码实现了使用TableRecordDataset接口读取test表itemid和price列的数据。
import os import tensorflow as tf import paiio # 指定配置文件路径 os.environ['ODPS_CONFIG_FILE_PATH'] = "/mnt/workspace/tunnel_io/odps_config.ini" # 定义要读取的Table, 可以是多个 table = ["odps://algo_platform_dev/tables/test"] # 定义TableRecordDataset, 读取表的itemid和price列 dataset = paiio.data.TableRecordDataset(table, record_defaults = [0, 0.0], selected_cols = "itemid,price", num_threads=1, capacity=10) # 设置epoch 2, batch size 3, prefetch 100 batch dataset = dataset.repeat(2).batch(3).prefetch(100) ids, prices = dataset.make_one_shot_iterator().get_next() with tf.Session() as sess: sess.run(tf.global_variables_initializer()) sess.run(tf.local_variables_initializer()) batch_ids, batch_prices = sess.run([ids, prices]) print("batch_ids:", batch_ids) print("batch_prices:", batch_prices)
batch_ids: [25 38 17] batch_prices: [5. 4.5 2.2]
3. FAQ
3.1 Notebook读取出现 Kernel Restarting
未知错误导致paiio底层发生core,可以先使用common_io看下能否正确读取表数据。
3.2 错误 No such file: /root/.odps_config.ini
该错误表示未找到配置文件,参考使用说明准备工作部分。
3.3 怎么提高TF Dataset读取性能
可以参考TF Dataset最佳实践指南。