TensorFlow는 구글(Google)이 제공하는 머신러닝 프레임워크입니다. 오픈소스로 공개되어 있으며, Python과 함께 사용하여 다양한 알고리즘, 딥러닝 애플리케이션 등을 구현할 수 있습니다. 연구 목적뿐만 아니라 실제 프로덕션 환경에서도 널리 활용되고 있습니다.
Windows 환경에서는 아래 명령어 한 줄로 'tensorflow' 패키지를 간단히 설치할 수 있습니다.
pip install tensorflow
텐서(Tensor)는 TensorFlow에서 사용되는 핵심 데이터 구조입니다. 텐서는 플로우 다이어그램의 엣지(edge)를 연결하는 역할을 하며, 이러한 다이어그램을 '데이터 플로우 그래프(Data Flow Graph)'라고 부릅니다. 텐서는 본질적으로 다차원 배열 또는 리스트라고 할 수 있습니다.
예제 개요: 일리아스(Illiad) 데이터셋
이번 예제에서는 일리아스(Illiad) 데이터셋을 사용합니다. 이 데이터셋에는 William Cowper, Edward(Earl of Derby), Samuel Butler 세 번역가의 번역 작품 텍스트가 담겨 있습니다. 모델은 한 줄의 텍스트가 주어졌을 때 해당 텍스트의 번역자를 식별하도록 학습됩니다. 사용된 텍스트 파일은 사전에 전처리 과정을 거쳤으며, 여기에는 문서 머리글과 바닥글 제거, 줄 번호 삭제, 챕터 제목 정리 등이 포함됩니다.
아래 코드는 Google Colaboratory(코랩) 환경에서 실행됩니다. Google Colab은 브라우저에서 바로 Python 코드를 실행할 수 있도록 도와주며, 별도의 설정 없이 GPU(그래픽 처리 장치)를 무료로 사용할 수 있다는 장점이 있습니다. Colaboratory는 Jupyter Notebook을 기반으로 만들어졌습니다.
코드 예시
다음은 모델을 내보내기 위한 코드 스니펫입니다.
print("커스텀 전처리 단계 설정")
preprocess_layer = TextVectorization(
max_tokens=vocab_size,
standardize=tf_text.case_fold_utf8,
split=tokenizer.tokenize,
output_mode='int',
output_sequence_length=MAX_SEQUENCE_LENGTH)
preprocess_layer.set_vocabulary(vocab)
print("모델을 내보내는 중")
export_model = tf.keras.Sequential(
[preprocess_layer, model,
layers.Activation('sigmoid')])코드 출처 - https://www.tensorflow.org/tutorials/load_data/text
실행 결과
커스텀 전처리 단계 설정 모델을 내보내는 중
코드 설명
모델이 원시 문자열(raw string)을 직접 입력으로 받도록 하려면, 기존 전처리 과정과 동일한 기능을 수행하는 'TextVectorization' 레이어를 생성해야 합니다. 이렇게 하면 전처리 로직이 모델 자체에 포함되어 배포 후에도 일관된 입력 처리가 가능합니다.
어휘집(vocabulary)은 이미 학습이 완료된 상태이므로, 'set_vocabulary' 메서드를 호출하여 해당 어휘집을 새로운 전처리 레이어에 그대로 적용할 수 있습니다. 이를 통해 불필요한 재학습 없이 기존 학습 결과를 재사용할 수 있습니다.