본문 바로가기
반응형

분류 전체보기76

[결측값 처리] fillna / backfill / bfill / pad / ffill 요약 DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None) DataFrame.backfill( ) / DataFrame.bfill : DataFrame.fillna(mathod='bfill')과 동일합니다. DataFrame.bfill : 뒤 방향으로 결측값 채우기 DataFrame.pad / DataFrame.ffill : DataFrame.fillna(method='ffill')과 동일합니다. DataFrame.ffill : 앞 방향으로 결측값 채우기 fillna 메서드 : DataFrame에서 결측값을 원하는 값으로 변경하는 기능을 가지고 있음 사용 방법 df.fillna(value=.. 2024. 2. 5.
[nvitop] GPU모니터링 용어 정리 nvitop 또는 nvidia-smi 명령어를 사용해서 현재 장착된 GPU 상태를 모니터링할 수 있다. nvitop 설치 및 사용 $ pip install nvitop $ nvitop nvidia-smi 설치 및 사용 리눅스에 nvidia driver를 설치하면 nvidia-smi 명령어를 사용할 수 있다. $ nvidia-smi 1 . GPU 현재 설치되어 있는 gpu 번호 0번부터 시작 2 . Name 사용하고 있는 GPU의 모델명 3 . Driver Version 현재 사용하고 있는 nvidia GPU의 driver version 4 . CUDA Version 현재 사용하고 있는 드라이버와 호환이 잘 되는 cuda 버전 주의할 점, 현재 설치된 cuda 버전이 아님! 5 . Persistence-M.. 2024. 1. 29.
[CVM] 3. Face Detection (3) Face Detection 2024.01.09 - [study/Udemy] - [CVM] 1. Face Detection 2024.01.27 - [study/Udemy] - [CVM] 2. Face Detection (2) 주제 4. Eye Detection with haarcascades 이미지에서 다른 유형의 개체를 감지하려면 사전 학습이 된 모델이 필요하다. cv2.CascadeClassifier를 활용해서 사전 학습이 된 모델을 eye_detector로 불러온다. import cv2 #- 얼굴 탐지 분류기 face_detector = cv2.CascadeClassifier('/content/drive/MyDrive/haarcascade_frontalface_default.xml') #- 눈 탐지 .. 2024. 1. 28.
[CVM] 2. Face Detection (2) 2024.01.09 - [study/Udemy] - [CVM] 1. Face Detection [CVM] 1. Face Detection 목표 : python 라이브러리를 활용한 얼굴 인식 주제 1. Haarcascade 와 OpenCV를 활용한 Face Detection 주제 2. HOG와 Dlib을 활용한 Face Detection 주제 3. CNN과 Dlib을 활용한 Face Detection 주제 4. 웹캠으로 Face Detectio leeyujin.tistory.com 하르 캐스케이드 알고리즘으로 얼굴 검출을 했을 때, false positive가 보여졌다. 이 문제를 해결하기 위해서 하르캐스케이드의 파라미터를 사용해본다. 주제 2. Haarcascades parameters 1 얼굴 탐지 분.. 2024. 1. 27.
[CVM] 1. Face Detection 목표 : python 라이브러리를 활용한 얼굴 인식 1. Haarcascade 와 OpenCV를 활용한 Face Detection 2. HOG와 Dlib을 활용한 Face Detection 3. CNN과 Dlib을 활용한 Face Detection 4. 웹캠으로 Face Detection PIXELS 모든 이미지는 행과 열로 구성된 행렬 형식으로 표시된다. 이미지의 기본 구성 요소는 픽셀 그룹 (정사각형)으로 구성된 큰 셀이다. 가로 32픽셀, 세로 32픽셀이라고 할 때, 32 x 32 = 1024 으로 이미지의 총 픽셀 수는 1024이다. 단일 픽셀에는 기본 색상당 하나씩 총 3개의 채널이 있다. (R,G,B) 색상에 따라 이미지의 RGB 값이 달라진다. 가로 32픽셀, 세로 32픽셀이라고 할 때 RG.. 2024. 1. 9.
[ 리눅스 ] 현재 실행중인 port 확인하는 방법 Netstat 사용 Netstat : Linux 네트워킹 시스템에 대한 정보를 확인하는데 사용되는 도구 현재 열려있는 모든 Port를 확인할 수 있다. -l 옵션 : netstat에 모든 수신 소켓을 표시한다. -t 옵션 : 모든 TCP 연결을 표시한다. -u 옵션 : 모든 UDP 연결을 표시한다. -p 옵션 : 포트에서 수신하는 어플리케이션/데몬의 이름을 표시한다. -n 옵션 : 서비스 이름 대신 port 번호를 표시한다. $ sudo netstat -ltup 2023. 12. 14.
[학습 이슈] validation 정확도가 train 정확도보다 높은 경우 validation dataset이 부족해서...! 학습 데이터셋와 검증 데이터셋 비율을 9:1로 했더니, 학습할 때 validation 정확도가 train 정확도보다 높은 이슈가 발생했다. 데이터셋 비율을 8:2로 변경 후에 다시 학습해보니 해결됨 ! (추가) 더 찾아보니 흔히 있을 수 있는 일이라서 크게 신경 안써도 된다고 함..! 2023. 12. 8.
[FastAPI] 3. 멀티프로세싱 fastAPI는 ASGI중 한 종류인 uvicorn와 함께 비동기적인 형태로 동작한다.  * 비동기적 : 어떤 작업을 요청했을 때 그 작업이 종료될때 까지 기다리지 않고 다른 작업을 하고 있다가, 요청했던 작업이 종료되면 그에 대한 추가 작업을 수행하는 방식* 동기적 : 어떤 작업을 요청했을 때 그 작업이 종료될때 까지 기다린 후 다음 작업을 수행하는 방식 fastAPI로 mutiprocessing을 진행하기 위해 두가지 방법으로 접근을 해봤다.  1. 리스트 형태의 입력값을 받고, 해당 값들로 병렬처리하는 방법import timefrom multiprocessing import Processdef print_sum(input): num1 = input[0] num2 = input[1] .. 2023. 12. 6.
[ Pytorch ] torch 기반의 모델 저장과 불러오기 Pytorch 모델을 불러올때 있었던 이슈는 모델을 잘 저장을 했지만, 불러올때 자꾸 GPU를 잡는 문제가 있었다. 처음에는 디바이스 설정을 잘못한줄 알았지만.. 디버깅을 해보았을때 모델을 불러올때부터 GPU를 사용한다는 것을 알게 되어서 torch 모델 저장과 불러오는 방법을 다시 찾아보게 되었다 ㅎㅎ.. 지금 생각해보면 pytorch를 제대로 공부해보고 써보지 않아서 생긴 문제 같기도...ㅎㅎ 01. 모델 저장 모델을 저장하면 '모델 구조 자체'와 '학습한 파라미터' 두가지를 저장하게 된다. pytorch에서는 'state_dict' 함수를 사용하여 파라미터의 텐서를 사전 형식으로 추출할 수.. 2023. 8. 15.
[ conda ] conda 채널 추가 회사 리눅스 서버에서 python 3.9.10 버전으로 conda 환경을 만들어 개발을 진행하려고 했는데 .... 설치 에러가 발생했다.! python 3.9.10 버전을 사용하기 위해서는 conda 채널을 추가해주면 되는데 해결한 명령어는 다음과 같다. conda config --append channels conda-forge 해결은 했지만, conda-forge가 어떤것인지 몰라서 좀 더 찾아보았다. 1. conda ? conda는 패키지 관리나 가상환경 관리를 할때 사용한다. pip 보다 안정적이고 편리한 패키지 관리, 가상환경을 지원한다. 많은 곳에서는 pip 보다는 conda를 사용하고, anaconda 보다는 miniconda를 많이 사용한다고 한다. 2. conda에서 channel이란? .. 2023. 8. 4.
[ 용어 ] Softmax와 Negative Log-Likelihood (NLL) pytorch로 VGG-16 모델을 구현하다가 softmax와 Negative Log-Likelihood의 용어를 알게되어서 정리해본다. 1. Softmax softmax는 보통 뉴럴 네트워크의 출력 layer에 속해있고 사용 목적으로는 multi-class classification과 같은 문제에서 최종 출력을 0과 1 사이의 확률값을 나타내기 위해 사용된다. 0~1 사이의 값으로 모두 정규화된 값으로 출력되고 출력값들의 총합은 항상 1이 되는 특징을 가지고 있다. 가장 큰 출력 값으로 부여받은 클래스가 확률이 가장 높은 것으로 사용된다. $ p_j = \frac{e^{zj}}{\sum^k_{k=1}e^{zj}} , j= 1,2,3,...,k $ $ k $ = 클래스 수 $ z_j $ = 소프트맥스 함.. 2023. 7. 21.
[FastAPI] 2. 라우팅 1. 용어 1.1. "라우팅"이란? 클라이언트가 서버로 보내는 HTTP 요청을 처리하는 프로세스이다. 1.2. "라우트"란? HTTP 요청 메서드의 요청을 수락하고 선택적으로 인수를 받을 수 있도록 정의된다. 요청이 특정 라우트로 전달되면 애플리케이션은 라우트 처리기(route handler)가 요청을 처리하기전에 해당 라우트가 정의되어 있는지 확인한다. 1.3. "라우트 처리기 (route handler)"란? 서버로 전송된 요청을 처리하는 함수이다. ex) 요청을 받아 데이터베이스에서 특정 데이터를 추출하는 함수 1.4. "HTTP 요청 메서드"란? HTTP 메서드 처리 유형을 정의하는 식별자이다. 표준 메서드에는 GET, POST, PUT, PATCH, DELETE등이 있다. 2. 라우팅 예시 20.. 2023. 7. 14.
[FastAPI] 1. 시작하기 1. 가상환경 설정 익숙한 pip으로 가상환경을 설정해줘도 상관없지만, 사용해보지 않은 virtualenv를 활용해보려고 한다. 1.1. virtualenv를 사용한 개발 환경 구축 #-- fastapi라는 폴더를 만들고 이 폴더 안에 가상환경을 생성 $ mkdir fastapi && cd fastapi $ python3 -m venv fastapi_env venv 모듈은 가상 환경을 설치할 폴더명을 인수로 지정 > 두번째 인수인 fastapi는 가상환경으로 사용할 폴더명이다. > 생성된 가상 환경 폴더 (fastapi)에는 파이썬 인터프리터가 설치된 lib 폴더와 가상 환경 내에서 상호작용 (가상 환경 활성화 / 비활성화 등)이 필요한 파일을 저장하는 bin 폴더가 있다. 1.2. 가상환경 활성화 / .. 2023. 7. 14.
[에러] If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0. detectron2 모델을 학습하다가 에러가 발생 If you cannot immediately regenerate your protos, some other possible workarounds are: 1. Downgrade the protobuf package to 3.20.x or lower. 2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower). 해결 방법 : 라이브러리 재설치 pip install protobuf==3.20. 2023. 7. 11.
[Optical Flow] 옵티컬 플로우3 - Optical Flow 개념 이해 이전에는 영상분석에서의 용어와 Motion field에 대해 정리해보았다. 2023.06.30 - [study/Algorithm] - [Optical Flow] 옵티컬 플로우 2023.07.02 - [분류 전체보기] - [Optical Flow] 옵티컬 플로우2 - Motion field 개념 이해 이번에는 이전에 이어서 Optical Flow에 대한 개념을 정리하려고 한다. 참조 : https://gaussian37.github.io/vision-concept-optical_flow/# 참조 : https://searching-fundamental.tistory.com/17?category=1040000 2. Optical Flow 란? Optical Flow는 정확하게는 물체의 움직임을 포착하는 방법.. 2023. 7. 3.
[Optical Flow] 옵티컬 플로우2 - Motion field 개념 이해 이전에 영상 분석에서 많이 사용되는 용어를 정리해보았다. 2023.06.30 - [study/Algorithm] - [Optical Flow] 옵티컬 플로우 [Optical Flow] 옵티컬 플로우 참조 : https://gaussian37.github.io/vision-concept-optical_flow/# 참조 : https://searching-fundamental.tistory.com/15 Optical Flow는 물체의 움직임을 예측하는데 많이 사용된다. 사람은 관성에 의거해서 물체의 움직임을 leeyujin.tistory.com 이번에는 이전 게시글에 마지막에 언급된 Motion field에 대해서 개념 정리를 해보려고 한다. 참조 : https://gaussian37.github.io/v.. 2023. 7. 2.
VSCODE에서 custom path 설정하는 방법 다른 py파일에서 만든 함수를 불러와서 사용하고 싶을 때 ! 예를 들어) modules 폴더 안에 있는 custom_func.py 파일에 있는 kor_keyword( ) 함수를 불러오고자 한다. 1. 먼저, 시스템 관련 라이브러리인 sys를 활용해서 modules 폴더 경로를 시스템에 추가해준다. import sys sys.path.append("..modules") from custom_func import kor_keyword 여기서도 코드는 아무 문제 없이 실행되지만, import 부분에서 노란색 줄로 경고 메세지가 보일것이다. 거슬리지 않는다면 무시해도 되지만.. 나는 너무 거슬려서 아래 방식을 추가로 설정해주었다. 2. settings.json에서 추가로 설정을 해준다. 아래 예시처럼 코드 실행.. 2023. 6. 30.
[Optical Flow] 옵티컬 플로우 참조 : https://gaussian37.github.io/vision-concept-optical_flow/# 참조 : https://searching-fundamental.tistory.com/15 Optical Flow는 물체의 움직임을 예측하는데 많이 사용된다. 사람은 관성에 의거해서 물체의 움직임을 예측한다. 즉, 모든 물리 현상은 관성을 따른다. 연속 영상에 관한 지식 1. 용어 Frame (프레임) : 연속된 영상이 입력될 때 사용되는 용어로, 동영상을 구성하는 각각의 영상을 뜻하며 시간 축 t를 가지게 된다. - 비디오나 영화등 영상을 전달할때 화면에 뿌려주는 한장의 그림을 의미한다. - 이런 그림들이 초당의 속도로 빠르게 바뀌면서 움직이며 하나의 동영상을 만들어낸다. (ex, 필름) .. 2023. 6. 30.
[Python] requirements.txt로 패키지 관리 파이썬으로 프로젝트를 진행할때 여러가지 라이브러리를 설치하게된다. 설치한 라이브러리를 확인하고 싶을때 pip list 명령어를 입력하면된다. 다른 환경에서 똑같은 패키지를 한번에 설치하고 싶을때 패키지들을 모두 텍스트 파일로 생성해서 설치할 수 있다. 이때 만드는 텍스트 파일 이름으로는 requirements.txt 를 가장 많이 사용한다. 아래의 명령어로 텍스트 파일 생성이 가능하다. $ pip freeze > requirements.txt 파일을 열어보면 버전 정보까지 모두 정리가 되어있는 것을 볼 수 있다. 만든 text파일로 모든 패키지를 한번에 설치해주는 명령어는 다음과 같다. $ pip install -r requirements.txt 2023. 6. 29.
[Recommend] Content-based filtering 목표 추천시스템 알고리즘 중에서 컨텐트 기반 필터링에 대해서 알아보고자 한다. 1. Collaborative filtering vs. Content-based filtering 1-1. Content-based filtering Recommend items to you based on raings of users who gave similar ratings as you 아이템에 비슷한 점수를 준 사용자를 기반으로 항목을 추천하는 알고리즘 1-2. Collaborative filtering Recommend items to ypu based on features of user and item to find goog match 사용자의 특징과 아이템 특징을 기반으로 항목을 추천하는 알고리즘 2. Conten.. 2023. 5. 6.
[Github] ![rejected] master -> master (non-fast-forward) 해결 목표 push를 하려고 할때, push를 할 수 없는 경우 원인과 해결 방안을 정리하려고 한다. 1. 원인 .gitignore 파일 또는 README.md 파일로 인해서 생길 수 있는 문제. 2. 해결 방안 branch 이름 앞에 +를 붙여서 push 진행 $ git push origin +master 3. 추가 이슈 파일을 수정하기 전에 pull을 먼저 진행하고 push 하기. $ git pull origin master --allow-unrelated-histories 2023. 4. 28.
[Python] 파일 확장자명 일괄변경 목표 폴더내에 확장자명을 일괄적으로 변경하는 코드를 정리하고자 한다. import os, glob files = glob.glob("*.png") #-- 변경하려는 확장자명을 가진 파일들을 모두 가져온다. for file in files: n_split = os.path.splitext(name) #-- 파일명에서 확장자와 basename을 구분해준다. os.rename(file, n_split[0]+".jpg") #-- basename에 "jpg" 확장자를 붙이고 파일명을 변경해준다. 2023. 4. 27.
[Coursera] Advanced Learning Algorithms 수료증 취득! 2023. 4. 26.
[Sketch rnn] A Neural Representation of Sketch Drawings 목표 sketch-RNN 모델에 사용된 데이터 형태와 모델의 구조에 대해서 알아보려고 한다. 1. DATA 구글에서 만든 Quick draw라는 게임을 통해서 데이터가 수집이 된다. (https://quickdraw.withgoogle.com/) Quick draw는 주어진 제시어를 20초 이내로 사용자가 그림을 그리면 인공지능이 맞추는 게임이다. 수집되는 데이터에는 펜의 움직이는 방향(x축, y축의 이동거리), 펜의 상태(up, down, drag)가 시퀀스 벡터로 입력된다. 이렇게 수집된 데이터셋은 총 345개의 라벨을 가진 50,000,000개이다. 2. "A Neural Representation of Skerch Drawings" 연구의 목표 사람이 그리는 것과 비슷하게 추상적인 개념을 일반화하.. 2023. 4. 25.
[CV] Object Detection 이미지 분류 기술 종류와, 원리, 관련 모델, 성능 평가 방법, 활용분야에 대해서 정리해보려고 한다. 전체적인 흐름 위주로 정리했기 때문에, 모델 설명 부분에서도 생략된 것이 많다. 차근차근 정리할 예정이다. 01 . 이미지 분류의 종류 이미지 분류의 종류에는 크게 Classification, Object Detection, Segmentation 기술이 있다. Classification : 이미지 자체를 판단하는 기술 Object Detection : Bounding Box 안에 있는 객체가 어떤 객체인지를 판별해주는 기술 Bounding Box(B-Box)란? 이미지 내에서 객체의 위치를 사각형 형태로 예측한 결과를 의미한다. Image Segmentation : 이미지 단위가 아니라, 픽셀 단위로 .. 2023. 3. 6.
[Coursera] 02_Neural network model 코세라 머신러닝 강의 https://www.coursera.org/learn/advanced-learning-algorithms Coursera | Online Courses & Credentials From Top Educators. Join for Free | Coursera Learn online and earn valuable credentials from top universities like Yale, Michigan, Stanford, and leading companies like Google and IBM. Join Coursera for free and transform your career with degrees, certificates, Specializations, & MOOCs .. 2023. 3. 3.
[Coursera] 01_ Neural networks intuition 첫번째로 수료한 Supervised Machine Learning: Regression and Classification 강의에 대해 수료 후기는 아래에서 볼 수 있다. 2023.02.12 - [Coursera/01_ Supervised Machine Learning] - [Coursera] Machine Learning 첫번째 수료증 취득! Advanced Learning Algorithms 강의 1주차를 시작한다. Coursera | Online Courses & Credentials From Top Educators. Join for Free | Coursera Learn online and earn valuable credentials from top universities like Yale, M.. 2023. 2. 17.
[Transformer] Attention is all need(2) Architecture 이전에 Seq2Seq에 대한 한계점과 해결 방안인 Attention 기법 위주로 논문을 읽어 보았다. 2023.02.12 - [Review a paper] - [Transformer] Attention is all need(1) Seq2Seq 한계점 오늘은 트랜스포머 (Transformer)에 대해서 알아보고 핵심기능은 Attention 을 더 자세히 알아보고자 한다. 1. 트랜스포머(Transformer)란? 2021년 기준으로 현대의 자연어 처리 네트워크에서 핵심이 되는 논문이다. 논문의 원제목은 Attention Is All You Need이다. Attention 기능 하나만 잘 사용해도 NLP 분야에서 좋은 성능을 얻을 수 있다. 트랜스포머는 RNN이나 CNN을 전혀 필요로 하지 않는다는 특징이 .. 2023. 2. 14.
[Docker] exec와 attach 명령어 차이 2023.02.07 - [Container/Docker] - [Docker] Container 조회, 중지, 시작, 재시작, 접속 이전 게시글에서 간단한 docker 명령어를 다뤄보았는데, 그 중에서 container 접속하는 명령어인 exec와 attach의 차이를 알아보고자 한다. 1. exec 명령어 외부에서 컨테이너 접속할 때 사용한다. 컨테이너에 접속을해서 새로운 명령을 할 수 있다. docker exec -it /bin/bash 2. attach 명령어 container 실행하고, 접속하는 명령어이다. docker attach 둘 다, 컨테이너가 실행되고 있지 않으면 내부로 접속할 수 없다는 특징이 있다. 2023. 2. 14.
[Python] 리스트 안의 원소들을 한번에 int type 으로 변환 # 여러 원소가 들어가 있는 하나의 리스트 (list_a)를 한번에 int 형태로 바꾸고자 한다. int_list = [int(i) for i in list_a] 또는 int_list = list(map(int, list_a)) 2023. 2. 14.
반응형