TensorFlow는 Google에서 제공하는 머신러닝 프레임워크입니다. 오픈소스 기반으로 Python과 함께 사용되어 다양한 알고리즘, 딥러닝 애플리케이션 등을 구현할 수 있으며, 연구 목적과 실제 프로덕션 환경 모두에서 널리 활용됩니다.
TensorFlow는 복잡한 수학 연산을 빠르게 처리할 수 있도록 최적화 기법을 갖추고 있습니다. 이는 내부적으로 NumPy와 다차원 배열을 사용하기 때문인데, 이러한 다차원 배열을 '텐서(tensor)'라고 부릅니다. 또한 프레임워크는 심층 신경망 작업을 지원하며, 뛰어난 확장성을 제공하고 다양한 인기 데이터셋을 함께 제공합니다. GPU 연산을 활용하고 리소스 관리를 자동화한다는 점도 큰 장점입니다.
'tensorflow' 패키지는 Windows 환경에서 아래 명령어 한 줄로 설치할 수 있습니다.
pip install tensorflow
텐서(Tensor)란?
텐서는 TensorFlow에서 사용되는 기본 데이터 구조입니다. 텐서는 플로우 다이어그램(데이터 흐름 그래프)에서 엣지(edge)를 연결하는 역할을 하며, 본질적으로는 다차원 배열 또는 리스트라고 할 수 있습니다.
이 글의 코드 예제는 Jupyter Notebook에서 실행합니다. 역시 'pip install tensorflow' 명령으로 손쉽게 설치할 수 있습니다.
예제 코드
import tensorflow as tf
import numpy as np
matrix_1 = tf.Variable([[1,2,3],[4,5,8],[9,10,0]])
print("The matrix is ")
print (matrix_1)
print("The sum of all elements ")
result = tf.reduce_sum(matrix_1)
print(result)
print("The sum of specific rows is")
result = tf.reduce_sum(matrix_1, 1)
print(result)실행 결과
The matrix is <tf.Variable 'Variable:0' shape=(3, 3) dtype=int32, numpy= array([[ 1, 2, 3], [ 4, 5, 8], [ 9, 10, 0]], dtype=int32)> The sum of all elements tf.Tensor(42, shape=(), dtype=int32) The sum of specific rows is tf.Tensor([ 6 17 19], shape=(3,), dtype=int32)
코드 설명
필요한 패키지를 임포트하고 사용 편의성을 위해 별칭(alias)을 지정합니다.
NumPy 패키지를 활용해 행렬을 생성합니다.
'reduce_sum' 함수를 사용하면 행렬 내 모든 값의 합계를 구할 수 있습니다.
'reduce_sum' 함수에 행렬 외에 축(axis) 값을 추가로 전달하면, 해당 축을 따라 각 행별로 합계가 계산됩니다. 예제에서는 axis=1을 지정했기 때문에 각 행의 요소들이 합산되어 [6, 17, 19]라는 결과가 출력됩니다.
최종 결과물은 콘솔에 출력됩니다.
참고로 axis=0을 지정하면 열(column) 단위로 합계가 계산되므로, 상황에 맞게 축 값을 조절하여 원하는 방향의 합계를 얻을 수 있습니다.