์ฐธ์กฐ ultralytics/nn/modules/conv.py
์ฐธ๊ณ
์ด ํ์ผ์ https://github.com/ultralytics/ ultralytics/blob/main/ ultralytics/nn/modules/conv .py์์ ํ์ธํ ์ ์์ต๋๋ค. ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ๋ฉด ํ ๋ฆฌํ์คํธ (๐ ๏ธ) ๋ฅผ ํตํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋๋ก ๋์์ฃผ์ธ์. ๊ฐ์ฌํฉ๋๋ค ๐!
ultralytics.nn.modules.conv.Conv
๋ฒ ์ด์ค: Module
args(ch_in, ch_out, ์ปค๋, ๋ณดํญ, ํจ๋ฉ, ๊ทธ๋ฃน, ํ๋, ํ์ฑํ)๋ฅผ ์ฌ์ฉํ ํ์ค ์ปจ๋ณผ๋ฃจ์ .
์ ์์ค ์ฝ๋ ultralytics/nn/modules/conv.py
__init__(c1, c2, k=1, s=1, p=None, g=1, d=1, act=True)
ํ์ฑํ๋ฅผ ํฌํจํ ์ฃผ์ด์ง ์ธ์๋ฅผ ์ฌ์ฉํ์ฌ Conv ๋ ์ด์ด๋ฅผ ์ด๊ธฐํํฉ๋๋ค.
์ ์์ค ์ฝ๋ ultralytics/nn/modules/conv.py
forward(x)
ultralytics.nn.modules.conv.Conv2
๋ฒ ์ด์ค: Conv
Conv ์ตํฉ์ผ๋ก ๊ฐ์ํ๋ RepConv ๋ชจ๋.
์ ์์ค ์ฝ๋ ultralytics/nn/modules/conv.py
__init__(c1, c2, k=3, s=1, p=None, g=1, d=1, act=True)
ํ์ฑํ๋ฅผ ํฌํจํ ์ฃผ์ด์ง ์ธ์๋ฅผ ์ฌ์ฉํ์ฌ Conv ๋ ์ด์ด๋ฅผ ์ด๊ธฐํํฉ๋๋ค.
์ ์์ค ์ฝ๋ ultralytics/nn/modules/conv.py
forward(x)
forward_fuse(x)
fuse_convs()
๋ณ๋ ฌ ์ปจ๋ณผ๋ฃจ์ ์ ์ตํฉํฉ๋๋ค.
์ ์์ค ์ฝ๋ ultralytics/nn/modules/conv.py
ultralytics.nn.modules.conv.LightConv
๋ฒ ์ด์ค: Module
args(ch_in, ch_out, ์ปค๋)์ ์ฌ์ฉํ ๋ผ์ดํธ ์ปจ๋ณผ๋ฃจ์ .
https://github.com/PaddlePaddle/PaddleDetection/blob/develop/ppdet/modeling/backbones/hgnet_v2.py
์ ์์ค ์ฝ๋ ultralytics/nn/modules/conv.py
__init__(c1, c2, k=1, act=nn.ReLU())
ํ์ฑํ๋ฅผ ํฌํจํ ์ฃผ์ด์ง ์ธ์๋ฅผ ์ฌ์ฉํ์ฌ Conv ๋ ์ด์ด๋ฅผ ์ด๊ธฐํํฉ๋๋ค.
ultralytics.nn.modules.conv.DWConv
๋ฒ ์ด์ค: Conv
๊น์ด๋ณ ์ปจ๋ณผ๋ฃจ์ .
์ ์์ค ์ฝ๋ ultralytics/nn/modules/conv.py
__init__(c1, c2, k=1, s=1, d=1, act=True)
์ฃผ์ด์ง ํ๋ผ๋ฏธํฐ๋ก ๊น์ด๋ณ ์ปจ๋ณผ๋ฃจ์ ์ ์ด๊ธฐํํฉ๋๋ค.
ultralytics.nn.modules.conv.DWConvTranspose2d
๋ฒ ์ด์ค: ConvTranspose2d
๊น์ด ๋ฐฉํฅ ํธ๋์คํ์ด์ค ์ปจ๋ณผ๋ฃจ์ .
์ ์์ค ์ฝ๋ ultralytics/nn/modules/conv.py
__init__(c1, c2, k=1, s=1, p1=0, p2=0)
์ฃผ์ด์ง ํ๋ผ๋ฏธํฐ๋ก DWConvTranspose2d ํด๋์ค๋ฅผ ์ด๊ธฐํํฉ๋๋ค.
ultralytics.nn.modules.conv.ConvTranspose
๋ฒ ์ด์ค: Module
์ปจ๋ณผ๋ฃจ์ ํธ๋์คํฌ์ฆ 2D ๋ ์ด์ด.
์ ์์ค ์ฝ๋ ultralytics/nn/modules/conv.py
__init__(c1, c2, k=2, s=2, p=0, bn=True, act=True)
์ผ๊ด ์ ๊ทํ ๋ฐ ํ์ฑํ ๊ธฐ๋ฅ์ผ๋ก ConvTranspose2d ๋ ์ด์ด๋ฅผ ์ด๊ธฐํํฉ๋๋ค.
์ ์์ค ์ฝ๋ ultralytics/nn/modules/conv.py
forward(x)
ultralytics.nn.modules.conv.Focus
๋ฒ ์ด์ค: Module
WH ์ ๋ณด๋ฅผ C-์คํ์ด์ค์ ์ง์คํ์ธ์.
์ ์์ค ์ฝ๋ ultralytics/nn/modules/conv.py
__init__(c1, c2, k=1, s=1, p=None, g=1, act=True)
์ฌ์ฉ์ ์ ์ ์ฑ๋, ์ปจ๋ณผ๋ฃจ์ , ํจ๋ฉ, ๊ทธ๋ฃน ๋ฐ ํ์ฑํ ๊ฐ์ผ๋ก ํฌ์ปค์ค ๊ฐ์ฒด๋ฅผ ์ด๊ธฐํํฉ๋๋ค.
์ ์์ค ์ฝ๋ ultralytics/nn/modules/conv.py
forward(x)
์ฐ๊ฒฐ๋ tensor ์ ์ปจ๋ณผ๋ฃจ์ ์ ์ ์ฉํ๊ณ ์ถ๋ ฅ์ ๋ฐํํฉ๋๋ค.
์ ๋ ฅ ๋ํ์ (b,c,w,h)์ด๊ณ ์ถ๋ ฅ ๋ํ์ (b,4c,w/2,h/2)์ ๋๋ค.
์ ์์ค ์ฝ๋ ultralytics/nn/modules/conv.py
ultralytics.nn.modules.conv.GhostConv
๋ฒ ์ด์ค: Module
๊ณ ์คํธ ์ปจ๋ณผ๋ฃจ์ https://github.com/huawei-noah/ghostnet.
์ ์์ค ์ฝ๋ ultralytics/nn/modules/conv.py
__init__(c1, c2, k=1, s=1, g=1, act=True)
์ ๋ ฅ ์ฑ๋, ์ถ๋ ฅ ์ฑ๋, ์ปค๋ ํฌ๊ธฐ, ๋ณดํญ, ๊ทธ๋ฃน ๋ฐ ํ์ฑํ๋ก ์ด๊ธฐํํฉ๋๋ค.
์ ์์ค ์ฝ๋ ultralytics/nn/modules/conv.py
forward(x)
ultralytics.nn.modules.conv.RepConv
๋ฒ ์ด์ค: Module
RepConv๋ ๊ต์ก ๋ฐ ๋ฐฐํฌ ์ํ๋ฅผ ํฌํจํ ๊ธฐ๋ณธ ๋ด๋น์ ์คํ์ผ ๋ธ๋ก์ ๋๋ค.
์ด ๋ชจ๋์ RT-DETR ์์ ์ฌ์ฉ๋ฉ๋๋ค. https://github.com/DingXiaoH/RepVGG/blob/main/repvgg.py
์ ์์ค ์ฝ๋ ultralytics/nn/modules/conv.py
175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 |
|
__init__(c1, c2, k=3, s=1, p=1, g=1, d=1, act=True, bn=False, deploy=False)
์ ๋ ฅ, ์ถ๋ ฅ ๋ฐ ์ ํ์ ํ์ฑํ ๊ธฐ๋ฅ์ผ๋ก ๋ผ์ดํธ ์ปจ๋ณผ๋ฃจ์ ๋ ์ด์ด๋ฅผ ์ด๊ธฐํํฉ๋๋ค.
์ ์์ค ์ฝ๋ ultralytics/nn/modules/conv.py
forward(x)
forward_fuse(x)
fuse_convs()
๋ ๊ฐ์ ์ปจ๋ณผ๋ฃจ์ ๋ ์ด์ด๋ฅผ ๋จ์ผ ๋ ์ด์ด๋ก ๊ฒฐํฉํ๊ณ ํด๋์ค์์ ์ฌ์ฉํ์ง ์๋ ์์ฑ์ ์ ๊ฑฐํฉ๋๋ค.
์ ์์ค ์ฝ๋ ultralytics/nn/modules/conv.py
get_equivalent_kernel_bias()
3x3 ์ปค๋, 1x1 ์ปค๋, ์์ด๋ดํฐํฐ ์ปค๋์ ํธํฅ์ ๋ํ์ฌ ๋๋ฑํ ์ปค๋๊ณผ ํธํฅ์ ๋ฐํํฉ๋๋ค.
์ ์์ค ์ฝ๋ ultralytics/nn/modules/conv.py
ultralytics.nn.modules.conv.ChannelAttention
๋ฒ ์ด์ค: Module
์ฑ๋ ๊ด์ฌ ๋ชจ๋ https://github.com/open-mmlab/mmdetection/tree/v3.0.0rc1/configs/rtmdet.
์ ์์ค ์ฝ๋ ultralytics/nn/modules/conv.py
__init__(channels)
ํด๋์ค๋ฅผ ์ด๊ธฐํํ๊ณ ํ์ํ ๊ธฐ๋ณธ ๊ตฌ์ฑ๊ณผ ์ธ์คํด์ค ๋ณ์๋ฅผ ์ค์ ํฉ๋๋ค.
์ ์์ค ์ฝ๋ ultralytics/nn/modules/conv.py
forward(x)
์ ๋ ฅ์ ์ปจ๋ณผ๋ฃจ์ ์ ํ์ฑํ๋ฅผ ์ฌ์ฉํ์ฌ ํฌ์๋ ํจ์ค๋ฅผ ์ ์ฉํ๊ณ , ์ ํ์ ์ผ๋ก ์ผ๊ด ์ ๊ทํ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
ultralytics.nn.modules.conv.SpatialAttention
๋ฒ ์ด์ค: Module
๊ณต๊ฐ ์ฃผ์ ๋ชจ๋.
์ ์์ค ์ฝ๋ ultralytics/nn/modules/conv.py
__init__(kernel_size=7)
์ปค๋ ํฌ๊ธฐ ์ธ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ณต๊ฐ ์ฃผ์ ๋ชจ๋์ ์ด๊ธฐํํฉ๋๋ค.
์ ์์ค ์ฝ๋ ultralytics/nn/modules/conv.py
forward(x)
๊ธฐ๋ฅ ์ฌ๋ณด์ ์ ์ํด ์ ๋ ฅ์ ์ฑ๋ ๋ฐ ๊ณต๊ฐ ์ฃผ์๋ฅผ ์ ์ฉํฉ๋๋ค.
ultralytics.nn.modules.conv.CBAM
๋ฒ ์ด์ค: Module
์ปจ๋ณผ๋ฃจ์ ๋ธ๋ก ์ฃผ์ ๋ชจ๋.
์ ์์ค ์ฝ๋ ultralytics/nn/modules/conv.py
__init__(c1, kernel_size=7)
์ฃผ์ด์ง ์ ๋ ฅ ์ฑ๋(c1)๊ณผ ์ปค๋ ํฌ๊ธฐ๋ก CBAM์ ์ด๊ธฐํํฉ๋๋ค.
ultralytics.nn.modules.conv.Concat
๋ฒ ์ด์ค: Module
์ฐจ์์ ๋ฐ๋ผ ํ ์ ๋ชฉ๋ก์ ์ฐ๊ฒฐํฉ๋๋ค.
์ ์์ค ์ฝ๋ ultralytics/nn/modules/conv.py
__init__(dimension=1)
ultralytics.nn.modules.conv.autopad(k, p=None, d=1)
ํจ๋๋ฅผ '๋์ผํ' ๋ชจ์ ์ถ๋ ฅ์ผ๋ก ์ ํํฉ๋๋ค.