When you are converting your model with model.cuda(), the Tensor's you have will not be converted: only children Modules will be automatically converted.
You will have to manually specify the device of your tensors in the creation:
class Model(nn.Module):
    def __init__(self, device):
        super().__init__()
        self.w_x   = [torch.randn((NUM_INPUT), requires_grad=True, device=device) for _ in range(NUM_HIDDEN)]
        self.w_h   = [torch.randn((NUM_INPUT), requires_grad=True, device=device) for _ in range(NUM_HIDDEN)]
        self.sel   = [torch.zeros(NUM_INPUT, device=device) for _ in range(NUM_HIDDEN)]
        self.x     = [torch.zeros(NUM_INPUT, device=device) for _ in range(NUM_HIDDEN)]
        self.h     = [torch.zeros(NUM_INPUT, device=device) for _ in range(NUM_HIDDEN)]

so you pass it to your model as:
model = Model(device='cuda:0')