OneBook(Python & Deep Learning)
  • 한곳에서 끝내는 파이썬 & 머신러닝 & 딥러닝
  • 문서 작업을 시작하며
  • 1. 인공지능(Artificial Intelligence) 시대
    • 1.1. 인공지능이란 도대체 무엇인가?
    • 1.2. 4차 산업혁명
    • 1.3. 인공지능의 역사
    • 1.4. 인공지능 > 머신러닝 > 딥러닝
    • 1.5. 머신러닝
    • 1.6. 머신러닝 알고리즘
      • 1.6.1. 지도 학습 (Supervised Learning)
      • 1.6.2. 비지도 학습 (Unsupervised learning)
      • 1.6.3. 강화 학습(Reinforcement Learning)
    • 1.7. 인공신경망(ANN)
    • 1.8. 딥러닝
  • 2. 기본 상식
    • 2.1. 기본 용어의 이해
      • 2.1.1. CPU와 GPU의 차이
      • 2.1.2. 오픈소스(Open Source)
      • 2.1.3. 깃허브(GitHub)
      • 2.1.4. 위키 Wiki
      • 2.1.5. 아나콘다(Anaconda)
      • 2.1.6. 활성화 함수
      • 2.1.5. 딥러닝 프레임워크 소개
    • 2.2. 텐서플로(Tensorflow)
    • 2.3. 케라스(Keras)
    • 2.4. 파이토치(PyTorch)
    • 2.5. 학습에 필요한 중요한 도구와 라이브러리들
      • 2.5.1. 주피터 노트북(Jupyter Notebook)
      • 2.5.2. 파이참(PyCharm)
      • 2.5.3. 스파이더(Spyder)
      • 2.5.4. 넘파이(NumPy)
      • 2.5.5. 싸이파이(SciPy)
      • 2.5.6. Matplotlib
      • 2.5.7. 판다스(Pandas)
      • 2.5.8. 장고(Django)
      • 2.5.9. 파이큐티(pyQT)
      • 2.5.10. 싸이킷런(Scikit-learn)(Sklearn)
      • 2.5.11. CUDA & cuDNN
      • 2.5.12. 파이썬 표준 내장 라이브러리
    • 2.6. AI공부에 필요한 기본지식 3가지
      • 2.6.1. 수학
      • 2.6.2. 프로그래밍 기술
      • 2.6.3. AI의 적용 대상 산업에 대한 지식
  • 3. 개발 환경설정
    • 3.1. 윈도우 환경에서 설치하기
      • 3.1.1. 아나콘다 설치 (파이썬 설치)
        • 1) 아나콘다 패키지 업데이트
        • 2) conda에서 파이썬 가상 환경 (virtual environments) 생성하기
        • 3) NVIDIA GPU 환경 설정하기
      • 3.1.2. 텐서플로 설치
      • 3.1.3. 케라스 설치
      • 3.1.4. Jupyter Notebook 설치
      • 3.1.5. Visual Studio Code 설치
      • 3.1.6. 파이참 설치
        • 1) 파이참 가상환경 설정
        • 2) 파이참 환경 설정
        • 3) 설치된 라이브러리들의 버전 확인 하기
    • 3.2. 리눅스 환경에서 설치하기
      • 3.2.1. 아나콘다 설치(파이썬 설치)
      • 3.2.2. 텐서플로 설치
      • 3.2.3. 케라스 설치
      • 3.2.4. 장고 설치
      • 3.2.5. 파이참(PyCharm) 설치
        • 1) 파이참 가상환경 설정
  • 4. 파이썬 기초 학습
    • 4.1. 파이썬(Python)
    • 4.2. 파이썬의 특징
    • 4.3. 파이썬 기본 문법
      • 4.3.1. 대화형과 스크립트 모드 프로그래밍
      • 4.3.2. 모듈의 사용(import)
      • 4.3.3. 파이썬 식별자(Identifiers)
      • 4.3.4. 예약어(Reserved Words)
      • 4.3.5. 행(Lines)과 들여쓰기(Indentation)
      • 4.3.6. 문자열 표시
      • 4.3.7. 주석
      • 4.3.8. 파이썬 변수(Variables)
    • 4.4. 자료형과 연산자
      • 4.4.1. 자료형
      • 4.4.2. 파이썬 연산자
    • 4.5. 조건문과 반복문
      • 4.5.1. 조건문
      • 4.5.2. 반복문
    • 4.6. 함수
      • 4.6.1. 함수의 종류
    • 4.7. 모듈(Modules)
      • 4.7.1. 모듈의 참조 위치
      • 4.7.2. 네임스페이스(Namespace)와 범위(Scoping)
      • 4.7.3. dir( ) 함수
      • 4.7.4. 패키지(Packages)
      • 4.7.5. 기본 내장 모듈
    • 4.8. 숫자형 활용
      • 4.8.1. 실습: 계산기 만들기
    • 4.9. 문자열(Strings) 활용
      • 4.9.1. Unicode 한글의 사용
      • 4.9.2. 이스케이프 문자
      • 4.9.3. 문자열 연산자
      • 4.9.4. 문자열 포맷 연산자
      • 4.9.5. 내장 문자열 함수
    • 4.10. 시퀀스(Sequence) 자료형 활용
      • 4.10.1. 리스트(Lists)
      • 4.10.2. 튜플(Tuple)
      • 4.10.3. 딕셔너리(Dictionary)
    • 4.11 Class
    • 4.12. Date & Time
    • 4.13. 파이썬 에러처리
  • 5. 기초수학
  • 6. 머신러닝을 위한 파이썬
  • 7. 텐서플로 2.x
  • 8. 딥러닝을 이용한 자연어 처리 입문
  • 9. 파이토치로 시작하는 딥 러닝 입문
  • 9.6 6. Pytorch lightning
  • A1. 필수 학습 라이브러리들
    • 4.1 NumPy
      • 4.1.1. Basic Operations
      • 4.1.2. Indexing, Slicing 그리고 Iterating
      • 3.13.3. Shape Manipulation
    • 4.2 Matplotlib
    • 4.3 SciPy
      • 4.3.1. Interpolation
      • 4.3.2. Optimization
      • 4.3.3. Fast Fourier transforms: scipy.fftpack
    • 4.4 Pandas
      • 4.4.1 Pandas 자료구조
      • 4.4.2 Pandas 활용하기
  • A2. 머신러닝 & 딥러닝
    • 5.1. 머신러닝 개념 소개
      • 5.1.1. 경사하강법(Gradient Descent )
      • 5.1.2. 분류 (Classification)
      • 5.1.3. MNIST Dataset 소개
    • 5.2. 딥러닝 개념 소개
      • 5.2.1. 퍼셉트론
      • 5.2.2. 인공 신경망
      • 5.2.3. 대표적인 딥러닝 모델
    • 5.3. Tensorflow를 사용한 학습
      • 5.3.1. TensorFlow 기본 메커니즘
      • 5.3.2. Tensorflow Types
      • 5.3.3. 기본 동작 실습
      • 5.3.4. 선형 회귀
      • 5.3.5 로지스틱 회귀
    • 5.4. Keras를 사용한 학습
      • 5.4.1. Keras로 분석한 선형 회귀
      • 5.4.2. CNN(Convolutional Neural Network)
      • 5.4.3. Fashion MNIST with Keras
    • 5.5. 웹 크롤링
      • 5.5.1. requests와 BeautifulSoup으로 웹 크롤러 만들기
