TensorFlow는 구글(Google)에서 제공하는 머신러닝 프레임워크입니다. 오픈소스 기반으로 Python과 함께 사용되어 다양한 알고리즘, 딥러닝 애플리케이션 등을 구현할 수 있으며, 연구 목적과 실제 프로덕션 환경 모두에서 활용됩니다. 복잡한 수학적 연산을 빠르게 수행할 수 있도록 돕는 최적화 기법들을 갖추고 있습니다.
이것이 가능한 이유는 NumPy와 다차원 배열을 사용하기 때문입니다. 이러한 다차원 배열은 '텐서(tensor)'라고도 불립니다. TensorFlow 프레임워크는 심층 신경망(deep neural network) 작업을 지원하며, 뛰어난 확장성을 바탕으로 수많은 인기 데이터셋을 함께 제공합니다. GPU 연산을 활용하고 리소스 관리를 자동화하며, 다양한 머신러닝 라이브러리를 포함하고 있어 풍부한 문서와 커뮤니티 지원을 받을 수 있습니다. 또한 딥러닝 모델을 실행하고 학습시키며, 데이터셋의 관련 특성을 예측하는 애플리케이션을 만들 수 있는 기능을 제공합니다.
TensorFlow 설치 방법
'tensorflow' 패키지는 Windows 환경에서 아래 명령어 한 줄로 설치할 수 있습니다.
pip install tensorflow
텐서(Tensor)란 무엇인가?
텐서는 TensorFlow에서 사용되는 기본 데이터 구조입니다. 텐서는 플로우 다이어그램(flow diagram)에서 엣지(edge)를 연결하는 역할을 하며, 이 다이어그램을 '데이터 흐름 그래프(Data flow graph)'라고 부릅니다. 즉, 텐서란 다차원 배열 또는 리스트를 의미합니다.
Google Colab에서 코드 실행하기
이 글의 코드는 Google Colaboratory(구글 코랩)에서 실행됩니다. Google Colab은 브라우저에서 바로 Python 코드를 실행할 수 있게 해주며, 별도의 설정 없이 무료로 GPU(그래픽 처리 장치)에 접근할 수 있다는 장점이 있습니다. Colaboratory는 Jupyter Notebook을 기반으로 구축되었습니다.
예제 코드
다음은 전처리 레이어의 상태를 적응(adapt)시키는 코드 예제입니다.
print("레이블 없이 텍스트만 포함된 데이터셋을 준비합니다")
train_text = raw_train_ds.map(lambda text, labels: text)
print("adapt 메서드를 호출합니다")
binary_vectorize_layer.adapt(train_text)
int_vectorize_layer.adapt(train_text)
print("결과가 콘솔에 출력됩니다")
def binary_vectorize_text(text, label):
text = tf.expand_dims(text, -1)
return binary_vectorize_layer(text), label코드 출처 − https://www.tensorflow.org/tutorials/load_data/text
실행 결과
레이블 없이 텍스트만 포함된 데이터셋을 준비합니다 adapt 메서드를 호출합니다 결과가 콘솔에 출력됩니다
코드 설명
먼저 레이블(label)을 사용하지 않는 데이터셋을 준비합니다.
map함수를 통해 텍스트 부분만 추출하여 학습용 텍스트 데이터를 만듭니다.준비된 데이터에 대해 'adapt'라는 메서드를 호출합니다.
이 과정을 통해 데이터셋이 모델의 'binary' 형식으로 벡터화(vectorize)되며, 전처리 레이어가 해당 데이터셋의 상태(state)를 학습하게 됩니다.
전처리 레이어의 adapt 메서드는 데이터셋의 통계 정보를 기반으로 레이어 내부 상태를 초기화하는 핵심 단계입니다. 이렇게 하면 이후 모델 학습 시 텍스트 데이터가 일관된 방식으로 변환되어 처리될 수 있습니다.