Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Ray python example with multiple returns and calling ray.get()

Tags:

python

ray

The below code does the desired behaviour. Is it possible to pass the second argument from the first two functions without having to call ray.get prematurely ?

@ray.remote
def color():
    image=cv2.imread("frame30.png", flags=0)
    argument= "Hello"
    return image,argument

@ray.remote
def black():
    image=cv2.imread("frame30.png", flags=0)
    argument= "world"
    return image,argument

@ray.remote
def concate_two_args(a,b):
    return a + " " + b

col= color.remote()
blk= black.remote()

#Do I have to "ray.get" in order to pass the results to concate_two_args?
temp1= ray.get(col)[1]
temp2= ray.get(blk)[1]

results= concate_two_args.remote(temp1,temp2)

ray.get(results)

Doing this directly

col, string= color.remote()

ray.get(string)

returns

TypeError: cannot unpack non-iterable ray._raylet.ObjectRef object
like image 240
PolarBear10 Avatar asked Feb 06 '26 04:02

PolarBear10


1 Answers

Can you try adding num_returns to @ray.remote? For example,

@ray.remote(num_returns=2)
def color():
    image=cv2.imread("frame30.png", flags=0)
    argument= "Hello"
    return image,argument

@ray.remote(num_returns=2)
def black():
    image=cv2.imread("frame30.png", flags=0)
    argument= "world"
    return image,argument
like image 120
Sang Avatar answered Feb 12 '26 10:02

Sang