Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

TensorFlow로 파이썬에서 일리아드(Illiad) 데이터셋 다운로드하고 탐색하는 방법

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'는 데이터를 전처리하는 데 사용됩니다.

  • 먼저 데이터셋을 다운로드한 뒤 탐색하는 단계를 진행합니다.