julia coding story
[Deep Learning from Scratch] 신경망(2) - 다차원 배열의 계산 본문
소프트웨어/Deep Learning (딥러닝)
[Deep Learning from Scratch] 신경망(2) - 다차원 배열의 계산
julia-biolat 2023. 1. 7. 23:47728x90
1. 다차원 배열의 계산
1.1 다차원 배열
- 다차원 배열은 '숫자의 집합'
▶1차원
import numpy as np
A = np.array([1,2,3,4])
print(A)
np.ndim(A)#배열의 차원수
#출력 : 1
A.shape#배열의 형상 인덱스, 튜플을 반환해야함 why? 다차원 배열일 때와 통일된 형태로 결과를 반환하기 위함
# 출력 : (4,)
A.shape[0]
#출력 : 4
▶2차원
- B는 3 x 2 배열
- 2차원 배열은 행렬이라고 부름
- 배열의 가로 방향으로 행, 세로 방향으로 열이라고 함
1.1 행렬의 곱
- A의 1행과 B의 열을 곱한 값은 행렬의 1행 1번째 원소가 되고, A의 2행과 B의 1열을 곱한 결과는 2행 1번째 원소가 된다.
▶ 행렬 곱 by Python
import numpy as np
A = np.array([[1,2],[3,4]])
B = np.array([[5,6],[7,8]])
np.dot(A, B) #행렬 곱 = np.dot()함수 사용
#출력 : array([[19, 22],[43, 50]])
- np.dot()은 1차원이면 벡터를 2차원 배열이면 행렬곱을 계산함.
- np.dot(A, B) ≠ np.dot(B,A)
import numpy as np
A = np.array([[1,2,3],[4,5,6]])
B = np.array([[1,2],[3,4],[5,6]])
C = np.array([[1,2],[3,4]])
np.dot(A, B)
#np.dot(A,C) A와 C의 차원이 다름, 행렬 곱할 수 없음
A - 3 X 2 B - 2 x 4 = C - 3 X 4
A - 3 X 2 B - 2 = C - 3
- 색이 같은 것 끼리 동일 해야함
import numpy as np
A = np.array([[1,2,3],[4,5,6]])
B = np.array([[1,2],[3,4],[5,6]])
C = np.array([[1,2],[3,4]])
D = np.array([7,8])
np.dot(B,D)
#출력 : array([23, 53, 83])
▶ 신경망에서 행렬 곱
X = np.array([1,2])
W = np.array([[1,3,5],[2,4,6]])
Y = np.dot(X,W)
print(Y)
#출력 : [ 5 11 17]
'소프트웨어 > Deep Learning (딥러닝)' 카테고리의 다른 글
[Deep Learning from Scratch] 신경망 학습(1) - 손실함수, 교차 엔트로피 오차, 미니배치 학습 (0) | 2023.01.08 |
---|---|
[Deep Learning from Scratch] 신경망(4) - 손글씨 숫자 인식 (MNIST 데이터셋, Batch(배치) 처리) (0) | 2023.01.08 |
[Deep Learning from Scratch] 신경망(3) - 3층 신경망 구현하기 (소프트맥스 함수, 활성화 함수, 파이썬 구현) (0) | 2023.01.08 |
[신경망] 활성화 함수(계단, 시그모이드, ReLU 함수) (0) | 2023.01.01 |
퍼셉트론 Perceptron (0) | 2022.12.31 |