Path: blob/master/site/ko/tutorials/quickstart/beginner.ipynb
25118 views
Copyright 2019 The TensorFlow Authors.
텐서플로 2.0 시작하기: 초보자용
이 짧은 소개 글은 Keras를 사용하여 다음을 수행합니다.
사전에 빌드한 데이터세트를 로드합니다.
이미지를 분류하는 신경망 머신 러닝 모델을 빌드합니다.
이 신경망을 훈련합니다.
모델의 정확도를 평가합니다.
이 문서는 구글 코랩(Colaboratory) 노트북 파일입니다. 파이썬 프로그램을 브라우저에서 직접 실행할 수 있기 때문에 텐서플로를 배우고 사용하기 좋은 도구입니다:
파이썬 런타임(runtime)에 연결하세요: 메뉴 막대의 오른쪽 상단에서 CONNECT를 선택하세요.
노트북의 모든 코드를 실행하려면 Runtime(런타임) > **Run all(모두 실행)**을 선택합니다. 코드 셀을 한 번에 하나씩 실행하려면 각 셀 위로 마우스를 이동하고 Run cell(셀 실행) 아이콘을 선택합니다.
TensorFlow 설정하기
시작하려면 TensorFlow를 프로그램으로 가져옵니다.
MNIST 데이터셋을 로드하여 준비합니다. 샘플 값을 정수에서 부동소수로 변환합니다:
참고: 자체 개발 환경을 사용하는 경우에 TensorFlow 2 패키지를 설치하려면 최신 pip
로 업그레이드했는지 확인합니다. 자세한 내용은 설치 가이드를 참조합니다.
데이터세트 로드하기
MNIST 데이터세트를 로드하고 준비합니다. 이미지의 픽셀 값 범위는 0~255입니다. 이때 값을 255.0
으로 나누어 0~1 범위로 조정합니다. 그러면 샘플 데이터를 정수에서 부동 소수점 숫자로 변환합니다.
머신 러닝 모델 빌드하기
tf.keras.Sequential
모델을 빌드합니다.
tf.nn.softmax
함수는 다음과 같이 이러한 로짓을 각 클래스에 대한 확률로 변환합니다.
참고: tf.nn.softmax
함수를 네트워크의 마지막 레이어에 대한 활성화 함수로 베이킹할 수 있습니다. 이렇게 하면 모델 출력을 더 직접적으로 해석할 수 있지만 이 접근법은 소프트맥스 출력을 사용할 경우 모든 모델에 대해 정확하고 수치적으로 안정적인 손실 계산을 제공하는 것이 불가능하므로 권장하지 않습니다.
losses.SparseCategoricalCrossentropy
를 사용하여 훈련용 손실 함수를 정의합니다.
손실 함수는 실측 값의 벡터와 로짓의 벡터를 취하고 각 예시에 대한 스칼라 손실을 반환합니다. 이 손실은 참(true) 클래스의 음의 로그 확률과 같습니다. 모델이 올바른 클래스를 확신하는 경우 손실은 0입니다.
이 훈련되지 않은 모델은 무작위에 가까운 확률(각 클래스에 대해 1/10)을 제공하므로 초기 손실은 -tf.math.log(1/10) ~= 2.3
에 근접해야 합니다.
훈련을 시작하기 전에 Keras Model.compile
을 사용하여 모델을 구성하고 컴파일합니다. optimizer
클래스를 adam
으로 설정하고 loss
를 앞에서 정의한 loss_fn
함수로 설정합니다. metrics
매개변수를 accuracy
로 설정하여 모델에 대해 평가할 메트릭을 지정합니다.
모델 훈련 및 평가하기
모델을 훈련하고 평가합니다:
훈련된 이미지 분류기는 이 데이터셋에서 약 98%의 정확도를 달성합니다. 더 자세한 내용은 TensorFlow 튜토리얼을 참고하세요.
모델이 확률을 반환하도록 하려면 다음과 같이 훈련된 모델을 래핑하고 여기에 소프트맥스를 첨부할 수 있습니다.
결론
축하합니다! Keras API를 사용하는 사전에 빌드한 데이터세트를 사용하여 머신 러닝 모델을 훈련했습니다.
Keras를 사용하는 더 많은 예시는 튜토리얼을 확인하세요. Keras로 모델을 빌드하는 방법에 대해 자세히 알아보려면 가이드를 읽어보세요. 데이터 로드 및 준비에 대해 자세히 알아보려면 이미지 데이터 로드 또는 CSV 데이터 로드에 대한 튜토리얼을 참조하세요.