๋ฒกํ„ฐํ™”

Vectorization

๋ฐ์ดํ„ฐ๋ฅผ ์ ์ ˆํžˆ ํ–‰๋ ฌ(๋ฒกํ„ฐ) ํ™” ํ•˜์—ฌ ๋ช…์‹œ์  for/while loop ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ๊ณ„์‚ฐ์„ ๋น ๋ฅด๊ฒŒ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•˜๋Š” ๊ธฐ์ˆ 

๋กœ์ง€์Šคํ‹ฑ ํšŒ๊ท€์˜ ๊ณผ์ • ์ค‘ ์•„๋ž˜๋ฅผ ๊ณ„์‚ฐํ•  ๋•Œ,

z=wTx+bz=w^Tx+b

ww์™€ xx๋Š” ๊ฐ๊ฐ mm์ฐจ์› ํ–‰ ๋ฒกํ„ฐ์ด๊ธฐ ๋•Œ๋ฌธ์— python ์—์„œ ์ด๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ํ•  ์ˆ˜ ์žˆ์Œ

# w, x, m, b are defined

z = 0
for i in range(m):
		z += w[i] * x[i]
z += b

ํ•˜์ง€๋งŒ ์œ„ python ์ฝ”๋“œ๋Š” ๋งค์šฐ ๋А๋ฆผ

numpy ์—์„œ๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ SIMD ๋ฅผ ์‚ฌ์šฉํ•œ ์ตœ์ ํ™”๊ฐ€ ๋˜์–ด์žˆ๋Š” vector ์—ฐ์‚ฐ์„ ์ œ๊ณตํ•จ

import numpy as np

# w, x, b are defined
z = np.dot(w, x) + b