기본 콘텐츠로 건너뛰기

글

Intel MKL 사용하여 행렬곱 계산 속도 개선하기

Intel MKL 사용하여 행렬곱 계산 속도 개선하기 행렬곱을 계산할 때 Intel MKL 을 사용하면 계산 속도가 얼마나 빨라지는지 알아보기 위하여 여러 가지 방법으로 실험을 해 보았습니다. 실험 환경 시스템 프로세서: Intel Core i7-8550U CPU 메모리: 16.0GB 운영체제: Windows 10 (64-bit) 전원 공급: AC adapter 라이브러리 Intel MKL 2019 Update 5 Eigen 3.3.7 컴파일러 MSVC++ Version 2019 (16.0) 소스 코드 완전한 소스 코드 중에서 설명을 위해 필요한 부분만 아래에 제시합니다. 방법-1. C 언어 3중 루프 사용 double *A, *B, *C; int m, n, p, i, j, k; double sum; m = 2000, p = 200, n = 1000; A = (double *)mkl_malloc( m*p*sizeof( double ), 64 ); B = (double *)mkl_malloc( p*n*sizeof( double ), 64 ); C = (double *)mkl_malloc( m*n*sizeof( double ), 64 ); for (i = 0; i < m; i++) { for (j = 0; j < n; j++) { sum = 0.0; for (k = 0; k < p; k++) sum += A[p*i+k] * B[n*k+j]; C[n*i+j] = sum; } } 방법-2. Intel MKL dgemm 함수 사용 (1개의 쓰레드) double *A, *B, *C; int m, n, p; double alpha, beta; int thread_num; m = 2000, p = 200, n = 1000; alpha = 1.0; beta = 0.0; thread_num = 1; ...

붓꽃 분류 - Gaussian Naive Bayes 모델

iris-classification-by-gaussian-nb 붓꽃 분류 - Gaussian Naive Bayes 모델 ¶ 이 글에서는 붓꽃의 꼳받침과 꽃잎의 특징을 사용하여 어떻게 꽃의 종류를 예측할 수 있는지 베이지안 추론 방식으로 보여줍니다. 이 글의 전개 과정은 아래와 같습니다. 붓꽃 데이터 세트를 준비합니다. 꽃 종류별로 측정값의 히스토그램을 그려서 분포를 파악합니다. 꽃 종류에 따라서 측정값이 어떻게 분포할 수 있는지 설명하는 모델을 정의합니다. 측정값이 주어질 때 꽃의 종류를 예측하는 분류기를 구현합니다. 데이터 세트를 훈련 데이터와 검증 데이터로 나누어 분류기를 훈련시키고 예측 성능을 구합니다. 라이브러리 준비 ¶ 사용할 파이썬 라이브러리들을 임포트합니다. In [1]: from collections import defaultdict import numpy as np import pandas as pd from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from scipy.stats import norm import matplotlib.pyplot as plt % matplotlib inline np . set_printoptions ( precision = 6 ) np . random . seed ( 7 ) 데이터 준비 ¶ scikit-learn 에서...