SlideShare a Scribd company logo
1 of 29
구글 TensorFlow 첫걸음
김환희
2019.03.23
목차
• Tensorflow 소개
• Tensorflow Dev Summit 2019 요약 (Tensorflow 2.0 발표)
• Tensorflow 2.0 Sample code
Tensorflow 소개
• 2015년 오픈소스로 공개된 Google Brain 의 머신러닝 프로젝트
• 세계에서 가장 널리 쓰이는 Deep Learning Framework
https://towardsdatascience.com/deep-learning-framework-power-scores-2018-23607ddf297a
• Tensorflow, CNTK, Theano 등의 저수준 API 를 좀 더 간편하게
사용하기 위한 고수준 API
• 2017년 중반부터 Tensorflow 에 정식으로 통합
• 2.0 버전부터 Tensorflow 의 기본 고수준 API 가 됨
• 즉, 간결한 코드를 사용하는 고수준 API 작업은
tf.keras 를 기본으로 사용하도록 통일됨
https://medium.com/@francois.chollet
• 코드 길이 비교
• XOR 문제
https://crazyj.tistory.com/42
Tensorflow
Keras
Tensorflow 의 특징
• 데이터 플로우 그래프
• 수학 계산과 데이터의 흐름을 그래프로 표현
• tf.Graph 로 빌드 후 tf.Session 으로 실행 필수
• 1.x 버전 : session.run() 으로 실행해야만 각 노드
에 있는 값을 확인할 수 있었음
→ 디버그가 어렵고 사용이 불편
• 2.0 버전에서 개선됨
https://www.tensorflow.org/guide/graphs
Tensorflow 의 특징
• Scalable
• node 수가 많아져도 안정적으로 계산
• 미국 에너지 연구 과학 컴퓨팅 센터(NERSC) 에서 Tensorflow 를 사용
해서 슈퍼컴퓨터를 이용한 기후 예측
• CPU/GPU/TPU(2.0 버전부터) 지원
• 같은 코드로 학습 가능
• 분산 처리를 할 때도 최소한의 코드 추가로 가능
• 다양한 언어 지원
• Python, C, C++, Javascript, Java, Swift, R, C#, Go, Rust, Julia, …
Tensorflow 의 특징
• Google Colab 지원
• Jupyter Notebook 과 완전히 호환되는 코드 공유 플랫폼
• GPU, TPU 를 사용한 가속 가능
• 현재 1.13.1 버전 Tensorflow 는 import 후 바로 사용 가능하고,
간단한 bash 설치 명령으로 2.0 버전도 사용 가능
Code image – https://carbon.now.sh/
Tensorflow Dev Summit 2019 요약
(Tensorflow 2.0 발표)
Tensorflow Dev Summit 2019
• 2019년 3월 6-7일, 미국 캘리포니아 Sunnyvale 에 있는 Google
Event Center 에서 진행됨 (통산 세번째)
• 1,000 명의 참가자, 10,000 명의 livestream 시청자
• 35개의 youtube 영상 플레이리스트
• Tensorflow 2.0 을 비롯한 다양한 업데이트 내용과 넷이즈, 우버,
알리바바 등 Tensorflow 를 사용하고 있는 기업들, 연구진들의
사례 발표
Tensorflow 2.0
• 1.0 버전(2017년 1월) 이후 두 번째 메이저 릴리즈
• 편의성과 사용성에 중심을 두고, 내부 구조도 변화
• 일부는 1.x 버전부터 도입되었지만 2.0 에서 더 새롭게 변화하
기도 함 (tf.keras, tf.estimator 등)
Tensorflow 2.0 주요 변화
• API Cleanup
• Eager execution (즉시 실행 모드)
• Functions, not sessions
• High-level API (tf.keras)
API Cleanup
• 1.x 버전에서는 어떤 일을 하기 위한 여러 가지 방법이 존재
• 2.0 에서는 하나만 남기고 모두 정리 (tf.optimizer,
tf.metrics, tf.losses, tf.layers…)
• 1.x 버전 사용자의 혼란을 막기 위해 호환 코드를 제공
(tf.compat.v1). 하지만 tf.contrib 는 미포함
Eager execution (즉시 실행 모드)
• tf.Session() 이 tf.compat.v1 아래로 이동되고,
즉시 실행 모드가 기본으로 활성화 됨
Eager execution (즉시 실행 모드)
• 기존에는 tf.Session() 안에서만 수행 가능했던 연산을
Session 없이 자유롭게 쓸 수 있음
TF 1.x TF 2.0
Functions, not sessions
• tf.Session() 대신 @tf.function 을 Python 함수 앞에
decorator 로 사용할 수 있음
• 이전과 동일하게 사용가능 + 그래프로 컴파일 됨
• 빠른 실행, GPU & TPU 지원, SavedModel export 가능
Functions, not sessions
• @tf.function 을 사용한 함수에서 호출되는 다른 함수도 그래
프에 자동으로 포함됨(AutoGraph)
Functions, not sessions
• @tf.function 을 사용하면 tf.cond, tf.case, tf.while_loop 같
은 control flow 를 tf.Session() 을 통해 실행할 필요가 없음
TF 1.x TF 2.0
High-level API (tf.keras)
• tf.keras 는 편리한 문법으로 작은 프로젝트에 사용
• tf.estimator 는 깊고 넓은 구조의 큰 프로젝트에 사용
• 2.0 에서는 두 개를 합쳐서 하나의 tf.keras 로 제공
• 즉, 간결한 코드를 사용하는 고수준 API 작업은
tf.keras 를 기본으로 사용하도록 통일됨
High-level API (tf.keras)
• 두 코드의 차이
• 겉으로는 동일하지만, 내부에서는 각각 Session 과 Eager mode 를 사
용해서 동작
TF 1.x TF 2.0
High-level API (tf.keras)
• RNN Layer 는 사용자가 어떤 device 를 사용하고 있느냐에 따
라 최적의 퍼포먼스를 낼 수 있는 Layer 들이 달라졌기 때문에
코드가 복잡해지는 원인이 되었음
High-level API (tf.keras)
• TF 2.0 에서는 하나의 호출만 남기고, 런타임에 최적의 Layer 를
선택
Tensorflow 2.0 Sample code
Simple CNN with flower_photos Dataset
• 텐서플로우 공식 홈페이지의 “Build an Image input pipeline”
을 TF 2.0 에 맞게 수정했습니다.
• TF 2.0 설치, Dataset, tf.keras, 텐서보드 등의 내용을 포함합니
다.
• Google Colab 코드 링크
Reference
• 텐서플로우 시작하기 (github)
• TensorFlow Dev Summit 2019 (Youtube playlist)
• 2019 Tensorflow Dev Summit 요약 (blog)
• François Chollet (케라스 founder) 의 Twitter & colab 게시물
• Tensorflow free course (Udacity)
• Introduction to TensorFlow for Artificial Intelligence, Machine
Learning, and Deep Learning (Coursera)
• Tensorflow 공식 사이트
Reference
• 2019 TF dev summit(2) - Introducing Tensorflow 2.0 and its
high-level APIs
• 텐서플로우 2.0에서 달라지는 점
• Effective Tensorflow 2.0
Thank you!

