||<-2>
{{{+1 '''텐서플로'''}}}[br]TensorFlow || ||<-2> [[파일:텐서플로우 로고.svg|width=80%]] || || '''개발''' ||[[구글|[[파일:구글 로고.svg|height=20]]]] || || '''분류''' ||[[라이브러리]] || || '''개발 착수''' ||[[2011년]] || || '''출시''' ||[[2015년]] [[11월 9일]] || || '''언어''' ||[[Python]], [[C++]] || || '''버전''' ||2.13.0 || || '''라이선스''' ||[[아파치 라이선스|아파치 2.0 오픈 소스 라이선스]] || || '''링크''' ||[[https://www.tensorflow.org| [[파일:홈페이지 아이콘.svg|width=20]] 공식 사이트]] [[https://blog.tensorflow.org/| [[파일:홈페이지 아이콘.svg|width=20]] 블로그]] [[https://discuss.tensorflow.org/| [[파일:홈페이지 아이콘.svg|width=20]] 포럼]] ---- [[https://www.youtube.com/tensorflow|[[파일:유튜브 아이콘.svg|width=20]]]] [include(틀:GitHub 로고,링크=tensorflow,크기=20)] [include(틀:트위터 로고,링크=tensorflow,크기=20)] [[https://medium.com/tensorflow|[[파일:미디엄 아이콘.svg|width=20]]]] || [목차] [clearfix] == 개요 == [[구글|구글리서치]] 산하의 [[딥러닝]] 팀인 구글브레인 팀[* 2023년, [[구글 딥마인드]] 산하로 통폐합되었다.]이 [[오픈 소스]]로 공개한 [[기계학습]] [[라이브러리]]. 기계학습 분야를 일반인들도 사용하기 쉽도록 다양한 기능들을 제공한다. 2016년 [[알파고]]와 함께 한국에서도 관심이 높아진 추세이며 관련 컨퍼런스들도 개최되고 있다. 고수준 [[프로그래밍 언어]]로 알려진 [[Python]]을 활용하여 연산처리를 작성할 수 있다. 다른 언어들도 대부분 지원하지만 Python 관련 자료가 가장 많다. 때문에 공개된 지 그리 오래되지 않았음에도 불구하고 다양한 분야에서 활용되고 있다. == 특징 == 텐서플로는 다음과 같은 특징을 가진다. * 데이터플로 그래프를 통한 풍부한 표현력 * 아이디어 테스트에서 서비스 단계까지 이용 가능 * 계산 구조와 목표 함수만 정의하면 자동으로 미분 계산을 처리 * [[Python]], [[C++]], [[Go(프로그래밍 언어)|Go]], [[Java]], [[R(프로그래밍 언어)|R]][* R의 대표적인 통합개발환경(IDE)인 RStudio를 통해 연동되어 있다.]을 지원하며, SWIG를 통해 다양한 언어 지원 가능 === 코드 수정 없이 CPU/GPU 모드로 동작 === 공개된 버전은 일반 버전과 GPU 가속 버전 두 가지이다. 일반 버전은 어떤 컴퓨터에서든 실행할 수 있다는 장점이 있다. GPU 가속 버전은 [[GPGPU]]를 사용해 대량 연산을 빠르게 수행하므로 훨씬 빠르게 동작하게 된다. 현재 [[NVIDIA]]의 GPGPU 언어인 [[CUDA]]를 사용하기 때문에 NVIDIA 그래픽카드가 없으면 사용할 수 없다. [* 로드맵에 범용 GPU 가속 라이브러리, OpenCL을 지원할 예정이라고 발표했다.] GPU 가속 버전의 성능은 CPU 성능과는 별 관계가 없고 GPU 성능이 중요하다. CUDA 드라이버와 cuDNN 드라이버를 추가적으로 설치하여야 한다. 그 외에 구글이 자사 서비스를 위해 내부적으로 사용하고 있는 버전도 있는데, 이것은 구글이 자체 개발한 [[인공지능 가속기]]인 [[TPU]] 상에서 동작하기 때문에 [[인텔 제온]]이나 [[엔비디아]] [[테슬라]]보다도 15~30배 더 빠르다. TensorFlow 2.0이 출시되면서 CPU 버전과 GPU 버전이 통합되었다. CUDA 환경 설치가 올바르게 되었다면 자동으로 GPU를 인식해준다. === TensorFlow Lite === TensorFlow로 훈련한 모델을 안드로이드나 iOS, 또는 더 작은 라즈베리 파이 같은 거에다가 사용할 수 있게 변환하는 기술이다. 안드로이드의 경우, 이 .tflite 파일을 직접 넣을 수도 있으며 MLKit등을 활용해 좀 더 쉽게 적용할 수 있다. 예를 들어 이미지 분류 문제를 위해 ResNet50을 훈련했다면, model 에 해당 tflite 파일을 설정하고, 이미지를 1*224*224*3 사이즈의 비트맵으로 변환한 후 각 RGB 값에 255를 나눠서 preprocess하면 된다. 그 다음, 이 파일을 모델에 input하면 각 label 별로 예측한 확률의 array가 나오는데, 여기다가 argmax 같은 함수를 사용해서 prediction 결과를 뽑을 수 있다. 자세한건 TfLite 공식 문서와 MLKit 문서를 참조. === Keras === [[https://keras.io/|공식 사이트]] 케라스(Keras)는 TensorFlow, Theano, CNTK 등 딥 러닝 라이브러리를 백엔드로 사용하여 쉽게 다층 퍼셉트론 신경망 모델, 컨볼루션 신경망 모델, 순환 신경망 모델, 조합 모델 등을 구성할 수 있다. 2017년, 구글은 TensorFlow 2.0부터는 코어 레벨에서 Keras를 지원하도록 변경하겠다고 발표하였고, 현재 발표된 TensorFlow 2.0 stable부터는 사실상 전부 Keras를 통해서만 동작하도록 바뀌었다. [[https://www.tensorflow.org/tutorials|사용자용 튜토리얼 페이지]] 1.15부터 deprecated 목록에 들어가 있던 자잘한 API가 대부분 정리되었고, 익숙되면 조금 더 편하게 사용할 수 있게 변했다. 하지만 그동안 익숙하게 사용해 왔던 모델을 만든 다음 session을 만들어 동작하는 구조에 익숙하던 사람들에게 멘붕을 준 것은 덤. == 관련 강좌 사이트 및 참조 사이트 == * [[https://docs.ncloud.com/ko/tensorflow/tensorflow-2-1.html|네이버 클라우드 플랫폼 가이드]]*현재진입안됨 * [[http://hunkim.github.io/ml|김성훈 교수의 딥러닝 강좌]] * [[https://tensorflowkorea.wordpress.com/|텐서 플로우 블로그]] * [[https://www.udacity.com/course/deep-learning--ud730|Udaticy Deep Learning]] * [[https://github.com/jtoy/awesome-tensorflow|Awesome TensorFlow]] * [[https://github.com/TensorFlowKR/awesome_tensorflow_implementations|Awesome TensorFlow Implementation]] * [[https://tensorflowkorea.gitbooks.io/tensorflow-kr/content/|TensorFlow 한글 번역]] * [[https://www.tensorflow.org/certificate|TensorFlow 자격증 시험 (구글 인증)]] == 응용 사례 == * [[http://www.newsweek.com/artificial-intelligence-cucumber-farm-raspberry-pi-495289?rx=us|오이 품종 자동 분류 기계]] * [[https://nicholastsmith.wordpress.com/2016/04/20/stock-market-prediction-using-multi-layer-perceptrons-with-tensorflow/|주식 시장 예측 프로그램]][* [[https://www.udacity.com/course/machine-learning-for-trading--ud501|무료강좌]]이니 관심있는 사람은 만들어보자. [[http://personal.disco.unimib.it/Vanneschi/McGrawHill_-_Machine_Learning_-Tom_Mitchell.pdf|교재 PDF]]] * [[이루다(인공지능)]]에도 응용되었다. [[https://blog.pingpong.us/torch-to-tf-tf-to-torch/|핑퐁팀 블로그]] 이것들은 간단 예제 수준이고, 전문 지식이 결합되면 훨씬 더 많은 일들을 할 수 있다. 딥러닝은 아직 학문적 체계가 정립되지 않았기 때문에, 각종 사례를 찾아보는 것 만큼이나 직접 만들어보는 게 더 빠르다. == 관련 문서 == * [[인공지능]] * [[기계학습]] * [[인공지능 가속기]] * [[TPU]] [[분류:기계 학습]][[분류:라이브러리]][[분류:2015년 공개]]