ToDtype from float to uint8 behaves unexpected

Hello,

I want to transform a float16 tensor to a uint8 tensor and scale the values from 0…1 to 0…255 to save it as an image. When using float16 a perfectly even 1.0 is transformed to a 0? Maybe a float thingy overflow? Or am I doing something wrong?
Or does scale work differently when applied for float16?
When using float32 the transform works as expected and results a 255.

v2.ToDtype(torch.uint8, scale=True)(torch.tensor(1., dtype=torch.float16))
Out[7]: tensor(0, dtype=torch.uint8)

v2.ToDtype(torch.uint8, scale=True)(torch.tensor(1., dtype=torch.float32))
Out[8]: tensor(255, dtype=torch.uint8)