본문 바로가기

TIL(Today I Learned)

(16)
[자료구조] 우선순위 큐(Priority Queue)C++ 구현 우선순위 큐를 이래하기 위해선 먼전 heap을 알아야한다.https://codinghago.tistory.com/97 [자료구조] 힙(heap) 최소힙(min heap), 최대힙(max heap) C++ 구현큐(Queue) : 먼저 들어오는 데이터가 먼전 나가는 선입선출(FIFO) 구조우선순위 큐(Priority Queue) : 우선순위가 높은 데이터가 먼저 나가는 구조힙(Heap) : 루트 노드에 최대값이나 최소값을 저장하고codinghago.tistory.com 📍 우선순위 큐(Priority Queue)란? Queue는 먼저 들어오는 데이터가 먼저 나가는 선입선출(FIFO)형식의 자료구조이다. Priority Queue는 Queue에 우선순위 개념을 도입한 자료구조로 들어오는 순서에 상관 없이 우..
[자료구조] 힙(heap) 최소힙(min heap), 최대힙(max heap) C++ 구현 큐(Queue) : 먼저 들어오는 데이터가 먼전 나가는 선입선출(FIFO) 구조우선순위 큐(Priority Queue) : 우선순위가 높은 데이터가 먼저 나가는 구조힙(Heap) : 루트 노드에 최대값이나 최소값을 저장하고 있는 완전이진트리📍 힙(heap)이란?Heap은 완전이진트리 형태의 자료구조로 우선순위 큐를 위하여 만들어지 자료구조이다. 여러개의 값들 중에서 최댓값이나 최솟값을 빠르게 찾아내도록 만들어진 자료구조이다.  힙(heap)은 완전히 정렬된 구조가 아니라 "부분적으로 정렬된"(느슨하게 정렬된) 구조이다.즉, 전체가 오름차순이나 내림차순으로 정렬되어 있는 것이 아니라, 부모 노드의 값이 자식 노드의 값보다 항상 크거나(최대힙) 작다(최소힙)는 조건만 만족하면 된다. 최대 힙(max hea..
YOLO - You Only Look Once Real-Time Object Detection 논문 리뷰 📍 YOLO(You Only Look Once)란? YOLO는 Real Time Object Detection으로 2015년 조셉 레드몬에 의해 등장했다.  Object Detetion은 two-stage와 one-stgae로 분류할 수 있다. YOLO는 one-stage로 YOLO이전의 Classifier를 base로 하던 모델에서 single neural network로 한번에 객체를 인식할 수 있는 모델을 소개했다. YOLO 빠른 속도는 동영상과 같은 실시간으로 객체 인식과 객체 검을 가능하게 만들었다.  YOLO는 객체 인식 분야에서 잘 알려진 모델로 현재까지 버전이 업그레이드 되며 널리 사용되고 있다. 오늘은 YOLO의 첫번째 논문을 살펴보고자 한다. YOLO 논문  YOLO는 object d..
NOTION 노션 slice()함수 에러,ERROR : text 유형의 인수가 slice() 함수를 만족하지 않습니다. 노션에서 프로그래스 바를 구현하던 중 다음과 같은 에러가 계속 발생했다.text 유형의 인수가 slice() 함수를 만족하지 않습니다.  처음에는 slice()함수를 잘못사용하고 있는 줄 알고 문서를 읽어봤지만 문제가 없었다.  한참을 고민하고 다른 방법으로도 시도 해 보았지만 같은 에러가 지속적으로 발생했다.  그러던 중 notion answer 에서 이런글을 발견했다. 나랑 정확히 똑같은 에러였다.  다행히 이전에 해결한 분이 있어서 금방 해결했다.    slice() 함수 대신 substring()사용하면 된다. 이유는 모르겠지만 notion에서 update를 한것 같다.  휴... 감사합니다 ㅎ
[python] 파이썬 슬라이싱 기본 개념 슬라이싱 문법슬라이싱은 list[start:end:step]의 형태를 가진다.start: 슬라이스의 시작 인덱스 (포함).end: 슬라이스의 끝 인덱스 (미포함).step: 슬라이스를 수행할 때의 단계(스텝). 기본값은 1이다.[ : :-1]의 의미빈 start와 end: start와 end를 생략하면 list의 처음부터 끝까지를 의미한다.step이 -1: step이 -1이면, list를 거꾸로 (역순으로) 탐색하라는 의미로 즉, 마지막 인덱스부터 첫 인덱스까지 역순으로 읽어온다.따라서  파이썬에서 list[::-1]는 다음과 같이 동작한다.list의 모든 인덱스를 포함(start와 end가 생략됨)하고,list를 거꾸로 읽어오는(step이 -1) 방식으로 list를 뒤집는다.original_list =..
모델 저장과 Callback 01. MNIST 모델 예제 - 딥러닝을 처음 배우는 사람들이 만나게 되는 데이터셋 중 하나인 손으로 쓴 숫자들로 이루어진 이미지 데이터셋 1.데이터 로드 및 전처리 - 02. 모델 저장과 로드 - 모델을 학습시키고 저장을 안한다면 다시 처음 부터 학습을 시켜야함 - 어느정도 학습이 되었다면 추후에 모델을 사용하기 위해 저장할 필요가 있음 - 모델을 저장할때는 save()함수를 사용 - 모델을 다시 불러오는데에는 load_model()함수를 사용 - 모델을 저장하고 로드하는 것에서 중요한 점은 모델 생성시에 Sequencial API or Runctional API를 사용한 경우에는 모델의 저장및 로드가 가능 but Subclasing API방식은 사용할 수 없음 - Subclassing API 방식은 ..
K-means 클러스터링 (군집화) : 명확한 분류 기준이 없는 상황에서 비슷한 데이터들 끼리 묶어 주는 분류 알고리즘 K-means : k개의 클러스터 개수가 주어져있을 때, 주어진 데이터들을 k개의 클러스터로 묶는 중심기반 알고리즘 임의로 지정한 k개의 중심점이 새로운 label역할을 한다. 중심점 간의 cost를 최소화 하는 방향으로 계속 update를 해주면서 그룹화를 수행한다. k-means알고리즘 작동순서 초기점 K를 설정한다. K : 중심점 묶일 그룹의 수와 같다. 중심점(centroid)간의 평균 거리가 많이 차이나지 않는 k를 선택해야한다. 적절한 k를 선택하기 위해 elbow curve를 사용한다. cluster를 부여한다 K개의 중심점과 개별 데이터간의 거리를 측정한다 가장 가까운 중심점으로 clu..
클러스터링 K-means 피타고라스 정리를 응용하여 계산한 좌표축 사이의 두 점 사이의 직선거리를 유클리드 거리(Euclidian distance) 또는 L2 Distance라고 부릅 전체적인 K-mean 알고리즘의 순서는 다음과 같이 구성됩니다. K-mean 알고리즘의 순서 원하는 클러스터의 수(K)를 결정합니다. 무작위로 클러스터의 수와 같은 K개의 중심점(centroid)을 선정합니다. 이들은 각각의 클러스터를 대표합니다. 나머지 점들과 모든 중심점 간의 유클리드 거리를 계산한 후, 가장 가까운 거리를 가지는 중심점의 클러스터에 속하도록 합니다. 각 K개의 클러스터의 중심점을 재조정합니다. 특정 클러스터에 속하는 모든 점들의 평균값이 해당 클러스터 다음 iteration의 중심점이 됩니다.(이 중심점은 실제로..