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

TensorFlow와 Python으로 벡터화된 데이터 샘플 확인하는 방법


TensorFlow는 구글(Google)이 제공하는 대표적인 머신러닝 프레임워크입니다. 오픈소스로 공개되어 있으며, Python과 함께 사용해 다양한 알고리즘과 딥러닝 애플리케이션을 손쉽게 구현할 수 있습니다. 연구 목적뿐 아니라 실제 프로덕션 환경에서도 폭넓게 활용되고 있습니다.

Windows 환경에서는 아래 명령어 한 줄만 입력하면 'tensorflow' 패키지를 설치할 수 있습니다.

pip install tensorflow

텐서(Tensor)란?

텐서는 TensorFlow에서 사용되는 핵심 데이터 구조입니다. '데이터 흐름 그래프(Data Flow Graph)'라고 불리는 플로우 다이어그램에서 노드 사이의 엣지(edge)를 연결하는 역할을 하며, 본질적으로는 다차원 배열 또는 리스트와 같습니다.

일리아드(Illiad) 데이터셋

이번 예제에서는 일리아드 데이터셋을 사용합니다. 이 데이터셋에는 William Cowper, Edward(더비 백작), Samuel Butler 세 번역가가 번역한 작품의 텍스트가 담겨 있으며, 모델은 한 줄의 텍스트가 주어졌을 때 해당 번역가가 누구인지 식별하도록 학습됩니다.

사용된 텍스트 파일은 미리 전처리 과정을 거쳤습니다. 여기에는 문서 헤더와 푸터 제거, 줄 번호 삭제, 챕터 제목 정리 등의 작업이 포함됩니다.

Google Colaboratory에서 실행

아래 코드는 Google Colaboratory(Colab)에서 실행되었습니다. Colab은 브라우저에서 바로 Python 코드를 실행할 수 있는 환경을 제공하며, 별도의 설정 없이 GPU(그래픽 처리 장치)를 무료로 사용할 수 있다는 큰 장점이 있습니다. Colaboratory는 Jupyter Notebook을 기반으로 만들어졌습니다.

예제 코드

print("Look at sample data after processing it")
example_text, example_label = next(iter(all_labeled_data))

print("The sentence is : ", example_text.numpy())
vectorized_text, example_label = preprocess_text(example_text, example_label)

print("The vectorized sentence is : ", vectorized_text.numpy())
print("Run the pre-process function on the data")

all_encoded_data = all_labeled_data.map(preprocess_text)

코드 출처 − https://www.tensorflow.org/tutorials/load_data/text

실행 결과

Look at sample data after processing it
The sentence is : b'But I have now both tasted food, and given'
The vectorized sentence is : [ 20 21 58 49 107 3497 909 2 4 540]
Run the pre-process function on the data

결과 해설

  • 데이터가 벡터화되면 모든 토큰(token)이 정수(integer) 값으로 변환됩니다.

  • 토큰을 정수로 변환하는 이유는 신경망 모델이 숫자 형태의 입력만 해석할 수 있기 때문입니다. 각 정수는 어휘 사전(vocabulary) 안에서 해당 토큰의 고유 인덱스를 나타냅니다.