crnn_layer
cnnκ³Ό rnnμ κ²°ν©ν layer μ λλ€.
rnnμμ fully connected μ°μ°μ convolutional μ°μ°μΌλ‘ λ°λμ΄μ§ κ² μΈμ λ±ν λ³νκ° μμ΅λλ€.
increment_layer
ν¨μ μ΄λ¦: increment_layer
μ λ ₯:
layer ν¬μΈν° l
int steps
λμ:
lμ output, delta, x, x_norm ν¬μΈν°λ₯Ό steps * l->outputs * l->batch λ§νΌ μ¦κ°μν΄
μ€λͺ :
μ΄ ν¨μλ λ―Έλλ°°μΉ μ²λ¦¬λ₯Ό μν΄ νμν ν¨μ μ€ νλλ‘, κ° λ μ΄μ΄μ ν¬μΈν°λ₯Ό λ―Έλλ°°μΉμ λ°λΌ μ μ ν μ΄λμμΌμ£Όλ μν μ ν©λλ€.
μ΄λμμΌμΌ νλ μμ steps * l->outputs * l->batch λ‘ κ³μ°λ©λλ€.
μ΄ ν¨μλ₯Ό μ¬μ©νλ©΄ ν λ²μ μ²λ¦¬ν΄μΌ νλ λ―Έλλ°°μΉμ ν¬κΈ°λ₯Ό μ‘°μ ν μ μμ΅λλ€.
forward_crnn_layer
ν¨μ μ΄λ¦: forward_crnn_layer
μ λ ₯:
layer l: CRNN λ μ΄μ΄
network net: λ μ΄μ΄κ° μν λ€νΈμν¬
λμ:
CRNN λ μ΄μ΄μ forward μ°μ°μ μννλ€.
μ λ ₯ λ°μ΄ν°λ₯Ό ν μ€ν μ© μ²λ¦¬νλ©°, μ λ ₯ λ μ΄μ΄, self λ μ΄μ΄, μΆλ ₯ λ μ΄μ΄λ₯Ό μ°¨λ‘λλ‘ κ±°μΉλ€.
κ° μ€ν μμ μ λ ₯, self λ μ΄μ΄μ μΆλ ₯μ λνμ¬ stateλ₯Ό ꡬνκ³ , μΆλ ₯ λ μ΄μ΄λ₯Ό κ±°μ³ μΆλ ₯μ κ³μ°νλ€.
κ° μ€ν μμ μ¬μ©λ λ μ΄μ΄μ μΈλ±μ€λ₯Ό 1μ© μ¦κ°μν¨λ€.
μ€λͺ :
CRNN(Convolutional Recurrent Neural Network)μ 컨볼루μ λ μ΄μ΄μ μν λ μ΄μ΄κ° κ²°ν©λ ꡬ쑰λ₯Ό κ°μ§λ λ₯λ¬λ λͺ¨λΈμ΄λ€.
μ΄ ν¨μλ CRNN λ μ΄μ΄μ forward μ°μ°μ μννλ ν¨μμ΄λ€.
μ λ ₯μΌλ‘λ CRNN λ μ΄μ΄μ λ μ΄μ΄κ° μν λ€νΈμν¬κ° λ€μ΄μ¨λ€.
ν¨μ λ΄λΆμμλ μ λ ₯ λ°μ΄ν°λ₯Ό ν μ€ν μ© μ²λ¦¬νλ©°, μ λ ₯ λ μ΄μ΄, self λ μ΄μ΄, μΆλ ₯ λ μ΄μ΄λ₯Ό μ°¨λ‘λλ‘ κ±°μΉλ€.
κ° μ€ν μμ μ λ ₯, self λ μ΄μ΄μ μΆλ ₯μ λνμ¬ stateλ₯Ό ꡬνκ³ , μΆλ ₯ λ μ΄μ΄λ₯Ό κ±°μ³ μΆλ ₯μ κ³μ°νλ€.
ν¨μ λ΄λΆμμλ κ° μ€ν μμ μ¬μ©λ λ μ΄μ΄μ μΈλ±μ€λ₯Ό 1μ© μ¦κ°μν¨λ€.
backward_crnn_layer
ν¨μ μ΄λ¦: backward_crnn_layer
μ λ ₯:
layer l: μμ νλ₯Ό μνν CRNN λ μ΄μ΄
network net: λ μ΄μ΄λ₯Ό ν¬ν¨νλ λ€νΈμν¬
λμ:
CRNN λ μ΄μ΄μ μμ νλ₯Ό μνν©λλ€.
λ¨Όμ , μ λ ₯ λ μ΄μ΄, self λ μ΄μ΄, output λ μ΄μ΄μ λν ν¬μΈν°λ₯Ό μ΄κΈ°νν©λλ€.
κ·Έλ° λ€μ, l.steps λ² λ°λ³΅νλ©΄μ κ° μ€ν μμ λ€μμ μνν©λλ€.
μ λ ₯ λ μ΄μ΄μ self λ μ΄μ΄μ μΆλ ₯ κ°μ ν©μ³μ l.stateμ μ μ₯ν ν, μΆλ ₯ λ μ΄μ΄μ μμ νλ₯Ό μνν©λλ€.
κ·Έ ν, self λ μ΄μ΄μ μμ νλ₯Ό μννκ³ , μ΄μ μ€ν μ self λ μ΄μ΄ μ λ°μ΄νΈ λΈνλ₯Ό νμ¬ μ€ν μ μ λ ₯ λ μ΄μ΄ μ λ°μ΄νΈ λΈνλ‘ λ³΅μ¬ν©λλ€.
λ§μ§λ§μΌλ‘, νμ¬ μ€ν μ μ λ ₯ λ°μ΄ν°μ λν μμ νλ₯Ό μνν©λλ€.
μ€λͺ :
μ΄ ν¨μλ CRNN λ μ΄μ΄μ μμ νλ₯Ό μννλ ν¨μλ‘, λ€νΈμν¬κ° νμ΅ μ€μΈ κ²½μ°μ μ¬μ©λ©λλ€.
lμ μμ νλ₯Ό μνν λ μ΄μ΄λ₯Ό λνλ΄λ layer ꡬ쑰체μ΄λ©°, netμ λ μ΄μ΄λ₯Ό ν¬ν¨νλ λ€νΈμν¬λ₯Ό λνλ΄λ network ꡬ쑰체μ λλ€.
μ΄ ν¨μλ κ° λ μ΄μ΄μ μΆλ ₯ κ°μ κ³μ°νκ³ λΈν κ°μ μ λ°μ΄νΈν©λλ€.
update_crnn_layer
ν¨μ μ΄λ¦: update_crnn_layer
μ λ ₯:
layer l: μ λ°μ΄νΈν CRNN λ μ΄μ΄
update_args a: μ λ°μ΄νΈμ μ¬μ©ν μΈμλ€ (learning rate, momentum λ±)
λμ:
μ£Όμ΄μ§ μ λ°μ΄νΈ μΈμλ€μ μ¬μ©νμ¬ μ λ ₯μΌλ‘ μ£Όμ΄μ§ CRNN λ μ΄μ΄μ input_layer, self_layer, output_layerλ₯Ό κ°κ° μ λ°μ΄νΈνλ ν¨μμ λλ€.
update_convolutional_layer ν¨μλ₯Ό νΈμΆνμ¬ κ° λ μ΄μ΄λ₯Ό μ λ°μ΄νΈν©λλ€.
μ€λͺ :
CRNN λ μ΄μ΄λ μ λ ₯ μνμ€λ₯Ό μ²λ¦¬νκΈ° μν 컨볼루μ λ μ΄μ΄μ RNN λ μ΄μ΄μ κ²°ν©μ λλ€.
μ΄ ν¨μλ κ·Έ μ€ μ»¨λ³Όλ£¨μ λ μ΄μ΄λ₯Ό μ λ°μ΄νΈνλ ν¨μμ λλ€.
μ΄ ν¨μλ μ λ ₯μΌλ‘ λ°μ update_argsλ₯Ό μ¬μ©νμ¬ κ° λ μ΄μ΄μ νλΌλ―Έν°λ₯Ό μ λ°μ΄νΈν©λλ€.
λ¨Όμ , input_layer, self_layer, output_layer κ°κ°μ λν΄ update_convolutional_layer ν¨μλ₯Ό νΈμΆνμ¬ κ·Έ λ μ΄μ΄μ νλΌλ―Έν°λ₯Ό μ λ°μ΄νΈν©λλ€.
μ΄ ν¨μλ 컨볼루μ λ μ΄μ΄μ νλΌλ―Έν°λ₯Ό μ λ°μ΄νΈνκΈ° μν΄ μ¬μ©λλ ν¨μμ λλ€.
make_crnn_layer
ν¨μ μ΄λ¦: make_crnn_layer
μ λ ₯:
int batch: λ°°μΉ ν¬κΈ°
int h: μ λ ₯ μ΄λ―Έμ§ λμ΄
int w: μ λ ₯ μ΄λ―Έμ§ λλΉ
int c: μ λ ₯ μ΄λ―Έμ§ μ±λ μ
int hidden_filters: μ¨κ²¨μ§ λ μ΄μ΄μμ μ¬μ©λλ νν° μ
int output_filters: μΆλ ₯ λ μ΄μ΄μμ μ¬μ©λλ νν° μ
int steps: μνμ€ κΈΈμ΄ (μ€ν μ)
ACTIVATION activation: νμ±ν ν¨μ μ ν
int batch_normalize: λ°°μΉ μ κ·ν μ¬λΆ
λμ:
CRNN λ μ΄μ΄λ₯Ό λ§λ€κ³ μ΄κΈ°νν©λλ€.
μ€λͺ :
μ΄ ν¨μλ μ λ ₯ μ΄λ―Έμ§μ λμ΄, λλΉ, μ±λ μ λ° μνμ€ κΈΈμ΄μ κ°μ μΈμλ₯Ό μ¬μ©νμ¬ CRNN(Convolutional Recurrent Neural Network) λ μ΄μ΄λ₯Ό λ§λλλ€.
μ΄ λ μ΄μ΄λ μ¨κ²¨μ§ λ μ΄μ΄μ μΆλ ₯ λ μ΄μ΄ κ°κ°μ λν΄ 3x3 컀λκ³Ό κ°μ νμ΄νΌνλΌλ―Έν°λ₯Ό μ¬μ©ν 1D 컨볼루μ λ μ΄μ΄λ₯Ό ν¬ν¨ν©λλ€.
μ΄ ν¨μλ μ΄λ¬ν λ μ΄μ΄λ₯Ό λ§λ€κ³ μ΄κΈ°νν ν CRNN λ μ΄μ΄λ₯Ό λ°νν©λλ€.
Last updated
Was this helpful?