For different data types, you might need to store the tensors in a list, as I don’t think there is a workaround currently.
Numpy will convert the arrays in the same way PyTorch does:
tmp = np.array([np.zeros(1).astype(np.float32), np.zeros(1).astype(np.float64)])
print(tmp.dtype)
> float64
print(tmp[0].dtype)
> float64

tmp = torch.tensor([torch.randn(1), torch.randn(1).double()])
print(tmp.dtype)
> torch.float64

The error might point instead to a shape mismatch.