ํจ๋ฉ
์ปจ๋ณผ๋ฃจ์ ์ฐ์ฐ์ ํ๋ ฌ
-
์ ์ด๋ฏธ์ง์ ํฌ๊ธฐ์ ํํฐ๋ฅผ ์ปจ๋ณผ๋ฃจ์ ์ฐ์ฐ ํ์ ๋ ๊ฒฐ๊ณผ์ ํฌ๊ธฐ๋ ์ด๋ค.
-
์ฆ ์ฐ์ฐ์ ๊ณ์ ํ ์๋ก ์ด๋ฏธ์ง๊ฐ ์ค์ด๋ค๊ฒ ๋๊ณ ์ด๋ ๋จ์ ์ผ๋ก ์์ฉํ ์ ์๋ค.
-
์ด๋ฏธ์ง ๊ตฌ์์ ์๋ ํฝ์ ์ ํ๋์ ํํฐ์๋ง ์ฐ์ฐ๋๋ฏ๋ก ์ ๋ณด๊ฐ ๋ฒ๋ ค์ง๋ค.
-
์ด๋ฐ ๋จ์ ์ด ์๊ธฐ ๋๋ฌธ์ ํจ๋ฉ ๊ธฐ์ ์ ๋์ ํ๋ค.
-
๊ธฐ์กด ์ด๋ฏธ์ง์ ํ ๋๋ฆฌ ํ ๊ฒน์ ๋ง๋์ด ์ฐ์ฐ ๊ฒฐ๊ณผ ํ๋ ฌ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ ์ ์๋ค.
padding_amount = 1
data = np.array([
[0, 0, 0, 10, 10, 10],
[0, 0, 0, 10, 10, 10],
[0, 0, 0, 10, 10, 10],
[0, 0, 0, 10, 10, 10],
[0, 0, 0, 10, 10, 10],
[0, 0, 0, 10, 10, 10]
])
data = np.pad(data, padding_amount, 'constant', constant_values=0)
# now data is
# [[ 0 0 0 0 0 0 0 0]
# [ 0 0 0 0 10 10 10 0]
# [ 0 0 0 0 10 10 10 0]
# [ 0 0 0 0 10 10 10 0]
# [ 0 0 0 0 10 10 10 0]
# [ 0 0 0 0 10 10 10 0]
# [ 0 0 0 0 10 10 10 0]
# [ 0 0 0 0 0 0 0 0]]
kernel = np.array([
[1, 0, -1],
[1, 0, -1],
[1, 0, -1]
])
result = conv2d(data, kernel)
print(result)
- Valid Convolution: ํจ๋ฉ์ ํ์ง ์๊ณ ์ปจ๋ณผ๋ธ ํ๋ ๊ฒ
- Same Convolution: ํจ๋ฉ์ ํตํด ์
๋ ฅ ๋ฐ์ดํฐ์ ๊ฒฐ๊ณผ ๋ฐ์ดํฐ์ ํฌ๊ธฐ๋ฅผ ๊ฐ๊ฒํ์ฌ ์ปจ๋ณผ๋ธ ํ๋ ๊ฒ
- ๋ ๊ฑฐ์ ๋ชจ๋ ๊ณณ์์ ํ์์