layer
이 코드는 열거형(enum)으로 LAYER_TYPE이라는 타입을 정의하고 있습니다. LAYER_TYPE은 다양한 레이어 유형을 정의하고 있으며, 각 레이어 유형은 해당하는 이름으로 정의되어 있습니다.
다음은 각 레이어 유형과 그에 해당하는 이름입니다.
CONVOLUTIONAL: 컨볼루션(Convolution) 레이어
DECONVOLUTIONAL: 디컨볼루션(Deconvolution) 레이어
CONNECTED: 완전 연결(Fully Connected) 레이어
MAXPOOL: 맥스 풀링(Max Pooling) 레이어
SOFTMAX: 소프트맥스(Softmax) 레이어
DETECTION: 객체 검출(Detection) 레이어
DROPOUT: 드롭아웃(Dropout) 레이어
CROP: 크롭(Crop) 레이어
ROUTE: 루트(Route) 레이어
COST: 비용(Cost) 레이어
NORMALIZATION: 정규화(Normalization) 레이어
AVGPOOL: 평균 풀링(Average Pooling) 레이어
LOCAL: 로컬(Local) 레이어
SHORTCUT: 숏컷(Shortcut) 레이어
ACTIVE: 활성화(Activation) 레이어
RNN: 순환 신경망(Recurrent Neural Network) 레이어
GRU: 게이트 순환 유닛(Gated Recurrent Unit) 레이어
LSTM: 장단기 메모리(Long Short-Term Memory) 레이어
CRNN: 합성곱 순환 신경망(Convolutional Recurrent Neural Network) 레이어
BATCHNORM: 배치 정규화(Batch Normalization) 레이어
NETWORK: 네트워크(Network) 레이어
XNOR: 이진화(Binary) 레이어
REGION: 지역(Region) 레이어
YOLO: YOLO(You Only Look Once) 레이어
ISEG: 인스턴스 분할(Instance Segmentation) 레이어
REORG: 리오그(Reorg) 레이어
UPSAMPLE: 업샘플(Upsample) 레이어
LOGXENT: 로그-엔트로피(Log-entropy) 레이어
L2NORM: L2 노름(L2 Norm) 레이어
BLANK: 빈(Blank) 레이어
이 함수는 LAYER_TYPE이라는 열거형을 정의한 것이므로 입력값과 동작은 없습니다.
free_layer
함수 이름: free_layer
입력:
layer 구조체 (layer 타입 포인터 변수 l)
동작:
layer 구조체에서 동적으로 할당한 모든 메모리를 해제하는 함수.
DROPOUT 레이어인 경우 l.rand 변수만 해제하고 함수를 종료한다.
설명:
이 함수는 입력으로 전달된 layer 구조체에서 동적으로 할당된 모든 메모리를 해제한다.
할당된 메모리가 없는 경우 아무런 동작도 하지 않는다. DROPOUT 레이어인 경우 l.rand 변수만 해제하고 함수를 종료한다.
나머지 레이어의 경우, layer 구조체에서 사용하는 모든 변수를 순회하며 할당된 메모리가 있는 경우 메모리를 해제한다.
각 변수에 대한 메모리 해제는 malloc 함수를 사용하여 할당된 것과 동일한 방식으로 이루어진다.
Last updated