전체 글 176

맥에서 가상환경에 쉽게 진입하는 방법은?

나는 Intel Mac을 사용하고, 평소에 virtualenv를 활용하여 가상환경을 만드는 편이다. python -m virtualenv myvirtualenv 특별히 파이썬 버전을 지정하고 싶은게 아니라면 내가 가상환경 폴더를 생성하고 싶은 디렉터리에 가서 (보통은 내 프로젝트 루트 디렉터리) 위의 명령어를 사용해 가상환경을 만들고, source myvirtualenv/bin/activate 이 명령어를 통해 가상환경을 실행시켜 가상환경에 진입해왔다. 크게 번거로울 일은 없긴 하지만, 가끔 폴더 위치가 헷갈리기도 하고, 어째튼 타자를 쳐야하니, 조금이라도 더 간단한 방법을 이제야 알게되어 한결 편해졌다. /Users/[내 유저이름]/.zshrc 파일을 열어서 alias myvirtualenv='cd [..

OS 2024.01.31

가상환경과 크론탭을 활용하여 파이썬 스크립트 실행시 에러 해결

환경 tested on Python 3.9.12 macOS 13.2.1(22D68) cpu apple M1 10core 현상 AWS RDS에서 정보를 가져오고 일정 조건에 해당되는 영상 파일을 S3 링크에서 다운로드 받고, 영상 파일과 메타 데이터를 처리한 다음, 그 결과를 구글 클라우드 API를 활용하여 특정 구글 드라이브에 업로드하는 파일을 만들었다. 그리고 이 파일을 매일 자동으로 실행하기 위해, 파이프라인 구축 하기 전에 간단하게 로컬에서 크론탭을 사용하여 매일 1회 자동 파일 실행을 설정했으나 파일 실행이 되지 않는 문제 발생 Log 크론으로 실행된 파일의 output은 터미널에 프린팅되지 않기 때문에 로그에 기록할 필요가 있음 (참고) 파일 실행의 결과를 로그 기록하게 설정하는 크론 명령어 *..

OS/Ubuntu 2023.10.05

딥러닝 모델 멀티GPU 분산학습하는 법

모델 학습을 위한 train.py를 분산학습 시키는 스크립트 코드 #!/usr/bin/env bash set -x GPUS=$1 NNODES=${NNODES:-1} NODE_RANK=${NODE_RANK:-0} PORT=${PORT:-29500} MASTER_ADDR=${MASTER_ADDR:-"127.0.0.1"} PYTHONPATH="$(dirname $0)/..":$PYTHONPATH \ python -m torch.distributed.run \ --nnodes=$NNODES --node_rank=$NODE_RANK \ --master_addr=$MASTER_ADDR --nproc_per_node=$GPUS \ --master_port=$PORT \ $(dirname "$0")/train.py \..

Deep Learning 2023.06.15

여러 개의 모델을 학습하도록 스케줄링하는 스크립트 파일

스크립트 파일 작성. 변수 받는 거나 반복제어문 작성에 있어서 능숙하지가 않아서 예전에는 무서웠는데 요즘은 chatGPT 친절하게 가르쳐줘서(물론 틀리게 가르쳐줄 때가 많아서 직접 실행해서 확인하고 수정도 해야한다.), 아주 유용하게 사용하고 있다. 한 폴더 안에 있는 파이썬 파일을 순차적으로 실행하도록 하는 스크립트 파일을 짜고, 크론으로 정기적으로 이 스크립트를 돌리도록 설정해둔다. 그리고 하나의 잡이 끝나거나 에러가 나면 slack 메시지가 오도록 까지 설정해 놓으면 더 이상 새벽이나 주말에 트레이닝이 잘 되고 있는지 불안해 하지 않아도 됨.. 짬이 좀 나면 그라파나 통해서 웹으로 모니터링까지 할 수 있게 짜놓으면 외출하거나 침대에 있을 때도 간단하게 문제없이 학습이 되고 있는지 확인할 수 있을 것..

카테고리 없음 2023.06.15

우분투 환경에서 원격에서 원격으로 데이터를 카피 하는 법

