전체 글 179

Yolov5를 이용해서 Transfer Learning에서 Early Overfitting을 방지하는 방법

Yolov5를 사용할 때, 보통 Pretrained model을 사용합니다. (small, medium, large, Xlarge.. 이번에 nano도 추가) Pretrained Model의 경우 80개의 Coco dataset을 detect합니다. 이 80개의 모델에 내가 원하는 class가 없는 경우, transfer learning(전이 학습)을 통해서 내가 원하는 class를 학습해야 합니다. Pretrained model이 아닌 scratch model에서 학습을 하는 경우 너무 학습이 오래 걸린다는 단점이 있고, (체감상 pretrained model보다 적어도 두배, 많으면 세네배 이상 시간이 걸립니다. 정확한 레퍼런스는 없네요) freeze layer를 하고 학습을 하는 경우 더 빠르게 할..

Ubuntu에서 컴퓨터 사양 알아내기

1. 마더보드 및 전체 정보 : $ sudo lshw -short $ sudo lshw 2. cpu 정보 (더 자세한 정보) $ cat /proc/cpuinfo 3. 그래픽카드 정보 $ nvidia-smi # nvidia 그래픽 카드의 경우 $ lspci | grep -i VGA # 어떤 그래픽 카드 모델인지까지는 나오지 않음 4. 메모리 정보 $ lshw # 메모리 정보 확인 가능! 4. 하드 정보 $ df -h --total # 실제 용량 $ lshw -class disk -class storage # 브랜드 및 여러 cpu정보 5. 운영체제 정보 $ cat /etc/*release 6. gui 정보 $ hardinfo # apt install 필요!

Linux/Ubuntu 2022.02.07

코딩테스트 준비를 해야되는 이유 (코테준비를 꼭 해야만 할까?)

요즘 거의 1일 1영상이라고 할 정도로 열심히 코딩테스트 영상을 찍고 있습니다. (채널명 : codingJim) 리트코드를 한 문제씩 풀고, 푸는 영상을 유튜브에 올리고 있습니다. 조회수는 거의 처참할 정도로 안나오긴 하지만, 올리는 자체에 재미를 들린 것 같습니다. 가장 큰 이유로는, 물론 문제들을 풀면서 올리면 제가 가장 크게 느는 걸 느끼기도 하지만, 오프라인 스터디를 하면서 스터디를 같이 하는 팀원들에게 제가 링크를 줌으로써 일일히 설명해 주지 않아도 된다는점이 좋다고 느껴졌습니다. 근데 코테스터디를 하면서 코테를 과연 해야되나? 라고 물어보는 사람들이 많아서, 또 필요성을 딱히 느끼지 못하는 사람들이 많아서 코딩은 잘하고 싶지만, 코테는 할 필요성을 못느낀다거나, 실력이 부족하다고 생각해서 다음..

잡담 2022.01.22

파이썬을 이용해서 디렉토리 안의 파일들 이름 바꾸기! (리눅스에서)

디렉토리 안의 파일들의 이름을 바꾸기 위해서는 여러가지 방법이 있습니다. 리눅스 안에서는 mv 커맨드를 사용할 수 있고, rename 등 여러가지 다른 커맨드들을 활용할 수 있을 것 같습니다. 또, 리눅스 커맨드로 for loop를 사용할 수 있다고 합니다. (해보진 않았습니다.) 관련 코드 : # Declares variable with value set to 1 i=1 # Scans each text file in the working directory for file in *.txt; # Iterate the command below until all files are scanned do # Renames each file with "File" followed by incrementing numbe..

Utils 2022.01.19

Yolov5의 model을 Tx2 engine을 만들어봅시다 (Onnx, netron)

안녕하세요 Yolov5는 pytorch 기반의, 객체 검출을 쉽게 해 줄수 있는 프레임워크입니다. 하지만 yolov5에서 만든 모델을 다른곳에서 사용하려면, 그에 맞게 모델을 변환시켜 주어야 합니다. 그럴때 사용할 수 있는 기술이 Onnx 입니다. onnx소개 : https://github.com/onnx/onnx, https://www.megazone.com/techblog_180816_aws-deep-learning-amis/#:~:text=ONNX%20%EB%9E%80%20%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80%3F,%EC%97%B0%EC%82%B0%EC%9E%90%20%EB%AA%A9%EB%A1%9D%EC%9D%84%20%EC%A0%95%EC%9D%98%ED%95%A9%..

python으로 yolov5 label을 교체하는 script 만들기

오늘은 python을 이용해서 label을 교체하는 script를 만들어보도록 하겠습니다. yolov5의 경우, label 값은 Integer값으로 들어오게 됩니다. (0, 1, 등.. ) 실제로, 0으로 label되어야 하는 경우 1로 label 되는 경우, 어떻게 이를 바꿀 수 있을지 python script를 짜 보도록 하겠습니다. # 예를 들어, 이렇게 label 되어 있는 파일을 1 0.188281 0.603704 0.050521 0.205556 이렇게 바꿔주고 싶은 경우, 그리고 안에 있는 모든 파일들을 찾아 (txt 파일의 경우) 바꿔주는 script를 짜 보도록 하겠습니다. 0 0.188281 0.603704 0.050521 0.205556 change_label.py import os i..

Utils 2021.12.24

train test split 하는 커스텀 python 스크립트를 만들어봤습니다

한번 더 업그레이드 한 버전을 만들었습니다. 수정 된 버전은 좀 더 interactive 하게 만들었고, train/test/val 이외에 train/test, ratio도 shell script로 input할 수 있도록 만들었습니다. import os import random from shutil import copyfile # You should make train, test, val directory in target directory before executing this script # train test or train test val # also, images, labels directory should be made for all directories def main(): ldir = os..

Machine Learning 2021.12.23

awk를 이용해서 앞 뒤로 string 붙이기

text파일이 있는데, text 파일을 이용해서 앞뒤로 다른 string들을 붙여야 하는 경우가 발생하였습니다. 물론 파이썬을 활용해서 할 수도 있겠지만, awk를 배워보고자 시도했는데, 정말 쉽게 사용할 수 있었습니다. 예를 들어서, a b c d e f 이런 파일이 있다면, 그 각각의 라인에 str_front, str_back 을 붙이고 싶다고 하면, str_front a str_back str_front b str_back str_front c str_back str_front d str_back str_front e str_back 어떻게 할까요? awk '{print "str_front" $1 "str_back"}' file.txt 이렇게 하면 됩니다. 더한 awk에 대한 튜토리얼은 아래 링크를..

Utils 2021.12.21

Python3 에서 Dictionary 새로운 값 입력하기 및 수정

Python에서 Dictionary는 Java의 HashMap과 같은 기능을 하며, 가장 중요한 Data structure (자료구조) 중 하나입니다. Dictionary 를 만들고 나서 Key Value pair를 넣을 때, 두 가지 방법이 있는데, 그것은 value assignment로 subscription을 이용하여 데이터를 넣는 방법과, update를 사용하는 방법 두 가지가 있습니다. # dictionary 생성 this_dict = {} # dictionary value assignment this_dict["k"] = "v" # dictionary update method this_dict.update({"k": "v"}) 둘 다 하는 일은 같습니다. 심지어 새로 만드는 것 뿐만 아니라 있..

Python/Basics 2021.12.17