Utilities

    [Anaconda] Powershell에서 아나콘다 가상환경 활성화가 안 되는 문제 해결하기

    [Anaconda] Powershell에서 아나콘다 가상환경 활성화가 안 되는 문제 해결하기

    Introduction 파워쉘에서 아나콘다 환경을 사용하고 싶어 가상환경을 만들었는데, 만들기까지는 정상적으로 되지만 activate는 안 되는 요상한 현상을 발견했다. 결론부터 말하면 윈도우 계정 이름이 한글로 되어있어 아나콘다를 통한 파워쉘 프로파일 생성 도중 유니코드 경로가 깨지는 현상이 발생하는 것이였고, 이로 인해 파워쉘이 프로파일 위치를 제대로 찾지 못 해 문제가 생기는 것이었다. 프로파일의 경로를 제대로 수정해 주면 문제를 해결할 수 있다. Solution 먼저 파워쉘을 관리자 모드로 실행시켜 주자. 파워쉘에서 아나콘다를 사용하려면 아래 명령어를 실행시켜 주어야 한다. $ conda init powershell 그러면 위와 같은 아웃풋이 출력되는데, 잘 실행된 것 같지만 마지막 줄의 프로파일..

    [Utilities] libpng warning: iCCP: known incorrect sRGB profile

    [Utilities] libpng warning: iCCP: known incorrect sRGB profile

    Introduction 학습에 이미지 데이터를 사용하다 보면 libpng warning: iCCP: known incorrect sRGB profile 라는 메시지가 콘솔 창에 출력될 때가 있다. Error가 아닌 warning이기도 하고, 뭔가 에러가 레이즈 되어 프로세스가 멈추는 것도 아니지만 데이터를 훑을 때마다 반복적으로 메시지가 출력되니 콘솔 창이 난잡해진다. 특히 tqdm으로 프로세스 진행 상황을 트래킹하고 있다면 더더욱 문제를 뜯어고치고 싶을 것이다. 그래서 이번엔 이 메시지가 무슨 의미를 가지며, 어떻게 해결할 수 있는지 알아보려고 한다. 위 메시지는 libpng 라이브러리에서 발생시키는 메시지로,이미지 내에 유효하지 않은 iCCP (iCC Profile) chunk가 존재할 때 발생한다...

    [Anaconda] 아나콘다 환경 export, import, clone 하기

    [Anaconda] 아나콘다 환경 export, import, clone 하기

    Introduction 기존에 사용하고 있던 아나콘다 가상환경을 다른 머신에서도 사용하고 싶다던가, 혹은 기존의 가상환경 위에서 새 패키지를 테스트 해 보고 싶은데 디펜던시가 꼬일 가능성이 커 안전하게 별도의 동일한 가상환경을 만들어 쓰고 싶을 때가 있다. 패키지가 몇 개 안 깔려 있는 가상환경인 경우엔 그냥 별도의 가상환경을 똑같이 만들고 필요한 패키지들을 다시 설치해 주면 되지만, 이 작업을 여러 번 수행해야 한다던가 필요한 패키지의 수가 많은 경우 이런 방식에는 한계가 있다. 다행히도 아나콘다에서는 이런 작업을 편하게 하기 위한 몇 가지 기능들을 제공하고 있다. 1. Export conda environment 아나콘다에서는 현재 가상환경을 yaml 파일 형태로 export 하는 것이 가능하다. c..

    [Utilities] 학습 프로세스 종료 시 알림 받기

    [Utilities] 학습 프로세스 종료 시 알림 받기

    Introduction 이런 적이 있다. 며칠이 걸리는 학습 프로세스를 급하게 켜 놓고 금요일에 퇴근했는데, 월요일에 와서 보니 시작 직후 사소한 버그로 인해 학습 프로세스가 중단된 것이다. 월요일에 모델 학습을 완료하고 다른 작업을 진행하려 했지만, 금요일에 학습 프로세스가 중단된 것을 알지 못해 다시 며칠 동안 학습을 진행시켜야 했다. 크나큰 자원의 낭비라 할 수 있다. 물론 주말 동안 한 번이라도 터미널에 접속해 봤어도 이를 알 수 있었을 테지만 주말동안 '굳이' VPN을 켜고 원격 접속을 해 터미널을 열어 학습 진행 상황을 확인해 보는 것은 적지 않은 의지를 필요로 한다. 가만.. 그러고 보니 학습 프로세스에 문제가 생겼을 때에 이메일이나 슬랙, 팀즈 등을 통해 알림을 받을 수 있다면 좋지 않을까..

    [Git] HTTPS 인증정보(Credential) 저장하기

    [Git] HTTPS 인증정보(Credential) 저장하기

    Introduction Git에서는 클라이언트~서버 사이에서 전송되는 데이터를 암호화 시키기 위해 (특히 private 저장소인 경우), 여러가지 통신 규약 (Communication protocol)을 사용하고 있다. 이 중 가장 대표적이고 많이 쓰이고 있는 것이 바로 HTTPS와 SSH 프로토콜이다. HTTPS & SSH protocol with Git 일반적으로는, HTTPS 프로토콜을 이용하는 편이 훨씬 편리하기 때문에 대부분의 독자들은 HTTPS 프로토콜을 이용해 원격 저장소를 클론하고 작업 내용을 공유할 것이다. 로컬 작업 환경 (클라이언트)에 private key를 저장해 두어야 하는 SSH 프로토콜과 달리, HTTPS 프로토콜을 이용할 때에는 오직 Username과 Password만을 제공..

    [Utilities] Pillow-SIMD

    [Utilities] Pillow-SIMD

    Introduction Pytorch를 이용해 이미지/비디오 데이터를 학습한다 했을 때, 데이터를 augment 하기 위해서는 보통 torchvision의 transform 모듈을 흔히 이용한다. 기본적으로 Pytorch의 torchvision 라이브러리는 PIL (Python Imaging Library) Image 모듈 혹은 torch Tensor 모듈을 이용해 이미지 데이터를 다루도록 짜여져 있기 때문에, 각종 학습에 필요한 image transformation을 정의할 때에는 PIL Image 모듈의 멤버 함수나, PIL Image를 인자로 받을 수 있는 함수들을 빈번하게 이용하게 된다. 아래는 torchvision.transform 모듈의 함수 예시로, PIL Image 혹은 torch Tens..

    [Utilities] Git: Make sure you configure your 'user.name' and 'user.email' in git

    [Utilities] Git: Make sure you configure your 'user.name' and 'user.email' in git

    Introduction 작업 중이던 깃 리포지토리를 새로 클론 하고, 새 코드를 신나게 작성한 후 vscode와 같은 IDE를 통해 커밋 명령어를 실행시키는 순간 다음과 같은 에러 메시지와 마주할 때가 있다. Make sure you configure your 'user.name' and 'user.email' in git 깃 사용법을 정석적으로 배운 사용자라면 이럴 일은 없겠지만, 본인은 읽으라는 도큐멘테이션은 안 읽고 야매로 이것저것 눌러보면서 배운 터라 매번 까먹고 위와 같은 에러 메시지를 보는 경우가 많다. 이번엔 왜 이런 메시지가 등장하며, 어떻게 메시지의 말대로 user name과 user email를 설정해 줄 수 있는 지 간단히 알아보도록 하자. 깃 커밋을 수행할 때는, 누가 코드를 처음 ..

    [Utilities] Tmux 입문

    [Utilities] Tmux 입문

    Introduction 리눅스 서버 환경에서 자주 사용되는 tmux는 terminal multiplexer의 한 종류로, 하나의 터미널 콘솔에서 여러 개의 터미널을 생성하고 관리할 수 있는 기능을 제공한다. 생성한 터미널 세션들은 터미널 콘솔과 독립적으로 background에서 실행되어, 사용자가 직접 세션을 종료하거나 컴퓨터가 종료되지 않는 한 프로세스가 지속되며 생성된 세션은 여러 유저로부터 동시에(!) 접속하는 것도 가능하다. 이런 특성은 많은 수의 커맨드 명령어 기반 프로세스를 안정적으로 실행시켜야 할 때 유용하다. 오늘은 tmux의 사용법에 대해 간략히 정리해 보겠다. 1. Installation $ sudo apt-get install tmux tmux가 설치되어 있지 않다면, 터미널에서 ap..