최근 수정 시각 : 2024-04-01 09:22:14

TensorFlow

<colbgcolor=#fff,#1f2023><colcolor=#425066> 텐서플로
TensorFlow
파일:텐서플로우 로고.svg
개발 파일:구글 로고.svg
분류 라이브러리
개발 착수 2011년
출시 2015년 11월 9일
언어 Python, C++
버전 2.16.1
라이선스 아파치 2.0 오픈 소스 라이선스
링크 파일:홈페이지 아이콘.svg 공식 사이트
파일:홈페이지 아이콘.svg 블로그
파일:홈페이지 아이콘.svg 포럼
파일:유튜브 아이콘.svg 파일:GitHub 아이콘.svg파일:GitHub 아이콘 화이트.svg 파일:미디엄 아이콘.svg
1. 개요2. 특징
2.1. 코드 수정 없이 CPU/GPU 모드로 동작2.2. TensorFlow Lite2.3. Keras
3. Windows 사용시 주의사항4. 관련 강좌 사이트 및 참조 사이트5. 응용 사례6. 관련 문서

[clearfix]

1. 개요

구글리서치 산하의 딥러닝 팀인 구글브레인 팀[1]오픈 소스로 공개한 기계학습 라이브러리. 기계학습 분야를 일반인들도 사용하기 쉽도록 다양한 기능들을 제공한다. 2016년 알파고와 함께 한국에서도 관심이 높아진 추세이며 관련 컨퍼런스들도 개최되고 있다.

고수준 프로그래밍 언어로 알려진 Python을 활용하여 연산처리를 작성할 수 있다. 다른 언어들도 대부분 지원하지만 Python 관련 자료가 가장 많다. 때문에 공개된 지 그리 오래되지 않았음에도 불구하고 다양한 분야에서 활용되고 있다.

2. 특징

텐서플로는 다음과 같은 특징을 가진다.
  • 데이터플로 그래프를 통한 풍부한 표현력
  • 아이디어 테스트에서 서비스 단계까지 이용 가능
  • 계산 구조와 목표 함수만 정의하면 자동으로 미분 계산을 처리
  • Python, C++, Go, Java, R[2]을 지원하며, SWIG를 통해 다양한 언어 지원 가능

2.1. 코드 수정 없이 CPU/GPU 모드로 동작

공개된 버전은 일반 버전과 GPU 가속 버전 두 가지이다. 일반 버전은 어떤 컴퓨터에서든 실행할 수 있다는 장점이 있다.
GPU 가속 버전은 GPGPU를 사용해 대량 연산을 빠르게 수행하므로 훨씬 빠르게 동작하게 된다. 현재 NVIDIA의 GPGPU 언어인 CUDA를 사용하기 때문에 NVIDIA 그래픽카드가 없으면 사용할 수 없다. [3] GPU 가속 버전의 성능은 CPU 성능과는 별 관계가 없고 GPU 성능이 중요하다. CUDA 드라이버와 cuDNN 드라이버를 추가적으로 설치하여야 한다.

그 외에 구글이 자사 서비스를 위해 내부적으로 사용하고 있는 버전도 있는데, 이것은 구글이 자체 개발한 인공지능 가속기TPU 상에서 동작하기 때문에 인텔 제온이나 엔비디아 테슬라보다도 15~30배 더 빠르다.

TensorFlow 2.0이 출시되면서 CPU 버전과 GPU 버전이 통합되었다. CUDA 환경 설치가 올바르게 되었다면 자동으로 GPU를 인식해준다.

2.2. TensorFlow Lite

TensorFlow로 훈련한 모델을 안드로이드나 iOS, 또는 더 작은 라즈베리 파이 등을 활용한 장치에서 사용할 수 있게 변환하는 기술이다. 안드로이드의 경우, 이 .tflite 파일을 직접 넣을 수도 있으며 MLKit등을 활용해 좀 더 쉽게 적용할 수 있다. 예를 들어 이미지 분류 문제를 위해 ResNet50을 훈련했다면, model 에 해당 tflite 파일을 설정하고, 이미지를 1*224*224*3 사이즈의 비트맵으로 변환한 후 각 RGB 값에 255를 나눠서 preprocess하면 된다. 그 다음, 이 파일을 모델에 input하면 각 label 별로 예측한 확률의 array가 나오는데, 여기다가 argmax 같은 함수를 사용해서 prediction 결과를 뽑을 수 있다.

자세한건 TfLite 공식 문서와 MLKit 문서를 참조.

2.3. Keras

공식 사이트

케라스(Keras)는 TensorFlow, Theano, CNTK 등 딥 러닝 라이브러리를 백엔드로 사용하여 쉽게 다층 퍼셉트론 신경망 모델, 컨볼루션 신경망 모델, 순환 신경망 모델, 조합 모델 등을 구성할 수 있다.

2017년, 구글은 TensorFlow 2.0부터는 코어 레벨에서 Keras를 지원하도록 변경하겠다고 발표하였고, 현재 발표된 TensorFlow 2.0 stable부터는 사실상 전부 Keras를 통해서만 동작하도록 바뀌었다. 사용자용 튜토리얼 페이지 1.15부터 deprecated 목록에 들어가 있던 자잘한 API가 대부분 정리되었고, 익숙되면 조금 더 편하게 사용할 수 있게 변했다. 하지만 그동안 익숙하게 사용해 왔던 모델을 만든 다음 session을 만들어 동작하는 구조에 익숙하던 사람들에게 멘붕을 준 것은 덤.

3. Windows 사용시 주의사항

TensorFlow 2.10 이후 버전부터는 윈도우 환경에서 GPU를 사용할 수 없다. 따라서 윈도우 기반 환경에서 TensorFlow를 사용하려면 CPU만 사용해서 구동하던지, 아니면 가상머신이나 WSL, 멀티부팅 등을 통해 별도로 리눅스를 설치한 후 해당 리눅스 환경에 CUDA, CUDNN 및 엔비디아 드라이버를 설치하고 그 위에 파이썬과 가상환경, 텐서플로우까지 설치한 후 구동해야 한다. 물론 리눅스에서는 이런 귀찮은 과정을 다 생략하고 Docker에서 해당 환경이 구축된 이미지를 받아오면 끝이다.

4. 관련 강좌 사이트 및 참조 사이트

5. 응용 사례


이것들은 간단 예제 수준이고, 전문 지식이 결합되면 훨씬 더 많은 일들을 할 수 있다. 딥러닝은 아직 학문적 체계가 정립되지 않았기 때문에, 각종 사례를 찾아보는 것 만큼이나 직접 만들어보는 게 더 빠르다.

6. 관련 문서



[1] 2023년, 구글 딥마인드 산하로 통폐합되었다.[2] R의 대표적인 통합개발환경(IDE)인 RStudio를 통해 연동되어 있다.[3] 로드맵에 범용 GPU 가속 라이브러리, OpenCL을 지원할 예정이라고 발표했다.[4] 무료강좌이니 관심있는 사람은 만들어보자. 교재 PDF