전체 글 195

Bias(편향)과 Variance(분산)

stanford university의 machine learning lesson 6 (Advices for machine learning application 관련 내용 정리): https://jinmc.github.io/ds_blog/posts/ml_andrew_ng/wk6/ 이 이론은 Machine learning에 있어서 가장 기본적인 내용 중에 하나 입니다. 가장 중요한 내용 중 하나이지만, 많이 봐도 헷갈리는 부분 중 하나입니다. 아마도 용어가 생소한 것도 그 이유 중 하나가 되지 않을까 싶습니다. 가장 쉬운 예부터 살펴보죠! 우리가 아는 가장 쉬운 예는 linear regression일 겁니다. 하지만 linear regression은 경향성을 보여줄 순 있어도, 선형으로 나누어지지 않는 변수..

Machine Learning 2021.05.24

yolov5를 이용해서 custom data 학습시키기, people training

yolov5는 성능면에서 yolov4보다 훨씬 낫다고 할 수는 없지만, 확실히 pytorch를 이용해서 편합니다. yolov5 pretrained version의 경우에는 80개의 class가 train되어 있습니다. 여기서 우리가 원하는 데이터를 학습 시키기 위해서는 다음 roboflow 블로그를 참고하면 될 거 같습니다. blog.roboflow.com/how-to-train-yolov5-on-a-custom-dataset/ 블로그에서는, rbc, wbc (백혈구, 적혈구)를 위주로 학습을 진행하였습니다. 근데 과연 사람을 학습하려고 하면 어떻게 해야될까요? 또, 80개의 class중 몇 가지의 class만 학습하려고 하면 어떻게 해야될까요? 저는 사람 class만 사용하려고 하였습니다. 물론, de..

rtx 3070을 이용한 환경 설정 yolov5 (ft. 3080, 3090 및 30 시리즈..)

두괄식으로 하겠습니다. 제목은 3070으로 했지만 3080, 3090 다 될 것으로 생각됩니다. cuda version 11.1을 먼저 깝니다. wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600 wget https://developer.download.nvidia.com/compute/cuda/11.1.1/local_installers/cuda_11.1.1_455.32.00_linux.run sudo sh cuda_11.1.1_455.32.00_..

Deep Learning 2021.05.05

여러개의 파일에서 안에 있는 텍스트 검색하기(grep, find)

여러 개의 텍스트 파일에서 안에 있는 텍스트를 어떻게 검색할 수 있을까요? 다음과 같은 링크에서 볼 수 있습니다. stackoverflow.com/questions/15286947/how-to-perform-grep-operation-on-all-files-in-a-directory 간단한 방법은, $ grep -rni "string" * 으로 볼 수 있습니다. -r 은 recursive, -i 는 case insensitive, -n 은 찾은 라인넘버를 보여줍니다. 여기서 몇 개의 파일에서 오는지 보고 싶으면, 다음과 같은 방법이 있습니다. $ grep -rni "string" * | wc -l 만약 파일 이름만 알고 싶다면, -l을 추가하면 됩니다. $ grep -il "string" * 비슷한 역할..

Linux/Ubuntu 2021.04.30

Multi object Tracking(MOT) 과 활용

사람들을 tracking 하는데 있어서, inference만 하려고 하면 여러 가지 방법이 있지만, YOLO를 사용하는 방법이 많이 알려져 있습니다. YOLOv4, YOLOv5가 많이 사용되고, 그 중에서 tiny나 small의 경우 작은 디바이스에서도 사용할 수 있을 정도로 가볍고 빠릅니다. 하지만 실제 상황에서 사용할 때, tracking이 필요한 경우가 많습니다. 예를 들어, 선을 그어 놓고, 이 선을 넘어간 사람들의 수를 구할 때, tracking을 사용하지 않는 방법 (opencv)를 사용하는 방법도 있겠지만, 정확도가 떨어질 수도 있습니다. (특히 사람들이 많이 지나갈 경우) 관련 링크 : www.pyimagesearch.com/2018/08/13/opencv-people-counter/ 아직..

Cuda version 관리하기

