티스토리 뷰

 

 

 

In [11]:
from PIL import Image
Image.open('1번.png')
Out[11]:
 

TensorFlow Hello World

In [2]:
import tensorflow as tf
In [3]:
tf.__version__
Out[3]:
'1.13.1'
In [4]:
# Create a constant op
# This op is added as a node to the defalt graph
hello = tf.constant('Hello, TensorFlow!') 


# seart a TF session
sess = tf.Session()

# run the op and get result
print(sess.run(hello))
 
b'Hello, TensorFlow!'
 

어떤 그래프 안에 constant노드 하나만 있는데, 그 노드 안에는 'Hello, TensorFlow'라는 문장이 들어있고 우리는 그 노드를 실행시켜 결과가 출력됐다.

 

b'String' 'b'indicates Bytes literals.

 

computaional Graph

 

(1) Build graph using TensorFlow operations

In [5]:
node1 = tf.constant(3.0, tf.float32)
node2 = tf.constant(4.0) # also tf.float32 implicitly
node3 = tf.add(node1, node2) # node3 = node1 + node2
 

노드3은 노드1과 노드2와 연결되어있고 합연산이다.

In [6]:
print("node1:", node1, "node2", node2)
print("node3:", node3)
 
node1: Tensor("Const_1:0", shape=(), dtype=float32) node2 Tensor("Const_2:0", shape=(), dtype=float32)
node3: Tensor("Add:0", shape=(), dtype=float32)
 

프린트 해보면 결과값이 아니고 텐서라는것만 보여준다.
결과값을 보기 위해서는 다음과 같이 실행시켜야 한다.

 

(2) feed data and run graph (operation) : sess.run(op)

In [7]:
sess = tf.Session()
print("sess.run(node1, node2): ", sess.run([node1, node2]))
print("sess.run(node2): ", sess.run(node3))
 
sess.run(node1, node2):  [3.0, 4.0]
sess.run(node2):  7.0
 

(3) update variables in the graph (and return values)

 

텐스플로우 전체의 구조

  1. Build graph using TensorFlow operations
  2. feed data and run graph (operation) : sess.run(op)
  3. update variables in the graph (and return values)
 

Placeholder

 

이번에는 그래프를 미리 만들어놓고 노드에서 그래프를 실행시켜주는 단계에서 값을 구해주고 싶다.

 

노드를 placeholder라는 노드로 만들고 그 노드를 연결하여 adder노드를 만들자

In [8]:
a = tf.placeholder(tf.float32)
b = tf.placeholder(tf.float32)
adder_node = a + b # + provides a short for tf.add(a,b)

print(sess.run(adder_node, feed_dict={a : 3, b : 4.5}))
print(sess.run(adder_node, feed_dict={a : [1,2], b : [2,4]}))
 
7.5
[3. 6.]
 

(1) Build graph using TensorFlow operations

(노드를 placeholder로)

(2) feed data and run graph (operation) :

sess.run(op, feed_dict={x:x_data})

(3) update variables in the graph (and return values)

In [12]:
Image.open('2번.png')
Out[12]:
 

Everything is Tensor

 

Tensor Ranks(차원), Shapes(랭크 안에 몇 개나), and Types

In [9]:
# a rank 0 tenser; this is a scalar with shape []
3
# a rank 1 tensor; this is a vector with shape [3]
[1. ,2. ,3.]
# a rank 2 tensor; a matrix with shape [2, 3]
[[1. ,2. ,3.],[4. ,5. ,6.]]
# a rank 3 tensor with shape [2, 1, 3]
[[[1. ,2. ,3.]], [[7., 8., 9.]]]
Out[9]:
[[[1.0, 2.0, 3.0]], [[7.0, 8.0, 9.0]]]
 

타입은 주로 tf.float32 라던가 tf.int32를 사용한다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함