개발 및 공부/Today I Learned

TIL) 22.03.27 ~ 22.04.02

Hㅏㄴ량 2022. 3. 27. 22:47

03.27

Pose Estimation

EfficientPose

  • 참고글: https://eehoeskrap.tistory.com/500?category=705415
  • 언제나 pose model의 목표는 성능은 올리고 연산량은 줄이는 것
  • Single-person pose estimation
  • 개선점 3가지
    1. AutoML로 backbone을 찾음, EfficientNet 이용
    2. cross-resolution feature를 이용, multi-scale 방식에서 NN 크기 및 computation 줄임
    3. SE(squeeze-and-excitation)와 MBConv(mobile inverted bottleneck convolution) 이용
    4. 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

HigherHRNet

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: 같은 값이 있을 경우 왼쪽에 넣는 idx
    • bisect_right(=bisect): 같은 값이 있을 경우 오른쪽에 넣는 idx
    • insort: 정렬될 수 있는 위치에 해당 항목을 삽입
  • 오름차순인 리스트에만 적용이 가능하기 때문에 내림차순에 사용하고 싶을 경우 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

MLOps 시작하기: MLOps란? 참고


03.30

MLOps

가상환경 설치

참고: https://ghostweb.tistory.com/979

  • 클러스터: 우분투가 설치된 데스크톱 1개
  • 클라이언트: 노트북 혹은 클러스터가 설치되어 있는 데스크톱 외의 클라이언트로 사용할 수 있는 다른 데스크톱

쿠버네티스 세팅

  • k3s: 쿠버네티스 클러스터를 구축하기 쉬운 툴
    그 외에도 kubeadm, minikube등이 있음

Troubleshooting

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