Management/경영정보
[연구방법론] 비통계적 연구방법론
OManager
2019. 9. 25. 15:46
2-2. 신경망을 위한 데이터 표현
1). 스칼라(Scalar: 0 Dense): 하나의 숫자만 담고있는 텐스
2) 벡터(Vector: 1 Dense): 숫자의 배열로 하나의 축을 가짐
3) 행렬(Matrix: 2 Dense): 벡터의 배열로 두개의 축을 가짐
4) 3 Dense와 고차원 Dense: 행열들의 배열로 여러개의 축을 가짐
5) 핵심 속성
- 축의크기(ndim): 축의 갯수
- 크기(shape): 몇개의 차원으로 구성
- 데이터타입(dtype): 저장된 데이터의 타입
2-3. Tenser operation
karas.layers.Dense(512, activation='relu')
output = relu(dot(W, input) + b
1) 원소별 연산(Element-wise operation)
- Element wise operation을 사용하지 않은 코드
def naive_relu(x):
assert len(x.shape) == 2
x = x.copy()
for i in range(x.shape[0]):
for j in range(x,shape[1])
x[i, j] = max(x[i,j], 0)
return x
def naive_add(x, y):
assert len(len.shape) == 2
assert x.shape = y.shape
x = x.copy()
for i in range(x.shape[0]):
for j in range(x.shape[1]):
x[i, j] += y[i, j]
return x
- Element wise operation 을 사용한 코드
import numpy np
z = x + y
z = np.max(z, 0.)
2) 브로드케스팅
- 큰 텐서의 ndim에 맞도록 작은 텐서에 축이 추가됩니다.
- 작은 텐서가 새 축을 따라서 큰 텐서의 크기에 맞도록 복사하여 반복한다.
3) 텐서 점곱(Tenser dot operation)
- A ˙ B : 행렬식 곱셈
- A * B : 순수곱
4) 텐서의 크기 변환 (Tenser reshaping)