반응형

분류 전체보기 176

[pip/에러 해결] inplace-abn 설치 시 오류

pip를 이용해 inplace-abn을 설치하려고 했는데 다음과 같은 오류가 발생했다. >> pip install inplace-abn Collecting inplace-abn Using cached inplace-abn-1.1.0.tar.gz (137 kB) Building wheels for collected packages: inplace-abn Building wheel for inplace-abn (setup.py) ... error ERROR: Command errored out with exit status 1: command: /home/user/anaconda3/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'..

💩 에러 해결 2021.11.27

윈도우 화면분할 프로그램 PowerToys (+zoom 예기치 않게 종료)

나는 모니터 두 대 중 한 대를 세로로 세워서 사용하는데, 가로 모니터의 경우 Win + ←/→ 단축키를 이용해 화면을 분할할 수 있는 방면, 세로 모니터는 위아래로 분할하는 단축키가 없어서 불편하더라.. 찾아보니 PowerToys라는 프로그램을 이용해서 윈도우에서 화면을 상하 분할할 수 있길래 소개하고자 한다. 1. 설치 다음 링크에서 설치파일을 다운로드할 수 있다. https://github.com/microsoft/PowerToys/releases/tag/v0.49.1 Release Release v0.49.1 · microsoft/PowerToys This is a patch release to fix issues in v0.49.0 we deemed important for stability b..

[PyTorch] Scheduler 시각화하기 (Visualize scheduler)

다음 함수를 이용해 PyTorch scheduler을 시각화할 수 있다. import matplotlib.pyplot as plt def visualize_scheduler(optimizer, scheduler, epochs): lrs = [] for _ in range(epochs): optimizer.step() lrs.append(optimizer.param_groups[0]['lr']) scheduler.step() plt.plot(lrs) plt.show() scheduler.get_lr()로 learning rate를 얻어오지 않고 optimizer.param_groups[0]['lr']로 얻어오는 이유는, ReduceLROnPlateau 등의 scheduler의 경우 get_lr() meth..

내가 보려고 정리하는 LaTex 자주 쓰는 수식 정리

LaTex 특수문자, 수식을 똑같은 거 매번 구글링하기 귀찮아서 만드는 자주 쓰는 LaTex 수식 모음 🎨 Font typefaces - 실수 집합 (R), 데이터셋 (D) 등에서 자주 쓰는 문자. \mathcal{RQSZ} \mathbb{RQSZ} 기호 (Symbols) LaTex 수식 표시 설명 연산자 (Operators) \cdot · 곱셈기호 / 내적 (inner product) \circ ∘ circle / 원 (*degree 등을 나타내기 위한 위 첨자로 사용하려면 ^\circ를 이용하면 된다.) \times × 곱셈기호 / 외적 (cross product) \pm ± 플러스 마이너스 (plus minus) \circledast ⊛ convolution / 원 안의 별표 (asterisk) \..

T test 와 P value

T test란? T test는 두 group간의 차이가 얼마나 "significant"한지를 의미한다. 즉, 두 group간의 차이가 "우연히" 일어난 일일 확률을 측정할 수 있다. 보통 데이터 수가 적은 경우에 사용한다. 하나의 예시는 다음과 같다. 제약회사에서 새로운 항암제를 개발해 이것이 기대수명에 미치는 영향을 조사하고 싶다고 하자. 이러한 실험을 진행할 때에는, 항상 대조군(placebo 복용)이 존재한다. 실험 결과 대조군의 기대수명이 평균적으로 5년 증가했고, 실험군(실제 항암제 복용)의 기대수명이 평균적으로 6년 증가했다고 한다면, 언뜻 보기에는 항암제가 실제로 기대수명을 늘려주는 효과가 있어 보인다. 실제로 이것이 우연에 의해 발생한 일인지, 아닌지를 T test는 확률을 통해 알려줄 수..

[PyTorch] ReduceLROnPlateau

