본문 바로가기

새우의 블로그15

맥북에서 하드디스크 사용하기. 최근에 맥북을 백업할 일이 있어서 하드디스크를 연결했는데, 제 삼성 하드디스크는 NTFS (윈도우 계열 파일 시스템) 방식을 사용해서 맥북 파일을 하드 디스크로 옮기는게 불가능 하더군요. 이런일을 처음 겪어서 매우 당황스러웠습니다. 이제부터 맥북에서 NTFS 하드디스크를 사용하는 방법을 알아봅시다. 여러 방법을 찾아 보았지만, 가장 좋은 방법은 Mounty 라는 어플리케이션을 사용하는 방법입니다. 1. Homebrew 설치 우선 homebrew 가 설치되어 있지 않다면, 맥북 패키지 관리 도구인 homebrew를 설치해 줍시다. 저는 해당 내용은 다루지 않고, 설치 관련 링크 하나 남겨두겠습니다. 2. mounty 설치 brew install mounty 커맨드를 통해 mounty 를 설치해줍시다. 3... 2024. 1. 3.
[Pytorch] Pytorch DDP 사용해 multi-gpu 로 모델 학습시키기. Pytorch는 딥러닝을 위한 프레임워크로, 많은 사람들이 사용하고 있습니다. 그 중에서도 분산 학습을 위한 DDP(Distributed Data Parallel)는 많은 연구자들이 사용하고 있는데요. 오늘은 Pytorch DDP를 사용해 모델을 학습시키는 방법에 대해 알아보도록 하겠습니다. Pytorch DDP 모듈은 DP (Data Parallel)와 다르게 multi-node 에서도 사용이 가능하지만, 편의를 위해 하나의 노드, 여러개의 GPU를 가정하겠습니다. DDP는 무엇인가요? DDP는 분산 학습을 위한 방법 중 하나입니다. 분산 학습이란 여러 대의 컴퓨터를 사용해 모델을 학습시키는 방법으로, 빠른 학습이 가능합니다. DDP는 Pytorch에서 제공하는 분산 학습 방법 중 하나로, 여러 대의 .. 2023. 5. 6.
[ML] Bias - Variance Decomposition 유도 ML 모델의 관점에서 generalization error는 보통 다음과 같이 정의됩니다. y 는 ground truth 값을, x는 input, 그리고 h( ) 는 우리 모델의 hypothesis를 나타냅니다. 헌데 대부분의 경우 x의 true distribution을 전체 다 사용해서 모델을 학습하기는 어렵습니다. 그렇기 때문에 어떤 데이터를 사용해서 학습하냐에 따라 h( ) 함수의 bias 와 variance가 나타나게 됩니다. 1) Bias Bias 는 다음과 같이 정의됩니다. h_bar( ) 함수는 다양한 x의 distribution을 통해 학습시킨 h( ) 함수의 mean 값입니다. 결국 h( ) 함수가 평균적으로 true function 인 f( )와 얼마나 떨어져있는지 계산합니다. y 와 .. 2022. 10. 13.
[ML] RNN 에서의 gradient 계산 아래와 같은 RNN formulation에서의 gradient 계산은 어떻게 되는지 정리해 보겠습니다. Loss 는 Cross Entropy Loss를 가정하겠습니다. 간단한 Chain Rule을 통해 다음과 같이 계산할 수 있습니다. 마지막 외적으로 계산되는 항의 계산은 스킵했습니다. MSE loss 로하면 비슷하게 나올 것 같은데, CE loss 로 해도 동일하게 나오는지 나중에 따로 유도한다면 올리겠습니다. 여기서 눈여겨 볼 만한 부분은, V에 대한 gradient는 오로지 현재 state의 값들에만 의존한다는 것입니다. 좀 다르게, W에 대한 gradient는 뒷 state 에도 영향을 받습니다. 여기서 파랑 네모에 있는 부분을 보면, gradient가 이전 state들에서의 gradient의 곱.. 2022. 10. 11.
[Pip3] Python 3.9 configuration issue python 3.9 설치 후 사용 에러 아카이빙 Python 3.9 설치, pip3 설치 후 pip3 로 설치시, 1. Import Error: cannot import name 'sysconfig' from 'distutils' - apt install python3.9-distutils 다른 버전의 파이썬도 동일하게 해결 가능. 다시 설치 시도시 2. 'HTMLParser' object has no attribute 'unescape' - pip install --upgrade setuptools - pip install --upgrade pip 으로 해결. 2022. 9. 26.
[Git] fatal: branch could be both a local file and a tracking branch. Git checkout 을 하던 중 다음과 같은 에러가 발생했다. 찾아보니 원래 git checkout은 세 가지 역할을 가진다. if it's local branch or explicit remote branch, switch to it. if it's a tracked path, reset it if it's a remote branch, create a tracking branch and switch to it. (Reference: https://stackoverflow.com/questions/25322335/git-change-branch-when-file-of-same-name-is-present) 그래서 동일 이름의 폴더와 브랜치가 있어서 git checkout 커맨드가 ambiguous .. 2022. 9. 21.
[대전 반석] 잇쇼니컴퍼니 퓨전 중식, 진쇼우이 안녕하세요, 오늘은 대전 반석동에 위치한 잇쇼니컴퍼니 식당 중 하나인 진쇼우이 음식 사진들을 가져왔습니다. 1. 탄탄면 국물이 진해서 참 맛있습니다. 크림맛이 좀 나는 듯한 탄탄면입니다. 2.중화 비빔밥 3. 유산슬 덮밥 4. 유린기 유린기가 진또배기입니다. 꼭 드세요 +) 멘보샤도 맛있습니다. 2022. 9. 8.
[제주] 말고기 찐맛집 - 백마가든 안녕하세요 씨몽키 여러분, 오늘은 제주도 맛집을 소개하려고 합니다. 백마가든이라는 말고기 집인데요, 저에게는 말고기 첫 시도였습니다. 비릴 줄 알았지만, 너무너무너무 맛있었습니다. 옆에 아저씨분들이 여기 어떻게 알고 왔냐고 놀라시더라구요. 아저씨들께서 오늘 말을 잡았고, 그래서 말고기 드시러 오셨다고 말씀하셨습니다. 제주도 도민분들이 굉장히 많은 것을 보고 선택을 잘했다고 생각하게 되었습니다. 말 고기 육회입니다. 말 고기 전에 먹는 거라고 하더라구요. 사진찍고 있으니까 아저씨들이 계속 빨리 한입먹어보라고 재촉하셨습니다. 말 육회를 먹은 육지 사람들의 반응이 궁금하셨나봐요. 맛은 최고였습니다.. 말 고기 때깔이 참 곱죠. 정말정말 맛있었습니다. 굽자마자 다먹어서 구운 사진이 없네요;;; 옆에 말 곰탕도 .. 2022. 9. 6.
[Paper] Diet Code Is Healthy: Simplifying Programs for Pre-Trained Models of Code 안녕하세요 왕새우 여러분, 오늘 살펴볼 논문은 2022년 ESEC/FSE에 발표될 Diet Code Is Healthy: Simplifying Programs for Pre-Trained Models of Code 입니다. Program Simplification을 통해 source code 관련 task 에서의 computation을 줄이는 것이 목표입니다. 요새는 Software Engineering task들을 해결하기 위해 언어 모델이 많이 사용되고 있습니다. 또한 모든 task에 대하여 전부 처음부터 학습시키는 경우보다 미리 어느 정도 학습을 시켜놓은 모델을 가져와서 학습을 시키는 pre-trained model을 많이 사용합니다. 헌데 본 논문은, 이러한 pre trained 모델을 학습시키.. 2022. 9. 2.
[Paper] Conditional Positional Encodings for Vision Transformers 오늘 훑어볼 논문은 'Conditional Positional Encodings for Vision Transformers' 이라는 논문입니다. 원래 ViT (Vision Transformers) 에서는 각 이미지를 자른 후, 이에 해당하는 predefined positional embedding을 넣어줍니다. (a) 사실 이러한 방식은 비전 분야에 국한된 것이 아니라, 다른 다양한 분야들에서도 비슷하게 적용되죠. 허나 본 논문에서는 predefine 된 pe가 아닌, learnable 한 pe를 사용하는 방법을 제안합니다. (b) 또한 레이어 하나를 제외하고, 마지막에 Global Average Pooling을 넣어주는 (GAP) 를 사용하면 퍼포먼스가 올라간다는 것까지 보여줍니다. (c) (논문에서 .. 2022. 8. 25.