【DSW Gallery】PAIIO使用指南

简介: PAIIO是针对TensorFlow任务读取ODPS Table数据专门开发的模块,提供了TableRecordDataset dataset。

直接使用

请打开PAIIO使用指南,并点击右上角 “ 在DSW中打开” 。

image.png


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)

image.png

2.2 使用示例

假设在algo_platform_dev项目中存储了一张名为test的表,其部分内容如下所示。

image.png

以下代码实现了使用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最佳实践指南

相关实践学习
使用PAI+LLaMA Factory微调Qwen2-VL模型,搭建文旅领域知识问答机器人
使用PAI和LLaMA Factory框架,基于全参方法微调 Qwen2-VL模型,使其能够进行文旅领域知识问答,同时通过人工测试验证了微调的效果。
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
并行计算 Linux Docker
Docker【部署 07】镜像内安装tensorflow-gpu及调用GPU多个问题处理Could not find cuda drivers+unable to find libcuda.so...
Docker【部署 07】镜像内安装tensorflow-gpu及调用GPU多个问题处理Could not find cuda drivers+unable to find libcuda.so...
1411 0
|
11月前
|
SQL 弹性计算 运维
Hologres计算组实例&分时弹性入门实践
本文由骆撷冬(Hologres PD)撰写,围绕Hologres计算组实例与分时弹性的入门实践展开。内容分为三部分:第一部分介绍Hologres计算组实例的原理与架构,解决负载隔离、资源浪费、大任务和运维难题;第二部分演示计算组实例的入门实践,包括管理、授权、连接及监控等操作;第三部分讲解分时弹性的使用,涵盖配置方法、成本优化及监控告警。通过具体案例与操作步骤,帮助用户更好地理解和应用Hologres的弹性计算能力。
|
11月前
|
存储 分布式计算 MaxCompute
Hologres实时湖仓能力入门实践
本文由武润雪(栩染)撰写,介绍Hologres 3.0版本作为一体化实时湖仓平台的升级特性。其核心能力包括湖仓存储一体、多模式计算一体、分析服务一体及Data+AI一体,极大提升数据开发效率。文章详细解析了两种湖仓架构:MaxCompute + Hologres实现离线实时一体化,以及Hologres + DLF + OSS构建开放湖仓架构,并深入探讨元数据抽象、权限互通等重点功能,同时提供具体使用说明与Demo演示。
|
11月前
|
SQL 存储 分布式计算
查询队列(Query Queue)快速入门
本文由钟昌宏(大宏)分享,主题为Hologres 3.0新功能——Hologres查询队列(Query Queue)的使用场景、基本用法及入门实践。内容涵盖四个部分:查询队列的基本介绍、并发控制与排队能力、查询隔离与熔断,以及如何在管控台观察计算组或实例使用查询队列的情况。通过分类器管理、匹配规则等机制,实现对不同类型Query的灵活控制,并结合Serverless Computing提升系统稳定性与成功率。适用于数据写入与查询任务的优化场景。
|
存储 机器学习/深度学习 分布式计算
【DSW Gallery】COMMON_IO使用指南
COMMON_IO模块提供了TableReader和TableWriter两个接口,使用TableReader可以读取ODPS Table中的数据,使用TableWriter可以将数据写入ODPS Table。
【DSW Gallery】COMMON_IO使用指南
|
存储 SQL 数据挖掘
深入理解 Flink 中的 State
Flink 的 State(状态)是其四大核心之一,为流处理和批处理任务提供强大支持。本文深入探讨 Flink 中的状态管理,涵盖 State 在 HDFS 中的存储格式、存在形式(如 ValueState、ListState 等)、使用方法、过期时间 TTL 和清除策略,并介绍 Table API 和 SQL 模块中的状态管理。通过实际案例,帮助读者理解如何在电商订单处理、实时日志统计等场景中有效利用状态管理功能。
1246 16
|
存储 SQL 人工智能
【云栖实录】Hologres3.0全新升级:一体化实时湖仓平台
2024年云栖大会,Hologres 3.0全新升级为一体化实时湖仓平台,通过统一数据平台实现湖仓存储一体、多模式计算一体、分析服务一体、Data+AI 一体,发布 Dynamic Table、External Database、分时弹性、Query Queue、NL2SQL 等众多新的产品能力,实现一份数据、一份计算、一份服务,极大提高数据开发及应用效率。同时,Hologres 的预付费实例年付折扣再降15%,仅需7折,不断帮助企业降低数据管理成本,赋能业务增长。
|
存储 SQL 分布式计算
Hologres RoaringBitmap在Lazada选品平台的最佳实践
Lazada选品平台包含全网商家、商品的圈选,通过Hologres RoaringBitmap能力帮助业务突破选品池20w大小限制,6000+选品池调度完成由12h下降至1h,单个选品池调度时间由90s下降至2s。
|
机器学习/深度学习 人工智能 并行计算
【DSW Gallery】DSW镜像使用入门
介绍DSW中如何使用官方镜像、自定义镜像、第三方镜像地址来启动服务。DSW环境进行定制修改之后还可以选择停机保存环境或者保存镜像到ACR镜像仓库。
【DSW Gallery】DSW镜像使用入门

热门文章

最新文章