map 클래스의 객체 a가 있다고 해보자. 그리고 이 객체가 const 화 되고 b라는 변수로 reference 됐다고 해보자. b에 대한 value 를 접근함에 있어 b["key"] 이런식으로 접근하면 에러가 난다. 내용은 error : passing '~' as 'this' argument discards qualifiers 뭐 이런 에러가 뜰 거다. 이유는 const 화 된 map 객체에 ["key"]로 접근하면 그 값을 수정할 여지가 발생하기 때문이다. value를 접근하는 다른 방법이 있다. 바로 .at 을 쓰는 것! b.at("key") 이렇게 접근하면 에러 없이 const화 된 map 객체의 value에 접근 가능하게된다. 참고 링크 https://daewonyoon.tistory.com/1..
Python 코드 짜다가 c++ 코드 짜게 되면 건드릴게 너무 많아서 고통스럽다. 팀에서 Conan을 사용해서 c++ 라이브러리 버전관리를 하는데 팀내에 세팅해둔 Conan remote 서버에 연결하는 거 부터해서... 여간 귀찮은 작업이 너무 많다. 게다가 설정해둔 원격지에서 패키지를 받아오는게 아니라 remote list에 등록된 우선순위에 따라 엄한데 가서 패키지를 받아오려다가 실패하는 경우가 있다. 그럴때 remote list 의 priority 를 변경해주는 작업이 필요하다. 관련 내용은 아래 링크에 자세히 정리 돼있다. https://docs.conan.io/en/1.18/faq/using.html 이를 위한 명령어는 아래와 같다. conan remote update [원격지 이름] [원격지 ..
yaml 패키지 설치 pip install PyYAML import os import yaml def parse_yaml(file_path, encoding="utf-8"): assert os.path.isfile(file_path) with open(file_path, "r", encoding=encoding) as f: dict_yaml = yaml.load(f, Loader=yaml.FullLoader) return dict_yaml encoding 을 utf-8 로 명시해준 건 yaml 파일내에 한글이 포함되어 있는 경우를 지원하기 위함
PyTorch 로 구현한 모델에 torch.gather 가 포함된 경우 ONNX 변환 시 ONNX 모델에 GatherElements 연산이 포함될 수 있다. onnx-tensorrt 프로젝트내에 Supported Operators에 관한 문서를 보면 GatherElements를 지원하나, TensorRT 버전에 따라 지원이 될 수도 있고 안될수도 있다. 적어도 7.2.1.6 버전에서는 지원이 안되는 것을 확인하였다. (ONNX2TensorRT 과정은 내가 맡은 부분이 아니라 확실하진 않다...) https://github.com/onnx/onnx-tensorrt/blob/master/docs/operators.md onnx/onnx-tensorrt ONNX-TensorRT: TensorRT backend..
기존에 Loss를 항상 float32타입으로 계산하도록 코드를 짰었다. 이유는 AMP를 쓸때 Loss를 float16타입으로 계산하면 정밀도가 떨어지고 오버플로우 문제가 발생할걸로 예상했기 때문... 근데 이렇게 하니까 AMP 사용해서 학습시키니 모델 성능이 크게 저하됨(VOC 데이터셋 기준 mAP 가 2.0 정도 드랍됨, 모델은 CenterNet-ResNet18 기준) 이부분을 모델 아웃풋 텐서의 타입으로 맞춰주니 성능 저하 없고 오히려 성능이 향상됨 아래 프로젝트 개발하다 해당 문제를 발견하게됨 https://github.com/developer0hye/Simple-CenterNet developer0hye/Simple-CenterNet PyTorch Implementation of CenterNet..
기존에 Single node, multiple GPUs System(그냥 PC 1대에 GPU 여러대 꽂힌 피시로 생각, pytorch 공식 문서에서 이렇게 표기했길래 따라 씀) 에서 multiple gpu 를 활용함에 있어 DataParallel 모듈을 활용했다. 그런데, 쓰다보니 GPU 메모리 불균형 문제가 너무 심해서 메모리가 쏠리는 한 GPU 가 터지지 않게 해당 GPU의 메모리 사용량에 배치사이즈를 맞추다보니 다수개의 GPU를 제대로 활용하지 못했었다. 이와 관련해서는 아래의 포스트에서도 언급되어 있다. https://medium.com/daangn/pytorch-multi-gpu-%ED%95%99%EC%8A%B5-%EC%A0%9C%EB%8C%80%EB%A1%9C-%ED%95%98%EA%B8%B0..
import timm model_name = 'your_model' model = timm.create_model(model_name, pretrained=True, features_only=True).cuda() model.feature_info.channels() model.feature_info.channels() 값 확인해보면 스테이지별 채널 수를 확인할 수 있음.
https://pytorch.org/docs/stable/notes/amp_examples.html#id6 Automatic Mixed Precision examples — PyTorch 1.9.0 documentation Shortcuts pytorch.org scaler = GradScaler() for epoch in epochs: for i, (input, target) in enumerate(data): with autocast(): output = model(input) loss = loss_fn(output, target) loss = loss / iters_to_accumulate # Accumulates scaled gradients. scaler.scale(loss).backward()..
Good evening, ladies and gentlemen. This is your captain speaking. May I please have your attention? As we will soon be landing at JFK International Airport, Gate 23, I'd like to take a moment to announce connecting flights. Flight 201 for London will depart from Gate 13 at 6:15 P.M. Flight 221 for Amsterdam will depart from Gate 30 at 6:50 P.M. And, flight 221 for Beijing will depart from Gate ..
- Total
- Today
- Yesterday
- LCA
- 인공지능을 위한 선형대수
- 백준 11053
- 문제집
- FairMOT
- 자료구조
- 백준 1766
- PyCharm
- C++ Deploy
- 이분탐색
- Lowest Common Ancestor
- 가장 긴 증가하는 부분 수열
- 조합
- MOT
- ㅂ
- cosine
- 위상 정렬 알고리즘
- 백준
- 백트래킹
- 단축키
- 백준 11437
- 순열
- 파이참
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |