I’m looking to get the byte-decomposed values of Float32 tensor on GPU. Would anyone know how to do this? In numpy, this would be:

```
float_nums = [0.16474093, -0.06143471, 0.09829687]
float_arr = np.array(float_nums, dtype=np.float32)
uint8_arr = float_nums.view(np.uint8)
# uint8_arr is now 4 times the length float_arr
# and I can perform various bit operations,
# like bit masking the float mantissa, etc.
```

PyTorch’s bit operators (^/&/etc.) require ByteTensors - this is my underlying use-case.

Unfortunately, the `.byte()`

function doesn’t re-interpret the same binary bytes, instead uses the floating point value to round and wraps around to nearest byte value. For example, `float_arr.byte()`

, in the above snippet, would result in an all-zeroes tensor.

I could interconvert to numpy and back, but these Tensors are on GPU and shuffling all these tensors back and forth to main-memory is wasteful and begins to dominate my inference and training time.

Any suggestions on how to achieve this same functionality would be appreciated.

Thanks.