상세 컨텐츠

본문 제목

[Tensorflow]Tensorflow 소개 및 설치 방법

Artificial Intelligence

by [성운] 2019. 8. 1. 20:24

본문

Tensorflow

Tensorflow 수치 연산을 기호로 표현한 graph 구조를 만들고 처리한다는 기본 아이디어를 바탕으로 구현되었습니다
이것은 구글 내 연구와 제품개발을(Gmail, Google Photo, Google Search, 음성인식위한 목적으로 구글 브레인팀이 만들었고 2015 11 9 아파치 2.0 오픈소스 라이센스로 공개되었습니다

TensorFlow 다양한 작업에 대해 데이터 흐름 프로그래밍을 위한 오픈소스 소프트웨어 라이브러리입니다. Data flow graph 사용해서 수치 연산을 하는 심볼릭 수학 라이브러리이며뉴럴 네트워크같은 기계학습 응용프로그램에도 사용됩니다.  Graph Node 수학 연산을 나타내고 Node 연결하는 Graph Edge Node 데이터의 입출력 관계를 나타내며다차원 데이터 배열(Tensor) 나타냅니다.

Example) c = a + b

위 식은 a노드와 b노드가 생기고 c +라는 노드가 됩니다. a노드와 b노드는 c노드를 가리키는(Edge) 그래프가 생성됩니다. 생성된 그래프를 실행하기 위해서는 tensorflow에서 제공하는 session을 생성해 실행합니다.

TensorFlow comprehensive, flexible ecosystem of tools libraries 가지고 있으며, researchers들이 Machine Learning 최신 자료를 community에서 공유하고 편리한 build deploy 방법을 제공합니다

Feature

  • Easy model building 

intuitive high-level APIs 사용하여 쉽게 Build and train ML models 합니다. 또한 debugging 쉽게 가능하며, train 즉시 model 확인할  있습니다

  • Robust ML production anywhere 

모든 language 대해서 train 쉽게   있으며, cloud, on-prem, in the browser, or on-device 생성한 Model deploy 편리합니다

  • Powerful experimentation for research 

concept부터 code, 최첨단 모델  출판에 이르기까지 새로운 아이디어를 취할 수 있는 간단하고 유연한 architecture 가지고 지원합니다.

Tensorflow 설치(cpu version on windows)

TensorFlow CPU, GPU 장점을 모두 이용할  있고 안드로이드나 iOS같은 모바일 플랫폼, MAC OS X에서도 사용할  있습니다여기서는 cpu verion on windows 환경에서 설치하겠습니다.

일반적으로 Python으로 작업할 때는 virtualenv라는 가상환경을 사용해야 합니다.  virtualenv  컴퓨터에서 여러 프로젝트를 작업할  Python Package 의존성이 충돌하지 않도록 관리해주는 툴입니다.

windows 환경에서는 Anaconda tool 사용해서 진행하겠습니다.  Anaconda env라는 환경에 개발을 할 거며, env Python 독립적인 가상의 실행 환경(Environment) 말합니다.

env 생성 명령어를 수행하면 "environment location" 위치에 가상 환경이 설치되는 위치입니다. 설치가 완료하고 가상환경을 활성화 시키면 conda 콘솔 명령줄 시작 부분에 현재 작업하고 있는 virtualenv 이름이 나타납니다. 이 가상환경 명에 따라 작업을 진행하시면 됩니다

# env 생성 
$ conda create -n tensoflow python=3.7.1 
# env 
활성화 
$ conda activate tensorflow 

virtualenv 환경에서 pip 명령어를 이용해서 tensorflow 설치합니다.

pip install tensorflow 

tensorflow 정상적으로 설치되었는지 확인하기 위해conda 프롬프트 창에서 python 실행하여 tensorflow import하고 version 확인합니다.

Python 3.7.1 (default, Dec 10 2018, 22:54:23) [MSC v.1915 64 bit (AMD64)] :: Anaconda, Inc. on win32 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import tensorflow as tf 
>>> print(tf.__version__) 
1.13.1 

가상환경 관련 명령어

# conda version확인 
$ conda -version 
# conda up to updata 
$ conda update conda 
Install additional Python packages to a virtual environment. 
$ condta install -n {virtual_env_name} {package} 
# env 
생성  
$ conda create -n {virtual_env_name} python={python_version}  

# env 활성화  
$ conda activate {virtual_env_name}  
# env 
비활성화  
$ deactivate  
# env 
삭제  
$ conda env remove -n {virtual_env_name}  
# env 
리스트 보기  
$ conda env list 

비고

ModuleNotFoundError: No module named 'numpy.core._multiarray_umath' 
- Default
 설치된 numpy.core래스에는 _multiarray_umath 멤버변수가 없는걸로 예상됩니다 numpy 클래스를 upgrade 해줘야만 합니다
pip install --upgrade numpy 

Tensorflow 구조

tensorflow 프로그램의 구조는 그래프를 생성하고 그래프를 실행하는 구조입니다. tensor tensor 연산들을 미리 정의하여 그래프를 만들고, 원하는 시점에 실제 연산을 수행하도록 하는 방식으로 처리 되는데 이를 지연실행(lazy evaluation)이라고 합니다이 구조는 모델의 구성과 실행을 분리하여 프로그램을 깔끔하게 작성할 수 있습니다.

TensorFlow 연산과 데이터에 대한 모든 정보를 그래프 구조 안에 저장됩니다. 그래프 구조는 수학 계산을 표현합니다노드는 수학 연산을 나타내고 데이터 입력과 출력의 위치를 나타내거나 저장된 변수를 읽거나 씁니다. 에지는 입력 값과 출력 값으로 연결된 노드 사이의 관계를 표현하고 그와 동시에 TensorFlow 기본 구조인 Tensor 운반합니다.

텐서프로는 그래프 구조로 표현된 정보를 이용해서 트랜잭션 간의 의존성을 인식하고 노드에 입력 데이터로 들어올 텐서가 준비될 때 디바이스(CPU or GPU)에 비동기적이고 병렬적으로 연산을 할당합니다.

텐서프로는 그래프 구조로 표현된 정보를 이용해서 트랜잭션 간의 의존성을 인식하고 노드에 입력 데이터로 들어올 텐서가 준비될 때 디바이스(CPU or GPU)에 비동기적이고 병렬적으로 연산을 할당합니다.

 

감사합니다.

[Reference Site]
ko.wikipedia.org/wiki/%ED%85%90%EC%84%9C%ED%94%8C%EB%A1%9C 
Tensorflow 
첫걸음 
www.tensorflow.org
uoa-eresearch.github.io/eresearch-cookbook/recipe/2014/11/20/conda/

관련글 더보기

댓글 영역