] [Keras]2.3신경망의 톱니바퀴 : 텐서연산(2.3.3 텐서 점곱)
본문 바로가기

카테고리 없음

[Keras]2.3신경망의 톱니바퀴 : 텐서연산(2.3.3 텐서 점곱)

텐서 곱셈(tensor product)이라고도 부르는(원소별 곱셈과 혼동하지 말라) 점곱 연산*(dot operation) 은 가장 널리 사용되고 유용한 텐서 연산입니다. 원소별 연산과 반대로 입력 텐서의 원소들을 결합시킵니다. 


넘파이, 케라스, 씨아노, 텐서플로에서 원소별 곱셈은 *연산자를 사용합니다. 텐서플로에서는 dot연산자가 다르지만 넘파이와 케라스는 점곱 연산에 보편적인 dot 연산자를 사용합니다.


import numpy as np
z = np.dot(x,y)
z = x . y

def naive_vector_dot(x,y):
assert len(x.shape) ==1 ----x와 y는 넘파이 벡터입니다.
assert len(y.shape) ==1
assert x.shape[0] == y.shape[0]

z = 0.
for i in range(x.shape[0]
for i in range(x.shape[0]):
z += x[i] * y[i]

return z