[모두의 딥러닝] lab 08. Tensor Manipulation
Simple ID array and slicing
- 1차원 array
- rank: 몇 차원의 array인지
- shape: array의 모양이 어떠한가 (개수)
- "-1"은 특별한 의미를 지님 = python에서는 마지막을 뜻함.
2D Array
- 2차원도 1차원과 같이 접근
Shape, Rank, Axis(축)
- rank: 1, shape: (4)
- rank: 2, shape: (2 , 2)
- rank: 대괄호가 (element가 나오기 전까지) 몇 개 있느냐로 파악 가능
- shape: 괄호를 타고 끝까지 들어가서 몇 개 있는지 보기(오른) + 안의 괄호가 몇 쌍 있는지 = x, y(왼)
- rank: 4, shape: (1, 2, 3, 4)
- Axis
: 축은 0부터 시작함
: 가장 안 쪽에 있는 것이 가장 큰 값 = -1 이라고도 함
: 바깥 단으로 갈수록 축 값이 작아짐
Matmul VS multiply
- 곱하기를 하기 위해서는 shape이 맞아야 한다.
- 곱한 결과 shape (2, 1)
- 헷갈려서 matrix 곱하기가 아닌 일반 곱하기를 하는 경우
: 결과가 다르게 나오니 의도한 것이 아닌 이상 주의하기!!!!!
Broadcasting (주의!)
- shape이 다르더라도 연산을 할 수 있게 해주는 것
- shape이 같은 경우
- shape이 다른 경우
- tense의 격을 맞추어 주는 것이 broadcasting
- rank가 다른 경우
- 아예 서로 형태가 다른 tense인 경우
- 굉장히 강력한 기술이지만 잘 모른다면 이상한 값이 나올 수 있음.
- 앞 뒤의 shape을 잘 고려하고 사용하기! (이왕이면 같은 shape)
Axis
Reduce mean
- 평균을 줄여서 구한다는 뜻
- 행렬에서 값이 여러 개일 때 줄이는 것
- integer의 평균을 구할 때: 자료형 주의
- 평균을 계산할 때에는 element가 반드시 float 값이어야 함
- 축: rank=2니 0, 1축이 있을 것.
- 축에 따라 reduce_mean()한 값이 달라진다.
- 축 없이 쓴 경우는 모든 element의 평균을 구하라는 것.
Reduce sum (또한 마찬가지)
- 마지막 줄이 자주 쓰임: 안쪽의 축의 합으로 평균을 내는 것!
Argmax
- 가장 큰 것의 위치를 구하는 argmax
Reshape (가장 많이 사용)
- rank=2, 안의 값은 3개, 나머지는 알아서(-1)
- reshape을 할 때 마구 섞여버리지는 않을까?
--> 보통 우리가 가장 안 쪽에 있는 값은 건드리지 않음.(3) (그대로 가져감)
--> 마구 섞이지는 않는다!
Reshape - squeeze, expand
- squeeze: 괄호를 squeeze(펴주는) 것
- expand_dims: dimension을 추가하는 것.
ONE-HOT
- 주어진 숫자를 one-hot으로 바꾸는 것
- one_hot() 함수
- depth: 대괄호 안의 값이 몇 개인지 주는 것
- one hot은 rank를 자동적으로 하나 expand하게 된다.
--> rank를 expand하기 싫은 경우, one hot을 한 다음 다시 reshape을 해주면 된다.
Casting
- True, False --> 1, 0으로 바꿀 때
: accuracy 값 계산 시 true가 나온 결과의 개수를 알고 싶을 때 많이 사용 (바꿔서 합하기)
Stack
- 축을 바꿈으로써 쌓는 것의 방법을 바꿀 수 있음.
Ones and Zeros like
- 0 또는 1이 들어있는 tense를 만들고 싶을 때
Zip
- 복수 개의 tense가 있을 때 한꺼번에 실행시키고 싶을 때 사용
'인공지능' 카테고리의 다른 글
[모두의 딥러닝] lec 09-2. Neural Network: 딥네트웍 학습시키기 (backpropagation) (0) | 2019.05.07 |
---|---|
[모두의 딥러닝] lec 09-1. Neural Network: Neural Nets (NN) for XOR: XOR 문제 딥러닝으로 풀기 (0) | 2019.05.06 |
[모두의 딥러닝] lec 08-2. 딥러닝의 기본 개념: Back-propagation과 2006/2007 '딥'의 출현 (0) | 2019.05.05 |
[모두의 딥러닝] lec 08-1. 딥러닝의 기본 개념: 시작과 XOR 문제 (0) | 2019.05.05 |
[모두의 딥러닝] lab 07-2. Meet MNIST data set (0) | 2019.05.05 |
댓글