행렬의 내적
A
,B
, ... : 2차원 이상의 ndarrayx
,y
* , ... : 1차원의 ndarray
import numpy as np
> 행렬의 곱셈(dot) by numpy
x = np.array([1, 2])
W = np.array([[3, 4],
[5, 6]])
print(x.dot(W))
print(W.dot(x))
Result
[13 16]
[11 17] # 계산을 위해서 행렬 x의 모양이 (1,2)에서 (2,1)으로 자동 변경됨
> np.reshape()
A = np.arange(1, 7)
print(A)
A = np.arange(1, 7).reshape((2,3))
print(A)
Result
[1 2 3 4 5 6]
[[1 2 3]
[4 5 6]]
> Dot
B = np.arange(1, 7).reshape((3,2))
print(B)
print(A.dot(B))
print(B.dot(A))
Result
>> print(B)
[[1 2]
[3 4]
[5 6]]
>> print(A.dot(B))
[[22 28]
[49 64]]
>> print(B.dot(A))
[[ 9 12 15]
[19 26 33]
[29 40 51]]
>> 행렬의 내적(dot product)은 교환 법칙(AB = BA)가 성립하지 않는다.
> ndarray.shape -> (x, ), (x, y), (x, y, z), ...
x = np.array([1, 2, 3])
print(x)
print(x.shape)
Result
[1 2 3]
(3, ) # 1차원 Array -> 원소의 개수를 뜻함
> ndarray.reshape( )
x = x.reshape(3, 1)
print(x)
print(x.shape)
Result
[[1]
[2]
[3]]
(3, 1)
$$$$
> Numpy_ Array 계산
x = np.array([1, 2])
W = np.array([[1, 4],
[2, 5],
[3, 6]])
b = 1
y = W.dot(x) + b # x행렬을 numpy가 (3,1)으로 변환한 뒤 계산
print(y)
Result
[10 13 16]
> Numpy_ Array 계산2
W2 = np.array([[1, 2, 3],
[4, 5, 6]])
y2 = x.dot(W2) + b
print(y2)
Result
[10 13 16]
'Python > Python 딥러닝' 카테고리의 다른 글
[딥러닝용어-평가] 혼동행렬 정확도 정밀도 재현율 F1스코어 특이도 ROC곡선 (0) | 2020.07.10 |
---|---|
[딥러닝용어-학습] 하이퍼파라미터, 배치, 에포크, 스텝, 지도학습, 비지도학습, 강화학습 (0) | 2020.07.10 |
[딥러닝용어-데이터준비] 회귀와 분류, 원핫인코딩, 교차검증, 클래스 불균형, 과소표집과 과대표집, 홀드아웃 검증기법,K-폴드검증 (0) | 2020.07.10 |
Python 딥러닝 2_ Perceptron과 활성화 함수 (0) | 2020.05.03 |
Python 딥러닝 1_ Perceptron과 Logic Gates (0) | 2020.05.01 |