Powered by GitBook
On this page

Was this helpful?

  1. 2. 기본 상식

2.2. 텐서플로(Tensorflow)

Previous2.1.5. 딥러닝 프레임워크 소개Next2.3. 케라스(Keras)

Last updated 4 years ago

Was this helpful?

텐서플로우[TensorFlow]는 구글에서 개발했으며 2015년 오픈 소스로 공개됐습니다. 2세대 머신러닝 시스템으로도 불리는 텐서플로우는 파이썬[Python] 기반 라이브러리로 여러 CPU 및 GPU와 모든 플랫폼, 데스크톱 및 모바일에서 사용할 수 있습니다.

텐서플로(TensorFlow)는 안드로이드와 iOS같은 모바일 환경은 물론 64비트 리눅스, MacOS 의 데스크탑이나 서버 시스템의 여러 개의 CPU와 GPU에서 구동될 수 있습니다. 텐서플로 연산은 상태를 가지는 데이터 흐름(stateful dataflow) 그래프로 표현됩니다. 또한 C++ 과 R 과 같은 다른 언어도 지원하며 딥러닝 모델을 직접 작성하거나 케라스(keras)와 같은 래퍼 라이브러리를 사용하여 직접 작성할 수 있습니다. 지금 텐서플로는 독자적인 생태계를 갖출 정도로 발전했습니다. 텐서플로 전문 블로거도 나오고, 텐서플로를 테마로 한 사용자 커뮤티들도 생겨났습니다. 따라서 학습 자원도 많고 튜토리얼도 풍부합니다. 텐서플로 사이트(https://www.tensorflow.org/)에만 들어가도 충분한 정보를 얻을 수 있습니다.

Tensor = Multidimensional Arrays = Data 딥러닝에서 텐서는 데이터를 의미합니다. 다차원 배열로 나타내는 데이터입니다. 플로는 데이터의 흐름을 의미합니다. 텐서플로우에서 계산은 데이터 플로우 그래프(dataflow graph)로 행해집니다.

텐서플로우는 여러 머신러닝 프레임워크와 경쟁합니다. 파이토치(PyTorch), CNTK, MXNet은 텐서플로우와 상당 부분 용도가 비슷한 주요 경쟁 프레임워크입니다. 그러나 텐서플로는 다양한 커뮤니티를 지원하고 있어 다른 딥러닝 프레임워크보다 인기가 있습니다. 커뮤니티가 활성화되어 있으면 실무에 적용했을 때 생기는 문제점들을 해결하거나, 라이브러리 자체에 버그가 있을 때 얼마나 빠르게 수정되는가 하는 그런 요인들이 실무를 하는 엔지니어에게는 가장 중요한 부분이라고 할 수 있을 것입니다. 그런 점에 있어 현존하는 머신러닝 라이브러리 중 커뮤니티가 가장 북적이는 것이 바로 텐서플로 입니다. 깃허브의 텐서플로 저장소나 각종 애플리케이션, 클라우드 서비스 등은 물론, 새로운 논문이 나올 때마다 텐서플로로 구현된 버전이 가장 먼저 나올 정도로 텐서플로 커뮤니티는 놀라울 만큼 활발하게 움직이고 있습니다.

텐서플로우는 크게 2가지 유형의 버전으로 제공됩니다.

CPU만을 지원하는 버전

만약 NVIDIA의 GPU를 사용하고 있지 않을 경우 반드시 CPU만 지원하는 버전으로 설치하셔야 합니다. GPU를 지원하는 텐서플로우 보다 설치하기 쉽다는 장점이 있어, 처음 텐서플로우를 설치하는 경우 CPU만 지원되는 버전을 추천합니다.

GPU를 함께 지원하는 버전

NVIDIA GPU를 지원하는 버전의 경우 CPU에서 실행되는 버전보다 월등히 빠른 성능을 나타낸다. 따라서, 텐서플로우를 실행하기 위한 사양의 NVIDIA GPU를 갖고 계신 경우 GPU를 지원하는 버전으로 설치해야 보다 빠르게 처리 할 수 있습니다. CPU만 지원하는 텐서플로우 버전보다 성능차이가 크기 때문에 궁극적으로는 GPU를 지원하는 버전으로 사용하는 것이 좋습니다.

NVIDIA GPU에서 지원되는 Compute capability는 아래의 페이지에서 확인 하실 수 있습니다.

Tensorflow는 구글에서 상업적 지원은 하지 않고 있으며, 앞으로도 계획은 없다고 합니다. 그리고 사전 학습 모델이 많지 않다는 단점이 있으며, 다른 딥러닝 프레임워크보다 늦게 개발되었기 때문에 아직 다양한 플랫폼에서의 최적화가 부족한 경우가 있습니다.

2019년 10월에 Tensorflow 2.0 발표되었습니다. 업데이트 스크립트로 1.x 에서 2.x 로 Conversion 가능합니다.

https://developer.nvidia.com/cuda-gpus