Skip to content

SVD is returning 4 pointers instead of 3 #4616

@sssilvar

Description

@sssilvar

Description

When sending a tensor to a worker and performing SVD, returns four pointers instead of three. Also, the third one is not gettable. By experimentation, I have had to solve the issue using U, s, _, V = x.svd().

How to Reproduce

import torch
import syft as sy

hook = sy.TorchHook(torch)
bob = sy.VirtualWorker(hook, id='bob')

x = torch.rand(250, 84).send(bob)  # Synthetic tensor
x.svd()

# Output:
# ((Wrapper)>[PointerTensor | me:88822589827 -> bob:10423896311],
#  (Wrapper)>[PointerTensor | me:22528885369 -> bob:34285527022],
#  (Wrapper)>[PointerTensor | me:46709676193 -> bob:67244907535],
#  (Wrapper)>[PointerTensor | me:235847656 -> bob:15738446586])

Expected Behavior

Should return three pointers: U, s, V = x.svd()

System Information

  • Official released Docker container
  • Same for pip package:
    • Ubuntu 18.04.5 LTS (Bionic Beaver)
    • Python 3.6.9

Metadata

Metadata

Assignees

Labels

0.2.xRelating to the 0.2.x code branchStatus: Available 👋Available for assignment, who wants it?Type: Bug 🐛Some functionality not working in the codebase as intendedhacktoberfest

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions