【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最佳实践指南。

相关实践学习
机器学习概览及常见算法
机器学习(Machine Learning, ML)是人工智能的核心,专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,它是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。 本课程将带你入门机器学习,掌握机器学习的概念和常用的算法。
相关文章
|
分布式计算 自然语言处理 DataWorks
高效使用 PyODPS 最佳实践
以更清晰的认知 PyODPS,DataWorks PyODPS 节点以及 PyODPS 何时在计算集群运行,开发者如何利用 PyODPS 更高效地进行数据开发。
19911 3
高效使用 PyODPS 最佳实践
|
6月前
|
人工智能 数据中心 芯片
Gartner®报告:2025年阿里云公有云服务市场份额亚太第一
近日,Gartner 发布《2025年全球 IaaS 公有云服务市场份额》报告。报告显示,2025 年中国 IaaS 市场规模按营收达到 469.5 亿美元,阿里云以 32.8% 的市场份额位居第一,较 2024 年的 30.1% 提升 2.7 个百分点。在亚太市场,阿里云市场份额由 20.8% 提升至 22.5%。
|
数据采集 运维 供应链
数据的分类和分级
数据的分类和分级
1858 0
|
存储 机器学习/深度学习 人工智能
【DSW Gallery】DSW基础使用介绍
PAI-DSW是一款云端机器学习开发IDE,为您提供交互式编程环境,适用于不同水平的开发者。本文为您介绍PAI-DSW的功能特点以及界面的基础使用。
【DSW Gallery】DSW基础使用介绍
Maven之阿里云镜像仓库配置
方式一:全局配置可以添加阿里云的镜像到maven的setting.xml配置中,这样就不需要每次在pom中,添加镜像仓库的配置,在mirrors节点下面添加子节点: <id>nexus-aliyun</id> <mirrorOf>central</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.
|
7月前
|
人工智能 文字识别 内存技术
阿里云Tokens如何收费?Tokens价格、免费Tokens领取及万亿Tokens扶持优惠活动全解析
阿里云Tokens按输入/输出分别计费,价格因模型而异(如Qwen-Max:输入2.4元/百万、输出9.6元/百万)。新用户开通百炼可领7000万免费Tokens:https://t.aliyun.com/U/fPVHqY 企业用户还可享万亿Tokens扶持及多重优惠。
1911 2
|
8月前
|
人工智能 安全 搜索推荐
2026年OpenClaw(原Clawdbot)阿里云及本地部署指南:+20个自动化系统实战方案(附完整命令)
2026年,AI工具的竞争早已超越“单点功能”,进入“系统级赋能”时代。很多人深陷“AI焦虑”——买了一堆工具,却仍停留在“问一句答一句”的浅层使用,无法真正融入工作流。而OpenClaw(原Clawdbot)的出现,彻底改变了这一现状:它不是简单的聊天机器人,而是可定制、能闭环的“个人操作系统”,通过24小时自动化运行,让一个人具备一支团队的战斗力。
1163 2
|
存储 SQL 数据挖掘
深入理解 Flink 中的 State
Flink 的 State(状态)是其四大核心之一,为流处理和批处理任务提供强大支持。本文深入探讨 Flink 中的状态管理,涵盖 State 在 HDFS 中的存储格式、存在形式(如 ValueState、ListState 等)、使用方法、过期时间 TTL 和清除策略,并介绍 Table API 和 SQL 模块中的状态管理。通过实际案例,帮助读者理解如何在电商订单处理、实时日志统计等场景中有效利用状态管理功能。
1695 16
|
前端开发 JavaScript Java
Java打包jar运行时分离lib和jar
在`pom.xml`的`build`节点中,设置`packaging`为`jar`,并配置插件分离依赖库到`lib`目录和资源文件到`resources`目录。这样可以在运行时通过`-Dloader.path=lib,resources`加载外部依赖和资源文件,便于独立升级依赖库和修改资源文件,而无需重新打包程序。具体插件包括`maven-dependency-plugin`、`maven-resources-plugin`和`spring-boot-maven-plugin`等。
1254 2
|
存储 人工智能 算法
深度揭秘超长序列生成任务训练技术
阿里自研的TorchAcc训练引擎提出了超长序列训练方案FlashSequence,针对超长文本理解、视频生成等场景。通过2D Context Parallel和Hybrid FSDP混合分布式策略,结合显存、计算和通信优化,实现了百万级别超长序列模型的高效训练。FlashSequence在算力、显存需求及分布式训练方面进行了多项创新,性能提升显著,最大可达48%。该方案大幅降低了企业创新成本,提升了业务应用的可能性。