본문 바로가기

분류 전체보기

Core Register & CMSIS Core Register & CMSIS Contents 1. Non-memory mapped register, Memory-mapped register 2. 모드 변경 - Privileged, Unprivileged 1. Non-memory mapped register , Memory mapped register - Core 레지스터는 memory map에서 주소를 가지고 있지 않다. 따라서, 접근해서 값을 읽을 수 있는 개념이 아니다. - 해당 레지스터의 값을 읽고, 쓰려면 메모리 맵에 접근하는 것이 아닌 assembly instruction을 이용해야 한다. - CMSIS는 assembly instruction를 포함한다. - Memory mapped register는 두 종류로 나뉜다. (Proce.. 더보기
KMP 알고리즘(문자열 비교) "Is there a (longest) suffix which is also a prefix?" (접미사 중에서 접두사와 일치하는 가장 긴 것이 있는가?) ▶KMP 알고리즘 설명 - 문자열 검색 알고리즘, O(N + M). - N : 텍스트 길이, M : 패턴 길이 - 두 단계로 나뉜다. 1. KMP Substring(=pattern) Search, O(m) ABCDABCDABEE ABCDABE 를 비교하였을 때 매칭되지 않는 시점(C != E) 바로 직전의 접미사(suffix) 중에서 접두사(prefix)와 일치하는 가장 긴 길이는 얼마인가? ==> 정답 : 2 결과는 테이블 형태로 나타내는데 길이는 패턴 길이와 동일하다. 위의 예시에서 테이블은 [0 0 0 0 1 2] 이 된다. (코드) vector.. 더보기
모델 앙상블(ensemble) 하기 학습이 잘된 몇가지 모델이 있고, 각각의 모델의 성능을 결합하여 최선의 결과를 얻고 싶을 때 모델 앙상블을 이용한다. 예시) 잘 학습된 가중치를 포함한 모델 1~3이 있다고 하자. 모델을 통해 추론한 결과는 (5000, 26) 사이즈를 갖는다고 가정해 보자. 모델 3개를 통해 추론한 결과를 앙상블 하는 과정은 다음과 같이 정리할 수 있다. 코드로 나타내면 다음과 같다. for model in best_models: (...) for idx, sample in enumerate(test_data_loader): with torch.no_grad(): (...) probs = model_bone(images) preds = (probs > 0.5) batch_idx = batch_size * idx # im.. 더보기
Pillow Utils ▶Pillow를 이용해 이미지를 Grayscale로 바꾸는 방법 - .convert('L')을 이용해 grayscale로 바꿔준다. import cv2 import os import numpy as np from PIL import Image path = 'tmp' imagePaths = [os.path.join(path,file_name) for file_name in os.listdir(path)] for imagePath in imagePaths: # 1) img = Image.open(imagePath).convert('L') img_numpy = np.array(img, 'uint8') #PIL 자체가 0~255 범위인데 'uint8'이 필요한가? # 혹은 numpy array로 바꿔준 다음에 .. 더보기
결합 확률 분포, 주변 확률 분포 (Joint / Marginal Probability Distribution) Contents 결합 확률 분포(Joint Probability Distribution) 결합 확률 질량 함수(Joint PMF) 결합 확률 밀도 함수(Joint PDF) 주변 확률 분포(Marginal Probability Distribution) 주변 확률 질량 함수(Marginal PMF) 주변 확률 밀도 함수(Marginal PDF) 조건부 확률 분포(Marginal Probability Distribution) 조건부 확률 질량 함수(Conditional PMF) 조건부 확률 밀도 함수(Conditional PDF) ※ 주변 확률 분포는 두개의 변수로 이루어진 결합 확률 분포를 하나의 변수로 표현하기 위한 방법이다. ※ 주변 확률 분포는 결합 확률 분포와 대립되는 개념이 아니다! ▶ 결합 확률 .. 더보기
ARM 교육 받을 수 있는 곳 기본 강의와 책을 제공. www.arm.com/resources/education 그중 들어볼 만한 강의가 있다(유료) www.arm.com/resources/education/online-courses 책으로 보고 싶다면 다음 링크를 참조(일부 유료) www.arm.com/resources/education/books 심화 이하 본격적인 ARM IP 관련 내용을 참조할 수 있는 곳이다(유료) developer.arm.com/support/training?_ga=2.4985078.473169587.1613142450-82408871.1613142450 더보기
다변량 가우시안 분포(Multivariate Gaussian Distribution) 1. Multivariate Gaussian Distribution 2. Multivariate Gaussian Distribution 특징 3. Multivariate Gaussian Distribution의 활용 4. 코드 1. Multivariate Gaussian Distribution - 일차원의 정규 분포를 다차원으로 확장 시킨 개념 - 평균값을 중심으로 군집화 되어 있는 '상관 관계있는' 랜덤 변수 집합을 설명하는데 자주 사용된다. - $N(\mu, \Sigma)$ - $\mu \in R^k$ : 위치 - $\Sigma \in R^{k \times k} $ : 공분산 정리하자면, K차원의 랜덤벡터 $ X = (X_1, ... , X_k)^T $ 의 다변량 정규 분포는 다음과 같이 표현할 수 .. 더보기
공분산(Covariance) 정리 공분산 행렬 개념 공분산 행렬 특징 공분산 행렬 개념 - 분산이 데이터(X) 자체의 퍼짐(Distribution) 정도를 나타내는 척도라면, - 공분산은 데이터 끼리(X, Y) 비교하여 Trend를 나타낸다. 따라서, 상대적인 지표이다. - 그 자체 값으로는 해석하기 난해하며 상관관계(Correlation), 주성분분석(PCA), 가우시안 혼합 모델(GMM) 계산에 쓰인다. ※ 분산(Variance) : $ E(X^2) - {E(X)}^2 $ 공분산 행렬 특징 Cov[Ax] = $ ACov[x]A^T $ 유도) $$ \begin{align}{\rm Cov}[A x] & = \mathbb{E}[(Ax - \mathbb{E}[Ax])(Ax - \mathbb{E}[Ax])^T] \\ & = \mathbb{E}.. 더보기