I think there is a little inconsistency, because
torch.FloatTensor(np.array([1, 2], dtype=np.float64)) # works
torch.FloatTensor(np.array([1, 2], dtype=np.float32)) #works
torch.IntTensor(np.array([1, 2], dtype=np.int64)) #fails
torch.IntTensor(np.array([1, 2], dtype=np.int32)) #works

The first statement should give an error, because float can not necessarily hold float64, is that right?