If input is something like [batch, channel , 2] where the first entries are r and the second entries are theta,
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 r and theta, you will have two values which are (x,y).