In [1]:
import syft as sy
import torch as th
import copy
import random

In [2]:
hook = sy.TorchHook(th)
bob = sy.VirtualWorker(hook, id="bob")

In [156]:
@sy.func2plan(th.tensor([-1,-2]))
def plan_a(data):
    y = data + data
    z = data * data
    out = y + z
    return out

@sy.func2plan(th.tensor([-1,-2]))
def plan_b(data):
    return -data.abs()

plan_a_ptr = plan_a.send(bob)
plan_b_ptr = plan_b.send(bob)

x = th.tensor([-1,2,3]).send(bob)

plan_a_res = plan_a_ptr(x)
plan_b_res = plan_b_ptr(x)


[2, [1, [2, [[2, ['__add__', [11, [14906767764, 11608171820, 'bob', None, [2]]], [2, [[11, [14906767764, 11608171820, 'bob', None, [2]]]]]]], 20892737184]]]]
[2, [1, [2, [[2, ['__mul__', [11, [14906767764, 11608171820, 'bob', None, [2]]], [2, [[11, [14906767764, 11608171820, 'bob', None, [2]]]]]]], 90538700932]]]]
[2, [1, [2, [[2, ['__add__', [11, [65069091661, 20892737184, 'bob', None, None]], [2, [[11, [59942293716, 90538700932, 'bob', None, None]]]]]], 5995006905]]]]
[2, [4, 20892737184]]
[2, [4, 90538700932]]
[2, [1, [2, [[2, ['abs', [11, [39980080112, 11608171820, 'bob', None, [2]]], [2, []]]], 31692265468]]]]
[2, [1, [2, [[2, ['__neg__', [11, [37497737123, 31692265468, 'bob', None, None]], [2, []]]], 306590310]]]]
[2, [4, 31692265468]]

In [8]:
plan_a_res.get()


Out[8]:
tensor([1, 2, 3])

In [9]:
plan_b_res.get()


Out[9]:
tensor([-1, -2, -3])

In [10]:
bob._objects


Out[10]:
{4304202390: <Plan id:4304202390 #tensors:0>,
 8330432230: <Plan id:8330432230 #tensors:0>,
 77985372853: tensor([-1,  2,  3])}

In [ ]: