기존 WICWIU에 있던 Resnet에서는 basic block을 구성한 후, 이를 적층시켜 resnet을 구현하였다.
Inception Resnet의 구조는 이와 다르므로, reduction block과 inception block을 따로 구성해보자.
➡️ Block(종류별로 세분화)을 구성한 후, 이를 적층시켜 Inception Resnet을 구성한다.
stem 영역은 Inception Resnet class에서, block 구현은 basic block 클래스에서 하자.
블럭 클래스를 나눠야 할 듯?
--> 각각 클래스 별로 나눠서 구현하는걸로!
module class가 operator class를 상속받고 있는 구조.
각각의 블럭 클래스가 module class를 상속받아서 구현하기
torch.cat()
을 사용한다. (복수의 텐서 결합)Maxpooling2D(pInput, maskRow, maskCol, strideRow, strideCol, pName);
ConvolutionLayer2D(Operator* pInput, int pNumInputChannel,
int pNumOutputChannel, int pNumKernelRow, int pNumKernelCol,
int pStrideRow, int pStrideCol, int pPaddingRow, int pPaddingCol,
int use_bias, std::string pName);
Addall 은 skip connection할 때, Relu는 블럭 마지막에 다 넣어준 다음에 그래프를 만든다~~!~!~!
Block35
Block17
Block8
Reduction A
Reduction B