01. Tensorflow API
- Core API (Operation API)
- Tensor - vector, matrix 표현과 같다
- Operations (Ops) - Tensor 간의 연산 (add, subtract, multiply, etc)
- High-Level API
- Keras API와 유사
- Models - machine learnig model
- Layers - model 을 구성하는 deep learning layer
02. Tensor 기본 개념
- Tensor - n차원 이상의 숫자로 이루어진 constant array
- rank - tensor의 dimension (차원)
- shape - 각 dimension의 size
- dtype - tensor의 data type
- 스칼라 : tf.scaler - rank-0
- 1 차원 tensor : vector, tf.tensor1d, rank-1
- 2 차원 tensor : matrix, tf.tensor2d, rank-2
- 3 차원 이상 : tensor, tf.tensor3d, rank-3
- tf.tensor() method 로 생성
- • tf.tensor([[1, 2], [3, 4]]) => rank : 2, shape : 2, 2, dtype : float32
- Tensors
- tf.tensor (values, shape?, dtype?) ==> immutable
- tf.variable (initialValue, trainable?) ==> mutable
tf.tensor([1,2,3,4])
tf.tensor([1,2,3,4], [4])
tf.tensor([1,2,3,4], [1, 4])
tf.tensor([1,2,3,4], [2, 2])
tf.tensor([1,2,3,4,5,6,7,8], [2, 2, 2])
tf.tensor([1,2,3,4])
tf.tensor([1,2,3,4], [4])
tf.tensor([1,2,3,4], [1, 4])
tf.tensor([1,2,3,4], [2, 2])
tf.tensor([1,2,3,4,5,6,7,8], [2, 2, 2])
- Matrix의 Tensor 표현
- tf.tensor2d([[8, 5, 3], [1, 2, 9]]) = tf.tensor2d([8, 5, 3, 1, 2, 9], [2, 3])
- tf.tensor3d([[[1, 2], [3, 4]], [[5, 6], [7, 8]]]) = tf.tensor3d([1, 2, 3, 4, 5, 6, 7, 8], [2, 2, 2])
- Tensor 간의 연산
- Transpose, Reshape
- Slicing, Joining
- Feature Scaling (Normalization)
- Raw data를 전 처리하여 input date의 구간을 표준화
- 기타 operation methods
- tf.Variable.assign() : tf.variable 에 새로운 tensor assign
- tf.Tensor.data() : asynchronous data download from tf.tensor. Promise 반환
- tf.Tensor.dataSync() : synchronous. UI 를 block
- tf.print(false/true)
- Data를 포함한 tf.Tensor 에 대한
- Returns: void
- tf.Tensor.toString(false/true)
- 읽을 수 있는 string 형태로 텐서 설명을 반환
- Logging에 유용
- tf.Tensor.array() – Float32Array 로 tensor data 반환. Asynchronous.
- tf.Tensor.arraySync() - Synchronous
- Float32Array – new in ES2017, WebGL 연산을 위한 typed array
- Float32Array 를 반환하므로 Array data type 의 반환 값이 필요한 경우 Array.from() method 로 일반 array 전환
- Memory 관리
- Tensor 는 WebGL 의 memory 에 저장되고 operation 도 WebGL 에서 수행됨
- WebGL backend 환경은 GPU memory 가 충분하지 않으므로 명시적으로 release 필요 (JavaScript garbage collector가 자동 관리 못함)
- tf.dispose() : 지정한 tensor 를 제거
- tf.tidy(function()) : tidy 로 감싼 함수를 수행하고, 함수의 결과로 반환되는 tensor 이외의 모든 중간 과정의 tensor 삭제
- tf.memory().numTensors – tensor 숫자 반환
'JavaScript Dev. > Tensorflow.js' 카테고리의 다른 글
Neural Network 훈련 원리 (0) | 2023.11.21 |
---|---|
Visualization(시각화 도구) - tfjs-vis API (0) | 2023.11.20 |
04. Data Handling API (0) | 2023.11.16 |
02. Neural Network (0) | 2023.11.13 |
01. Tensorflow.js의 기초 (0) | 2023.11.09 |