def get_fast_weights(updates, initialization):
    """Compute task-specific weights
    
    Takes initialization parameters and task-specific weight updates 
    and creates the corresponding, new (fast) weights.
    
    Parameters
    ----------
    updates : torch.Tensor
        Updates proposed for parameters. Shape = (#params,1)
    initialization : list
        List of initialization parameters. Every element in the list
        is a torch.Tensor.

    Returns
    ----------
    fast_weights
        Task-specific weights obtained by computing initialization + updates

    """
    
    fast_weights = []
    
    lb = 0
    ub = 0
    for lid, l in enumerate(initialization):
        num_els = l.numel()
        ub += num_els
        fast_weights.append(l + updates[lb:ub].reshape(l.size()))
        lb += num_els
    return fast_weights