More Related Content

What's hot

진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전Sukwoo Lee
 
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화Jaeseung Ha
 
Tensorflow service & Machine Learning
Tensorflow service & Machine LearningTensorflow service & Machine Learning
Tensorflow service & Machine LearningJEEHYUN PAIK
 
Learning to remember rare events
Learning to remember rare eventsLearning to remember rare events
Learning to remember rare events홍배 김
 
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법YEONG-CHEON YOU
 
서버와 클라이언트 같은 엔진 사용하기
서버와 클라이언트 같은 엔진 사용하기서버와 클라이언트 같은 엔진 사용하기
서버와 클라이언트 같은 엔진 사용하기YEONG-CHEON YOU
 
Yolo v3 urop 발표자료
Yolo v3 urop 발표자료Yolo v3 urop 발표자료
Yolo v3 urop 발표자료DaeHeeKim31
 
Yolo v1 urop 발표자료
Yolo v1 urop 발표자료Yolo v1 urop 발표자료
Yolo v1 urop 발표자료DaeHeeKim31
 
[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규ChangKyu Song
 
NDC 2017 비주얼 선택과 집중 - 3on3 아트 포스트모템
NDC 2017 비주얼 선택과 집중 - 3on3 아트 포스트모템NDC 2017 비주얼 선택과 집중 - 3on3 아트 포스트모템
NDC 2017 비주얼 선택과 집중 - 3on3 아트 포스트모템burnaby yang
 
게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPUYEONG-CHEON YOU
 
GopherCon Korea 2015 - Python 개발자를 위한 Go (이경찬)
GopherCon Korea 2015 - Python 개발자를 위한 Go (이경찬)GopherCon Korea 2015 - Python 개발자를 위한 Go (이경찬)
GopherCon Korea 2015 - Python 개발자를 위한 Go (이경찬)Kyoungchan Lee
 
Profiling - 실시간 대화식 프로파일러
Profiling - 실시간 대화식 프로파일러Profiling - 실시간 대화식 프로파일러
Profiling - 실시간 대화식 프로파일러Heungsub Lee
 
Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .YEONG-CHEON YOU
 
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리YEONG-CHEON YOU
 
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback흥배 최
 
Hierachical z Map Occlusion Culling
Hierachical z Map Occlusion CullingHierachical z Map Occlusion Culling
Hierachical z Map Occlusion CullingYEONG-CHEON YOU
 
Python으로 채팅 구현하기
Python으로 채팅 구현하기Python으로 채팅 구현하기
Python으로 채팅 구현하기Tae Young Lee
 
2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)
2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)
2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)khuhacker
 