ReduceLROnPlateau는 더이상 학습이 진행되지 않을 때 learning rate를 감소시키는 scheduler이다. scheduler에 input으로 metric을 주면, 일정 epoch 동안 변화가 없을 때 learning rate를 감소시킨다. 주요 Parameter은 다음과 같다. mode: [min, max] 중 하나. Input으로 주는 metric이 낮을수록 좋은지, 높을수록 좋은지를 의미한다. 'min' option을 주면, metric의 감소가 멈출 때마다 learning rate를 감소시킨다. factor: Learning rate를 감소시키는 비율. new_lr = lr * factor이 된다. patience: Metric이 얼마 동안 변화가 없을 때 learning rat..

Transformer의 positional encoding (PE)

Transformer을 구성하는 Multi-Head Self-Attention layer는 permutation equivariant한 특성을 갖기 때문에, postitional encoding이 필수적으로 필요하다. Transformer에서 사용하는 positional encoding 우선, Transformer에서 사용하는 positional encoding의 식은 다음과 같다. $PE_{(pos,2i)}=sin(pos/10000^{2i/d_{model}})$ $PE_{(pos,2i+1)}=cos(pos/10000^{2i/d_{model}})$ 이를 풀어 쓰면 다음과 같은 형태를 갖게 되고, 이를 시각화하면 다음과 같다. 본 글에서는 왜 transformer의 positional encoding이 이..

[ML] Kernel Density Estimation (KDE)와 Kernel Regression (KR)

I. Kernel Density Estimation (KDE) KDE는 kernel 함수를 이용해 확률밀도함수를 추정하는 방법이다. 하나의 예시로, 길거리에의 범죄 발생량을 나타낸 데이터가 있다고 하자. Crime Location 1 15 2 12 3 10 ... ... 이 데이터를 이용해, 길거리 각 지점에서의 범죄 발생 가능성을 추정하고 싶다고 하자. 특정 지점에서 범죄가 발생했다면, 그 근처에도 범죄가 발생했을 확률이 높다고 할 수 있다. 따라서 우리는 과거에 범죄가 발생했던 위치마다 kernel을 쌓고, 이를 모두 더하여 범죄율에 대한 밀도함수(KDE)를 추정할 수 있다. $\hat{f}_h(x)=\frac{q}{nh}\sum_{i-1}^nK(\frac{x-x_i}{h})$ Kernel 함수 $K..

[PyTorch/에러 해결] torchaudio.transforms.SpectralCentroid output이 nan이 되는 문제

훈련을 시키다가 loss가 자꾸 nan이 되는 현상이 발생했다. 디버깅을 해보니 loss가 잘 줄어들다가 갑자기 nan으로 바뀌어서 학습 과정 자체의 문제는 아닌 것 같았고, 살펴보니 모델 내부에서 값이 nan이 되는 경우가 있었다. 모델에서 torchaudio.transforms.SpectralCentroid를 이용해 데이터의 spectral centroid를 추출하는 과정이 있었는데, 일부 데이터의 spectral centroid가 nan을 포함하고 있었다. 코드를 살펴보니 spectral centroid를 계산하는 과정에서 spectrogram의 sum으로 값을 나눠주는 과정이 있었는데, (마지막 줄) 이 값이 0이 되어서 nan값이 나온 것이었다. Solution torch.nan_to_num을 ..

💩 에러 해결 2021.10.16

[PyTorch/에러 해결] PyTorch-Tensorboard와 libprotobuf 문제

멀쩡하게 잘 돌아가던 코드가 갑자기 알 수 없는 에러가 나면서 실행이 안됐다.. ============================================================================ [libprotobuf FATAL ../3rdparty/protobuf/src/google/protobuf/stubs/common.cc:68] This program requires version 3.8.0 of the Protocol Buffer runtime library, but the installed version is 3.5.1. Please update your library. If you compiled the program yourself, make sure that you..

💩 에러 해결 2021.10.16
반응형