Getting Started with TensorFlow (구글퀵랩 실습)

아래와 같이 텐서플로를 불러오고, 버전을 확인합니다.
그리고 뒤의 실습을 위해 넘파이도 같이 불러 옵니다.

(1) 두 개의 tensor를 add하기(더하기)

텐서플로 코드를 이용하기 전에, 입력한 결과를 즉시 볼 수 있는 넘파이를 먼저 사용해보겠습니다.

이와 동일한 결과를 내기 위한 텐서플로 코드는 두 단계로 이루어집니다.

Step(1) : 그래프 만들기(Build the Graph)

위의 코드에서 c는 (3,)형태의 int32 속성을 가진 tensor를 반환하는 연산을 나타냅니다.
(넘파이와는 달리 print(c)를 실행한다고 해서 값이 합쳐진 [8, 2, 10] 의 결과가 나오지 않습니다.)

Step(2) : 그래프를 실행하기(Run the Graph)

(2) feed_dict를 사용하기

같은 그래프 이지만, 그래프를 만드는 단계에서 입력값을 하드코딩 하지 않고 placeholder를 사용합니다.

(3) TensorFlow로 Heron's Formula 구현하기

Heron's Formula에서는 삼각형의 세 변(a,b,c)이 주어지고 s=(a+b+c)/2 라 할 때,
삼각형의 면적을 ( s * (s-a) * (s-b) * (s-c) ) ^(1/2) 로 구합니다.

(4) Placeholder 와 feed_dict

텐서플로에서 프로그램 입력값을 placeholder로 정의하고,
세션 실행시 실제 값을 feed_dict를 이용해서 넣어주는 것은 흔한 방식입니다.
(3)번 예제에서 사용했던 코드에서는 area 그래프에서 입력 값이 값으로 바로 하드코딩 되있지만,
아래의 코드에서는 placeholder로 정의한 다음 run-time에서 입력값이 들어갑니다.

(5) tf.eager

tf.eager는 build-then-run 단계를 건너뛰게 해줍니다.
하지만 lazy evaluation의 패러다임 하에서 텐서플로가 멀티디바이스 지원, 활용이 가능하기 때문에
많은 생산코드들은 lazy evaluation을 사용하고 있습니다.

tf.eager는 프로그램의 문제점들을 수정해나갈 때 많이 사용하며,
tf.eager를 통해서 개발한 다음 eager 실행을 주석처리하고, 세션 관리코드를 추가해야 합니다.

다음의 eager모드를 실행하기 위해서는 노트북의 런타임을 재시작해야 합니다.

'구글 머신러닝 스터디잼(중급) > Introduction to TensorFlow' 카테고리의 다른 글

Estimator API  (0) 2019.11.01
Debugging TensorFlow Programs  (0) 2019.10.29
Tensor and Variable  (0) 2019.10.25
Graph and Session  (0) 2019.10.25
TensorFlow API Hierarchy  (0) 2019.10.25

+ Recent posts