요즘 웬만한 경우에는 업무를 노트북으로 하고, 딥러닝 모델을 학습은 GPU와 쿨링 시스템이 필요하다 보니 데이터 직군들은 대부분의 업무를 원격 서버 또는 원격 컴퓨터에서 작업할 것이다. 나 역시 그렇게 작업하고 있고, aws 등의 클라우드 서버 작업할 일도 많기 때문에 아래 그림처럼 원격 컴퓨터1에서 원격 컴퓨터2로 데이터를 옮겨야 하는 일도 빈번하다. GUI없이 터미널에서 데이터를 복사하는 작업을 정리했다. 1. 원격 컴퓨터 2에 ssh로 접속 먼저 데이터를 받을 리모트 컴퓨터에 ssh로 접속한다. (password 가 필요한 경우 아래 명령어를 입력하고 나면 비밀번호 입력하라고 뜨고, 그 때 입력하면 된다) ssh [사용자id]@[remote com 2의 host address] -p [ssh 포트 ..

OS/Ubuntu 2023.05.30

내가 쓰기 위해 정리한 영상 변환 ffmpeg 간단한 shell 명령어

내가 동영상을 활용한 딥러닝 프로젝트를 진행하면서 자주 사용했던 동영상 처리 명령어를 정리해놓았다. mov 파일 mp4 파일로 저장 ffmpeg -i [input.mov] -vcodec h264 -acodec aac [output.mp4] mp4 파일을 mp3파일로 저장 ffmpeg -i input.mp4 -vn -acodec libmp3lame -q:a 4 -ab 128k output.mp3 -i input.mp4 : 입력 mp4 파일 지정 -vn : 비디오 트랙을 비활성화한다. (audio only) -acodec libmp3lame : 오디오 코덱을 mp3로 지정 q:a : quality 수준 (0에서 9까지 있으며 9가 가장 품질이 높은 것) -ab 128k : 비트레이트를 128kbps로 지정 ..

22년 2학기 - 방송통신대 컴퓨터 과학과 3학년 편입 후기

9월 초에 방통대 컴과에 편입했다고 글을 썼었는데 (https://rollingsnowball.tistory.com/299) 언제나 그렇듯 시간은 쏜살같이 지나가 지난 주말에 첫 기말고사를 쳤다. 나도 편입을 결정하면서, 수업 수강신청을 하고, 공부를 하고, 시험 준비를 하면서 때때로 다른 선배님들의 후기를 본 것을 참고하고 도움도 얻었기에 개인 정리 겸 다른 분들께 도움이 되고자 내 경험을 정리해본다. 편입 결정 이유 먼저 나는 문과 출신에 컴퓨터 또는 IT 기술에 대한 베이스가 전혀 없다가 (약간의 경험이 있다면 앱 컨텐츠, 기획 쪽 일을 했다는 것 뿐) 1년 정도 ML AI 수업을 듣고 취업해서 일하게 되면서 컴퓨터 사이언스에 대한 이해가 없는게 아쉬워서 편입을 결정한 케이스이다. 당연히 회사 일을..

Logs 2022.12.21

청년취업사관학교 후기 - 2021년 새싹 취준 프로그래밍 교육 후기

나는 문과생으로 어학 관련된 일을 주로 하다가 2020년 코로나 직격탄을 맞고, 하던 개인사업을 2020년 폐업했다. 그리고 늦은 나이에 재취업을 하려면 어떻게 해야하나 고민하다가 소위 '코딩 열풍'을 나도 접하고 프로그래밍을 공부해야겠다고 마음먹었는데, 어쩌다보니 서울산업진흥원에서 운영하는 구 새싹 현 청년취업사관학교를 알게 되었다. 정확히 어떻게 처음 알게 되었는지는 기억이 안나는데 아마도 웹에서 검색하다 알게되었던 것 같다. 이 때 상태는 코딩에 대해서는 정말 아무것도 모르는 상태로, 처음 배울 땐 html을 배워야 한다고 어딘가에서 들어서 웹에서 좀 검색해서 해보다가 이것도 어렵다고 생각하고 있던 찰나였다. 내가 수강한 과정은 온라인 과정 2개, 오프라인 과정 2개인데, 온라인 과정인 '실무 프로..

Logs 2022.11.23

2022 2학기 방송통신대학 컴퓨터 과학과 출석대체시험 시험범위

9월, 아니 8월 말 부터 시작한 방송통신대학 컴과 3학년 2학기. 벌써 출석대체시험과 기말시험만 남았다. 출석대체시험은 나처럼 재직중이거나 기타 여러가지 이유로 출석수업에 참여하지 못하는 사람들이 말그대로 출석을 대체하는 시험을 치루는 것이다. 약간 아쉬운 점은 출석대체시험과 기말고사 사이에 기간이 2주 정도 밖에 차이가 나지 않아서 한 학기 동안 적절히 분배해서 공부하고 테스트하는 기능을 하지 못하는 것. 사정은 있는 것이 나처럼 처음부터 출석수업을 신청하지 않은 사람 뿐 아니라, 출석수업 신청을 하였으나 불가피한 사정으로 참석하지 못한 사람들도 이 시험으로 출석수업 대체를 하기 때문에 출석 수업 기간이 마무리가 되어야 치를 수 있는 것 같았다. 나는 이번 학기에 총 5과목을 수강하는데, (원격대학교..

Etcs 2022.11.19

Q. 내 노트북의 웹캠 화면을 핸드폰이나 아이패드로 보려면 어떻게 해야할까?

A. 로컬 컴퓨터에 rstp 서버를 설치하고, ffmpeg, gstreamer 같은 멀티미디어 스트리밍 프레임워크를 활용하여, 전송한다. 1. 내 로컬 컴퓨터에 rstp 서버 설치 및 실행 2. ffmpeg , gstreamer 등을 활용하여 스트리밍 영상 전송하기 3. 포트 포워딩으로 외부 접속 가능하게 포트 열기 4. rstp주소로 접속하여 노트북에서 스트리밍하는 영상 확인

구글 코랩 Pay As You Go 이용 후기 gpu 사용량, 잔여량 확인방법

*22년 12월 20일 추가* Pay As You Go는 코랩 프로로 안쳐주다 보니 백그라운드 실행이나 터미널 창 제공 같은 프로의 혜택을 누릴 수 없어서 상당히 아쉽다. 한 편으로 회사에서 월 9.99 달러 짜리 Colab Pro 구독을 해주셨는데, 이건 컴퓨팅 자원 100단위 제공인데 CV에서 700장 정도 되는 이미지 mask_RCNN 파인튜닝 몇 번 했더니 녹아 없어졌다. 100단위를 다 썼더니 바로 이 Pay As You Go 서비스를 추가로 결제하라고 안내를 해줬다. 진짜로 코랩 프로 + 추가 결제 서비스를 같이 쓰는게 활용성이 제일 좋을 것 같다. (근데 회사에 그렇게 해달라고 요청할 수 있을지 모르겠다. 코랩은 진짜 말 그대로 테스트 용도로만 쓰는 것이기 때문에) 21년 8월에 KDT 과정..

Dev/Google Colab 2022.11.14

Q. GPU 작업 모니터 편리하게 하는 방법은?

A. NVTOP 을 활용한다. 환경 OS Ubuntu 20.04 LTS shell bash GPU NVIDIA RTX A5000 지난 포스팅에서만 해도 무식하게 nvidia-smi를 계속 들여다 보는 식으로 모니터링을 했는데, 시계열 그래프로 훨씬 편리하게 gpu 모니터링이 가능한 툴이 있었다. 공식 깃허브 https://github.com/Syllo/nvtop GitHub - Syllo/nvtop: GPUs process monitoring for AMD, Intel and NVIDIA GPUs process monitoring for AMD, Intel and NVIDIA - GitHub - Syllo/nvtop: GPUs process monitoring for AMD, Intel and NVIDI..

Deep Learning 2022.11.08

맥북 프로 m1에서 ML PyTorch파이토치 세팅하기

환경 맥북 프로 18, 1 (애플 M1 Pro 칩, 메모리 16GB) 맥 OS (Monterey 12.5.1) 10-core CPU with 8 performance cores and 2 efficiency cores 16-core GPU prerequisites 파이썬3.7 이상 (그 이상도 잘 지원해줄 것 같지만, 내가 사용하려던 모델의 권장 버전이 3.7이라서 3.7.13으로 설치하여 사용하였다. 맥북 m1에서 파이썬 3.7 이하를 설치하여 사용하는 방법은 다음 포스팅 참고) 가상환경 만들기 (나는 원래 virtualenv를 훨씬 선호하지만, m1에서 파잇썬 3.7 이하를 설치하는데 애로사항이 있어 어쩔 수 없이 pyenv로 가상환경을 만들었다. 파이토치 1.12.0이상 설치하기 python -m ..