본문 바로가기
Study/Mathematics

[선형대수학] 아마다르 곱, 내각

by jizy 2023. 9. 5.
728x90

01. 아마다르 곱 Hadamard product

 

  • 두 벡터가 동일한 사이즈일 때, 각각의 element를 곱하는 방법

X
# array([[25,  2],
#        [ 5, 26],
#        [ 3,  7]])

A = X+2
# array([[27,  4],
#        [ 7, 28],
#        [ 5,  9]])

A + X
# array([[52,  6],
#        [12, 54],
#        [ 8, 16]])

A * X
# array([[675,   8],
#        [ 35, 728],
#        [ 15,  63]])

A_pt * X_pt
# tensor([[675,   8],
#         [ 35, 728],
#         [ 15,  63]])

A_tf * X_tf
# <tf.Tensor: shape=(3, 2), dtype=int32, numpy=
# array([[675,   8],
#        [ 35, 728],
#        [ 15,  63]], dtype=int32)>

 

 

 

 

 

02. 내각 Dot Product

 

  • 두 벡터간 element를 곱한 뒤 총합을 계산하는 방법

x
# array([25,  2,  5])

y = np.array([0, 1, 2])
# array([0, 1, 2])

np.dot(x, y)           #  25*0 + 2*1 + 5*2
# 12


x_pt
#  tensor([25,  2,  5])

y_pt = torch.tensor([0, 1, 2])
# tensor([0, 1, 2])

np.dot(x_pt, y_pt)
# 12

torch.dot(torch.tensor([25, 2, 5.]), torch.tensor([0, 1, 2.]))
# tensor(12.)


x_tf
# <tf.Variable 'Variable:0' shape=(3,) dtype=int32, numpy=array([25,  2,  5], dtype=int32)>

y_tf = tf.Variable([0, 1, 2])
# <tf.Variable 'Variable:0' shape=(3,) dtype=int32, numpy=array([0, 1, 2], dtype=int32)>

tf.reduce_sum(tf.multiply(x_tf, y_tf))
# <tf.Tensor: shape=(), dtype=int32, numpy=12>

 

 

 

 

 

728x90