반응형

분류 전체보기 174

[러닝 스파크] 데이터프레임 스키마

스파크 데이터프레임은 판다스 데이터프레임에 영향을 받아 만들어져 이름 있는 칼럼과 스키마를 가진 분산 인메모리 테이블처럼 동작한다. 스키마 Schema 스키마는 데이터프레임의 칼럼 이름과 데이터 타입을 정의한 것이다. 스키마는 데이터를 읽어들일 때 자동으로 정의되게 할 수도 있지만, 미리 스키마를 정의하면 다음과 같은 장점이 있다. 💡 스파크가 데이터 타입을 추측해야 하는 책임을 덜어 줌으로써, 스키마 확정을 위한 별도의 잡을 만드는 것을 방지한다. 💡 데이터가 스키마와 맞지 않는 경우 조기에 문제를 발견할 수 있다. 스키마를 정의하는 방법은 두가지가 있다. 첫 번째는 pyspark.sql.types에서 데이터 타입을 불러와 프로그래밍 스타일로 정의하는 것이다. 다음과 같이 각 필드의 이름과 Type을 ..

[러닝 스파크] 스파크 연산의 종류

스파크 연산의 종류 스파크 연산은 트랜스포메이션과 액션 두가지 종류로 구분된다. 트랜스포메이션은 원본 데이터를 수정하지 않고 하나의 스파크 데이터프레임을 새로운 데이터프레임으로 변형하는 것이고, 액션은 연산 결과를 내놓아야 할 때 사용된다. 각 연산의 예시는 다음과 같다. 연산 종류 예시 트랜스포메이션 orderBy, groupBy, filter, select, join 액션 show, take, count, collect, save 연산의 실행 모든 트랜스포메이션 연산은 즉시 실행되지 않고 리니지 형태로 기록된다. 액션 연산이 실행될 때 그동안 기록된 트랜스포메이션 연산들이 발동된다. 이를 통해 보다 효율적인 실행과 최적화가 가능하다. 좁은 의존성과 넓은 의존성 트랜스포메이션은 좁은 의존성과 넓은 의존..

[딥러닝 논문리뷰] AdamP: Slowing Down the Slowdown for Momentum Optimizers on Scale-invariant Weights (Naver AI Lab, ICLR 2021)

Adam의 문제점을 극복하는 새로운 optimizer인 AdamP를 제안하는 논문으로, Naver AI Lab & Naver Clova에서 ICLR 2021에 발표하였다. Paper: https://arxiv.org/pdf/2006.08217.pdf Project page: https://clovaai.github.io/AdamP/ Code: https://github.com/clovaai/adamp 1. Adam의 문제점 요약: Adam을 비롯한 momentum-based gradient descent optimzer들은 학습 도중 weight norm을 크게 증가시킨다. 그 원인은 다음과 같다. 대부분의 모델들에서 Batch normalization 등의 normalization 기법들을 사용해 we..

/etc/profile, /etc/bash.bashrc, ~/.bashrc, ~/.bash_profile 파일의 차이점

유저가 로그인할 때, 다음과 같은 순서로 bash 설정파일들을 읽게 된다. 1. /etc/profile 실행: 시스템 전역에 대한 환경설정. 일반적으로 다음을 수행한다. - `/etc/bash.bashrc` 실행 → 시스템 전체의 non-login shell 환경설정 - `/etc/profile.d` 디렉토리 안의 추가 설정 스크립트를 실행. 2. ~/.bash_profile, ~/.bash_login, ~/.profile 중 하나 실행: 개인 환경 설정 - 일반적으로 `~/.bashrc`를 실행한다 - 이렇게 하면 login shell과 non-login shell 모두에서 `~/.bashrc`를 사용할 수 있다.

HuggingFace Space 만들기

