henry000 commited on
Commit
f969f24
·
1 Parent(s): c14cffe

🔨 [Add] round_up / chunk function

Browse files
Files changed (1) hide show
  1. yolo/tools/module_helper.py +26 -2
yolo/tools/module_helper.py CHANGED
@@ -1,6 +1,6 @@
1
- from typing import Tuple
2
 
3
- from torch import nn
4
  from torch.nn.common_types import _size_2_t
5
 
6
 
@@ -34,3 +34,27 @@ def get_activation(activation: str) -> nn.Module:
34
  return activation_map[activation.lower()]()
35
  else:
36
  raise ValueError(f"Activation function '{activation}' is not found in torch.nn")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from typing import Tuple, Union
2
 
3
+ from torch import Tensor, nn
4
  from torch.nn.common_types import _size_2_t
5
 
6
 
 
34
  return activation_map[activation.lower()]()
35
  else:
36
  raise ValueError(f"Activation function '{activation}' is not found in torch.nn")
37
+
38
+
39
+ def round_up(x: Union[int, Tensor], div: int = 1) -> Union[int, Tensor]:
40
+ """
41
+ Rounds up `x` to the bigger-nearest multiple of `div`.
42
+ """
43
+ return x + (-x % div)
44
+
45
+
46
+ def make_chunk(input_list, chunk_num):
47
+ """
48
+ Args: input_list: [0, 1, 2, 3, 4, 5], chunk: 2
49
+ Return: [[0, 1, 2], [3, 4, 5]]
50
+ """
51
+ list_size = len(input_list)
52
+
53
+ if list_size % chunk_num != 0:
54
+ raise ValueError(
55
+ f"The length of the input list ({list_size}) must be exactly\
56
+ divisible by the number of chunks ({chunk_num})."
57
+ )
58
+
59
+ chunk_size = list_size // chunk_num
60
+ return [input_list[i : i + chunk_size] for i in range(0, list_size, chunk_size)]