Sequential : 시퀀셜 모델은 레이어를 선형으로 연결하여 구성함.
- Layer instance를 생성자에 넘겨주는 형식.
- Ex) .add() 메소드 사용 (권장)
- 입력 형태 지정
- 만들어진 모델은 입력형태에 대한 정보를 필요로함 때문에 첫 번째 레이어는 입력 형태에 대한 정보를 받음. 하지만 두번째 레이어 부턴 형태를 추정 가능함
- 정수형 또는 None으로 구성된 형태 튜플(shape tuple)의 input_shape 인자를 첫번째 레이어에 전달합니다. 여기서 None은 음이 아닌 어떠한 정수를 받을 수 있음을
- 의미합니다. 참고로 input_shape에는 배치 차원은(batch dimension) 포함되지 않습니다.
- Dense와 같은 일부 2D 레이어의 경우, 입력 형태를 input_dim 인자를 통해 지정할 수 있으며 일부 의
- 임시적인 3D 레이어는 input_dim과 input_length 인자를 지원합니다.
- 입력 데이터를 위해 고정된 배치 형태를 필요로 하는 경우에는 레이어에 batch_size 인자를 넘길 수 있습니다. 이는 순환 신경망(recurrent network)를 사용할 때 유용합니다. 예를 들어, batch_size=32와 input_shape=(6,8)을 레이어에 넘겨주면 이후의 모든 입력을 32, 6, 8의 형태로 기대하여 처리합니다
- Ex)
- 컴파일
- 모델을 학습시키기 이전에 complie 메소드를 이용하여 학습 방식에 대한 환경설정을 해야함
- 주로 3가지 매개변수를 받음 (Optimizer(옵티마이저), Loss Function(손실함수 : 예측값과 결과값의 차이) , Metric(기준 : 학습을 통해 목표를 얼마나 달성했는지 Ex) Accuracy: 정확도)
- Optimizer : Adam, RMSprop, SGD, …
- Loss Function : Square Loss(제곱차 손실), Entropy Loss(엔트로피 손실)(Binary Entropy, Categorical CrossEntropy…)
- Metric : Accuracy(정확도)
- Ex)
- 학습
- Keras Model들은 입력 데이터와 라벨로 구성된 Numpy배열 위에서 이루어짐
- 일반적 으로 .fit()사용
- Ex)
- 기본적인 메소드 명령어
- model.layers : 모델을 구성하는 층들이 저장된 1차원 리스트
- model.inputs : 모델의 입력 텐서(행렬)들이 저장된 1차원 리스트
- model.outputs : 모델의 출력 텐서들이 저장된 1차원 리스트
- model.summary() : 모델의 구조를 요약해 출력
- model.get_config() : 모델의 설정이 저장된 사전 자료형 반환
- model.get_weights() : 모델의 가중치 텐서들이 Numpy 배열로 저장된 1차원 리스트
- model.set_weights() : 모델의 가중치값을 Numpy 배열의 리스트로 부터 수정 (배열의 리스트 크기는 get_weights()의 크기와 동일해야함
- model.save_weights(filepath): 모델의 가중치를 HDF5 파일로 저장 합니다.
- model.load_weights(filepath, by_name=False): 모델의 가중치를 불러옴.
- Sequential 모델 API 메서드 : https://keras.io/ko/models/sequential/ 셋팅시 참조 내부 argument값 리스트
- Layer 메소드
- layer.get_weights(): NumPy형 배열의 리스트 형태로 해당 층의 가중치들을 반환합니다.
- layer.set_weights(weights): NumPy형 배열의 리스트로부터 해당 층의 가중치들을 설정합니다 (get_weights의 출력과 동일한 크기를 가져야 합니다).'
- layer.get_config(): 해당 층의 설정이 저장된 딕셔너리를 반환합니다. 모든 층은 다음과 같이 설정 내용으로부터 다시 인스턴스화 될 수 있습니다.
- Dense 메소드 : https://keras.io/ko/layers/core/
- Tf_v1 tf.argmax(a,0) : 2차원 배열의 각 열에서 가장 큰 값을 찾아 인덱스를 반환합니다.
- Tf_v1 tf.argmax(a,1) : 2차원 배열의 각 행에서 가장 큰 값을 찾아 인덱스를 반환합니다.