텐서플로는 최첨단 머신 러닝 애플리케이션의 개발 및 배포를 지원하도록 설계된 최고의 오픈 소스 라이브러리입니다.
텐서플로는 최첨단 머신 러닝 애플리케이션의 개발 및 배포를 지원하도록 설계된 최고의 오픈 소스 라이브러리입니다.
데이터 사이언티스트, 소프트웨어 개발자, 교육자가 많이 사용하는 텐서플로는 머신 러닝을 위한 오픈 소스 플랫폼으로, 데이터 흐름 그래프를 사용합니다. 그래프의 노드는 수학적 연산을 나타내고 그래프 간선은 수학적 연산 사이를 흐르는 다차원 데이터 배열(텐서)을 나타냅니다. 이 유연한 아키텍처를 사용하면 머신 러닝 알고리즘을 연결된 연산들의 그래프로 설명할 수 있습니다. 코드를 다시 작성하지 않고도 휴대용 장치부터 데스크탑, 하이엔드 서버에 이르는 다양한 플랫폼의 GPU, CPU, TPU에서 모델을 훈련하고 실행할 수 있습니다. 즉, 모든 배경의 프로그래머가 동일한 도구 세트를 사용하여 협업할 수 있어 효율성이 크게 증가합니다. Google 브레인 팀에서 머신 러닝과 심층 신경망(DNN) 연구를 수행하려는 목적으로 처음 개발한 이 시스템은 다른 다양한 영역에도 적용할 수 있을 만큼 범용적입니다.
텐서플로 워크플로는 세 가지 단계, 즉 데이터 전처리, 모델 구축, 예측을 위한 모델 훈련으로 정의됩니다. 이 프레임워크는 데이터를 텐서라는 다차원 배열로 입력하며 두 가지 다른 방식으로 실행됩니다. 주된 방법은 모델 훈련을 위한 데이터 흐름을 정의하는 연산 그래프를 구축하는 것입니다. 두 번째, 그리고 보다 직관적인 방법은 명령형 프로그래밍 원칙을 따르고 즉시 연산을 평가하는 즉시 실행(eager execution)을 사용하는 것입니다.
텐서플로 아키텍처를 사용하는 훈련은 일반적으로 데스크탑이나 데이터센터에서 수행됩니다. 두 경우 모두 텐서를 GPU에 배치하면 프로세스가 가속화됩니다. 그런 다음 훈련된 모델을 데스크탑부터 모바일, 클라우드에 이르는 다양한 플랫폼에서 실행할 수 있습니다.
텐서플로에는 또한 많은 지원 기능이 포함되어 있습니다. 예를 들어, TensorBoard를 사용하면 사용자가 훈련 프로세스, 기저 연산 그래프, 메트릭을 시각적으로 모니터링하여 실행을 디버깅하고 모델 성능을 평가할 수 있습니다. TensorBoard는 텐서플로와 케라스(Keras)를 위한 통합 시각화 프레임워크입니다.
케라스는 텐서플로 위에서 실행되는 고수준 API입니다. 케라스는 일반적인 사용 사례를 위한 모델 구축에 최적화된 간소한 API를 제공하여 텐서플로의 추상화를 더욱 강화합니다. 이러한 API의 핵심 아이디어는 가능한 한 짧은 시간 내에 아이디어를 결과로 전환할 수 있게 한다는 것입니다.
텐서플로는 여러 작업을 위한 모델을 개발하는 데 사용할 수 있습니다. 여기에는 자연어 처리(NLP), 이미지 인식, 필기 인식 그리고 편미분 방정식과 같은 다양한 연산 기반 시뮬레이션이 포함됩니다.
텐서플로의 주요 이점은 여러 가속화 플랫폼에서 저수준 연산을 실행할 수 있고, 자동 기울기 연산, 프로덕션 수준 확장성, 상호 호환 가능 그래프 내보내기를 지원한다는 것입니다. 또한 케라스를 고수준 API로 제공하고 즉시 실행을 텐서플로의 데이터 흐름 패러다임에 대한 대안으로 제공하므로, 언제나 쉽고 편안하게 코드를 작성할 수 있습니다.
텐서플로의 원개발자인 Google은 여전히 이 라이브러리를 강력하게 지원하고 있으며 발전을 가속화하기 위해 박차를 가해 왔습니다. 예를 들어, Google은 사용자가 생성한 다양한 모델을 공유할 수 있는 온라인 허브를 만들었습니다.
데이터 사이언티스
텐서플로가 여러 다양한 모델 개발 경로를 지원한다는 것은 언제나 작업에 적합한 도구를 찾아 혁신적인 아이디어와 새로운 알고리즘을 최대한 빨리 표현할 수 있다는 것을 의미합니다. 또한 머신 러닝 모델을 개발하는 데 가장 널리 사용되는 라이브러리 중 하나이므로, 일반적으로 이전 연구자의 텐서플로 코드를 쉽게 찾고 작업을 복제할 수 있어 보일러플레이트 및 중복 코드에 시간을 낭비하지 않아도 됩니다.
소프트웨어 개발자
텐서플로는 다양한 일반적인 하드웨어 플랫폼 및 운영 환경에서 실행할 수 있습니다. 2019년 말에 텐서플로 2.0이 출시되면서 텐서플로 모델을 훨씬 더 쉽게 더 다양한 플랫폼에 배포할 수 있게 되었습니다. 텐서플로로 생성된 모델의 상호 운용성은 배포가 결코 어려운 작업이 아님을 의미합니다.
수천 개의 효율적인 소형 코어로 구성된 대규모 병렬 아키텍처를 갖춘 그래픽 처리 장치, 즉 GPU는 수천 개의 병렬 스레드를 동시에 실행하여 컴퓨팅 집약적 작업을 강화할 수 있습니다.