HuggingFace Space는 간편하고 쉽게 ML 데모 앱을 만들 수 있는 공간이다. Spaces - Hugging Face Spaces Discover amazing ML apps made by the community! huggingface.co Space들의 예시는 다음과 같다. 1: text-to-image Rich Text To Image - a Hugging Face Space by songweig huggingface.co 2: chat-with-GPT4 Chat-with-GPT4 - a Hugging Face Space by ysharma huggingface.co 본 글에서는 이러한 HuggingFace Space를 만드는 법에 대해 간략히 소개하고자 합니다. 보다 자세한 설명은 공식..

PyTorch 2.0에서 달라지는 점 - torch.compile

PyTorch 2.0 Overview pytorch.org PyTorch 2.0은 22년 12월 PyTorch Conference에서 발표되었고, 23년 3월 정식 릴리즈 되었다. 이전의 PyTorch 1.x 버전들보다 빠르고, Pythonic하고 Dynamic하다고 한다. 어떤 점들이 달라졌을지 한번 알아봅시다. torch.compile torch.compile은 PyTorch 2.0의 메인 API이다. 모델을 미리 컴파일하여 속도를 높이는 기술이다. torch.compile은 TorchDynamo, AOTAutograd, PrimTorch, TorchInductor 네 가지의 새로운 기술을 기반으로 만들어졌다. 각 기술에 대한 자세한 설명은 여기에서 찾아볼 수 있다. 사용법 torch.compile은..

폴더별로 환경변수를 설정할 수 있는 direnv

https://github.com/direnv/direnv GitHub - direnv/direnv: unclutter your .profile unclutter your .profile. Contribute to direnv/direnv development by creating an account on GitHub. github.com direnv는 폴더별로 환경변수를 다르게 설정할 수 있는 툴이다. 1. 설치방법 apt-get install direnv #Linux brew install direnv #MacOS 2. shell에 hook 설정 사용하는 shell의 종류에 따라 hook을 설정해 주어야 한다. 2.1. bash vi ~/.bashrc #맨 아래에 다음 내용 추가 eval "$(dir..

[PyTorch Lightning] checkpoint 저장하기

기본편 - 자동 저장 Saving and loading checkpoints (basic) — PyTorch Lightning 1.9.0 documentation Shortcuts pytorch-lightning.readthedocs.io PyTorch Lightning의 Trainer을 이용해 학습을 진행하면, 자동으로 가장 마지막 training epoch의 checkpoint를 저장해준다. trainer = Trainer() 만약 checkpoint가 저장되는 위치를 바꾸고 싶다면 다음과 같이 지정해줄 수 있다. trainer = Trainer(default_root_dir='path/to/') 혹은 별도로 checkpoint 저장을 하지 않으려면 다음과 같이 지정하면 된다. trainer = Tr..

[PyTorch Lightning] 로그 기록, Tensorboard로 Logging하기

Logging — PyTorch Lightning 1.8.6 documentation Shortcuts pytorch-lightning.readthedocs.io 로그를 기록하는 방법은 Lightening Module에서 self.log()나 self.log_dict()를 이용하면 된다. def training_step(self, batch, batch_idx): self.log_dict({'acc': acc, 'recall': recall}) self.log('acc', acc) logging (log(), log_dict() 모두 동일하게 적용) 의 중요한 인자는 on_step과 on_epoch이다. on_step: 현재 step에 logging on_epoch: 로그를 축적하여 epoch 마지막에 ..

VSCode 유용한 단축키 모음

VSCode 단축키 설정은 좌측하단 [Manage] 버튼을 눌러 [Keyboard Shortcuts]로 들어갈 수 있다. 1. Go to File (Windows: ctrl+p / Mac: cmd+p) 파일명을 검색해서 바로 open할 수 있다. 2. Go to Line/Column (Windows: ctrl+g / Mac: cmd+g) 특정 라인으로 바로 이동할 수 있다. 3. Toggle Vertical/Horizontal Editor Layout (Windows: alt+ctrl+o / Mac: alt+cmd+o) 에디터 그룹을 transpose할 수 있다. 예를 들어, 위아래로 그룹이 배치되어 있었으면 좌우 배치로 전환할 수 있다.

반응형