TensorFlow란 무엇인가?
TensorFlow는 구글(Google)이 제공하는 머신러닝 프레임워크입니다. 오픈소스로 공개되어 있으며, 파이썬(Python)과 함께 사용하여 다양한 알고리즘과 딥러닝 애플리케이션을 구현할 수 있습니다. 연구 목적뿐 아니라 실제 프로덕션 환경에서도 널리 활용되고 있습니다.
'tensorflow' 패키지는 Windows 환경에서 다음 코드 한 줄로 간단히 설치할 수 있습니다.
pip install tensorflow
텐서(Tensor)의 기본 개념
텐서(Tensor)는 TensorFlow에서 사용되는 핵심 데이터 구조입니다. 텐서는 데이터 플로우 다이어그램에서 엣지(edge)를 연결하는 역할을 하며, 이 다이어그램을 '데이터 플로우 그래프(Data Flow Graph)'라고 부릅니다. 텐서는 쉽게 말해 다차원 배열 또는 리스트라고 할 수 있습니다.
텐서는 다음 세 가지 주요 속성으로 특징지을 수 있습니다.
랭크(Rank) − 텐서의 차원을 나타냅니다. 텐서의 차수(order), 즉 정의된 텐서가 가진 차원의 수로 이해할 수 있습니다.
타입(Type) − 텐서를 구성하는 요소의 데이터 타입을 나타냅니다. 1차원, 2차원 또는 n차원 텐서가 모두 가능합니다.
셰이프(Shape) − 텐서의 행과 열의 개수를 함께 나타냅니다.
일리아드(Illiad) 데이터셋 소개
이번 예제에서는 일리아드(Illiad) 데이터셋을 사용합니다. 이 데이터셋에는 윌리엄 카우퍼(William Cowper), 에드워드(더비 백작, Earl of Derby), 새뮤얼 버틀러(Samuel Butler)가 번역한 세 가지 작품의 텍스트 데이터가 담겨 있습니다. 학습된 모델은 한 줄의 텍스트가 주어지면 해당 텍스트를 번역한 번역가를 식별하는 역할을 수행합니다. 사용되는 텍스트 파일은 사전에 전처리가 완료된 상태로, 문서의 머리말과 꼬리말, 행 번호, 챕터 제목이 모두 제거되어 있습니다.
아래 코드는 Google Colaboratory에서 실행됩니다. Google Colab은 브라우저에서 바로 파이썬 코드를 실행할 수 있게 해주며, 별도의 설정이 필요 없고 GPU(그래픽 처리 장치)를 무료로 사용할 수 있다는 장점이 있습니다. Colaboratory는 Jupyter Notebook을 기반으로 구축되었습니다.
코드 예제
print("Loading the Illiad dataset")
DIRECTORY_URL = 'https://storage.googleapis.com/download.tensorflow.org/data/illiad/'
FILE_NAMES = ['cowper.txt', 'derby.txt', 'butler.txt']
print("Iterating through the name of the files")
for name in FILE_NAMES:
text_dir = utils.get_file(name, origin=DIRECTORY_URL + name)
parent_dir = pathlib.Path(text_dir).parent
print("The list of files in the directory")
print(list(parent_dir.iterdir()))코드 출처 − https://www.tensorflow.org/tutorials/load_data/text
출력 결과
Loading the Illiad dataset
Iterating through the name of the files
Downloading data from
https://storage.googleapis.com/download.tensorflow.org/data/illiad/cowper.txt
819200/815980 [==============================] - 0s 0us/step
Downloading data from
https://storage.googleapis.com/download.tensorflow.org/data/illiad/derby.txt
811008/809730 [==============================] - 0s 0us/step
Downloading data from
https://storage.googleapis.com/download.tensorflow.org/data/illiad/butler.txt
811008/807992 [==============================] - 0s 0us/step
The list of files in the directory
[PosixPath('/root/.keras/datasets/derby.txt'), PosixPath('/root/.keras/datasets/cowper.txt'),
PosixPath('/root/.keras/datasets/butler.txt')]
[ ]
코드 설명
'tf.data.TextLineDataset'은 텍스트 파일에서 예제 데이터를 로드하는 데 사용됩니다.
'tf.text'는 데이터를 전처리하는 데 사용됩니다.
먼저 데이터셋을 다운로드한 뒤 탐색하는 단계를 진행합니다.