TensorFlow란 무엇인가?
TensorFlow는 구글(Google)이 제공하는 머신러닝 프레임워크입니다. 오픈소스 기반으로 Python과 함께 사용되어 다양한 알고리즘, 딥러닝 애플리케이션 등을 구현할 수 있으며, 연구 목적과 실제 프로덕션 환경 모두에서 널리 활용됩니다.
Windows 환경에서는 아래 명령어 한 줄로 'tensorflow' 패키지를 설치할 수 있습니다.
pip install tensorflow
텐서(Tensor)의 기본 개념
텐서는 TensorFlow에서 사용되는 핵심 데이터 구조입니다. 텐서는 흐름도(flow diagram)에서 각 노드를 연결하는 역할을 하며, 이 흐름도를 '데이터 플로우 그래프(Data Flow Graph)'라고 부릅니다. 텐서는 본질적으로 다차원 배열 또는 리스트에 해당합니다.
텐서는 다음 세 가지 주요 속성으로 식별할 수 있습니다.
랭크(Rank) − 텐서의 차원 수를 나타냅니다. 정의된 텐서가 몇 차원인지, 즉 텐서의 차수(order)를 의미합니다.
타입(Type) − 텐서 요소와 연관된 데이터 타입을 나타냅니다. 1차원, 2차원 또는 n차원 텐서가 될 수 있습니다.
형태(Shape) − 행(row)과 열(column)의 개수를 함께 나타냅니다.
실습 데이터셋 소개
이번 예제에서는 일리아드(Illiad) 데이터셋을 사용합니다. 이 데이터셋에는 윌리엄 카우퍼(William Cowper), 에드워드 더비 백작(Earl of Derby), 새뮤얼 버틀러(Samuel Butler) 세 번역가의 번역 작품 텍스트가 담겨 있습니다. 학습된 모델은 한 줄의 텍스트가 주어졌을 때 해당 번역가를 식별하도록 훈련됩니다.
사용된 텍스트 파일은 사전에 전처리 과정을 거쳤습니다. 여기에는 문서의 머리글과 바닥글, 줄 번호, 챕터 제목을 제거하는 작업이 포함됩니다.
Google Colab 실행 환경
아래 코드는 Google Colaboratory(Colab)에서 실행됩니다. Google Colab은 브라우저에서 바로 Python 코드를 실행할 수 있게 해주며, 별도의 설정이 필요 없고 GPU(그래픽 처리 장치)를 무료로 사용할 수 있다는 장점이 있습니다. Colaboratory는 Jupyter Notebook을 기반으로 만들어졌습니다.
예제 코드
다음은 내보낸 모델을 컴파일하는 코드입니다.
print("내보낸 모델을 컴파일합니다")
export_model.compile(
loss=losses.SparseCategoricalCrossentropy(from_logits=False),
optimizer='adam',
metrics=['accuracy'])코드 출처 − https://www.tensorflow.org/tutorials/load_data/text
실행 결과
내보낸 모델을 컴파일합니다
코드 설명
모델을 내보낸(export) 후에는 'compile' 메서드를 호출하여 모델을 컴파일합니다. 이 과정에서 손실 함수(loss), 옵티마이저(optimizer), 평가 지표(metrics)가 함께 설정됩니다.