What is the difference between .options() and .type():
Lets say
    std::vector<at::Tensor> forward(at::Tensor xy, int height, int width) {
        auto tmp  = at::empty({10, 4, height, width}, xy.type());
        return {tmp}
    }

v.s.
    std::vector<at::Tensor> forward(at::Tensor xy, int height, int width) {
        auto tmp  = at::empty({10, 4, height, width}, xy.options());
        return {tmp}
    }

Would the latter include not only CUDA/Cpu but also the device that xy is on? in that case which device will be used in the first case?