Tensorflow 개발자 자격증 준비하기(1)
Basic Question
구글에서 텐서플로 자격증 시험을 신규 출시(?)하였습니다.
자세한 내용은 이 링크에서 확인할 수 있습니다. 응시료가 무려 100달러. 요즘 달러도 비싼데 아주 비싼 시험입니다. 떨어지면 재응시도 제한되므로 왠만하면 한번에 붙는 것을 목표로 합시다.
첫번째 문제를 풀어보자.
1 | # Given this data, train a neural network to match the xs to the ys |
1. 문제분석
1-1. 조건
- xs를 ys에 매칭시키는 신경망모델을 제작하라.
- 모델의 input shape은 [1]
- 생성된 모델, 즉 predictor는 특정 실수값을 입력으로 받아 desired answer인 하나의 실수값을 반환한다.
1-2. 관련이론
2. 풀이
- 간단한 선형회귀 문제라고 생각했다. 위의 링크에 있는 코드를 거의 그대로 사용할 수 있을 듯 하다.
1 | # 사용할 라이브러리 |
2-1. 모델 설계
1 | # 케라스에서는 다양한 층으로 이루어진 인공신경망의 구성을 위해 Sequential()을 사용한다. |
2-2. 모델 결과
그냥 300번 학습하게 뒀더니 엄청 과적합이 되는 느낌. 학습 데이터도 얼마 없고 하다보니 loss가 거의 0.0000000001 수준으로 줄어들었다.
조기종료 조건을 추가해줘봤다
1
2
3from tensorflow.keras.callbacks import EarlyStopping
early_stopping = EarlyStopping(monitor='loss')1
2# 모델 학습 함수에 early_stopping에 대한 callback인자를 추가해준다.
model.fit(xs, ys, batch_size=1, epochs=300, shuffle=False, callbacks=[early_stopping])대충 epoch 213에서 멈추는듯.
2-3. 모델 평가
1 | print(model.predict([10.0])) |