더북(TheBook)

2.3.3 텐서 곱셈

텐서 곱셈(tensor product) 또는 점곱(dot product)(* 연산자를 사용하는 원소별 곱셈과 혼동하지 마세요)은 가장 널리 사용되고 유용한 텐서 연산입니다.

넘파이에서 텐서 곱셈은 np.dot 함수를 사용하여 수행합니다(일반적인 텐서 곱셈의 수학 표기법이 점(dot)이기 때문입니다).

x = np.random.random((32,))
y = np.random.random((32,))
z = np.dot(x, y)

수학에서는 이 연산을 점(•)으로 나타냅니다.

z = x • y

점곱 연산은 수학에서 어떤 일을 할까요? 2개의 벡터 xy의 점곱은 다음과 같이 계산합니다.

def naive_vector_dot(x, y):
    assert len(x.shape) == 1  
    assert len(y.shape) == 1  
    assert x.shape[0] == y.shape[0]
    z = 0.
    for i in range(x.shape[0]):
        z += x[i] * y[i]
    return z

x는 넘파이 행렬입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.