[batch, channel, r, theta] is the input tensor. I want to convert it into [batch, channel, x, y], which x, and y are in cartesian coordinates. How am I able to implement this?
If input is something like
[batch, channel , 2] where the first entries are
r and the second entries are
then you can use this.
#batch = 4, channels = 3 polar = torch.randn(4,3,2) r = polar[:,:,0] theta = polar[:,:,1] x = r * torch.cos(theta) y = r * torch.sin(theta) cartesian = torch.stack([x,y], axis = -1) # resulting in (4,3,2)
If the input is something like
[batch, channel, r, theta], then you’d have an output Tensor of size
[batch, channel, 2, r, theta] ie to say, for every
theta, you will have two values which are