deconvolutional_layer
Deconvolutional Layer ๋?
deconvolution์ convolution์ ๋ฐ๋๋ก ์ฐ์ฐํฉ๋๋ค.
๊ธฐ์กด์ convolution์ ์ ๋ ฅ ํน์ง๋งต๊ณผ ํํฐ๋ฅผ ์ปจ๋ณผ๋ฃจ์ ์ฐ์ฐํ์ฌ ์ถ๋ ฅ ํน์ง๋งต์ ์์ฑํฉ๋๋ค. ์ด๋ก์ธํด ํน์ง๋งต์ ํฌ๊ธฐ๋ ์ค์ด๋ญ๋๋ค. deconvolution์ ์ด์ ๋ฐ๋๋ก ํน์ง๋งต์ ํฌ๊ธฐ๋ฅผ ์ฆ๊ฐ์ํต๋๋ค.
๊ฐํน deconvolution๊ณผ transpose convolution์ด ํท๊ฐ๋ฆฌ๋๋ฐ
๋ง์ฝ 5 x 5 ์ด๋ฏธ์ง๊ฐ stride๊ฐ 2, kernel size๊ฐ 3์ธ ์ปจ๋ณผ๋ฃจ์ ์ฐ์ฐ์ ํ๋ค๋ฉด 2 x 2 ์ถ๋ ฅ์ด ์์ฑ๋ฉ๋๋ค.
์ด ๊ณผ์ ์ ๋ฐ๋๋ก ํ๋ฉด ํ๋์ ํฝ์ ์์ 9๊ฐ์ ๊ฐ์ด ์์ฑ๋๋๋ก ์ํ์ ์ฐ์ฐ์ ๊ฑฐ๊พธ๋ก ํ๋ฉด deconvolution ์ ๋๋ค.
padding์ ์ถ๊ฐํฉ๋๋ค.
๊ฑฐ๊พธ๋ก ์ฐ์ฐ์ ํด์ ๋๋๋ฆฌ์ง๋ ์์ต๋๋ค.
์ถ๊ฐ์ ์ผ๋ก dilated convolution์ ์ฐ์ฐ๋์ ๋๋ฆฌ์ง ์๊ณ receptive field๋ฅผ ํฌ๊ฒ ๋ง๋๋ ํจ๊ณผ์ ์ธ ๋ฐฉ๋ฒ์ ๋๋ค.
get_workspace_size
"get_workspace_size" ํจ์๋ ๋ค์๊ณผ ๊ฐ์ ์ ๋ ฅ์ ๋ฐ์ต๋๋ค:
layer l: ๊ณ์ฐํ ๋ ์ด์ด์ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ layer ๊ตฌ์กฐ์ฒด
์ด ํจ์๋ ์ ๋ ฅ์ผ๋ก ๋ฐ์ ๋ ์ด์ด์ ํ์ํ workspace์ ํฌ๊ธฐ๋ฅผ ๊ณ์ฐํ์ฌ ๋ฐํํฉ๋๋ค. ๊ณ์ฐ ๋ฐฉ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
๋ ์ด์ด์ ๋์ด(l.h), ๋๋น(l.w), ํํฐ ํฌ๊ธฐ(l.size), ํํฐ ๊ฐ์(l.n)๋ฅผ ์ด์ฉํ์ฌ workspace ํฌ๊ธฐ๋ฅผ ๊ณ์ฐํฉ๋๋ค.
๊ณ์ฐ๋ ํฌ๊ธฐ๋ float ์๋ฃํ์ ํฌ๊ธฐ์ ๊ณฑํ์ฌ ๋ฐํํฉ๋๋ค.
bilinear_init
ํจ์ ์ด๋ฆ: bilinear_init
์ ๋ ฅ:
l: layer ํ์
๋์:
Bilinear interpolation์ ์ํ layer์ weights๋ฅผ ์ด๊ธฐํํ๋ค.
๊ฐ๊ฐ์ filter์ ๋ํด 2D bilinear interpolation kernel์ ๋ง๋ค์ด weights ๊ฐ์ ํ ๋นํ๋ค.
์ค๋ช :
์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง layer์ weights๋ฅผ ์ด๊ธฐํํ๋ค.
์ด ๋, ๊ฐ filter์ ๋ํด 2D bilinear interpolation kernel์ ๋ง๋ค์ด์ weights ๊ฐ์ ํ ๋นํ๋ค.
์ด kernel์ center๋ฅผ ๊ธฐ์ค์ผ๋ก x, y ์ถ ๋ฐฉํฅ์ผ๋ก์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ์ฐํ์ฌ weight ๊ฐ์ ํ ๋นํ๊ฒ ๋๋ค.
๋ฐ๋ผ์, ํด๋น ํจ์์์๋ filter์ ๊ฐ์, ํฌ๊ธฐ, ๊ทธ๋ฆฌ๊ณ center๋ฅผ ์ด์ฉํ์ฌ 2D bilinear interpolation kernel์ ์์ฑํ๊ณ , ์ด๋ฅผ ์ด์ฉํ์ฌ weights ๊ฐ์ ํ ๋นํ๋ค.
forward_deconvolutional_layer
ํจ์ ์ด๋ฆ: forward_deconvolutional_layer
์ ๋ ฅ:
const layer l: ๋์ปจ๋ณผ๋ฃจ์ ๋ ์ด์ด ์ ๋ณด๋ฅผ ๋ด์ ๊ตฌ์กฐ์ฒด
network net: ๋คํธ์ํฌ ์ ๋ณด๋ฅผ ๋ด์ ๊ตฌ์กฐ์ฒด
๋์:
๋์ปจ๋ณผ๋ฃจ์ ๋ ์ด์ด๋ฅผ ํตํด ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํํ์ฌ ์ถ๋ ฅ๊ฐ์ ๊ณ์ฐํจ
๋จผ์ , ์ ๋ ฅ๊ฐ๊ณผ ๊ฐ์ค์น๋ฅผ ํ๋ ฌ ๊ณฑ์ ํ์ฌ ์ถ๋ ฅ๊ฐ์ ๊ณ์ฐํจ
๊ทธ ํ, col2im ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ถ๋ ฅ๊ฐ์ 4D ํ ์๋ก reshape ํจ
batch normalization์ด ์ค์ ๋์ด ์์ผ๋ฉด forward_batchnorm_layer ํจ์๋ฅผ ํธ์ถํ์ฌ ์ถ๋ ฅ๊ฐ์ ์ ๊ทํ ํจ
๊ทธ๋ ์ง ์์ผ๋ฉด, ์ถ๋ ฅ๊ฐ์ bias๋ฅผ ๋ํ์ฌ ์ถ๋ ฅ๊ฐ์ ๊ณ์ฐํจ
๋ง์ง๋ง์ผ๋ก, ํ์ฑํ ํจ์๋ฅผ ์ ์ฉํ์ฌ ์ต์ข ์ถ๋ ฅ๊ฐ์ ๊ณ์ฐํจ
์ค๋ช :
๋์ปจ๋ณผ๋ฃจ์ ๋ ์ด์ด๋ ํฉ์ฑ๊ณฑ ์ฐ์ฐ๊ณผ ๋ฐ๋๋ก ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํํ์ฌ ์ถ๋ ฅ๊ฐ์ ๊ณ์ฐํ๋ ๋ ์ด์ด์ด๋ค.
์ ๋ ฅ๊ฐ๊ณผ ๊ฐ์ค์น๋ฅผ ํ๋ ฌ ๊ณฑ์ ํ์ฌ ์ถ๋ ฅ๊ฐ์ ๊ณ์ฐํ๋ ๊ณผ์ ์์๋, col2im ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ถ๋ ฅ๊ฐ์ 4D ํ ์๋ก reshape ํด์ค๋ค.
batch normalization์ด ์ค์ ๋์ด ์์ผ๋ฉด, forward_batchnorm_layer ํจ์๋ฅผ ํธ์ถํ์ฌ ์ถ๋ ฅ๊ฐ์ ์ ๊ทํํ๋ค.
๊ทธ๋ ์ง ์์ผ๋ฉด, bias๋ฅผ ๋ํ์ฌ ์ถ๋ ฅ๊ฐ์ ๊ณ์ฐํ๊ณ , ๋ง์ง๋ง์ผ๋ก ํ์ฑํ ํจ์๋ฅผ ์ ์ฉํ์ฌ ์ต์ข ์ถ๋ ฅ๊ฐ์ ๊ณ์ฐํ๋ค.
backward_deconvolutional_layer
ํจ์ ์ด๋ฆ: backward_deconvolutional_layer
์ ๋ ฅ:
layer l: ๋์ปจ๋ณผ๋ฃจ์ ๋ ์ด์ด ๊ตฌ์กฐ์ฒด
network net: ๋คํธ์ํฌ ๊ตฌ์กฐ์ฒด
๋์:
๋์ปจ๋ณผ๋ฃจ์ ๋ ์ด์ด์ ์ญ์ ํ(backpropagation) ์ํ
gradient_array ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ธํ(delta) ๊ฐ์ ๊ตฌํ๊ณ , ๋ฐฐ์น ์ ๊ทํ(batch normalization)๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ backward_batchnorm_layer ํจ์๋ฅผ ํธ์ถํ๊ณ , ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ backward_bias ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํธํฅ(bias) ๊ฐ์ ์ ๋ฐ์ดํธํจ
๋คํธ์ํฌ์ ๋ธํ(delta) ๊ฐ์ 0์ผ๋ก ์ด๊ธฐํํ๊ณ , im2col_cpu ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ธํ(delta) ๊ฐ์ 4์ฐจ์ ํ ์์์ 2์ฐจ์ ํ๋ ฌ๋ก ๋ณํํจ
gemm_cpu ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ ฅ๊ฐ๊ณผ ๋ณํ๋ ๋ธํ(delta) ๊ฐ์ ํ๋ ฌ ๊ณฑ์ ํ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ค์น(weight) ์ ๋ฐ์ดํธ์ ์ฌ์ฉ๋ ํ๋ ฌ๋ก ๋ณํํจ
๋คํธ์ํฌ์ ๋ธํ(delta) ๊ฐ์ gemm_cpu ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ฐ์ดํธํจ
์ค๋ช :
๋์ปจ๋ณผ๋ฃจ์ ๋ ์ด์ด์ ์ญ์ ํ๋ ๋ ์ด์ด์ ์ถ๋ ฅ๊ฐ๊ณผ ๋ธํ ๊ฐ์ ์ฌ์ฉํ์ฌ ๊ฐ์ค์น(weight)์ ํธํฅ(bias)์ ์ ๋ฐ์ดํธํ๋ ๊ณผ์ ์ ๋งํฉ๋๋ค.
์ด ํจ์์์๋ ๋ ์ด์ด์ ์ถ๋ ฅ๊ฐ์์ gradient_array ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ธํ ๊ฐ์ ๊ตฌํ๊ณ , ๋ฐฐ์น ์ ๊ทํ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ backward_batchnorm_layer ํจ์๋ฅผ ํธ์ถํ์ฌ ๋ฐฐ์น ์ ๊ทํ ๊ณ์ธต์ ์ญ์ ํ๋ฅผ ์ํํฉ๋๋ค. ๋ฐฐ์น ์ ๊ทํ๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ์๋ backward_bias ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํธํฅ ๊ฐ์ ์ ๋ฐ์ดํธํฉ๋๋ค.
์ดํ, ๋ธํ ๊ฐ์ 4์ฐจ์ ํ ์์์ 2์ฐจ์ ํ๋ ฌ๋ก ๋ณํํ ๋ค, gemm_cpu ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ ฅ๊ฐ๊ณผ ๊ณฑ์ ์ ์ํํ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ค์น(weight) ์ ๋ฐ์ดํธ์ ์ฌ์ฉ๋ ํ๋ ฌ๋ก ๋ณํํฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก, ๋คํธ์ํฌ์ ๋ธํ(delta) ๊ฐ์ gemm_cpu ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ฐ์ดํธํฉ๋๋ค.
update_deconvolutional_layer
ํจ์ ์ด๋ฆ: update_deconvolutional_layer
์ ๋ ฅ:
layer l: ์ ๋ฐ์ดํธํ ๋์ปจ๋ฒ๋ฃจ์ ๋ ์ด์ด
update_args a: ์ ๋ฐ์ดํธ๋ฅผ ์ํ ์ธ์๋ค(learning_rate, momentum, decay, batch ๋ฑ)
๋์:
l.bias_updates์ l.scale_updates๋ฅผ ์ด์ฉํ์ฌ l.biases์ l.scales๋ฅผ ์ ๋ฐ์ดํธํจ
l.weight_updates๋ฅผ ์ด์ฉํ์ฌ l.weights๋ฅผ ์ ๋ฐ์ดํธํจ
์ ๋ฐ์ดํธ์ ์ฌ์ฉ๋๋ ์ธ์๋ค(learning_rate, momentum, decay, batch)์ ์ด์ฉํ์ฌ ์ ๋ฐ์ดํธ ๊ณผ์ ์ ์กฐ์ ํจ
์ค๋ช :
๋์ปจ๋ฒ๋ฃจ์ ๋ ์ด์ด์ ๊ฐ์ค์น, ํธํฅ, ์ค์ผ์ผ ๋ฑ์ ์ ๋ฐ์ดํธํ๋ ํจ์์
์ ๋ฐ์ดํธ์ ํ์ํ ์ธ์๋ค(learning_rate, momentum, decay, batch)์ ์ ๋ ฅ๋ฐ์ ์ฌ์ฉํจ
ํธํฅ ์ ๋ฐ์ดํธ: l.bias_updates์ l.biases๋ฅผ ์ด์ฉํ์ฌ ์ ๋ฐ์ดํธํจ. learning_rate์ batch๋ฅผ ์ด์ฉํ์ฌ ์กฐ์ ํ๊ณ , momentum์ ์ด์ฉํ์ฌ ์ด์ ์ ๋ฐ์ดํธ ๊ฐ๊ณผ์ ๋น์จ์ ๊ฒฐ์ ํจ
์ค์ผ์ผ ์ ๋ฐ์ดํธ: l.scales๊ฐ ์กด์ฌํ๋ฉด l.scale_updates์ l.scales๋ฅผ ์ด์ฉํ์ฌ ์ ๋ฐ์ดํธํจ. ํธํฅ ์ ๋ฐ์ดํธ์ ๋์ผํ ๋ฐฉ์์ผ๋ก ์งํํจ
๊ฐ์ค์น ์ ๋ฐ์ดํธ: l.weight_updates์ l.weights๋ฅผ ์ด์ฉํ์ฌ ์ ๋ฐ์ดํธํจ. decay์ batch๋ฅผ ์ด์ฉํ์ฌ ๊ฐ์ค์น ๊ฐ์์ ์ค์ผ์ผ ์กฐ์ ์ ํจ. learning_rate๋ฅผ ์ด์ฉํ์ฌ ์ ๋ฐ์ดํธ ๋น์จ์ ๊ฒฐ์ ํ๊ณ , momentum์ ์ด์ฉํ์ฌ ์ด์ ์ ๋ฐ์ดํธ ๊ฐ๊ณผ์ ๋น์จ์ ๊ฒฐ์ ํจ
resize_deconvolutional_layer
ํจ์ ์ด๋ฆ: resize_deconvolutional_layer
์ ๋ ฅ:
layer *l: ํฌ๊ธฐ๊ฐ ์กฐ์ ๋ deconvolutional layer์ ํฌ์ธํฐ
int h: ์กฐ์ ๋ ๋์ด
int w: ์กฐ์ ๋ ๋๋น
๋์:
deconvolutional layer์ ๋์ด์ ๋๋น๋ฅผ ์กฐ์ ํ๊ณ , ๊ทธ์ ๋ฐ๋ผ ์ถ๋ ฅ, ๋ธํ, x, x_norm ๋ฐ workspace์ ํฌ๊ธฐ๋ ์กฐ์ ํฉ๋๋ค.
์ค๋ช :
์ด ํจ์๋ ์ ๋ ฅ์ผ๋ก ๋ฐ์ deconvolutional layer์ ๋์ด์ ๋๋น๋ฅผ ์กฐ์ ํ๊ณ , ์ถ๋ ฅ, ๋ธํ, x, x_norm ๋ฐ workspace์ ํฌ๊ธฐ๋ ์กฐ์ ํฉ๋๋ค.
๋์ด์ ๋๋น๊ฐ ์กฐ์ ๋๋ฉด, ์ถ๋ ฅ์ ๋์ด์ ๋๋น, ์ ๋ ฅ ๋ฐ ์ถ๋ ฅ์ ์ ์ฒด ํฌ๊ธฐ๊ฐ ๋ฐ๋๋๋ค.
์ด์ ๋ฐ๋ผ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ค์ ํ ๋นํด์ผ ํฉ๋๋ค. ํจ์๋ realloc()์ ์ฌ์ฉํ์ฌ ๊ฐ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๋ํด ์๋ก์ด ํฌ๊ธฐ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ค์ ํ ๋นํฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก, ์๋ก์ด workspace์ ํฌ๊ธฐ๋ฅผ ๊ณ์ฐํฉ๋๋ค.
make_deconvolutional_layer
ํจ์ ์ด๋ฆ: make_deconvolutional_layer
์ ๋ ฅ:
batch: ๋ ์ด์ด๋ฅผ ์ ์ฉํ ์ด๋ฏธ์ง์ ๊ฐ์
h: ์ ๋ ฅ ์ด๋ฏธ์ง์ ๋์ด
w: ์ ๋ ฅ ์ด๋ฏธ์ง์ ๋๋น
c: ์ ๋ ฅ ์ด๋ฏธ์ง์ ์ฑ๋ ์
n: ํํฐ ๊ฐ์
size: ํํฐ์ ๋์ด์ ๋๋น
stride: ํํฐ๋ฅผ ์ ์ฉํ๋ ๊ฐ๊ฒฉ
padding: ์ ๋ ฅ ์ด๋ฏธ์ง ์ฃผ์์ ์ถ๊ฐ๋๋ ํจ๋ฉ์ ํฌ๊ธฐ
activation: ํ์ฑํ ํจ์์ ์ข ๋ฅ
batch_normalize: ๋ฐฐ์น ์ ๊ทํ๋ฅผ ์ฌ์ฉํ๋์ง ์ฌ๋ถ
adam: Adam ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋์ง ์ฌ๋ถ
๋์:
์ ๋ ฅ์ผ๋ก ๋ฐ์ ์ ๋ณด๋ฅผ ์ฌ์ฉํ์ฌ deconvolutional ๋ ์ด์ด๋ฅผ ์์ฑํ๊ณ ์ด๊ธฐํํ ํ, ํด๋น ๋ ์ด์ด๋ฅผ ๋ฐํํ๋ค.
์ค๋ช :
make_deconvolutional_layer ํจ์๋ ์ ๋ ฅ ์ด๋ฏธ์ง์ ๋ํด deconvolutional ์ฐ์ฐ์ ์ํํ๋ ๋ ์ด์ด๋ฅผ ์์ฑํ๋ค.
์ ๋ ฅ์ผ๋ก ๋ฐ์ batch, h, w, c, n, size, stride, padding, activation, batch_normalize, adam ๋ฑ์ ์ ๋ณด๋ฅผ ์ฌ์ฉํ์ฌ ๋ ์ด์ด๋ฅผ ์ด๊ธฐํํ๊ณ ํ์ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ ๋นํ๋ค.
์ดํ ๋ ์ด์ด๋ฅผ ๋ฐํํ๋ฉฐ, ๋ฐํ๋ ๋ ์ด์ด๋ convolutional ๋ ์ด์ด์ ๋ง์ฐฌ๊ฐ์ง๋ก forward, backward, update ํจ์๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
์ถ๋ ฅ ์ด๋ฏธ์ง์ ํฌ๊ธฐ๋ ์ ๋ ฅ์ผ๋ก ๋ฐ์ ์ ๋ณด์ forward ํจ์์์ ๊ณ์ฐ๋์ด ๊ฒฐ์ ๋๋ค.
๋ํ, batch_normalize์ adam ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์ ํ์ํ ๋ณ์๋ค๋ ์ด๊ธฐํํ๋ค.
ํจ์๊ฐ ์คํ๋๋ฉด, ์์ฑ๋ ๋ ์ด์ด์ ์ ๋ณด๋ฅผ ์ถ๋ ฅํ๋ค.
denormalize_deconvolutional_layer
ํจ์ ์ด๋ฆ: denormalize_deconvolutional_layer
์ ๋ ฅ:
layer l (deconvolutional layer)
๋์:
๋ฐฐ์น ์ ๊ทํ๋ฅผ ์ํํ ํ์ ๋คํธ์ํฌ์ ์ถ๋ ฅ ๊ฐ์ ๋ค์ ์๋์ ๋ถํฌ๋ก ๋๋ฆฌ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ํจ์์ ๋๋ค.
์ด ํจ์๋ ํ ์คํธ ์์ ์ฌ์ฉ๋ฉ๋๋ค. ๋ฐฐ์น ์ ๊ทํ๋ฅผ ํตํด ์ค์ผ์ผ๋ง ๋ฐ ์ด๋ํ ๊ฐ์ค์น ๋ฐ ํธํฅ ๊ฐ์ ์๋์ ๊ฐ์ผ๋ก ๋๋๋ฆฝ๋๋ค.
์ด ํจ์๋ ๋ฐ๋์ forward ํจ์ ํธ์ถ ์ดํ์ ํธ์ถ๋์ด์ผ ํฉ๋๋ค.
์ค๋ช :
i, j: ๋ฐ๋ณต๋ฌธ์ ์ํ ์ธ๋ฑ์ค ๋ณ์
scale: ๋ฐฐ์น ์ ๊ทํ์์ ์ฌ์ฉํ ์ค์ผ์ผ๋ง ๋ฐ ์ด๋ ๊ฐ์ ๋๋๋ฆฌ๊ธฐ ์ํ ์ค์ผ์ผ ๊ฐ
l.scales[i]/sqrt(l.rolling_variance[i] + .00001): ์ค์ผ์ผ ๊ฐ ๊ณ์ฐ
l.weights[il.cl.size*l.size + j] *= scale: ๊ฐ์ค์น ๊ฐ์ ์ค์ผ์ผ ๊ฐ์ ๊ณฑํ์ฌ ๋๋๋ฆผ
l.biases[i] -= l.rolling_mean[i] * scale: ํธํฅ ๊ฐ์ ์ค์ผ์ผ ๊ฐ์ ๊ณฑํ ๋กค๋ง ํ๊ท ๊ฐ์ ๋นผ์ ๋๋๋ฆผ
l.scales[i] = 1: ์ค์ผ์ผ ๊ฐ ์ด๊ธฐํ
l.rolling_mean[i] = 0: ๋กค๋ง ํ๊ท ๊ฐ ์ด๊ธฐํ
l.rolling_variance[i] = 1: ๋กค๋ง ๋ถ์ฐ ๊ฐ ์ด๊ธฐํ
Last updated
Was this helpful?