local_layer
local_out_height
ํจ์ ์ด๋ฆ: local_out_height
์ ๋ ฅ:
local_layer l: ๋ก์ปฌ ๋ ์ด์ด ๊ตฌ์กฐ์ฒด
๋์:
์ ๋ ฅ์ผ๋ก ๋ฐ์ ๋ก์ปฌ ๋ ์ด์ด์ ๋์ด(height)์ ๋ํ ์ถ๋ ฅ ๋์ด(output height)๋ฅผ ๊ณ์ฐํ๋ค.
ํจ๋ฉ(padding)์ด ์ ์ฉ๋์ด ์์ง ์์ ๊ฒฝ์ฐ ํํฐ(filter) ํฌ๊ธฐ(size)๋งํผ ๋์ด๋ฅผ ์ค์ด๊ณ , ํจ๋ฉ์ด ์ ์ฉ๋ ๊ฒฝ์ฐ ๋์ด์์ 1๋งํผ ๋นผ์ค๋ค.
๊ทธ๋ฆฌ๊ณ ๋์ ์ถ๋ ฅ ๋์ด๋ฅผ ๊ณ์ฐํ๊ธฐ ์ํด stride๋ก ๋๋๊ณ 1์ ๋ํด์ค๋ค.
์ค๋ช :
์ด ํจ์๋ ๋ก์ปฌ ๋ ์ด์ด์ ์ถ๋ ฅ ๋์ด๋ฅผ ๊ณ์ฐํ๋ ํจ์๋ก, ํํฐ์ ์ ๋ ฅ ๋ฐ์ดํฐ์ ํฌ๊ธฐ, ์คํธ๋ผ์ด๋ ๋ฑ์ ์ ๋ณด๋ฅผ ์ด์ฉํด ๊ณ์ฐํ๋ค.
์ด ๊ณ์ฐ์ ๋ก์ปฌ ๋ ์ด์ด์ ์์ ํ(forward propagation) ๋จ๊ณ์์ ํ์ํ๋ฉฐ, ์ถ๋ ฅ ๋์ด๋ฅผ ๊ณ์ฐํ๋ ๊ฒ์ ์ถ๋ ฅ ๋ฐ์ดํฐ์ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ ํ๋ ์ค์ํ ์์ ์ค ํ๋์ด๋ค.
local_out_width
ํจ์ ์ด๋ฆ: local_out_width
์ ๋ ฅ:
local_layer l (๋ก์ปฌ ๋ ์ด์ด ๊ตฌ์กฐ์ฒด)
๋์:
๋ก์ปฌ ๋ ์ด์ด์ ์ถ๋ ฅ ๋๋น๋ฅผ ๊ณ์ฐํ์ฌ ๋ฐํํฉ๋๋ค.
์ค๋ช :
์ ๋ ฅ ์ด๋ฏธ์ง์ ๋ํด ๋ก์ปฌ ํํฐ๋ง์ ์ํํ ํ ์ถ๋ ฅ ์ด๋ฏธ์ง์ ๋๋น๋ฅผ ๊ณ์ฐํฉ๋๋ค.
๋๋น๋ ํจ๋ฉ์ด ์ ์ฉ๋ ๊ฒฝ์ฐ ์ ๋ ฅ ๋๋น์์ ํํฐ ํฌ๊ธฐ๋ฅผ ๋บ ๊ฐ์ 1์ ๋ํ ํ, ์คํธ๋ผ์ด๋๋ก ๋๋์ด ๊ณ์ฐ๋ฉ๋๋ค.
forward_local_layer
ํจ์ ์ด๋ฆ: forward_local_layer
์ ๋ ฅ:
const local_layer l
network net
๋์:
๋ก์ปฌ ๋ ์ด์ด์ ์์ ํ ์ฐ์ฐ์ ์ํํฉ๋๋ค.
์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ im2col ๋ฐฉ์์ผ๋ก ์ ์ฒ๋ฆฌํ๊ณ , ์ปค๋๊ณผ์ ํ๋ ฌ๊ณฑ์ ๊ณ์ฐํ์ฌ ์ถ๋ ฅ๊ฐ์ ์ป์ต๋๋ค.
๋ง์ง๋ง์ผ๋ก ํ์ฑํ ํจ์๋ฅผ ์ ์ฉํฉ๋๋ค.
์ค๋ช :
l: ๋ก์ปฌ ๋ ์ด์ด์ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ ๊ตฌ์กฐ์ฒด
net: ๋คํธ์ํฌ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ ๊ตฌ์กฐ์ฒด
out_h: ์ถ๋ ฅ๊ฐ์ ๋์ด
out_w: ์ถ๋ ฅ๊ฐ์ ๋๋น
locations: ์ถ๋ ฅ๊ฐ์ ์ ์ฒด ํฌ๊ธฐ
biases: ๋ก์ปฌ ๋ ์ด์ด์ ํธํฅ๊ฐ
input: ๋คํธ์ํฌ์ ์ ๋ ฅ ๋ฐ์ดํฐ
output: ๋ก์ปฌ ๋ ์ด์ด์ ์ถ๋ ฅ๊ฐ
weights: ๋ก์ปฌ ๋ ์ด์ด์ ๊ฐ์ค์น๊ฐ
a: ์ปค๋๊ณผ ์ ๋ ฅ๊ฐ์ ํ๋ ฌ๊ณฑํ๊ธฐ ์ํ ๋ฐฐ์ด
b: im2col ๋ฐฉ์์ผ๋ก ์ ์ฒ๋ฆฌ๋ ์ ๋ ฅ๊ฐ
c: ์ถ๋ ฅ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํ ๋ฐฐ์ด
m, n, k: ํ๋ ฌ๊ณฑ์ ์ํ ๋งค๊ฐ๋ณ์
activate_array: ํ์ฑํ ํจ์๋ฅผ ์ ์ฉํ๋ ํจ์
backward_local_layer
ํจ์ ์ด๋ฆ: backward_local_layer
์ ๋ ฅ:
local_layer ๊ตฌ์กฐ์ฒด l
network ๊ตฌ์กฐ์ฒด net
๋์:
local_layer๋ฅผ ์ญ์ ํํ๋ ํจ์์ ๋๋ค.
์ถ๋ ฅ๊ฐ์ ๋ํ ๋ธํ๋ฅผ ๊ณ์ฐํ๊ณ , ๋ฐ์ด์ด์ค ์ ๋ฐ์ดํธ ๋ฐ ๊ฐ์ค์น ์ ๋ฐ์ดํธ๋ฅผ ์ํํฉ๋๋ค.
์ดํ ์ ๋ ฅ๊ฐ์ ๋ํ ๋ธํ๋ฅผ ๊ณ์ฐํฉ๋๋ค.
์ค๋ช :
l.delta: ์ถ๋ ฅ๊ฐ์ ๋ธํ๋ฅผ ์ ์ฅํ๋ ๋ฐฐ์ด
l.bias_updates: ๋ฐ์ด์ด์ค ์ ๋ฐ์ดํธ๋ฅผ ์ ์ฅํ๋ ๋ฐฐ์ด
l.weight_updates: ๊ฐ์ค์น ์ ๋ฐ์ดํธ๋ฅผ ์ ์ฅํ๋ ๋ฐฐ์ด
net.workspace: im2col ์ฐ์ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ๋ ๋ฐฐ์ด
net.delta: ์ด์ ๋ ์ด์ด์ ๋ธํ๋ฅผ ์ ์ฅํ๋ ๋ฐฐ์ด
์ถ๋ ฅ๊ฐ์ ๋ํ ๋ธํ๋ฅผ ๊ณ์ฐํฉ๋๋ค.
๋ชจ๋ ๋ฐฐ์น์ ๋ํด ๋ฐ์ด์ด์ค ์ ๋ฐ์ดํธ๋ฅผ ์ํํฉ๋๋ค.
๋ชจ๋ ๋ฐฐ์น์ ๋ํด im2col ์ฐ์ฐ์ ์ํํฉ๋๋ค.
๋ชจ๋ ๋ฐฐ์น ๋ฐ ์์น์ ๋ํด ๊ฐ์ค์น ์ ๋ฐ์ดํธ๋ฅผ ์ํํฉ๋๋ค.
์ด์ ๋ ์ด์ด์ ๋ธํ๋ฅผ ๊ณ์ฐํ๊ณ net.delta ๋ฐฐ์ด์ ์ ์ฅํฉ๋๋ค.
update_local_layer
ํจ์ ์ด๋ฆ: update_local_layer
์ ๋ ฅ:
local_layer l: ๋ก์ปฌ ๋ ์ด์ด ๊ฐ์ฒด
update_args a: ์ ๋ฐ์ดํธ ์ธ์ ๊ฐ์ฒด
๋์:
๋ก์ปฌ ๋ ์ด์ด์ ๊ฐ์ค์น์ ํธํฅ์ ์ ๋ฐ์ดํธํ๋ ํจ์์ ๋๋ค.
์ ๋ฐ์ดํธ๋ ๊ฒฝ์ฌ ํ๊ฐ๋ฒ์ ์ฌ์ฉํ์ฌ ์ํ๋ฉ๋๋ค.
ํธํฅ์ ๋ฐฐ์น ํฌ๊ธฐ๋ก ๋๋ ํ์ต๋ฅ ๊ณผ ๋ชจ๋ฉํ ์ ์ฌ์ฉํ์ฌ ์ ๋ฐ์ดํธํ๊ณ , ๊ฐ์ค์น๋ ํ์ต๋ฅ ๊ณผ ๊ฐ์ค์น ๊ฐ์ , ๋ชจ๋ฉํ ์ ์ฌ์ฉํ์ฌ ์ ๋ฐ์ดํธํฉ๋๋ค.
์ค๋ช :
local_layer: ๋ก์ปฌ ๋ ์ด์ด ๊ฐ์ฒด๋ก, ๋ก์ปฌ ๋ ์ด์ด์ ์ถ๋ ฅ, ๊ฐ์ค์น, ํธํฅ ๋ฑ์ ์ ๋ณด๋ฅผ ์ ์ฅํฉ๋๋ค.
update_args: ์ ๋ฐ์ดํธ ์ธ์ ๊ฐ์ฒด๋ก, ํ์ต๋ฅ , ๋ชจ๋ฉํ , ๊ฐ์ค์น ๊ฐ์ , ๋ฐฐ์น ํฌ๊ธฐ ๋ฑ์ ์ ๋ฐ์ดํธ์ ํ์ํ ์ ๋ณด๋ฅผ ์ ์ฅํฉ๋๋ค.
axpy_cpu(): ๋ฒกํฐ ๋ง์ ๊ณผ ์ค์นผ๋ผ ๊ณฑ์ ์ํํ๋ ํจ์์ ๋๋ค.
scal_cpu(): ๋ฒกํฐ๋ฅผ ์ค์นผ๋ผ๋ก ๊ณฑํ๋ ํจ์์ ๋๋ค.
make_local_layer
ํจ์ ์ด๋ฆ: make_local_layer
์ ๋ ฅ:
int batch: ๋ฐฐ์น ํฌ๊ธฐ
int h: ์ ๋ ฅ ์ด๋ฏธ์ง ๋์ด
int w: ์ ๋ ฅ ์ด๋ฏธ์ง ๋๋น
int c: ์ ๋ ฅ ์ด๋ฏธ์ง ์ฑ๋ ์
int n: ํํฐ ์
int size: ํํฐ ํฌ๊ธฐ
int stride: ์คํธ๋ผ์ด๋
int pad: ํจ๋ฉ
ACTIVATION activation: ํ์ฑํ ํจ์
๋์:
๋ก์ปฌ ๋ ์ด์ด๋ฅผ ์์ฑํ๊ณ ์ด๊ธฐํํ ํ ๋ฐํํ๋ค.
์ค๋ช :
๋ก์ปฌ ๋ ์ด์ด๋ฅผ ์ด๊ธฐํํ๊ธฐ ์ํด ํ์ํ ํ๋ผ๋ฏธํฐ๋ฅผ ์ ๋ ฅ์ผ๋ก ๋ฐ๋๋ค.
๋ก์ปฌ ๋ ์ด์ด์ ์ถ๋ ฅ ํฌ๊ธฐ์ ํ์ํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณ์ฐํ๋ค.
๋ก์ปฌ ๋ ์ด์ด์ ๊ฐ์ค์น, ํธํฅ, ์ถ๋ ฅ, ๋ธํ, ๊ฐ์ค์น ์ ๋ฐ์ดํธ, ํธํฅ ์ ๋ฐ์ดํธ ๋ฑ์ ์ ์ฅํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๋ค.
๊ฐ์ค์น๋ sqrt(2./(sizesizec))๋ก ์ค์ผ์ผ๋ง๋ ๊ฐ์ผ๋ก ์ด๊ธฐํํ๋ฉฐ, ํธํฅ์ 0์ผ๋ก ์ด๊ธฐํํ๋ค.
๋ก์ปฌ ๋ ์ด์ด์ forward, backward, update ํจ์๋ฅผ ์ค์ ํ๋ค.
์ด๊ธฐํ๋ ๋ก์ปฌ ๋ ์ด์ด๋ฅผ ๋ฐํํ๋ค.
Last updated
Was this helpful?