【发布时间】:2019-01-21 00:45:18
【问题描述】:
定义一个列表
g = [1, 2, 3, 4]
版本 1
@ray.remote
def f(*g):
return np.mean(g, axis=0)
f_ids = [f.remote(*g) for _ in range(10)]
print(ray.get(f.remote(*f_ids)))
第 2 版
@ray.remote
def f(g): # g is object ID list
return np.mean(g, axis=0)
f_ids = [f.remote(g) for _ in range(10)]
print(ray.get(f.remote(f_ids)))
第一个代码工作正常,但版本 2 不工作。错误信息是
ray.get(f.remote(f_ids)) + 不支持的操作数类型:“common.ObjectID”和“common.ObjectID”
我想做第 2 版之类的事情的原因是我实际上想做以下事情
@remote
def f(g1, g2): # g1 and g2 are object ID lists
... # do something here
我不知道如何将g1 和g2 设置为*g1 和*g2,所以我想出了第2 版。为什么第2 版不起作用?我该如何解决?
参考代码在这里 https://ray.readthedocs.io/en/latest/example-parameter-server.html#synchronous-parameter-server
【问题讨论】:
标签: python synchronization ray