업데이트 전에 TensorFlow는 Distbelief로 알려져 있습니다. 2011년에 딥 러닝 신경망을 기반으로 하는 독점 시스템으로 구축되었습니다. distbelief의 소스 코드는 수정되어 훨씬 더 나은 애플리케이션 기반 라이브러리로 만들어졌으며 곧 2015년에 TensorFlow로 알려지게 되었습니다.
TensorFlow는 고성능 수치 계산을 위한 오픈 소스 소프트웨어 라이브러리입니다. 유연한 아키텍처를 통해 데스크톱에서 서버 클러스터, 모바일 및 에지 장치에 이르기까지 다양한 플랫폼(CPU, GPU, TPU)에 걸쳐 계산을 쉽게 배포할 수 있습니다.
원래 구글의 AI 조직 내 구글 브레인 팀의 연구원과 엔지니어들이 개발한 이 제품은 머신 러닝과 딥 러닝을 강력하게 지원하며, 유연한 수치 계산 코어는 다른 많은 과학 영역에서 사용됩니다. TensorFlow는 Apache 2.0에 따라 라이선스가 부여됩니다.
1. Tensorflow란?
TensorFlow는 강력한 데이터 흐름 지향 머신러닝 라이브러리로, Google의 Brain Team이 만들고 2015년에 오픈소스로 만들었습니다. 사용하기 쉽고 숫자 및 신경망 지향 문제뿐만 아니라 다른 영역에도 널리 적용할 수 있도록 설계되었습니다.
기본적으로 TensoFlow는 복잡한 수학을 수행하기 위한 저수준 툴킷이며, 실험적 학습 아키텍처를 구축하고, 이를 가지고 놀고, 실행 중인 소프트웨어로 전환하기 위해 무엇을 하고 있는지 알고 있는 연구원을 대상으로 합니다.
일반적으로 계산을 그래프로 표현하는 프로그래밍 시스템으로 생각할 수 있습니다. 그래프의 노드는 수학 연산을 나타내고 가장자리는 노드 간에 통신되는 다차원 데이터 배열(텐서)을 나타냅니다.
TensorFlow의 최신 릴리스는 1.7.0이며 www.tensorflow.org 에서 사용할 수 있습니다. 딥 러닝을 염두에두고 설계되었지만 훨씬 더 넓은 범위의 문제에 적용 할 수 있습니다.
2. Tensorflow 특징
이제 이름에서 알 수 있듯이 텐서에서 함수를 정의하고 도함수를 자동으로 계산하기 위한 기본 요소를 제공합니다.
기본적으로 텐서는 컴퓨터 프로그래밍에서 다수의 데이터를 숫자 형태로 표현하는 데 사용되는 고차원 배열입니다.
Numpy와 같이 인터넷에서 사용할 수 있는 다른 n-d 배열 라이브러리가 있지만 TensorFlow는 텐서 함수를 생성하고 도함수를 자동으로 계산하는 방법을 제공한다는 점에서 차별화됩니다.
Numpy와 같이 인터넷에서 사용할 수 있는 다른 n-d 배열 라이브러리가 있지만 TensorFlow는 텐서 함수를 생성하고 도함수를 자동으로 계산하는 방법을 제공한다는 점에서 차별화됩니다.
3. TensorFlow 기능
의사 결정 트리 또는 k-Nearest Neighbors와 같은 다른 기계 학습 알고리즘도 구축할 수 있습니다.
다음은 Tensorflow의 생태계입니다.
위의 표현에서 볼 수 있듯이 TensorFlow는 잘 통합되고 GPU 처리, Python 및 Cpp를 포함하는 종속성을 가지고 있으며 docker와 같은 컨테이너 소프트웨어와도 통합하여 사용할 수 있습니다.
Tensorflow는 다양한 플랫폼에서 실행되며 설치는 Linux 전용이며 CPU 전용 설치보다 지루합니다. pip 또는 conda 환경을 사용하여 설치할 수 있습니다.
이 애플리케이션은 딥 러닝을 넘어 강화 학습과 같은 다른 형태의 기계 학습을 지원하며, 이를 통해 비디오 게임에서 승리하거나 로봇이 고르지 않은 풍경을 탐색하는 것과 같은 목표 지향적인 작업을 수행할 수 있습니다.
Tensorflow에는 Matlab 및 C++용 API가 있으며 광범위한 언어를 지원합니다. 날이 갈수록 연구자들은 더 나은 환경을 만들기 위해 노력하고 있으며, 최근에는 최신 Tensorflow Summit에서 머신러닝 모델 학습 및 배포를 위한 자바스크립트 라이브러리인 tensorflow.js를 소개하고, 하이퍼파라미터를 변경하는 동안 발생하는 실시간 변경 사항을 확인할 수 있는 오픈 소스 브라우저 통합 플랫폼을 playground.tensorflow.org 에서 사용할 수 있습니다.
4. TensorFlow의 TensorBoard
시각화 도구인 TensorBoard는 작성자가 제공하는 Tensorflow의 간편한 솔루션으로, 그래프를 시각화하고 그래프를 통과할 이미지와 같은 추가 데이터와 함께 그래프에 대한 정량적 메트릭을 그릴 수 있습니다.
5. Tensorflow 애플리케이션
기계 학습의 응용 분야는 무궁무진합니다. TensorFlow를 사용하면 감정 분석, Google 번역, 텍스트 요약 및 Airbnb, eBay, Dropbox, Snapchat, Twitter, Uber, SAP, Qualcomm, IBM, Intel, 물론 Google, Facebook, Instagram 및 Amazon을 포함한 전 세계 주요 회사에서 사용하는 이미지 인식을 포함하여 대다수를 탐색 할 수 있습니다.
따라서 이 모든 것이 TensorFlow 애플리케이션입니다.
6. Tensorflow 장단점
다음은 TensorFlow 튜토리얼의 장점입니다.
- Tensorflow는 그래프의 모든 부분을 쉽게 시각화할 수 있으므로 반응형 구조를 가지고 있습니다.
- 플랫폼 유연성이 있어 모듈식이며 일부는 독립형이고 다른 일부는 병합될 수 있습니다.
- 분산 컴퓨팅을 위한 GPU뿐만 아니라 CPU에서 쉽게 훈련할 수 있습니다.
- TensorFlow에는 그래디언트 기반 머신 러닝 알고리즘에 도움이 되는 자동 미분 기능이 있어 다른 값에 대한 값의 도함수를 계산할 수 있으므로 그래프가 확장됩니다.
- 또한 스레드, 비동기 계산 및 큐에 대한 고급 지원이 있습니다.
- 사용자 정의 가능한 오픈 소스입니다.
다음은 TensorFlow 튜토리얼의 단점점입니다.
- TensorFlow는 동일한 범위에서 가져온 경우 GPU 메모리가 Theano와 충돌합니다.
- OpenCL에 대한 지원 없습니다.
- 고급 미적분학 및 선형 대수학에 대한 사전 지식과 기계 학습에 대한 상당한 이해가 필요합니다.
'프로그래밍 > AI' 카테고리의 다른 글
몽고DB 설치 및 환경설정 방법 (0) | 2024.10.10 |
---|---|
몽고DB의 개요, 기능, 동작방식 소개 (0) | 2024.10.09 |
머신러닝을 사용한 이미지 분할하는 방법 (0) | 2024.10.08 |
딥러닝과 머신러닝의 차이점 (0) | 2024.10.08 |
머신 러닝을 사용한 오디오 분석방법 (0) | 2024.10.07 |