TensorFlow는 구글(Google)이 제공하는 머신러닝 프레임워크입니다. 오픈소스로 공개되어 있으며, Python과 함께 사용하여 알고리즘 구현, 딥러닝 애플리케이션 개발 등 다양한 작업에 활용됩니다. 연구 목적과 실제 프로덕션 환경 모두에서 널리 사용되고 있습니다.
'tensorflow' 패키지는 Windows 환경에서 아래 명령어 한 줄로 간단히 설치할 수 있습니다.
pip install tensorflow
텐서(Tensor)는 TensorFlow에서 사용되는 핵심 데이터 구조입니다. 흐름 다이어그램에서 간(edge)을 연결하는 역할을 하며, 이 다이어그램은 '데이터 흐름 그래프(Data Flow Graph)'라고 불립니다. 텐서는 본질적으로 다차원 배열 또는 리스트에 해당합니다.
이 글에서는 일리아드(Illiad) 데이터셋을 사용합니다. 이 데이터셋에는 윌리엄 카우퍼(William Cowper), 에드워드(더비 백작, Earl of Derby), 새뮤얼 버틀러(Samuel Butler) 세 번역가의 번역 작품 텍스트가 담겨 있습니다. 모델은 한 줄의 텍스트가 주어졌을 때 해당 번역가가 누구인지 식별하도록 학습됩니다. 사용된 텍스트 파일은 사전에 전처리 과정을 거쳤으며, 여기에는 문서 머리글·바닥글 제거, 행 번호 및 장(chapter) 제목 삭제 등이 포함됩니다.
아래 코드는 Google Colaboratory에서 실행했습니다. Google Colab(Colaboratory)은 브라우저에서 바로 Python 코드를 실행할 수 있게 해주며, 별도의 설정이 필요 없고 GPU(그래픽 처리 장치)를 무료로 사용할 수 있다는 장점이 있습니다. Colaboratory는 Jupyter Notebook을 기반으로 만들어졌습니다.
예제
다음은 관련 코드 스니펫입니다.
print("원시 문자열로 구성된 테스트 데이터셋 생성")
test_ds = all_labeled_data.take(VALIDATION_SIZE).batch(BATCH_SIZE)
test_ds = configure_dataset(test_ds)
loss, accuracy = export_model.evaluate(test_ds)
print("손실(loss) : ", loss)
print("정확도(accuracy): {:2.2%}".format(accuracy))코드 출처 − https://www.tensorflow.org/tutorials/load_data/text
출력 결과
원시 문자열로 구성된 테스트 데이터셋 생성 79/79 [==============================] - 7s 10ms/step - loss: 0.5230 - accuracy: 0.7909 손실(loss) : 0.5458346605300903 정확도(accuracy): 78.16%
설명
라벨링된 전체 데이터 중 검증 크기만큼 가져온 뒤, 지정된 배치 크기(batch size) 단위로 묶어 원시 문자열 기반의 테스트 데이터셋을 구성합니다.
구성된 테스트 데이터셋은 'evaluate' 메서드를 통해 평가됩니다.
평가 결과인 손실(loss)과 정확도(accuracy) 값이 콘솔에 출력됩니다. 위 예제에서는 약 78.16%의 정확도를 보여주며, 이는 모델이 주어진 텍스트 한 줄만으로 세 명의 번역가를 상당히 잘 구분해낸다는 것을 의미합니다.