공개 SW 솔루션설치 & 활용가이드 기타 > AI 제대로배워보자 How to Use Open Source Software Open Source Software Installation & Application Guide
CONTENTS 1. 개요 2. 기능요약 3. 실행환경 4. 설치및실행 5. 기능소개 6. 활용예제 7. FAQ 8. 용어정리
- 3-1. 개요 소개 주요기능 TensorFlow 는데이터흐름그래프를사용하는수치연산용오픈소스소프트웨어라이브러리 그래프의노드는수학적연산을나타내며, 그래프의변은노드간에전달되는다차원데이터배열 ( 텐서 ) 를표현 유연한아키텍처를채택하여단일 API를통해데스크톱, 서버또는휴대기기에장착된하나이상의 CPU 또는 GPU에연산을배포가능 대분류 기타소분류 AI 라이선스형태 Apache 2.0 사전설치솔루션 파이썬 실행하드웨어 X86, ARM 호환프로세서, 램 1GB 이상의하드웨어 500MB 이상의디스크공간 ( 최소 256MB) 버전 1.11 (2018 년 10 월기준 ) 특징보안취약점개발회사 / 커뮤니티공식홈페이지 오픈소스운영체제 ( 라이선스비용이필요하지않음 ) 널리알려진인공지능개발및운용프레임워크 취약점 ID : CVE-2018-7577 취약점설명 : TensorFlow 체크포인트메타파일은 Google 의 https://github.com/google/snappy 압축 / 압축해제라이브러리를사용, TensorFlow 에서사용하는스냅의버전에는 memcpy-param-overlap 문제발생 대응방안 : 1.1.0 이후패치된버전사용 참고경로 : https://github.com/tensorflow/tensorflow/blob/master/tensorflow/security/advisory/tfsa-2018-005.md Google Brain Lab / https://ai.google/research/teams/brain https://tensorflow.org
- 4-2. 기능요약 TensorFlow는구글브레인랩에서만든오픈소스인공지능개발프레임워크임, 최초에 DistBelief로 2011년내부에서개발되어구글검색, 구글번역, 구글사진서비스로사용됨 2015년 11월구글브레인랩 (Google Brain Lab) 의제프딘 (Dean) 은 DistBelief를오픈소스로이름을 TensorFlow로바꾸어공개함 * Source: Oriol Vinyals Research Scientist at Google Brain
- 5-2. 기능요약 TensorFlow 의주요기능 주요기능 지원여부 32 / 64 비트 OS 32 / 64 지원 ( x86 / x86_64 ) Pip 패키지 Anaconda 설치 Source 설치 지원 지원 지원 CPU 연산지원 (Intel MKL 지원 ) GPU 연산지원 (Nvidia CUDA, AMD ROCm 지원 ) TPU 연산지원 (1.8 이상 )
3. 실행환경 하드웨어제약이거의없음 Build Type 리눅스 CPU 리눅스 GPU 리눅스 XLA MACOS Windows CPU Windows GPU 안드로이드 Raspberry Pi 0 and 1 Rasberry Pi 2 and 3 IBM s390x IBM ppc64le CPU IBM ppc64le GPU 리눅스 CPU with Intel MKL DNN 파이썬2 리눅스 CPU with Intel MKL DNN 파이썬3 Artifacts pypi pypi source pypi pypi pypi TensorFlow 1.12.0 지원 Py2 Py3 Py2 Py3 TBA TBA Release 1.11.0 py2.7 1.11.0 py3.4, 1.11.0 py3.5, 1.11.0 py3.6 Official Builds - 6 -
- 7-4. 설치및실행 세부목차 4.1 설치준비 4.2 설치환경준비 4.3 시스템부팅및설치진입 4.4 설치 4.5 실행
- 8-4. 설치및실행 4.1 설치준비 (1/2) 우분투저장소를최신의것으로업데이트 사전준비사항 : 노트북 or 데스크탑, 우분투리눅스, 네트워크
- 9-4. 설치및실행 4.1 설치준비 (2/2) 리눅스기준배포판 ( 우분투 16.04LTS) 으로설치 파이썬과 TensorFlow 에필요한패키지들을설치
- 10-4. 설치및실행 4.2 설치환경준비 (1/6) 파이썬개발환경을준비 Github 에서파이썬개발환경 (pyenv) 를받아서설치
- 11-4. 설치및실행 4.2 설치환경준비 (2/6) Github 에서파이썬개발환경 (pyenv) 에필요한가상파이썬환경을받아서설치
- 12-4. 설치및실행 4.2 설치환경준비 (3/6) 파이썬개발환경에필요한파이썬 3.6.x 버전을설치
- 13-4. 설치및실행 4.2 설치환경준비 (4/6) 파이썬개발환경에필요한파이썬 3.6.x 버전을 tensorflow 라고가상파이썬환경으로설정
- 14-4. 설치및실행 4.2 설치환경준비 (5/6) 실습에사용할폴더를만듦 (~/tensorflow) $ mkdir -p ~/tensorflow $ cd ~/tensorflow Pyenv 를사용해서실습폴더에사용할파이썬버전을고정 $ pyenv local tensorflow
- 15-4. 설치및실행 4.2 설치환경준비 (6/6) Pypi 를최신의것으로업데이트
- 16-4. 설치및실행 4.3 설치 TensorFlow 를 pip 로설치
- 17-4. 설치및실행 4.4 실행 TensorFlow 를파이썬콘솔에서실행
- 18-5. 기능소개 세부목차 5.1 연산정의하기 5.2 세션정의하기 5.3 세션실행하기 5.4 세션결과출력하기
- 19-5. 기능소개 5.1 연산정의하기 import tensorflow 로 TensorFlow 라이브러리를불러옴 tensorflow 를 tf로정의 tf.contant() 를사용해서 x1, x2에상수를정의 tf.multiply(x1,x2) 를사용해서 x1과 x2 의결과를 result에대입
- 20-5. 기능소개 5.2 세션정의하기 print(result) 를하면출력결과가다른값으로나타남 이것은 tensorflow 는 session() 을사용해서연산그래프를정의하고실행하기때문임 sess=tf.session() 을연산그래프를정의
- 21-5. 기능소개 5.3 세션실행하기 sess=tf.session() 을연산그래프를정의했으므로 sess.run() 로세션을실행
- 22-5. 기능소개 5.4 세션결과출력하기 sess=tf.session() 을연산그래프를정의했음 sess.run() 로세션을실행 print() 로연산결과를출력함
- 23-6. 활용예제 세부목차 6.1 숫자인식하기 6.2 숫자인식을위한데이터셋을불러오자. 6.3 학습모델을정의하자. 6.4 모델을학습하자. 6.5 학습모델을평가하자.
- 24-6. 활용예제 6.1 숫자인식하기 Tensorflow 1.11 이상에서는 keras 라이브러리를포함 keras 를사용해서숫자인식 다음의코드를파이썬콘솔에붙여넣고실행
- 25-6. 활용예제 6.2 숫자인식을위한데이터셋을불러오자. 숫자인식을위한데이터셋을불러옴
- 26-6. 활용예제 6.3 학습모델을정의하자. 숫자인식을위한학습모델을정의
- 27-6. 활용예제 6.4 모델을학습하자. 숫자인식을데이터와함께학습모델로학습함
- 28-6. 활용예제 6.5 학습모델을평가하자. 숫자인식을위한학습된모델을평가함 97% 정확도를확인가능
- 29-7. FAQ Q TensorFlow 사용자는어떻게사용할수있을까요? A TensorFlow 로데이터와학습모델을개발하면추론모델을저장할수있습니다. 추론모델을모바일기기, 임베디드기기등에내장해서사용자들이인공지능 서비스를이용할수있습니다. Q 리눅스이외에다른운영체계 ( 윈도우 ) 도지원하나요? A 현재 TensorFlow 는기본개발환경이파이썬이동작하는환경이라면어떤 곳에서도동작합니다. 윈도우즈는물론이며, 맥오에스, 라즈베리파이, 그리고 안드로이드에서도 TensorFlow 를활용할수있습니다.
- 30-8. 용어정리 용어 TensorFlow Keras GPL Apache 2.0 파이썬 pyenv 우분투 구글에서만든인공지능프레임워크 구글에서만든인공지능프레임워크 설명 GNU General Public License 의약자. 라이선스의종류중하나. 소스의취득, 수정, 배포, 공개가자유로우나최종배포시 GPL 라이선스를따라야함. 수정배포시자체개발한소스도공개해야함 아파치소프트웨어재단에서자체적으로만든소프트웨어에대한라이선스규정, 아파치 2.0 라이선스는누구나해당소프트웨어에서파생된프로그램을제작할수있으며저작권을양도, 전송할수있는라이선스규정을의미 파이썬 (Python) 은 1991 년프로그래머인귀도반로섬 (Guido van Rossum) 이발표한고급프로그래밍언어로, 플랫폼독립적이며인터프리터식, 객체지향적, 동적타이핑 (dynamically typed) 대화형언어 파이썬을개발을도와주는소프트웨어로가상파이썬환경을지원 리눅스운영체게로레드햇과더불어가장많이사용
Open Source Software Installation & Application Guide 이저작물은크리에이티브커먼즈 [ 저작자표시 비영리 동일조건변경허락 2. 0 대한민국라이선스 ] 에따라이용하실수있습니다.