텐서플로 훑어보기
텐서플로는 강력한 수치 계산용 라이브러리입니다.
특히 대규모 머신러닝에 잘 맞도록 튜닝되어 있습니다.
텐서플로가 제공하는 것들을 간단히 요약하면 아래와 같습니다.
- 핵심 구조는 넘파이와 매우 비슷하지만 GPU를 지원합니다.
- (여러 장치와 서버에 대해서) 분산 컴퓨팅을 지원합니다.
- 일종의 JIT(just-in-time) 컴파일러를 포함합니다. 속도를 높이고 메모리 사용량을 줄이기 위해 계산을 최적화합니다. 이를 위해 파이썬 함수에서 계산 그래프를 추출한 다음 최적화하고 효율적으로 실행합니다.
- 계산 그래프는 플랫폼에 중립적인 포맷으로 내보낼 수 있으므로 한 환경에서 텐서플로 모델을 훈련하고 다른 환경에서 실행할 수 있습니다.
- 텐서플로는 자동 미분 기능과 RMSProp, Nadam과 같은 고성능 옵티마이저를 제공하므로 모든 종류의 손실 함수를 쉽게 최소화할 수 있습니다.
텐서플로는 이런 핵심 기술을 기반으로 많은 기능을 제공합니다.
아래 그림에 텐서플로의 전체 파이썬 API가 요약되어있습니다.
아래 그림에는 텐서플로 구조가 나와있습니다.
대부분의 코드는 고수준 API를 사용합니다.
하지만 더 높은 자유도가 필요할 경우 저수준 파이썬 API를 사용해 텐서를 직접 다루게 됩니다.
(파이썬 외에 다른 언어의 API도 제공합니다.)
텐서플로는 윈도우, 리눅스, 맥OS 뿐만 아니라 iOS와 안드로이드같은 모바일 장치에서도 실행됩니다.
파이썬 API 외에도 C++, 자바, Go, 스위프트 API를 사용할 수 있습니다.
Tensorflow.js라는 자바스크립트 구현이 있어서 이를 사용하면 브라우저에서 직접 모델을 실행할 수도 있습니다.
텐서플로는 하나의 라이브러리 그 이상입니다.
광범위한 라이브러리 생태계를 가지고 있습니다.
먼저 시각화를 위한 텐서보드가 있습니다.
그리고 구글에서 만든 텐서플로 제품화를 위한 라이브러리 모음인 TFX(TensorFlow Extended)가 있습니다. 여기에는 데이터 시각화, 전처리, 모델 분석, 서빙 등이 포함됩니다.
구글의 텐서플로 허브를 사용하면 사전훈련된 신경망을 손쉽게 다운로드하여 재사용할 수 있습니다.
텐서플로 모델 저장소에서 많은 신경망 구조를 다운로드할 수 있습니다. 그중 일부는 사전훈련되어 있습니다.
텐서플로 리소스 페이지와 여기에서 다양한 텐서플로 기반 프로젝트를 확인해보세요. 깃허브에서 수백 개의 텐서플로 프로젝트 저장소를 찾을 수 있습니다. 하려는 것이 무엇이든 기존 코드를 쉽게 찾을 수 있을 것입니다.
Tip: 갈수록 많은 머신러닝 모델들이 구현을 함께 공개하고 있습니다. 이따금 사전훈련된 모델도 공개합니다. 여기서 그러한 논문을 찾을 수 있습니다.
넘파이처럼 텐서플로 사용하기
텐서는 넘파이 ndarray와 매우 비슷합니다.
텐서는 사용자 정의 손실 함수, 사용자 정의 지표, 사용자 정의 층 등을 만들 때 텐서가 중요합니다.
'DATA > 머신 러닝' 카테고리의 다른 글
[머신 러닝] 합성곱 신경망을 사용한 컴퓨터 비전 (0) | 2022.02.13 |
---|---|
[머신 러닝] 텐서플로를 사용한 사용자 정의 모델과 훈련 (0) | 2022.02.04 |
[머신 러닝] 심층 신경망 훈련하기 (0) | 2022.02.01 |
[머신 러닝] 신경망 하이퍼파라미터 튜닝하기 (0) | 2022.01.23 |
[머신 러닝] 텐서보드를 이용해 시각화하기 (0) | 2022.01.23 |