numpy API 벡터, 행렬의 연산

김상윤·2023년 3월 7일
0

Matrix operations

Dot product

import numpy as np

u = np.random.uniform(0,5,(4,))
v = np.random.uniform(0,5,(4,))

sum_hadamard = np.sum(u*v)
np_dot = np.dot(u,v)

원소별로 곱하고 그 값을 더해주는 것이 dot product이다.
-> element-wise multiplication + sum

Deep Learning에서의 적용

import numpy as np

x = np.random.uniform(0,5,(4,))
w = np.random.uniform(0,5,(4,))

b = np.random.uniform(0,5,(4,))
affine = np.dot(x,w) + b
activation = 1/(1+np.exp(-affine))

affine은 x1w1 + x2w2 + x3w3 ... + b를 나타낸다.

Matrix-vector Multiplication

import numpy as np
M = np.random.uniform(0,5,(3,4))
u = np.random.uniform(0,5,(3,4))

mat_vec_mul = np.empty((3,))
for row_idx in enumerate(M):
	mat_vec_mul[row_idx] = np.dot(row, u)
    #mat_vec_mul[row_idx] = np.sum(row* u)

np_matmul = mp.matmul(M, u)

M N[i,j] = RiCj
numpy.matmul(x1, x2)

import numpy as np
M = np.random.uniform(0,5,(3,4))
u = np.random.uniform(0,5,(4,5))

mat_vec_mul = np.empty((3,5))
for M_row_idx in range(3):
	for N_col_idx in range(5):
		dot_prod = np.dot(M[M_row_idx,:],N[N_col_idx])
        mat_mat_mul(M_row_idx, N_col_idx] = dot_prod
        
np_matmul = np.matmul(M, N)
profile
AI 대학원 지망생

0개의 댓글