def batch_tile(v, batch_size):
    """Tile a Variable by batch size.
    
    If v has shape (d1, d2, ...)
    
    The result will have shape (batch_size, d1, d2, ...)
    
    Args:
        v (Variable)
        batch_size (int)

    Returns:
        tiled (Variable)
    """
    new_dims = [batch_size]
    new_dims.extend(v.size())
    return v.unsqueeze(0).expand(new_dims)