본문 바로가기

분류 전체보기96

[논문 리뷰] SAM(Segment Anything) 요약, 코드, 구현 논문을 상세히 번역하고 한단어씩 해석해주는 포스팅은 많다. 나는 논문을 누구나 알아듣도록 쉽고 간결하게 전달하고자 한다. SAM(Segment Anything) Segment Aything KIRILLOV, Alexander, et al. Segment anything. arXiv preprint arXiv:2304.02643, 2023. 논문 원문 링크 저자의 의도 NLP에는 GPT같은 패러다임을 바꾸는 혁신적인 모델이 있다. 그러나 CV에는 여전히 그런 모델이 등장하지 않고 있다. CV의 Foundation Model을 디자인 해보자. (zero-shot transfer) 이 모델을 학습시키기 위한 초거대 segmentation dataset을 만들어보자. 기존 문제점 NLP의 거대한 capabili.. 2023. 9. 13.
파이썬 리스트 2개 한번에 for문 돌리기 파이썬으로 다양한 코드를 짜다 보면 리스트를 정말 많이 사용한다. 특히 계속 꺼내서 쓰는 일이 많아서 그런데, 서로 다른 2개의 리스트에서 꺼내 쓸 일이 생긴다. 예를들어 아래처럼 파이토치에서 loss를 별도로 계산하고자 할 때 생긴다. output 여러개, label 여러개를 가져왔는데 하나씩 꺼내서 loss를 계산해야 된다. 대충 이런 상황에서 다음과 같이 코딩하면 에러가 난다. for i, j in [1], [2]: print(i + j) 이럴땐 zip() 함수를 사용해서 묶어주면 파이썬이 알아먹는다. for i, j in zip([1], [2]): print(i + j) zip(리스트1, 리스트2, ....) 하면 된다. 끝. 2023. 7. 28.
Timm 라이브러리 모델명 정리 timm 라이브러리는 pre-trained 된 모델을 인스턴스해서 쓸 수 있다. 프리 트레이닝 하는 데이터셋의 양이 테라 수준이라 직접 하기는 좀... 그렇다. 페이지 공홈 https://timm.fast.ai/ 깃허브 공홈 https://github.com/huggingface/pytorch-image-models 구글같은 경우는 모든 모델의 학습 조건, 정확도 등을 상세하게 적어놔준다. 그런데 timm 라이브러리의 주인인 hugging face 친구들은 너무 불친절하다. (진심 킹받음) 그래도 어쩌겠나... 써야지 ㅠㅠ 일단 설치 pip install timm 그리고 이걸 인스턴스 하는 방법 # 방법1 model = timm.models.vit_base_patch16_224(pretrained=Tru.. 2023. 7. 19.
[논문 리뷰] MLP mixer 요약, 코드, 구현 논문을 상세히 번역하고 한단어씩 해석해주는 포스팅은 많다. 나는 논문을 누구나 알아듣도록 쉽고 간결하게 전달하고자 한다. MLP-Mixer MLP-Mixer: An all-MLP Architecture for Vision TOLSTIKHIN, Ilya O., et al. Mlp-mixer: An all-mlp architecture for vision. Advances in neural information processing systems, 2021, 34: 24261-24272. 논문 원문 링크 저자의 의도 CV 분야에서 가장 보편적인 모델 2개가 CNN과 Transformer 이다. 근데 근디 근대 저자의 관점은... convolution layer와 attention layer가 반드시 필요한건 .. 2023. 7. 15.
[논문 구현] ViT ImageNet 학습하는 방법 ImageNet 데이터셋을 받아야 한다. (이게 진짜 킹받는다 ^^) ImageNet 오피셜 홈페이지 https://image-net.org/download-images ImageNet Download ImageNet Data ImageNet does not own the copyright of the images. For researchers and educators who wish to use the images for non-commercial research and/or educational purposes, we can provide access through our site under certain conditions and image-net.org 선수입장 회원가입 이메일은 학교메일(마지막에.. 2023. 6. 8.
[논문 구현] ImageNet-21k 데이터셋 pre-training 방법 ViT는 트랜스포머의 일종이다.트랜스포머의 핵심은 초거대 파라미터를 운용하는 것인데,이를 위해 필수적인 것이 바로 pre-training이다. ViT는 기본적으로 ImageNet-21k에서 pre-training 하고,ImageNet-1k(2012)에서 fine-tuning한다.(이 포스팅에서는 ImageNet-1k가 아니라 21k를 찾는 법이니 혼동하지 않길 바랍니다.) 이런건 어디서 알 수 있냐면 라이브러리 깃허브를 참고하면 된다.https://github.com/google-research/vision_transformer 가끔... 아주 가끔... 이 pre-training을 직접 해야하는 괴랄한 상황이 생긴다.그래서 ImageNet-21k를 다운받아야 하는 곤란한 상황이 .. 2023. 6. 8.
[논문 리뷰] CoAtNet 요약, 코드, 구현 논문을 상세히 번역하고 한단어씩 해석해주는 포스팅은 많다. 나는 논문을 누구나 알아듣도록 쉽고 간결하게 전달하고자 한다. CoAtNet CoAtNet: Marrying Convolution and Attention for All Data Sizes DAI, Zihang, et al. Coatnet: Marrying convolution and attention for all data sizes. Advances in Neural Information Processing Systems, 2021, 34: 3965-3977. 논문 원문 링크 저자의 의도 효율적으로 CNN과 Self-attention의 장점만 결합해보자. Depth-wise Conv와 relative attention을 활용하면 두 구조를 합.. 2023. 5. 24.
Transformer confidence score 보는 방법 Transformer를 평가할 때 종종 confidence score가 사용된다. confidence score는 해당 클래스에 얼마나 확신이 있는지다. 즉 모델이 얼마나 자신있게 '이건 닭이야!!!!!!!!!!1' 라고 하는거다. 이 confidence score를 뽑아내는 방법을 알아보자. 이미지넷을 사용할껀데 Cifar-10같은 다른걸로 해도 무방하다. 나처럼 이미지넷으로 할거면 일단 다운부터 받자. [논문 구현] ViT ImageNet 평가 방법 | pytorch, timm 라이브러리, timm ViT ViT는 트랜스포머 중에서 그나마 간단한 형태이다. 실제로 구현하는게 그리 어렵지는 않다. 하지만.......... 논문에서 '대용량 pre-training'이 안된 ViT는 퍼포먼스가 상당히 떨어.. 2023. 5. 9.
ImageNet 원본 이미지 보는 방법 이미지넷 원본이 보고싶다면.... 일단 다운부터 받자. [논문 구현] ViT ImageNet 평가 방법 | pytorch, timm 라이브러리, timm ViT ViT는 트랜스포머 중에서 그나마 간단한 형태이다. 실제로 구현하는게 그리 어렵지는 않다. 하지만.......... 논문에서 '대용량 pre-training'이 안된 ViT는 퍼포먼스가 상당히 떨어진다고 나온다. 다시 davidlds.tistory.com 다음으로 데이터 로더를 설계해준다. transform_origin = transforms.Compose([ transforms.Resize(256), transforms.CenterCrop(224), transforms.ToTensor(), ]) origin_set = datasets.Image.. 2023. 5. 9.
이미지넷 클래스 파이썬 코드 이미지넷을 다루다보면 클래스를 써야할 때가 있다. 이미지넷의 각 클래스별 영문 스트링이다. 인덱스 -> 스트링 함수는 보너스다. CLASS_NAME = {0: 'tench, Tinca tinca', 1: 'goldfish, Carassius auratus', 2: 'great white shark, white shark, man-eater, man-eating shark, Carcharodon carcharias', 3: 'tiger shark, Galeocerdo cuvieri', 4: 'hammerhead, hammerhead shark', 5: 'electric ray, crampfish, numbfish, torpedo', 6: 'stingray', 7: 'cock', 8: 'hen', 9: 'o.. 2023. 5. 9.