03.27
Pose Estimation
EfficientPose
- 참고글: https://eehoeskrap.tistory.com/500?category=705415
- 언제나 pose model의 목표는 성능은 올리고 연산량은 줄이는 것
- Single-person pose estimation
- 개선점 3가지
- AutoML로 backbone을 찾음, EfficientNet 이용
- cross-resolution feature를 이용, multi-scale 방식에서 NN 크기 및 computation 줄임
- SE(squeeze-and-excitation)와 MBConv(mobile inverted bottleneck convolution) 이용
- bilinear kernel을 이용한 transposed conv로 low=level feature를 upscale
- OpenPose보다 성능은 높고 모델 크기, flops는 작음. 또한 수렴도 OpenPose보다 빨리 됨
- MPII 데이터셋을 기준으로 학습하고 학습 속도가 빨라 transfer learning에도 유용할 것
MLOps
- 가짜연구소 'ml-with-the-flow' 스터디 3회차
- 모두 mlops를 처음 접해보기 때문에 모두의 mlops를 베이스로 스터디를 진행할 예정
- 목요일까지 kubernetes 환경설정 및 해보고 싶은 프로젝트에 대해 조사하기
03.28
Pose Estimation
GradPose
- mAP@[.5:.95]: mAP=0.5 ~ 0.95의 평균, 스텝=0.05(0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95)
COCO code:self.iouThrs = np.linspace(.5, 0.95, np.round((0.95 - .5) / .05) + 1, endpoint=True)
(https://datascience.stackexchange.com/questions/16797/what-does-the-notation-map-5-95-mean)
HigherHRNet
Bottom-up의 고질적인 문제인 small scale person의 keypoint를 찾는 문제를 해결
기존에는 scale variation을 해결하기 위해 feature pyramid를 사용했지만 이는 large scale person에 대한 성능이 낮아짐, 이를 해결하기 위해 새로운 scale-aware한 heatmap을 만드는 방법을 제시
HRNet의 결과로 나온 feature map과 feature map에서 나온 keypoint를 concat 후 upsampling해 keypoint를 추측하는 새 conv block을 만듬
참고
Ubuntu
- 압축
$ zip [파일명.zip] [폴더명]
# 현재폴더 전체를 aaa.zip으로 압축 예시
$ zip aaa.zip ./*
# aaa.zip으로 압축하고 현재 폴더의 모든 것과 현재 폴더의 하위 폴더들도 모두 압축 예시
$ zip aaa.zip -r ./*
# 위 명령어를 스크립트에서 실행할 때, 파일 경로가 전부 나올 수 있기 때문에
# 해당 폴더로 이동한 후 작업하는 것을 권장
- 압축 해제
$ unzip \[파일명.zip\]
# aaa.zip 압축 해제 예시
$ unzip aaa.zip
# 특정 폴더에 압축해제 예시
$ unzip aaa.zip -d ./target
03.29
코테
bisect
: 리스트 탐색을 O(logN)으로 가능bisect_left
: 같은 값이 있을 경우 왼쪽에 넣는 idxbisect_right(=bisect)
: 같은 값이 있을 경우 오른쪽에 넣는 idxinsort
: 정렬될 수 있는 위치에 해당 항목을 삽입
- 오름차순인 리스트에만 적용이 가능하기 때문에 내림차순에 사용하고 싶을 경우
li.reverse()
로 사용
from bisect import bisect_left, bisect_right, insort
nums = [0,1,2,3,4,5,6,7,8,9]
n = 5
print(bisect_left(nums, n))
# 5
print(bisect_right(nums, n))
# 6
nums = [4, 5, 5, 5, 5, 5, 5, 5, 5, 6]
n = 5
print(bisect_left(nums, n))
# 1
print(bisect_right(nums, n))
# 9
from bisect import insort
nums = [0,1,2,13,14,25,36,47,58,69]
n = 32
insort(nums, 32)
print(nums)
# [0,1,2,13,14,25,32,36,47,58,69]
MLOps
03.30
MLOps
가상환경 설치
참고: https://ghostweb.tistory.com/979
- 클러스터: 우분투가 설치된 데스크톱 1개
- 클라이언트: 노트북 혹은 클러스터가 설치되어 있는 데스크톱 외의 클라이언트로 사용할 수 있는 다른 데스크톱
쿠버네티스 세팅
k3s
: 쿠버네티스 클러스터를 구축하기 쉬운 툴
그 외에도kubeadm
,minikube
등이 있음
Troubleshooting
status_no_such_device virtualbox
오류- vb 드라이버 재설치를 통해 해결
- 해결: https://m.blog.naver.com/jrkim/221522494580
AMD-V is disabled in the BIOS (or by the host OS) (VERR_SVM_DISABLED).
오류- Bios에서 가상화 사용 설정이 안돼있어서 발생한 문제
- 해결: https://jhnyang.tistory.com/236
Unable to connect to the server: dial tcp
- 해결: https://stackoverflow.com/questions/49260135/unable-to-connect-to-the-server-dial-tcp-i-o-time-out
minikube를 설치 후 실행하니 잘 돌아감..? 이유는 아직 모르겠음
- 해결: https://stackoverflow.com/questions/49260135/unable-to-connect-to-the-server-dial-tcp-i-o-time-out
etc.
curl ifconfig.me
: ip 확인하기shift
+insert
: 리눅스에서 ctrl+v
04.01
선형대수
Row
,column
: 행(가로), 열(세로)Span
: basis의 집합Row/column spaces
: 행(열)공간, 행(열)벡터로 span할 수 있는 공간 == 행(열)벡터들이 나타낼 수 있는 선형결합의 집합Dim
: 차원, 기저 벡터의 개수(벡터의 개수가 아님!!)Rank
: 행렬의 열벡터로 인해 생성된 벡터공간의 차원
Col space와 Row space의 pivot은 모두 같기 때문에 Row A의 basis를 기준으로(pivot의 위치로) Col A의 basis를 찾을 수 있다
행렬 A의 rank는 Col A의 rank와 Row A의 rank 중 최소값을 의미Nul A
: $Ax=0$을 만족하는 $x$의 집합
dim Nul A = non-pivot column의 수 = 방정식에서 free variable의 수Col A
: A의 column으로 만들 수 있는 linear combination의 집합 == A의 column으로 만들 수 있는 span
'개발 및 공부 > Today I Learned' 카테고리의 다른 글
TIL) 22.05.01 ~ 22.05.07 (0) | 2022.05.03 |
---|---|
TIL) 22.04.17 ~ 22.04.23 (0) | 2022.04.17 |
TIL) 22.04.10 ~ 22.04.16 (0) | 2022.04.12 |
TIL) 22.04.03 ~ 22.04.09 (0) | 2022.04.04 |
TIL) 22.03.25 ~ 22.03.26 (0) | 2022.03.26 |