10년 전 연구자들은 GPU가 행렬 및 대수 연산에 매우 탁월하다는 것을 발견했습니다. 딥 러닝은 이 두 가지 연산 모두에 크게 의존합니다.
텐서플로는 최신 NVIDIA Pascal GPU에서 최대 50% 더 빠르게 실행되고 GPU에서 원활하게 확장됩니다. 이제 며칠이 아닌 몇 시간 만에 모델을 훈련할 수 있습니다.
텐서플로는 최적화된 C++와 NVIDIA® CUDA® 툴킷으로 작성되므로 모델을 훈련과 추론 시 GPU에서 실행하여 속도를 대폭 향상할 수 있습니다.
텐서플로의 GPU 지원에는 몇 가지 드라이버와 라이브러리가 필요합니다. 설치를 간소화하고 라이브러리 충돌을 방지하려면 GPU를 지원하는 텐서플로 Docker 이미지를 활용하는 것이 좋습니다. 이 설정에는 NVIDIA GPU 드라이버와 NVIDIA-docker를 설치하기만 하면 됩니다. 사용자는 NGC(NVIDIA GPU 클라우드)에서 사전 훈련된 모델과 텐서플로 라이브러리 지원으로 사전 구성된 컨테이너를 가져올 수 있습니다.
GPU 가속 딥 러닝 프레임워크는 맞춤형 심층 신경망을 유연하게 설계하고 훈련할 수 있는 기능과 파이썬, C/C++와 같이 일반적으로 사용되는 프로그래밍 언어를 위한 인터페이스를 제공합니다. MXNet, PyTorch, TensorFlow 등 널리 사용되는 딥 러닝 프레임워크는 고성능 멀티 GPU 가속화 학습을 제공하기 위해 NVIDIA GPU 가속화 라이브러리를 사용합니다.

CUDA-X AI를 기반으로 구축된 오픈 소스 소프트웨어 라이브러리인 NVIDIA RAPIDS™ 제품군은 엔드투엔드 데이터 사이언스 및 분석 파이프라인을 전적으로 GPU에서 실행할 수 있게 해줍니다. 이 제품군은 NVIDIA CUDA 프리미티브를 사용하여 저수준 컴퓨팅 최적화를 수행하지만, 사용자 친화적인 Python 인터페이스를 통해 GPU 병렬 처리와 고대역폭 메모리 속도를 제공합니다.
RAPIDS GPU DataFrame을 사용하면 Pandas와 같은 인터페이스를 사용하여 데이터를 GPU에 로드한 다음, 절대 GPU를 떠나지 않고 이 데이터를 연결된 다양한 머신 러닝 및 그래프 분석 알고리즘에 사용할 수 있습니다. 이러한 수준의 상호 운용성은 Apache Arrow와 같은 라이브러리를 통해 구현되며, 데이터 준비부터 머신 러닝과 딥 러닝에 이르는 엔드투엔드 파이프라인을 가속화할 수 있습니다.

RAPIDS는 널리 사용되는 여러 데이터 사이언스 라이브러리 간의 장치 메모리 공유를 지원합니다. 그래서 GPU에 데이터가 유지되므로, 호스트 메모리에 반복적으로 복사하느라 높은 비용을 들일 필요가 없습니다.
