목록딥러닝 (13)
Deep CV
gpu가 8개인 서버에서 5,6,7,8번 째 gpu에만 데이터 병렬처리를 하려고 하는데 아래 오류가 있었다.RuntimeError: module must have its parameters and buffers on device cuda:4 (device_ids[0]) but found one of them on device: cuda:0 model = nn.DataParallel(model, device_ids=gpus).cuda()gpus는 (4,5,6,7) 이었다. 문제는 모델을 gpus[0]으로 옮긴 후 장치를 지정하지 않고 .cuda()를 호출하면 모델이 기본 GPU(일반적으로 cuda:0)로 전송되어 지정한 기본 장치와 불일치가 발생한다는 것입니다. 이를 수정하려면 DataParallel..
systemctl isolate graphical 에러 failed to initialize nvml driver/library version mismatch NVML library version: 535.86 해결과정 옛날 해결법을 참고하면 재부팅 혹은 관련 엔비디아 모듈(nvidia-drm)을 종료하라고 한다. 그러나 재부팅을 해도 안 되고 모듈을 종료해도 안 된다. 오히려 모듈을 종료하면 nvidia smi has failed because it couldn't communicate with the nvidia driver 라는 새로운 에러가 발생한다. 자동 업데이트 등의 이유로 535.54에서 535.86 업데이트 되면서 문제가 생긴 것 같은데 정확하진 않다... 해결법 sudo apt --fix..
timm 버전 때문에 발생한 문제로 에러가 발생한 위치의 파일에 들어간 후 from torch._six import container_abcs 부분을 from collections import abc as container_abcs 로 변경하면 해결됩니다.

Object Detection에서는 BBOX의 positive sample과 Negative sample을 정의하는 알고리즘이 중요합니다. ATSS는 Hyperparameter가 필요 없다. 1. g(ground-truth box)의 positive sample 후보를 정한다. 각 pyramid level 마다 g와 가장 가까운 k개의 anchor box를 구한다. g의 center 그리고 anchor box의 center와의 L2 distance 이용 결국 하나의 ground-truth box g는 k×L개의 positive sample 후보(Cg)가 생긴다. 2. ground truth g와 후보들(Cg)간의 IoU를 계산한다=Dg. 그 후 mg=mean(Dg)과 Vg=standard deviatio..

다른 Deformable에 대한 글이 많아 간단하게 실제로 어떻게 적용 하는지 정리 해보겠습니다. 컨불루션이라는게 사실은 아래 식 같이 나타낼 수 있고 즉, 1의 거리들과 연산을 한 결과라고 할 수 있습니다. 여기서 offset을 줘서 1이 아닌 (0, 1.5), (-0.5, 3)도 될 수 있습니다. 그래서 도입된게 델타 Pn입니다.(대부분 소수) Offset을 구하기 위한 Branch 하나가 나와서 Conv layer를 통과시켜 Offset을 구하고 이걸 적용해서 Conv 해서 Output이 나옵니다.(파란 선 부분분과 offset field가 만나는 곳에서 Conv를 한다고 생각하시면 됩니다.) 추가적으로 Deformable RoI Pooling도 마찬가지로 Offset을 주는 것인데 차이점은 Con..