TensorFlow는 구글(Google)이 제공하는 머신러닝 프레임워크입니다. 오픈소스 프레임워크로, Python과 함께 사용하여 알고리즘, 딥러닝 애플리케이션 등을 구현할 수 있으며 연구 목적과 상용(프로덕션) 목적 모두에 널리 활용됩니다.
'tensorflow' 패키지는 Windows 환경에서 아래 명령어 한 줄로 설치할 수 있습니다.
pip install tensorflow
텐서(Tensor)는 TensorFlow에서 사용되는 데이터 구조입니다. 텐서는 플로우 다이어그램에서 엣지(edge)를 연결하는 역할을 하며, 이러한 플로우 다이어그램은 '데이터 흐름 그래프(Data Flow Graph)'라고 불립니다. 텐서는 본질적으로 다차원 배열 또는 리스트에 해당합니다.
텐서는 세 가지 주요 속성으로 식별할 수 있습니다.
랭크(Rank) − 텐서의 차원(dimensionality)을 나타냅니다. 텐서의 차수(order), 즉 정의된 텐서가 가진 차원의 개수로 이해할 수 있습니다.
타입(Type) − 텐서 요소에 연결된 데이터 타입을 나타냅니다. 1차원, 2차원 또는 n차원 텐서일 수 있습니다.
쉐이프(Shape) − 행(row)과 열(column)의 개수를 함께 나타낸 것입니다.
Keras는 ONEIROS(Open ended Neuro-Electronic Intelligent Robot Operating System) 프로젝트의 연구 과정에서 개발되었습니다. Keras는 Python으로 작성된 딥러닝 API로, 머신러닝 문제 해결을 돕는 생산적인 인터페이스를 갖춘 고수준(high-level) API입니다. TensorFlow 프레임워크 위에서 동작하며, 빠르게 실험할 수 있도록 설계되었습니다. 또한 머신러닝 솔루션을 개발하고 캡슐화하는 데 필수적인 추상화 계층과 빌딩 블록을 제공합니다.
아래 코드는 Google Colaboratory에서 실행합니다. Google Colab(Colaboratory)은 브라우저에서 Python 코드를 실행할 수 있게 해주며, 별도의 설정이 필요 없고 GPU(그래픽 처리 장치)를 무료로 사용할 수 있습니다. Colaboratory는 Jupyter Notebook을 기반으로 만들어졌습니다.
예제
다음은 코드 스니펫입니다:
print("두 모델을 비교합니다")
print("이진(binary) 벡터화 데이터에 적용한 선형 모델:")
print(binary_model.summary())
print("정수(int) 벡터화 데이터에 적용한 ConvNet 모델:")
print(int_model.summary())코드 출처 − https://www.tensorflow.org/tutorials/load_data/text
출력 결과
두 모델을 비교합니다 이진(binary) 벡터화 데이터에 적용한 선형 모델: Model: "sequential" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= dense (Dense) (None, 4) 40004 ================================================================= Total params: 40,004 Trainable params: 40,004 Non-trainable params: 0 _________________________________________________________________ None 정수(int) 벡터화 데이터에 적용한 ConvNet 모델: Model: "sequential_1" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= embedding (Embedding) (None, None, 64) 640064 _________________________________________________________________ conv1d (Conv1D) (None, None, 64) 20544 _________________________________________________________________ global_max_pooling1d (Global (None, 64) 0 _________________________________________________________________ dense_1 (Dense) (None, 4) 260 ================================================================= Total params: 660,868 Trainable params: 660,868 Non-trainable params: 0 _________________________________________________________________ None
설명
벡터화된 'binary' 모델과 벡터화된 'int' 모델을 서로 비교합니다.
이 비교 결과는 'summary' 메서드를 통해 콘솔에 출력됩니다.