TensorFlow는 Google이 제공하는 머신러닝 프레임워크입니다. 오픈소스 기반으로 Python과 함께 사용되며, 다양한 알고리즘과 딥러닝 애플리케이션을 구현하는 데 활용됩니다. 연구 목적뿐 아니라 실제 프로덕션 환경에서도 널리 사용되고 있습니다.
TensorFlow는 복잡한 수학적 연산을 빠르게 수행할 수 있는 최적화 기법을 갖추고 있습니다. 이는 내부적으로 NumPy와 다차원 배열을 활용하기 때문인데, 이러한 다차원 배열을 바로 '텐서(Tensor)'라고 부릅니다. 프레임워크는 딥러닝 신경망 작업을 완벽하게 지원하며, 뛰어난 확장성과 함께 여러 인기 데이터셋을 기본 제공합니다. 또한 GPU 연산을 활용하고 리소스 관리를 자동화하며, 다양한 머신러닝 라이브러리와 방대한 공식 문서를 통해 개발자들을 폭넓게 지원합니다. 딥러닝 모델을 실행하고 학습시킨 뒤, 데이터셋의 특성을 예측하는 애플리케이션까지 손쉽게 만들 수 있습니다.
TensorFlow 설치하기
'tensorflow' 패키지는 Windows 환경에서 아래 명령어 한 줄로 간단히 설치할 수 있습니다.
pip install tensorflow
텐서의 세 가지 핵심 속성
텐서는 TensorFlow에서 사용되는 기본 데이터 구조로, 데이터 흐름 그래프(Data Flow Graph)의 엣지(edge)를 연결하는 역할을 합니다. 텐서는 본질적으로 다차원 배열 또는 리스트이며, 다음 세 가지 속성으로 특징지을 수 있습니다.
Rank(랭크) − 텐서의 차원수를 의미합니다. 텐서의 차수(order), 즉 정의된 텐서가 몇 개의 차원을 가지는지 나타냅니다.
Type(타입) − 텐서를 구성하는 요소들의 데이터 타입을 나타냅니다. 1차원, 2차원 또는 n차원 형태일 수 있습니다.
Shape(형상) − 텐서가 가진 행과 열의 개수를 함께 표현합니다.
이 글의 코드는 Google Colaboratory에서 실행했습니다. Google Colab은 브라우저에서 바로 Python 코드를 실행할 수 있게 해주며, 별도의 설정 없이 GPU(그래픽 처리 장치)를 무료로 사용할 수 있다는 장점이 있습니다. Colaboratory는 Jupyter Notebook을 기반으로 만들어졌습니다.
예제 코드
print("Iterating through the training data")
for i, label in enumerate(raw_train_ds.class_names):
print("Label", i, "maps to", label)
print("The training parameters have been defined")
raw_val_ds = preprocessing.text_dataset_from_directory(
train_dir,
batch_size=batch_size,
validation_split=0.25,
subset='validation',
seed=seed)
print("The test dataset is being prepared")
test_dir = dataset_dir/'test'
raw_test_ds = preprocessing.text_dataset_from_directory(
test_dir, batch_size=batch_size)코드 출처 − https://www.tensorflow.org/tutorials/load_data/text
실행 결과
Iterating through the training data Label 0 maps to csharp Label 1 maps to java Label 2 maps to javascript Label 3 maps to python The training parameters have been defined Found 8000 files belonging to 4 classes. Using 2000 files for validation. The test dataset is being prepared Found 8000 files belonging to 4 classes.
코드 설명
먼저 학습 데이터를 반복(iterate)하면서 클래스 이름과 레이블 매핑 정보를 출력합니다.
학습, 검증, 테스트 세트에 사용되는 파일 수가 콘솔에 표시됩니다. 전체 8,000개 파일 중 25%인 2,000개가 검증용으로 할당됩니다.
'text_dataset_from_directory' 유틸리티를 사용해 디렉터리 구조 기반의 텍스트 데이터를 손쉽게 로드하고 전처리합니다.