def kaiming_uniform_groups_(tensor, a=0, mode='fan_in', nonlinearity='leaky_relu', groups=1):
    """'torch.nn.init.kaiming_uniform_()' with 'groups'.

    If 'mode=="fan_out"', fan is divided by 'groups', yielding larger std of weights.
    """
    if 0 in tensor.shape:
        return tensor
    fan = _calculate_correct_fan(tensor, mode)
    if mode == 'fan_out':
        fan //= groups
    gain = calculate_gain(nonlinearity, a)
    std = gain / math.sqrt(fan)
    bound = math.sqrt(3.0) * std  # Calculate uniform bounds from standard deviation
    with torch.no_grad():
        return tensor.uniform_(-bound, bound)
'torch.nn.init.kaiming_uniform_()' with 'groups'.

    If 'mode=="fan_out"', fan is divided by 'groups', yielding larger std of weights.
    
tridet/layers/separable_conv2d.py