What's hot (20)

진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
진화하는 컴퓨터 하드웨어와 게임 개발 기술의 발전
 
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
[NDC 2014] 던전앤파이터 클라이언트 로딩 최적화
 
Tensorflow service & Machine Learning
Tensorflow service & Machine LearningTensorflow service & Machine Learning
Tensorflow service & Machine Learning
 
Learning to remember rare events
Learning to remember rare eventsLearning to remember rare events
Learning to remember rare events
 
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
프레임레이트 향상을 위한 공간분할 및 오브젝트 컬링 기법
 
서버와 클라이언트 같은 엔진 사용하기
서버와 클라이언트 같은 엔진 사용하기서버와 클라이언트 같은 엔진 사용하기
서버와 클라이언트 같은 엔진 사용하기
 
Yolo v3 urop 발표자료
Yolo v3 urop 발표자료Yolo v3 urop 발표자료
Yolo v3 urop 발표자료
 
Yolo v1 urop 발표자료
Yolo v1 urop 발표자료Yolo v1 urop 발표자료
Yolo v1 urop 발표자료
 
[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규[NDC08] 최적화와 프로파일링 - 송창규
[NDC08] 최적화와 프로파일링 - 송창규
 
NDC 2017 비주얼 선택과 집중 - 3on3 아트 포스트모템
NDC 2017 비주얼 선택과 집중 - 3on3 아트 포스트모템NDC 2017 비주얼 선택과 집중 - 3on3 아트 포스트모템
NDC 2017 비주얼 선택과 집중 - 3on3 아트 포스트모템
 
게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU게임프로젝트에 적용하는 GPGPU
게임프로젝트에 적용하는 GPGPU
 
GopherCon Korea 2015 - Python 개발자를 위한 Go (이경찬)
GopherCon Korea 2015 - Python 개발자를 위한 Go (이경찬)GopherCon Korea 2015 - Python 개발자를 위한 Go (이경찬)
GopherCon Korea 2015 - Python 개발자를 위한 Go (이경찬)
 
Profiling - 실시간 대화식 프로파일러
Profiling - 실시간 대화식 프로파일러Profiling - 실시간 대화식 프로파일러
Profiling - 실시간 대화식 프로파일러
 
Lock free queue
Lock free queueLock free queue
Lock free queue
 
Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .Tips and experience of DX12 Engine development .
Tips and experience of DX12 Engine development .
 
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
GPGPU(CUDA)를 이용한 MMOG 캐릭터 충돌처리
 
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback
잘 알려지지 않은 숨은 진주, Winsock API - WSAPoll, Fast Loopback
 
Hierachical z Map Occlusion Culling
Hierachical z Map Occlusion CullingHierachical z Map Occlusion Culling
Hierachical z Map Occlusion Culling
 
Python으로 채팅 구현하기
Python으로 채팅 구현하기Python으로 채팅 구현하기
Python으로 채팅 구현하기
 
2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)
2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)
2015 제2회 동아리 해커 세미나 - 병렬컴퓨팅 소개 (16기 김정현)
 

Similar to 구글 텐서플로우 첫걸음

