딥 러닝 라이브러리 | |||
{{{#!wiki style="margin: 0 -10px;" {{{#!folding [ 주요 라이브러리 ] {{{#!wiki style="margin-bottom: -15px;" |
<colbgcolor=#fff,#1f2023><colcolor=#425066,#FFFFFF> 텐서플로 TensorFlow | |
개발 | |
분류 | 라이브러리 |
개발 착수 | 2011년 |
출시 | 2015년 11월 9일 |
언어 | Python, C++ |
버전 | 2.18.0 |
라이선스 | 아파치 라이선스 2.0 |
링크 | 공식 사이트 블로그 포럼 | | | |
[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 문서 참고하십시오.3. Windows 사용시 주의사항
TensorFlow 2.10 이후 버전부터는 윈도우 환경에서 GPU를 사용할 수 없다. 따라서 윈도우 기반 환경에서 TensorFlow를 사용하려면 CPU만 사용해서 구동하던지, 아니면 가상머신이나 WSL, 멀티부팅 등을 통해 별도로 리눅스를 설치한 후 해당 리눅스 환경에 CUDA, CUDNN 및 엔비디아 드라이버를 설치하고 그 위에 파이썬과 가상환경, 텐서플로우까지 설치한 후 구동해야 한다. 물론 리눅스에서는 이런 귀찮은 과정을 다 생략하고 Docker에서 해당 환경이 구축된 이미지를 받아오면 끝이고, 윈도우에서도 WSL만 깔고 나면 리눅스처럼 Docker를 쓰면 CUDA와 CUDNN은 직접 설치하지 않아도 된다. googlecolab을 쓰는 방법도 있다.4. 관련 강좌
4.1. 유튜브
4.2. 웹사이트
- 네이버 클라우드 플랫폼 가이드*현재진입안됨
- 김성훈 교수의 딥러닝 강좌
- 텐서 플로우 블로그
- Udaticy Deep Learning
- Awesome TensorFlow
- Awesome TensorFlow Implementation
- TensorFlow 한글 번역
- TensorFlow 자격증 시험 (구글 인증)
- 모모딥 시즌2
- 더북(TheBook) - 딥러닝 텐서플로 교과서, 모두의 딥러닝 개정 3판
- 한곳에서 끝내는 파이썬 & 머신러닝 & 딥러닝
5. 응용 사례
이것들은 간단 예제 수준이고, 전문 지식이 결합되면 훨씬 더 많은 일들을 할 수 있다. 딥러닝은 아직 학문적 체계가 정립되지 않았기 때문에, 각종 사례를 찾아보는 것 만큼이나 직접 만들어보는 게 더 빠르다.