TIL(Today I Learned) - 1월 넷째 주

bolim·2022년 1월 24일
0

TIL

목록 보기
3/9

TIL

1/24

PyTorch의 Basic한 부분과 index_select, gather 함수에 대해 공부하였다. 추가로 Hook이나 partial 사용이나 repr 수정하는 함수도 구현하였다.
PyTorch Basic은 블로그에 포스팅할 예정이다.
추가로 ngrok을 이용하여 vscode에서 Colab 사용하는 방법에 대해 공부하였다. 나중에 논문 코드 볼 때 유용할 것 같다.

1/25

PyTorch의 Dataset과 Dataloader에 대해 공부하고 Titanic, MNIST등 직접 응용하여 만들어보았다.
Dataset에서 ' __init__, __len__, __getitem__'메소드를 구현해보았다.

DataLoader에서는 옵션 중에서 직접 인덱스를 설정할 수 있는 sampler, batch_sampler 그리고 zero-padding처럼 데이터 사이즈 맞추기 위해 사용하는 collate_fn, pin_memory, drop_last, time_out, worker_init_fn등 공부하였다.
torchvision의 transform함수 종류들에 대해서도 공부하였다.

AG News 데이터셋으로도 만들어보았는데 이 과정에서 vocab 인코더 디코더에 대해서 공부하였다.

1/26

svm에 대해서 발표해야해서 svm에 대한 공부를 하였다. 그리고 관련 코드들을 공부하다가 BCELoss, 로지스틱 함수에 대한 개념들이 헷갈려서 따로 찾아보았다.

그리고 모델 학습 중 저장할 수 있는 방법들, checkpoint을 공부하였다.
추가로 Freezing, Finetuning 그리고 시각화 할 수 있는 텐서보드Wandb를 공부하였다.

원래 귀찮아서 시각화를 잘 하지 않았는데 그러다 보니 hyperparameter tuning하는데 더 많이 시간이 소요되고 정확한 이해가 어려워서 결국엔 텐서보드를 사용했던 경험이 있다. 오늘 시각화 도구들을 공부하면서 다시 한 번 저런 도구들을 자주 사용해서 익히면 좋을 것 같다는 생각을 하게 되었다.

BCEWithLogitsLoss()

one single class에 대해 loss를 계산하기 위한 목적으로 나온 것이며,
BCELoss에 시그모이드 레이어를 붙여준다. BCELoss에 따로 시그모이드를 붙여주는 것보다 하나의 층에 있어 더 안정적이다.

torch.nn.BCEWithLogitsLoss(weight=None, size_average=None, reduce=None, reduction='mean', pos_weight=None)

1/27

Multi-GPU에 대한 내용들을 공부하였는데, 솔직히 multi-gpu를 학회에서 gan training 시키다가 어떨결에 써본 적을 제외하고서는 한 번도 써본 적이 없어서 잘 와닿지 않았다. 그래도 나중에 정말 필요할 때 처음 공부하는 것보다 지금 느낌이라도 배우자는 생각으로 공부하였다.

그리고 hyper-parameter tuning 잘하는 방법에 대해서 배우면서 Ray라는 툴을 처음 알게 되었다. 나중에 꼭 써보고 싶다!

1/28

오늘은 action segmentation에 대해서 읽을 논문들을 골라보고 조금 읽었다.
그리고 이번 주 네이버 boostcamp 마스터 클래스 시간에 Data centric AI에 대한 강의를 들었다.
교수님께서 AI에서 머신도 중요하지만 데이터가 제일 중요하다는 말씀을 해주셨으며, Ray, Spark, RAPIDS 등을 공부하면 좋을 것 같다고 추천해주셨다.
추가로 ML/DL 코드 작성을 넘어서 데이터와 연계하고 자동화하는 등 시스템화하는 것이 중요하다고 말씀해주셨다.

앞으로 aws와 MLOPs도구들 Spark와 Docker, 쿠버네티스 등을 공부해보고 싶다. 사실 AWS와 Docker는 공부해보긴 했는데,,,그때는 막상 사용할 일이 없다보니 다 까먹어 버렸다😭 사실 지금 이 상황에서 공부할 수 없을 것 같긴 하지만... 잠깐잠깐 틈 날때마다 관련 블로그들을 보다가 다음 학기에 제대로 공부하고 사용하는 플젝을 해보고 싶다.

내일부터 설 연휴 시작인데, 일단 밀린 논문부터 읽어야 할 것 같다. 분명 휴학했는데 왜 더 바빠진 건지 모르겠다🤯

그래도 계속 재미나게 공부하고 싶다🌈

1/29

연휴동안 밀린 논문 읽기를 예정이다.
목표는 1일 1논문이다!👊

일단 오늘은 새로운 논문을 안 읽고 저번에 읽은 논문 2편 정리와 코드를 찾아보면서 이해했다.
이 논문들에 대해서는 따로 정리해서 포스팅 할까 말까 고민하고 있다.

오늘 이해한 논문 두 편

  1. Temporal Convolutional Networks for Action Segmentation and Detection
  2. MS-TCN : Multi-Stage Temporal Convolutional Network for Action segmentation

동영상을 그대로 데이터로 들어가는 모델은 처음 공부해서 생소했다. 코드를 직접 한 번 돌려봐야할 것 같다.
일단 생각보다는 모델들이 그렇게 복잡하지는 않는데 각 논문마다 자신들의 Evaluation metric을 정의하는게 신기했다. 그리고 원래 rnn이나 lstm 공부할 때도 시간개념 때문에 왜인지 모르겠지만 헷갈리고 답답하고 그랬는데...앞으로 계속 action segmentation논문 읽을 예정이라서 최대한 이해하려고 노력 중이다😂

추가로 둘다 ASPP에서 봤던 dilated conv가 있어서 반가웠다ㅎㅎㅎㅎ

1/30

오늘은 앞으로 읽을 action segmentation에 대한 논문들을 찾아보고 한 편을 읽었다.
Weakly-Supervised Action Segmentation with Iterative Soft Boundary Assignment 가 오늘 읽은 논문의 제목이다.

Weakly-Supervised Action Segmentation with Iterative Soft Boundary Assignment


TCFPNISBA 2가지에 대해 나오고 위의 구조를 가지고 있다.

TCFPN은 아래와 같은 구조로 되어있고 encoder 와 decoder 사이가 연결되어 있는 것이 특징이다.

ISBA에서는 아래처럼 transcript를 정해진 기준에 맞춰서 각 class사이 loss가 정해진 값 이상이면 계속해서 transcript를 붙여준다.

가장 궁금한건 처음 transcript는 어떻게 정하는 것인데 논문을 읽어본 바로는 데이터셋이서 제공해주는 것 같은데 이거는 더 찾아봐야 할 것 같다.

Video는 아직 데이터셋이다 다 너무 생소해서 힘들다ㅠㅠㅠ

profile
나는야 호기심 많은 느림보🤖

1개의 댓글

comment-user-thumbnail
2022년 1월 25일

오.. ngrok은 처음 들어보는건데 colab을 붙일 수 있다니 되게 좋아 보이네요!
저도 다음에 한번 설치해 봐야겠네요.

답글 달기