Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- REACTJS
- log4j2
- migration
- eslint
- update
- 퀵소트
- upgrade
- MySQL
- Express
- Regular expression
- git
- Effective Java
- current_date
- Effective Java 3/e
- regex
- Chunk
- log_bin
- JavaScript
- spring cloud
- nodejs
- Node
- npm
- REACT
- java
- Spring Batch
- expire_logs_days
- mysql 5.5
- Webpack
- spring
- 정규표현식
Archives
- Today
- Total
내 세상
케라스 창시자에게 배우는 딥러닝 > 2장 신경망의 수학적 구성 요소 본문
728x90
- Scalar (0D Tensor)
- axis = 0
- 하나의 숫자만 담고 있는 텐서
- ndim 속성을 사용하면 numpy arraya의 axis 개수를 확인할 수 있음.
- Tensor의 axis 개수를 rank라고도 부름.
- Vector (1D Tensor)
- axis = 1
- x = np.array([12, 3, 6, 14, 7])
- 이 벡터는 5개의 원소를 가지므로 5D vector라고 부름. (5D vector/5D Tensor를 혼동하면 안됨.)
- Matrix (2D Tensor)
- axis = 2
- x = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15]])
- 3D Tensor
- axis = 3
- Tensor의 3가지 핵심 속성
- Axis(Rank)
- Numpy library의 ndim 속성에 저장되어 있음.
- 3D 텐서에서는 3개의 axis가 있고, 행렬에는 2개의 axis가 있음.
- shape
- Tensor의 각 axis에 따라 얼마나 많은 차원이 있는지를 나타낸 Python의 tuple.
- x = np.array([[1, 2, 3, 4, 5], [6, 7, 8, 9, 10], [11, 12, 13, 14, 15]])
- 해당 matrix의 크기는 (3, 5)
- data type
- Numpy library의 dtype 속성에 저장되어 있음.
- tensor의 type은 float32, uint8, float64 등이 될 수 있음.
- Tensor는 미리 할당되어 연속된 메모리에 저장되어야 하므로 Numpy array는 가변 길이의 문자열을 지원하지 않음.
- Axis(Rank)
- slicing
- array에 있는 특정 원소들을 선택하는 것
- example)
- images[10:100] → 11번째에서 101번째까지 선택(101번째는 포함하지 않음)
- images[10:100, :, :] → 3D tensor에 대해서 위와 같이 작동함.
- images[10:100, 0:10, 0:10] → 3D tensor에 대해서 2, 3번째가 각 0번째부터 10번째까지 선택(10번째는 포함되지 않음)
- Tensor의 실제 사례
- Vector Data
- (samples, features) 크기의 2D tensor
- Sequence Data
- (samples, timesteps, features) 크기의 3D tensor
- image
- (samples, height, width, channels) 또는 (samples, channels, height, width) 크기의 4D tensor
- video
- (samples, frames, height, width, channels) 또는 (samples, frames, channels, height, width) 크기의 5D tensor
- Vector Data
- Tensor Operation
- element-wise operaiton
- tensor에 있는 각 원소에 독립적으로 적용됨
- 이 말은 고도의 병렬 구현이 가능한 연산이라는 의미임.
- broadcasting
- 크기가 다른 두 tensor가 더해질 때 작은 tensor가 큰 tensor의 크기에 맞추어짐.
- Process
- 큰 tensor의 ndim에 맞도록 작은 tensor에 axis가 추가됨
- 작은 tensor가 새 axis를 따라서 큰 tensor의 크기에 맞도록 반복됨.
- dot operation, tensor product
- 점곱, 텐서 곱셈, tensor product ( 원소별 곱셈과 다름 )
- 2개의 tensor 중 하나라도 ndim이 1보다 크면, dot 연산에 대한 교환 법칙이 성립하지 않음.
- tensor reshaping
- tensor의 크기를 변환 = 특정 크기에 맞게 열과 행을 재배열한다는 의미
- transposition (전치)
- 자주 사용하는 특별한 크기의 변환
- 행과 열을 바꾸는 것.
- x[i, :] → x[:, i]로 변환됨.
- element-wise operaiton
728x90
'Technical > ML&DL' 카테고리의 다른 글
[Deep Learning] Precision과 Recall, Detection의 정확도(accuracy) (0) | 2019.02.15 |
---|---|
[Deep Learning] EAST text detector (0) | 2019.02.15 |
[Tensorflow] resnet50 config file error 해결 방법 (0) | 2019.02.13 |
케라스 창시자에게 배우는 딥러닝 > 8장 생성 모델을 위한 딥러닝 (0) | 2018.12.14 |