본문 바로가기

전체 글

(182)
[torch error] off-the-shelf 모델을 이식했는데 pretrained model 이 잘 동작하지 않을때 off-the-shelf 모델을 내 프로젝트에 이식했는데 돌아가기는 하지만 이식된 모델이 이상한 output 을 내보낼때가 있다. 이 때, 내가 무슨 실수를 한건지를 빠르게 되짚기 위해 디버깅 매뉴얼을 남기고자 한다. 1. 모델이 pretrained weight 를 잘 load 하는지 확인해본다. 2. 이미지가 제대로 load 되고 normalized image 를 입력하고 있는지 확인한다. 그리고 이 normalizing 방법은 off-the-shelf 모델이 학습에서 사용된 방법대로 적용되어야 한다. 3. model.eval() 했는지 확인한다. 4. 사실 모델은 잘 동작했는데 내가 시각화를 잘못한게 아닌지 확인한다. 예를 들어 출력된 mesh를 렌더링해서 확인하는 경우가 있다. 이럴 때 vertex..
[python error] plt.show() 해도 윈도우가 열리지 않는 경우 깃허브에 올라와있는 코드를 다루다가 시각화가 필요한 일이 있어 import matplotlib.pyplot as plt ''' code 주절주절 ''' plt.show() 를 실행했으나 에러가 발생한것도 아니고 그냥 plt 윈도우가 뜨지도 않고 코드가 수행되버리는 일이 발생했다. 결론부터 말하면 실행하면서 지나가는 코드 중 어딘가에 backend 모드를 활성화시키는 코드가 있는 것이다. 나 같은 경우에는 아래의 코드가 문제 원인이었다. import matplotlib matplotlib.use('Agg') 중요한것은 이 코드가 다루고 있는 .py 파일 안에 있지 않고 다른 파일에 있어도 backend 모드가 되어버리는 것이다. 물론 다른 모듈을 import 하는 과정에서 위 코드가 실행되었을 것이다. 어..
[pytorch] Pretrained model의 일부 weights만 가져오기 Pretrained model과 fine-tuning 할 모델의 구조가 다음과 같이 생겼다고 가정한다. 여기서 pretrained model의 backbone weights만 가져와서 학습하고 싶다면 코드를 어떻게 짜야할까? 별로 어렵지는 않지만 매번 새로 짜기 귀찮아서 과거에 내가 짰던 코드를 올려두고 계속 참고하고자 한다. 우선 pretrained model의 checkpoints를 불러와서 어떻게 생겼는지 확인해본다. state_dict = torch.load(args.resume_checkpoint, map_location=cpu_device) print(state_dict.keys())결과화면 (['backbone.0.weight', 'backbone.1.weight&#39..
[mmcv] MMCV, MMDection 설치 종종 Github Project에서 MMCV 관련 라이브러리 설치 방법에 대해 적어놓지 않아서 여기에 기록해둔다. Install mmcv-full pip install -U openmim pip install chardet mim install mmcv-fullInstall MMDectection git clone https://github.com/open-mmlab/mmdetection.git cd mmdetection pip install -r requirements/build.txt pip install -v -e .
[Transformer] torch.nn.MultiheadAttention 모듈의 mask 인자 개념 이 글은 다소 오류가 있을 수 있으니 틀린 내용을 발견하셨다면 언제라도 피드백 환영합니다. nn.MultiheadAttention 의 forward 인자는 다음과 같다. forward(query, key, value, key_padding_mask=None, need_weights=True, attn_mask=None, average_attn_weights=True) 이 중에서 mask 가 2개 있다는 점이 코드 구현중에 헷갈리는 부분이었다. mask는 각각 key_padding_mask, attn_mask 가 있고 이 둘의 차이는 무엇일까? Transformer는 본래 이미지처리 분야가 아닌 자연어처리 분야에서 고안된 모듈이다. 하지만 자연어처리에서 입력은 이미지처럼 입력 사이즈가 고정되지 않고, 문장..
[SMPL Pose] 상대적 회전 표현을 절대적 회전 표현으로 바꾸기 보호되어 있는 글입니다.
[좌표계 변환] 좌표계 변환, 좌표 변환 개념 공부 2023.07.12 수정 우선, 좌표계를 변환한다는 것은 좌표축을 변환한다는 것과 같은 말이다. 하지만 좌표계 변환과 좌표(점) 변환은 다른 말이고 서로 반대 변환이다. 이런 개념까지는 알고 있었으나 이 개념을 구현하려다 보니 막상 헷갈리는 개념들이 있어 살짝 기록하려고 한다. 지금까지 world 좌표계상에서 정의된 점을 camera 좌표계상에서 바라보았을때는 좌표가 몇으로 보일까? 를 풀기 위해서 다음의 수식을 이용해왔었다. Xw : 점 X를 World좌표계상에서 바라보았을때의 좌표 Xc : 점 X를 Camera 좌표계상에서 바라보았을때의 좌표 그런데 문제는 그럼 R,t 는 뭐지? R은 world 좌표축을 camera 좌표축으로 회전하는건가? 아니면 camera 좌표축을 world좌표축으로 회전하는 건..
[리눅스] ls 명령어 옵션 ls -ltr 위 명령어는 ls -l -t -r 명령어를 하나로 합쳐서 간결하게 표현한 것이다. -l 자세히 출력하기 -t 시간순으로 출력하기. 여기서 시간은 업데이트한 시간을 의미한다. -r 역순으로 출력하기.