구글의 머신러닝 비전: TPU부터 모바일까지 (Google I/O Extended Seoul 2017)
구글의 머신러닝 비전: TPU부터 모바일까지 (Google I/O Extended Seoul 2017)구글의 머신러닝 비전: TPU부터 모바일까지 (Google I/O Extended Seoul 2017)
구글의 머신러닝 비전: TPU부터 모바일까지 (Google I/O Extended Seoul 2017)Jeongkyu Shin
 
What's new tensorflow ( Tensorflow.js , Tensorflow Hub, Tensorflow Serving )
What's new tensorflow ( Tensorflow.js , Tensorflow Hub, Tensorflow Serving )What's new tensorflow ( Tensorflow.js , Tensorflow Hub, Tensorflow Serving )
What's new tensorflow ( Tensorflow.js , Tensorflow Hub, Tensorflow Serving )Gunhee Lee
 
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...hoondong kim
 
2017 tensor flow dev summit
2017 tensor flow dev summit2017 tensor flow dev summit
2017 tensor flow dev summitTae Young Lee
 
3. Install - Tensorflow
3. Install - Tensorflow3. Install - Tensorflow
3. Install - Tensorflowmerry7
 
1.Introduction to Python and TensorFlow
1.Introduction to Python and TensorFlow1.Introduction to Python and TensorFlow
1.Introduction to Python and TensorFlowHaesun Park
 
Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)Tae Young Lee
 
.NET Conf 2019 Korea - 닷넷 17년의 변화 정리 및 닷넷 코어 3.0
.NET Conf 2019 Korea - 닷넷 17년의 변화 정리 및 닷넷 코어 3.0.NET Conf 2019 Korea - 닷넷 17년의 변화 정리 및 닷넷 코어 3.0
.NET Conf 2019 Korea - 닷넷 17년의 변화 정리 및 닷넷 코어 3.0SeongTae Jeong
 
오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)
오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)
오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)Taeung Song
 
[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅NAVER D2
 
Open Platform Tizen and Web, 오픈 플랫폼 타이젠과 웹
Open Platform Tizen and Web, 오픈 플랫폼 타이젠과 웹Open Platform Tizen and Web, 오픈 플랫폼 타이젠과 웹
Open Platform Tizen and Web, 오픈 플랫폼 타이젠과 웹Daniel Juyung Seo
 
Going asynchronous with netty - SOSCON 2015
Going asynchronous with netty - SOSCON 2015Going asynchronous with netty - SOSCON 2015
Going asynchronous with netty - SOSCON 2015Kris Jeong
 
맨땅에서 AI학습플랫폼을 만들기까지
맨땅에서 AI학습플랫폼을 만들기까지맨땅에서 AI학습플랫폼을 만들기까지
맨땅에서 AI학습플랫폼을 만들기까지Sunwoo Park
 
파이썬을 배워야하는 이유 발표자료 - 김연수
파이썬을 배워야하는 이유 발표자료 - 김연수파이썬을 배워야하는 이유 발표자료 - 김연수
파이썬을 배워야하는 이유 발표자료 - 김연수Yeon Soo Kim
 
EveryBody Tensorflow module1 GIST Jan 2018 Korean
EveryBody Tensorflow module1 GIST Jan 2018 KoreanEveryBody Tensorflow module1 GIST Jan 2018 Korean
EveryBody Tensorflow module1 GIST Jan 2018 KoreanJaewook. Kang
 
HashiTalk 2021 - Terraform 도입과 파이프라인 구축 및 운영
HashiTalk 2021 - Terraform 도입과 파이프라인 구축 및 운영HashiTalk 2021 - Terraform 도입과 파이프라인 구축 및 운영
HashiTalk 2021 - Terraform 도입과 파이프라인 구축 및 운영JooHyung Kim
 
Sources와 Sinks를 Confluent Cloud에 원활하게 연결
Sources와 Sinks를 Confluent Cloud에 원활하게 연결Sources와 Sinks를 Confluent Cloud에 원활하게 연결
Sources와 Sinks를 Confluent Cloud에 원활하게 연결confluent
 
코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable Functions
코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable Functions코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable Functions
코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable FunctionsJongin Lee
 
제11회공개sw개발자대회 금상 TensorMSA(소개)
제11회공개sw개발자대회 금상 TensorMSA(소개)제11회공개sw개발자대회 금상 TensorMSA(소개)
제11회공개sw개발자대회 금상 TensorMSA(소개)Susang Kim
 

Similar to 구글 텐서플로우 첫걸음 (20)

구글의 머신러닝 비전: TPU부터 모바일까지 (Google I/O Extended Seoul 2017)
구글의 머신러닝 비전: TPU부터 모바일까지 (Google I/O Extended Seoul 2017)구글의 머신러닝 비전: TPU부터 모바일까지 (Google I/O Extended Seoul 2017)
구글의 머신러닝 비전: TPU부터 모바일까지 (Google I/O Extended Seoul 2017)
 
What's new tensorflow ( Tensorflow.js , Tensorflow Hub, Tensorflow Serving )
What's new tensorflow ( Tensorflow.js , Tensorflow Hub, Tensorflow Serving )What's new tensorflow ( Tensorflow.js , Tensorflow Hub, Tensorflow Serving )
What's new tensorflow ( Tensorflow.js , Tensorflow Hub, Tensorflow Serving )
 
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
 
2017 tensor flow dev summit
2017 tensor flow dev summit2017 tensor flow dev summit
2017 tensor flow dev summit
 
3. Install - Tensorflow
3. Install - Tensorflow3. Install - Tensorflow
3. Install - Tensorflow
 
1.Introduction to Python and TensorFlow
1.Introduction to Python and TensorFlow1.Introduction to Python and TensorFlow
1.Introduction to Python and TensorFlow
 
Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)Tensorflow for Deep Learning(SK Planet)
Tensorflow for Deep Learning(SK Planet)
 
