
일반적으로 image classification 분야에서 새로운 model을 설계하는 것은 매우 어려운일이다.
그 이유는,
1) 단순하게 layer를 추가 구성해서 붙이는 과정으로는 model을 효율적으로 업그레이드 하는 것은 불가능함
2) 일반적으로 이미지 입력 크기의 경우 224-by-224 사이즈를 쓰게되는데 충분한 하드웨어 리소스 없이는 batch size를 백단위로 구성하는 것도 힘들며, batch size를 줄여서 학습을 하게 되면 모델 하나 학습하는데 몇일씩 걸리기 때문에 연구 개발 과정이 너무 길어지게 됨
따라서, image classification 분야에서는 주로 이미 개발된 뛰어난 model들을 가져와서 사용하게 된다.

(출처: https://paperswithcode.com/sota/image-classification-on-imagenet)
이렇게 위와 같이 뛰어난 사전 학습된 model들을 pytorch에서 활용하기 위한 timm 모듈을 추천한다. (https://rwightman.github.io/pytorch-image-models/)
활용방법은 간단하다.
1) 설치
pip install timm
2) 활용 (ex: convnext_tiny)
import timm
net = timm.models.convnext_tiny(pretrained=True)
일부 모델들은 pretrained=True를 사용할때 오류가 나기때문에 모든 모델을 활용하는 것은 불가능하지만
torchivision에서 제공하는 pretrained model보다 (https://pytorch.org/vision/stable/models.html)
timm이 더 많은 사전학습된 모델들을 제공하기 때문에 timm 모듈 사용을 추천한다.