이제껏 시리즈에서 데이터를 가공하고 로드하는 걸 객체지향적으로 만들어놨다. 대부분의 참고자료는 재생산성을 무시한 절차적 프로그램에 가깝다고 생각한다. 절차지향적으로 코드를 구성하는 건 너무 쉬운 일이지만 이번엔 최대한 객체지향적으로 만들어보려 하기 때문에 미리 CNN 구성을 만들어 놓고 분해해 하나씩 책임을 지는 클래스를 만들어보자.
내가 학계에서 일하는 사람이 아니라 최신 동향에 대해선 모른다. 취준생이라 gpt4에 최신 CNN 모델을 여러개 추천받고 모두 읽어본뒤 진행할 예정이다.
Vision Transformer (ViT)
Swin Transformer
ConvNeXt
EfficientNet
ResNeXt
DenseNet
DeiT (Data-efficient Image Transformers)
ResNeSt
T2T-ViT (Tokens-to-Token Vision Transformer)
RegNet
EfficientNetV2
BoTNet (Bottleneck Transformers)
PiT (Pooling-based Vision Transformer)
MobileNet
MobileNetV2
EfficientNet (특히 작은 버전들)
GhostNet
SqueezeNet
EfficientNet-Lite
NASNet (Neural Architecture Search Network)
ProxylessNAS
MobileNetV3
ShuffleNetV2
TinyML
FBNet
이렇게 추천 받았는데 이 중 하나를 선택해서 적용해볼 계획이다.
우선 내 이번 프로젝트와 다음 프로젝트는 분류 - 노이즈 제거 - 음성 인식을 이용한 보안인증
이렇게 모델을 만들고 웹으로 서비스 할 거니까 경량화된 모델을 위주로 만들 것 같다.
아마 모델을 살펴보느라 시간이 많이 걸릴 듯