Spaces:
Runtime error
Runtime error
# Copyright (c) OpenMMLab. All rights reserved. | |
def make_divisible(value, divisor, min_value=None, min_ratio=0.9): | |
"""Make divisible function. | |
This function rounds the channel number down to the nearest value that can | |
be divisible by the divisor. | |
Args: | |
value (int): The original channel number. | |
divisor (int): The divisor to fully divide the channel number. | |
min_value (int, optional): The minimum value of the output channel. | |
Default: None, means that the minimum value equal to the divisor. | |
min_ratio (float): The minimum ratio of the rounded channel | |
number to the original channel number. Default: 0.9. | |
Returns: | |
int: The modified output channel number | |
""" | |
if min_value is None: | |
min_value = divisor | |
new_value = max(min_value, int(value + divisor / 2) // divisor * divisor) | |
# Make sure that round down does not go down by more than (1-min_ratio). | |
if new_value < min_ratio * value: | |
new_value += divisor | |
return new_value | |