no image
[Tmux] Tmux 사용법
Tmux Tmux는 terminal multiplexer의 약자로 하나의 터미널에서 화면 분할을 할 수 있게끔 해주고, 특히 딥러닝을 학습 시 ssh 연결을 통해 작업을 많이 하게 되는데, 이 때 tmux를 사용하면 ssh 서버와 연결이 끊겨도 작업중인 세션들이 사라지지 않도록 해준다. Tmux 설치하기 및 설치 확인 $ sudo apt install tmux $ tmux -V Tmux 생성하기 $ tmux 아래와 같이 session에 이름을 지정하여 생성하는 방법은 아래와 같다. $ tmux new -s [세션명] test라는 이름을 지정하여 생성하면 아래와 같이 창이 나타난다. Session 확인하기 아래와 같이 명령어를 입력해주면 detached 되어있는 session을 확인할 수 있다. $ tmu..
2023.04.27
mount.davfs: can't evaluate path of mount point (null)
mount.davfs 할 때 마운트 할 폴더를 미리 만들어줘야함
2023.04.18
[PyTorch] 모델 파라미터 일부만 업데이트 하기
pre-trained model의 일부분만 바꿔서 모델을 학습시키려고 할 때 pre-trained model의 파라미터 일부를 가져와 현재 모델의 state dict을 업데이트 하여 학습해야한다. 즉, pre-trained model의 파라미터를 로드하고, 현재 모델에 덮어 씌워주는 과정이다. 먼저, 아래와 같이 pre-trained model과 현재 model을 각각 로드해준다. pretrained_dict = torch.load(PATH) # pretrained 모델 static dict 로드 model_dict = model.state_dict() # 현재 모델 state dict 로드 그 다음 아래와 같이 pre-trained model의 값들 중에서 현재 model의 state dict과 일치하..
2023.04.06
no image
[TFLite] TensorFlow Lite 개념
TensorFlow Lite 개념 TensorFlow Lite는 모바일과 IoT 기기에 딥러닝 모델을 배포하고 추론하기 위해 구글에서 만든 라이브러리이다. 간단히 말하자면, TFLite를 이용하여 TensorFlow 모델을 안드로이드, iOS, 임베디드 기기에서 사용할 수 있도록 모델을 변환할 수 있다. 이러한 기기에서 사용하기 위해서는 컴퓨팅 리소스가 제한적이기 때문에 이를 위해 TFLite는 모델을 경량화해준다고 보면 된다. TFLite는 모델을 변환하는 Converter와 변환된 모델을 실제로 동작시키는 Interpreter로 이루어져있다. Converter는 파이썬 개발환경에서 사용하고, Interpreter는 사용하려는 기기와 동일한 환경에서 사용된다. 그리고 중요한 특징 중 하나는 양자화를 지..
2023.01.18
[GitHub] 주로 사용하는 GitHub 명령어 모음
⭐⭐⭐⭐⭐ 내가 헷갈려서 정리해보는 주로 사용하는 GitHub 명령어 모음집 ⭐⭐⭐⭐⭐ Git 기본 명령어 현재 상태 확인 (내가 제일 많이 사용하는 명령어)git status 전체 로그 확인 git log git 저장소 생성하기 git init 저장소 복제 및 다운로드 git clone [https: ~~~~ ] 저장소에 코드 추가git addgit add * 커밋에 파일의 변경 사항을 한번에 모두 포함 git add -A 커밋 생성git commit -m "message" 변경 사항 원격 서버 업로드 (push)git push origin master 원격 저장소의 변경 내용을 현재 디렉토리로 가져오기 (pull)git pull 변경 내용을 merge 하기 전에 바뀐 내용 비교git diff [브랜치..
2022.10.28
[OpenGL] How to write PYopenGL in to JPG image
Python 환경에서 OpenGL 창을 image로 저장할 때 사용하는 코드는 아래와 같다. 여기서는 PIL 라이브러리를 사용한다. from OpenGL.GL import * from OpenGL.GLU import * from OpenGL.GLUT import * from PIL import Image from PIL import ImageOps import sys width, height = 300, 300 def init(): glClearColor(0.5, 0.5, 0.5, 1.0) glColor(0.0, 1.0, 0.0) gluOrtho2D(-1.0, 1.0, -1.0, 1.0) glViewport(0, 0, width, height) def render(): glClear(GL_COLOR_BU..
2022.09.19
Docker 환경에서 GLFWError: (65544) b'X11: Failed to open display unix:1'
Docker 환경에서 윈도우를 띄우려고 할 때 (e.g. OpenCV, OpenGL, ...) 아래와 같은 에러가 발생한다면, GLFWError: (65544) b'X11: Failed to open display unix:1' host의 XServer를 볼륨 형태로 컨테이너로 공유해야하며, DISPLAY 환경 변수도 전달해주면 된다. 아래와 같이 docker container 를 생성할 때 아래와 같은 명령어를 같이 써줘서 만들어주면 된다. --volume /tmp/.X11-unix:/tmp/.X11-unix:ro -e DISPLAY=unix$DISPLAY 참고자료 : https://conservative-vector.tistory.com/entry/docker에서-컨테이너-gui-실행하기 docker..
2022.08.11
[ONNX] Brevitas, QAT 모델을 Standard ONNX 모델로 생성하는 라이브러리
Quantization Aware Training로 학습된 모델은 QuantConv2d, QuantLinear 등의 layer 가 생성되는데 이를 Standard ONNX로 변환 시켜주는 Brevitas 라이브러리가 있다. FAQ(https://github.com/Xilinx/brevitas#faq) 를 보면 아직 알려진 이슈들은 많다. https://github.com/Xilinx/brevitas GitHub - Xilinx/brevitas: Brevitas: quantization-aware training in PyTorch Brevitas: quantization-aware training in PyTorch. Contribute to Xilinx/brevitas development by cre..
2022.07.04
no image
[Ubuntu] 우분투 하드디스크 이름 변경
우분투 하드디스크 이름이 /media/name/5b6a0f05-0f7f-4bbb-8b52-a3********b71 이런 식으로 설정되어 있어서 reboot을 할 때 마다 위 이름 끝자리에 넘버링이 추가로 되면서 계속 이름이 변경되길래 /mnt/storage 로 이름을 변경하였다. 1. Disks 앱 열기 2. 변경할 하드디스크 파티션 선택 3. 설정 버튼 클릭 4. Edit mount options 5. User Sessioin Defaults 토글 버튼 해제 6. Mount Point 경로 수정 참고자료 : https://askubuntu.com/questions/904561/how-to-change-hard-drive-name How to change hard drive name my hard dri..
2022.06.27
[Linux] locate 명령어
필자는 locate 명령어를 리눅스 환경에서 굉장히 자주 쓰고 있다. locate 명령어에 대해 더 자세히 알아보고자 한다. locate 명령어는 아래와 같이 사용하며, test_file이 어디에있는지 알려준다. locate test_file locate 명령어가 파일을 빠르게 검색해주는 이유는 검색DB를 미리 생성하기 때문이다. 따라서 locate 명령어를 처음 사용한다면 아래와 같이 DB를 업데이트 시켜준다. (pdatedb 작업은 크론(cron)에 등록되어 있어서 매일 새벽에 자동으로 실행됨) sudo updatedb 그런데 이는 방금 자신이 삭제한 파일도 검색이 되기 때문에 문제가 발생한다. 이런 문제를 피하고 싶다면 검색 전에 DB를 업데이트 하는 것을 추천한다. 참고자료 : https://wi..
2022.06.08
no image
[NVIDIA TAO Toolkit] TAO Toolkit 개요
NVIDIA TAO Toolkit을 이용하여 사전 훈련된 NVIDIA 모델에 custom dataset을 적용하여 Computer Vision(이하 CV) 모델을 만들거나 Conversational AI(이하 Conv AI) models을 만들 수 있는 툴킷이다. 비전 분야에서는 주로 object detection, image classification, segmentation, keypoint estimation 등의 모델들을 fine-tuning 할 수 있다. 특히 pre-trained 모델에 새로운 클래스를 추가할 수도 있고, 다양한 케이스에 맞게 다시 학습 시킬 수 있으며, TAO Toolkit은 학습과 관련된 hyperparameter들을 수정하여 custom AI model을 생성할 수 있다...
2022.05.03
num_workers 미설정 시 학습 데이터 로드 속도 영향 발생
iteration 20 마다 결과 값(time, loss 등)을 확인하며 모델을 학습하고 있는데, iter=20 당 속도가 2배나 느려진 것을 발견하였다. 단순히 데이터 세트가 더 많이 추가되어 그런줄 알고있었는데, 아무리 생각해도 이상해서 이전에 데이터를 이 정도 양으로 많게끔 학습했던 적이 있었을 때의 로그를 확인해보니 시간 차이가 다소 있었다. 그래서 이상해서 찾아보던중.. 불현듯 며칠전 실험 시 바꿨었던 num_workers 가 생각났다....아... num_workers 디폴트 값인 0으로 두고 학습을 진행시켰었는데, 이것 때문에 데이터 로드 시 속도 저하(이전 보다)가 있었던 것 같다. 그래서 바로 num_workers 값을 GPU * 4 로 설정해주니 이전과 같이 빠르게 학습이 진행되는 것을..
2022.04.25