.NET Conf 2019 Korea - 닷넷 17년의 변화 정리 및 닷넷 코어 3.0
.NET Conf 2019 Korea - 닷넷 17년의 변화 정리 및 닷넷 코어 3.0.NET Conf 2019 Korea - 닷넷 17년의 변화 정리 및 닷넷 코어 3.0
.NET Conf 2019 Korea - 닷넷 17년의 변화 정리 및 닷넷 코어 3.0
 
오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)
오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)
오픈소스 개발참여한 이야기 (NIPA 오픈프론티어 3기 송태웅)
 
[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅[232] 성능어디까지쥐어짜봤니 송태웅
[232] 성능어디까지쥐어짜봤니 송태웅
 
Open Platform Tizen and Web, 오픈 플랫폼 타이젠과 웹
Open Platform Tizen and Web, 오픈 플랫폼 타이젠과 웹Open Platform Tizen and Web, 오픈 플랫폼 타이젠과 웹
Open Platform Tizen and Web, 오픈 플랫폼 타이젠과 웹
 
Going asynchronous with netty - SOSCON 2015
Going asynchronous with netty - SOSCON 2015Going asynchronous with netty - SOSCON 2015
Going asynchronous with netty - SOSCON 2015
 
맨땅에서 AI학습플랫폼을 만들기까지
맨땅에서 AI학습플랫폼을 만들기까지맨땅에서 AI학습플랫폼을 만들기까지
맨땅에서 AI학습플랫폼을 만들기까지
 
Lec 00, 01
Lec 00, 01Lec 00, 01
Lec 00, 01
 
파이썬을 배워야하는 이유 발표자료 - 김연수
파이썬을 배워야하는 이유 발표자료 - 김연수파이썬을 배워야하는 이유 발표자료 - 김연수
파이썬을 배워야하는 이유 발표자료 - 김연수
 
EveryBody Tensorflow module1 GIST Jan 2018 Korean
EveryBody Tensorflow module1 GIST Jan 2018 KoreanEveryBody Tensorflow module1 GIST Jan 2018 Korean
EveryBody Tensorflow module1 GIST Jan 2018 Korean
 
HashiTalk 2021 - Terraform 도입과 파이프라인 구축 및 운영
HashiTalk 2021 - Terraform 도입과 파이프라인 구축 및 운영HashiTalk 2021 - Terraform 도입과 파이프라인 구축 및 운영
HashiTalk 2021 - Terraform 도입과 파이프라인 구축 및 운영
 
Sources와 Sinks를 Confluent Cloud에 원활하게 연결
Sources와 Sinks를 Confluent Cloud에 원활하게 연결Sources와 Sinks를 Confluent Cloud에 원활하게 연결
Sources와 Sinks를 Confluent Cloud에 원활하게 연결
 
코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable Functions
코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable Functions코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable Functions
코드로 바로 해버리는 서버리스 오케스트레이션 - Azure Durable Functions
 
제11회공개sw개발자대회 금상 TensorMSA(소개)
제11회공개sw개발자대회 금상 TensorMSA(소개)제11회공개sw개발자대회 금상 TensorMSA(소개)
제11회공개sw개발자대회 금상 TensorMSA(소개)
 

구글 텐서플로우 첫걸음

  • 2. 목차 • Tensorflow 소개 • Tensorflow Dev Summit 2019 요약 (Tensorflow 2.0 발표) • Tensorflow 2.0 Sample code
  • 4. • 2015년 오픈소스로 공개된 Google Brain 의 머신러닝 프로젝트 • 세계에서 가장 널리 쓰이는 Deep Learning Framework https://towardsdatascience.com/deep-learning-framework-power-scores-2018-23607ddf297a
  • 5. • Tensorflow, CNTK, Theano 등의 저수준 API 를 좀 더 간편하게 사용하기 위한 고수준 API • 2017년 중반부터 Tensorflow 에 정식으로 통합 • 2.0 버전부터 Tensorflow 의 기본 고수준 API 가 됨 • 즉, 간결한 코드를 사용하는 고수준 API 작업은 tf.keras 를 기본으로 사용하도록 통일됨 https://medium.com/@francois.chollet
  • 6. • 코드 길이 비교 • XOR 문제 https://crazyj.tistory.com/42 Tensorflow Keras
  • 7. Tensorflow 의 특징 • 데이터 플로우 그래프 • 수학 계산과 데이터의 흐름을 그래프로 표현 • tf.Graph 로 빌드 후 tf.Session 으로 실행 필수 • 1.x 버전 : session.run() 으로 실행해야만 각 노드 에 있는 값을 확인할 수 있었음 → 디버그가 어렵고 사용이 불편 • 2.0 버전에서 개선됨 https://www.tensorflow.org/guide/graphs
  • 8. Tensorflow 의 특징 • Scalable • node 수가 많아져도 안정적으로 계산 • 미국 에너지 연구 과학 컴퓨팅 센터(NERSC) 에서 Tensorflow 를 사용 해서 슈퍼컴퓨터를 이용한 기후 예측 • CPU/GPU/TPU(2.0 버전부터) 지원 • 같은 코드로 학습 가능 • 분산 처리를 할 때도 최소한의 코드 추가로 가능 • 다양한 언어 지원 • Python, C, C++, Javascript, Java, Swift, R, C#, Go, Rust, Julia, …
  • 9. Tensorflow 의 특징 • Google Colab 지원 • Jupyter Notebook 과 완전히 호환되는 코드 공유 플랫폼 • GPU, TPU 를 사용한 가속 가능 • 현재 1.13.1 버전 Tensorflow 는 import 후 바로 사용 가능하고, 간단한 bash 설치 명령으로 2.0 버전도 사용 가능 Code image – https://carbon.now.sh/
  • 10. Tensorflow Dev Summit 2019 요약 (Tensorflow 2.0 발표)
  • 11. Tensorflow Dev Summit 2019 • 2019년 3월 6-7일, 미국 캘리포니아 Sunnyvale 에 있는 Google Event Center 에서 진행됨 (통산 세번째) • 1,000 명의 참가자, 10,000 명의 livestream 시청자 • 35개의 youtube 영상 플레이리스트 • Tensorflow 2.0 을 비롯한 다양한 업데이트 내용과 넷이즈, 우버, 알리바바 등 Tensorflow 를 사용하고 있는 기업들, 연구진들의 사례 발표
  • 12. Tensorflow 2.0 • 1.0 버전(2017년 1월) 이후 두 번째 메이저 릴리즈 • 편의성과 사용성에 중심을 두고, 내부 구조도 변화 • 일부는 1.x 버전부터 도입되었지만 2.0 에서 더 새롭게 변화하 기도 함 (tf.keras, tf.estimator 등)
  • 13. Tensorflow 2.0 주요 변화 • API Cleanup • Eager execution (즉시 실행 모드) • Functions, not sessions • High-level API (tf.keras)
  • 14. API Cleanup • 1.x 버전에서는 어떤 일을 하기 위한 여러 가지 방법이 존재 • 2.0 에서는 하나만 남기고 모두 정리 (tf.optimizer, tf.metrics, tf.losses, tf.layers…) • 1.x 버전 사용자의 혼란을 막기 위해 호환 코드를 제공 (tf.compat.v1). 하지만 tf.contrib 는 미포함
  • 15.
  • 16. Eager execution (즉시 실행 모드) • tf.Session() 이 tf.compat.v1 아래로 이동되고, 즉시 실행 모드가 기본으로 활성화 됨
  • 17. Eager execution (즉시 실행 모드) • 기존에는 tf.Session() 안에서만 수행 가능했던 연산을 Session 없이 자유롭게 쓸 수 있음 TF 1.x TF 2.0
  • 18. Functions, not sessions • tf.Session() 대신 @tf.function 을 Python 함수 앞에 decorator 로 사용할 수 있음 • 이전과 동일하게 사용가능 + 그래프로 컴파일 됨 • 빠른 실행, GPU & TPU 지원, SavedModel export 가능
  • 19. Functions, not sessions • @tf.function 을 사용한 함수에서 호출되는 다른 함수도 그래 프에 자동으로 포함됨(AutoGraph)
  • 20. Functions, not sessions • @tf.function 을 사용하면 tf.cond, tf.case, tf.while_loop 같 은 control flow 를 tf.Session() 을 통해 실행할 필요가 없음 TF 1.x TF 2.0
  • 21. High-level API (tf.keras) • tf.keras 는 편리한 문법으로 작은 프로젝트에 사용 • tf.estimator 는 깊고 넓은 구조의 큰 프로젝트에 사용 • 2.0 에서는 두 개를 합쳐서 하나의 tf.keras 로 제공 • 즉, 간결한 코드를 사용하는 고수준 API 작업은 tf.keras 를 기본으로 사용하도록 통일됨
  • 22. High-level API (tf.keras) • 두 코드의 차이 • 겉으로는 동일하지만, 내부에서는 각각 Session 과 Eager mode 를 사 용해서 동작 TF 1.x TF 2.0
  • 23. High-level API (tf.keras) • RNN Layer 는 사용자가 어떤 device 를 사용하고 있느냐에 따 라 최적의 퍼포먼스를 낼 수 있는 Layer 들이 달라졌기 때문에 코드가 복잡해지는 원인이 되었음
  • 24. High-level API (tf.keras) • TF 2.0 에서는 하나의 호출만 남기고, 런타임에 최적의 Layer 를 선택
  • 26. Simple CNN with flower_photos Dataset • 텐서플로우 공식 홈페이지의 “Build an Image input pipeline” 을 TF 2.0 에 맞게 수정했습니다. • TF 2.0 설치, Dataset, tf.keras, 텐서보드 등의 내용을 포함합니 다. • Google Colab 코드 링크
  • 27. Reference • 텐서플로우 시작하기 (github) • TensorFlow Dev Summit 2019 (Youtube playlist) • 2019 Tensorflow Dev Summit 요약 (blog) • François Chollet (케라스 founder) 의 Twitter & colab 게시물 • Tensorflow free course (Udacity) • Introduction to TensorFlow for Artificial Intelligence, Machine Learning, and Deep Learning (Coursera) • Tensorflow 공식 사이트
  • 28. Reference • 2019 TF dev summit(2) - Introducing Tensorflow 2.0 and its high-level APIs • 텐서플로우 2.0에서 달라지는 점 • Effective Tensorflow 2.0

Editor's Notes

  1. 이 표는 2018 년 9월 기준으로, Jeff Hale 이라는 사람이 medium 에 기고한 딥러닝 프레임워크 파워 스코어를 하나의 그래프로 요약한 것입니다. Online 구인 공고, ArXiv 논문, Amazon 의 도서, Github 활동 등 11 개 정도의 데이터 소스를 기준으로 각 프레임워크의 파워 랭킹을 정리했습니다. 이번에 나온 텐서플로우 2.0 이 여러 가지 큰 변화와 함께 편의성에도 중점을 두고 있기 때문에 이 차이는 더 벌어지지 않을까 개인적으로는 생각하고 있습니다.
  2. 앞의 표에서 Tensorflow 가 1등이고, Keras 가 2등이었습니다. 2.0 에서는 Keras 를 완전히 통합시켜서 사용합니다.
  3. tf_upgrade_v2 를 사용해서 1.X 버전에서 2.0 버전으로 자동 변환을 할 수 있습니다. 변환이 가능한 함수에 대해서는 자동 변환 후 해당 로그를 표시합니다.