[VSCode] Markdown PDF LaTex 포함 변환하기 (+M1 속도 향상)

VSCode에는 Markdown을 PDF로 export할 수 있는 유용한 plugin(링크)이 있다. 해당 플러그인을 활용해서 LaTeX 수식이 있는 Markdown 파일을 PDF로 export해보자. 마지막 부분에는 Apple Silicon(M1) macOS에서 발생하는 timeout 이슈를 해결할 수 있는 별도의 chromium 다운로드 과정 또한 설명한다. 목차 1. “Markdown PDF” VSCode plugin 설치 VSCode에 Markdown PDF 라이브러리를 설치한다: 설치 바로가기 링크 2. Markdown 파일에 MathJax …

[ML] Cross Entropy Loss는 Negative Class를 고려할까?

일반적으로 사용되는 아래 CE Loss의 구현을 Softmax를 빼고 보면 Loss Term에 Negative Class에 대한 고려가 들어가있지 않다. (마지막 정리부에서 다루지만 사실 CE Loss와 Softmax를 분리해서 보는 생각이 잘못된 것 같다.) 이 의문에서 시작해서 답을 찾아갔던 과정을 정리해보았다. 아래 수식에서 $p(x_{i})$는 정답값 분포 [0.0, 0.0, 1.0, 0.0, 0.0]를, $\hat{p}(x_{i})$는 Softmax를 거쳐나온 각 클래스별 확률 분포 $0<\hat{p}(x_{i})<1$를 …

[Golang] 외부 라이브러리 의존없이 Go 정적 빌드(Static Build)하기

go build 명령어 실행 시 아래와 같이 지정해주면, 시스템 라이브러리 (libstdc 등)에 의존하지 않는 정적 프로그램으로 빌드할 수 있다. Environment Variables Build Arguments (Optional) Extra Arguments Advantages 정적 프로그램으로 빌드할 경우 libc를 포함한 외부 라이브러리에 대한 의존이 없어서 단독으로 실행이 가능하다. 예를 들어, 위에서 빌드한 프로그램 ./main을 아래와 같이 Docker scratch 이미지에 넣고 단독으로 실행이 …

jungin500/efinextboot – 멀티부팅을 좀더 간단하게

Windows/Ubuntu를 멀티부팅할 일이 잦아서 자주 사용하던 chengxuncc/booToLinux 유틸리티에는 몇가지 문제점이 존재한다. 해당 레포지토리 소스코드를 살펴본 결과 Golang으로 작성되었으며 생각보다 간단하게 구성되었다. 각 문제의 해결 방법을 찾을 수 있을것 같아 직접 밑바닥부터 다시 구현하였다. Features

[Linux] PyTorch CUDA 오류 해결 – libcudnn_cnn_infer.so, libnvrtc.so

Anaconda/Miniconda로 최신 PyTorch 2.0과 CUDA 라이브러리(pytorch-cuda=11.8)를 설치하고 PyTorch 라이브러리를 로드할 때 이런 오류가 발생하는 경우가 있다. 해당 문제는 pytorch-cuda로 설치된 libnvrtc.so 파일이 제대로 링크되지 않아 발생한 문제이다. 이를 해결하기 위해서는 아래와 같이 기존의 libnvrtc.so.11.2나 libnvrtc.so.11.8 등을 프로그램이 열심히 찾고있는 libnvrtc.so로 링크해주면 된다. 현재 사용중인 conda 환경을 activate하고, 아래 Snippet을 실행하여 링크를 진행하여 문제없이 작동하였다. 위 …

[macOS][Karabiner][V13] macOS Control <=> Command 키 토글

서두 본 글은 macOS에서 Command 키나 Control 키가 먹히지 않을 경우, Karabiner를 이용하여 두 키를 서로 바꾸어(토글) 사용할 수 있는 해결 방법을 공유한다. 키가 고장났을때도 유용할 것 같다. 최근 sickcodes/Docker-OSX를 WSL2 위에서 돌려서 만족하면서 써보고 있는데, Windows 키가 WSL2 KVM QEMU에서 제대로 전달되지 않아 macOS에서 Command 키를 사용할 수 없다는 문제가 발생했다. 해당 문제를 Karabiner를 …