Ubuntu 20.04를 사용하다가, Ubuntu 버전에 한계를 느껴서, 18.04로 다운그레이드 하였습니다. 20.04에서는 Deepstream도 돌아가지 않고, Tensorflow를 돌리는 데에도 여러가지 문제가 있었기 때문입니다. 하지만 18.04를 설치하고 나니 Cuda가 9.1로 설치가 된 것을 확인하였습니다. Cuda 9.1이 호환되지 않는 텐서플로우가 있는 만큼, Cuda를 10.1로 업그레이드 하기로 하였습니다. 하지만 사실 여러 개의 Cuda 버전을 관리할 수도 있다고 합니다. m31phy.tistory.com/125 위 블로그에서는 $ sudo apt-get install cuda-toolkit-10-1 로 가능함을 볼 수 있습니다. 이미 cuda toolkit을 install 하였다면..

Linux/Ubuntu 2021.04.27

Ubuntu 18.04 한글 키보드 세팅

Ibus를 사용해서 하는 방법은 통하지 않아서, 열심히 찾아보다가 fcitx를 이용하는 방법을 사용했더니 해결하였습니다. driz2le.tistory.com/253 ubuntu 18.04 - Ubuntu 한글 입력기 설치(fcitx) 우분투에서 ibus를 통한 한글 변환이 생각처럼 잘 안되는 경우가 많다. 그래서 fcitx를 이용하는 것이 종종 더 편하다. 아래는 fcitx를 이용해서 한글 입력 설정을 하는 내용이다. 18.04에서 설정한 내 driz2le.tistory.com 관련링크고, ibus를 사용하는 방법도 있습니다. gabii.tistory.com/entry/Ubuntu-1804-LTS-%ED%95%9C%EA%B8%80-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%84%A4%EC..

Linux/Ubuntu 2021.04.26

Cuda 버전과 호환성 맞추기, 그래픽 카드 모니터링

Cuda를 돌리기 위해서는 Cuda버전에 맞는 드라이버를 설치해 주어야 합니다. Cuda 버전 확인은 다음 커맨드로 확인이 가능합니다. $ nvcc -V # 또는 nvcc --version 를 치면 다음과 같은 결과가 나옵니다. nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2019 NVIDIA Corporation Built on Sun_Jul_28_19:07:16_PDT_2019 Cuda compilation tools, release 10.1, V10.1.243 Cuda 버전이 10.1로 설치되어 있음을 알 수 있습니다. nvcc가 어디에서 오는지는, which nvcc를 보면 알 수 있습니다. 위의 커맨드는 사실 /usr/local/cuda/..

Machine Learning 2021.04.15

Yolov5를 로컬에서 돌려봅시다!

전 포스팅에서는 구글 코랩을 이용해서 yolov5를 돌리는 법에 대해서 알아보았습니다. walkaroundthedevelop.tistory.com/64 구글 코랩은 환경 설정을 알아서 해주는 만큼, 환경 설정에 대한 부담을 덜 수 있어서 굉장히 바람직하다고 할 수 있겠습니다. 하지만 직접 로컬에서 돌려봐야지 제대로 머신러닝을 체험해볼 수 있겠죠? 그래서 로컬에서 직접 yolov5을 돌리는 법을 포스팅해보도록 하겠습니다. yolov5와 yolov4 의 차이에 대해서도 알아보면 좋을 것 같습니다. yolov5와 yolov4는 사실 다른 사람이 만들었고, 만들어진 시기의 차이도 얼마 나지 않기 때문에, (yolov5는 20년 5월 공개), (yolov4는 20년 4월 공개), 성능상 어떤 게 더 우위에 있다고..

Machine Learning 2021.04.14

Docker commit 하고, dockerhub에 push 하기

Docker를 사용하다 보면 그 Docker에 파일을 쓰고 그 컨테이너를 저장하고 싶을 수 있습니다. #docker commit : $ docker commit tf2 eungbean/tf2:latest 예를들어, 현재 가동되는 컨테이너가 이렇게 된다고 합니다. jinmo@jinmo-MS-7C82:~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 112948a08f8a tensorflow/tensorflow:1.15.0rc1-gpu "/bin/bash" 3 minutes ago Up 3 minutes musing_elion 이 때 ContainerID 와 Image ID를 넣는 거에 따라 그 이미지에 덧씌우느냐, 아니면 새로운 이미지를..

Cloud/Docker 2021.04.13