본문 바로가기

전체 글4

Binary Search 정리, 이해 및 예제 개념 [Concept] 수학에서 정확한 해를 구할 수 없는 문제의 근사해를 구하기 위해 사용되는 이분법(Bisection Method)이 Computer Science의 Bineary Search 와 매우 유사하다. Case 1 - Linear 한(즉, O(N)이 걸리는) 알고리즘으로는 해결이 불가능한 경우. Binary Search 기법을 이용하여, $ O(log_{2}N) $ 의 시간 복잡도를 얻을 수 있다. Case 2 - 자명한 해를 구할 수 없고, 주어진 허용 오차 안에서 근사해를 구해야 하는 경우. 구간 $ [low, high] $ 안에서 어떠한 조건을 만족하는 해를 구한다고 하자. 해가 범위 안에 무조건 존재한다고 가정하면, 첫 수행에 발생 가능한 최대 오차는 $ |high-low| $ 이다.. 2021. 2. 16.
[C++] upper_bound()와 lower_bound() 라이브러리에 정의. /* lower_bound */ template ForwardIt lower_bound( ForwardIt first, ForwardIt last, const T& value ); template ForwardIt lower_bound( ForwardIt first, ForwardIt last, const T& value, Compare comp ); /* upper_bound */ template ForwardIt upper_bound( ForwardIt first, ForwardIt last, const T.. 2021. 1. 3.
[Ubuntu 18.04] Docker를 이용하여 Horovod 설치하기 _ NAMU Horovod는 openMPI를 기반으로 더 나은 멀티GPUs, 멀티Nodes 환경으로 딥러닝 모델을 훈련시키기 위해 개발되었습니다. 이때 '더 나은' 이라는 말은 코드 생산성, 성능(정확도,Loss), 훈련 효율(걸리는 시간)을 복합적으로 고려한 수식어이며 Horovod의 작동 방식과 Benchmark에 대한 디테일한 내용을 알고 싶다면 여기를 참조하시면 될 것 같습니다. 이 문서는 Docker를 이용한, 2개 이상의 서버를 이용하여 훈련이 가능한 Horovod 설치를 다룹니다. 만약 Docker를 다루는 것이 처음이거나, Docker의 컨셉, 기초 사용법을 잘 모른다면, 이 링크의 영상을 시청하는 걸 추천드립니다. 영상이 좀 길지만 직관적으로 설명을 잘 해줍니다. 만약 영상이 너무 길다면, 밑의 설명.. 2020. 8. 8.
Ubuntu 18.04 에서 한글 키보드, 한영키 설정하기 _ NAMU Ubuntu에서 한글 키보드를 설정하고 사용하는 방법은 여러가지가 있습니다. 그 중에 제가 애용하는 방법 하나는 바로 fcitx를 사용하는 방법입니다. 보통 우분투를 새로 설치하였을 때 많이 설정하실텐데요. 오늘은 Ubuntu 18.04에서 한글 키보드 설정 하는 법을 알아보겠습니다. 1. 먼저 터미널로 진입한 다음, 아래 명령어로 fcitx를 설치합니다. sudo apt update && sudo apt upgrade sudo apt install fcitx-hangul 2. 설치가 완료되면, Ubuntu 18.04 Language Support 를 찾아 들어갑니다. 만약 우분투 설치 후 처음이라면, 여러 언어팩을 설치하라는 말이 나올텐데, 설치 후, 계속 진행해주시면 됩니다. 이제 왼쪽 사진에서 보이.. 2020. 8. 8.