AI Conference 北京站
AI Conference 2019 北京站6月18-21日即将开幕!
培训:大会推出「PyTorch 深度学习」两天培训课程,资深数据科学家主讲,限制人数,抢票从速!
编者注:文中超链接如果不能访问可以点击“阅读原文”访问本文原页面;本文作者将在北京人工智能大会上带来教学辅导课Building reinforcement learning models and AI applications with Ray。
Ray是一个用于在计算集群上编程的通用框架。 Ray使开发人员能够轻松地并行化他们的Python应用程序,构建新的应用,在任意大小规模的集群上(从笔记本电脑到大型集群)运行。 Ray提供了一个高度灵活,极简主义、易于使用的API。 表1 介绍了此API的核心功能。
在这篇博客中我们描述了几个小技巧,可以帮助首次使用Ray的用户避免一些可能严重影响其程序性能的常见错误。
API | 描述 | 示例 |
ray.init() | 初始化Ray执行上下文。 | |
@ ray.remote | 函数或类装饰器,指定 函数将作为不同进程中的任务执行,或者类作为不同进程中的actor定义。 | @ray.remote @ray.remote def fun(x): class Actor(object): … def method(y) … |
.remote | Postfix到每个远程函数,远程声明类,或远程进行类方法的调用。 远程操作是异步。 | ret_id = fun.remote(x) a = Actor.remote() ret_id = a.method.remote(y) |
ray.put() | 将对象存储在对象库中,并返回其ID。 此ID可用于将对象作为参数传递给任何远程函数或方法调用。 这是一种同步的操作。 | x_id = ray.put(x) |
ray.get() | 从对象ID或对象ID列表返回对象或对象列表。 这是一种 同步 (即阻塞)操作。 | x = ray.get(x_id) … objects = ray.get(object_ids) |
ray.wait() | 从对象ID列表返回(1)准备好的对象的ID列表,以及(2)尚未准备好的对象的ID列表。 默认情况下,它一次返回一个已准备好的对象ID。 |