Keras
1) sequential API로 만든 모델
- 각 layer을 순차적으로 담는 class

- add 메서드로 모델을 만들 수도 있다.


2) functional API로 만든 모델

- deep neural network는 거대한 합성함수라고 볼 수 있고, 각 층을 하나의 함수로 봐서 합성함수를 쌓는 방향으로 모델을 만들 수 있다.

- 각 층을 callable 한 class instance로 생각할 수 있다.
- callable object: 함수처럼 호출될 수 있는 객체
- 상황에 따라 다양한 함수를 만들 수 있도록 객체에서 일정 정보를 저장하여 필요할 때마다 새로운 함수를 만들 수 있음.
Input() 함수에 입력의 크기를 정의합니다.
이전층을 다음층 함수의 입력으로 사용하고, 변수에 할당합니다.
Model() 함수에 입력과 출력을 정의합니다.

- multi input, multi output을 처리할 수 있다.
3) model class

- tf.keras.Model을 상속받아서 MyModel로 구현했다.
- init에서 dense1, dense2, dense3의 layer들을 정의했고, call에서 forward propagation을 수행한다.
TensorFlow

(1) forward propagation: t에 gradient를 기록하겠다.
(2) compute loss: inputs에서 forward propagation을 통해 나온 결과물과 outputs를 비교하여 loss를 계산, current_loss에 저장한다.
(3) backward propagation: loss에 대한 W와 b의 gradient를 dW,db에 저장한다.
(4) gradient descent: learning rate와 dW로 W를 update, learning rate와 db로 b를 update 한다.
'머신러닝 > 분석 base' 카테고리의 다른 글
Pytorch (2) | 2021.03.04 |
---|---|
Resnet (0) | 2021.02.23 |
Boosting & Adaboost (0) | 2021.02.09 |
Bagging & Random Forest : Programming (0) | 2021.02.09 |
Bagging & Random Forest (0) | 2021.02.09 |