본문 바로가기

CS/머신러닝

[머신러닝] 텐서플로 사용하기 - 1

728x90

텐서플로를 실제 pycharm에서 사용 해보겠다.


텐서플로는

구글의 오픈소스이며, numerical computation을 data flow graph를 통해 처리하는 프레임 워크이다.

파이썬으로도 개발가능ㅎ.

많은 데이터가 따로 또는 같이 연산이 되므로 머신러닝에 적합한 프레임워크라 할 수 있다.


data flow graph의 구성 요소

node : mathematical operation

edge : multidimensional data array(tensor라고도 한다)

tensor라고 하는 대량의 데이터가 노드를 거치면서 연산이 처리된다.


1. Hello World!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# tensorflow 모듈을 tf로 import한다.
import tensorflow as tf
 
# hello 변수는 TensorFlow의 constant 연산을 이용해서 정의.
# tensor flow는 모든 것이 opration이다.
# 아래 문장도 operation이며 하나의 node가 되는 것이다.
hello = tf.constant(‘Hello, TensorFlow!’)
 
# start tf session
sess = tf.Session()
print "---session run"
print sess.run(hello)
print "---no session run"
# 실제 연산은 run이라는 함수가 실행이 될 때
# 원하는 동작을 할 수 있다.
cs


실행화면

operation인 hello를 session run없이 그냥 출력했을때는 해당 노드의 정보가 나타나게 된다.


2. 계산

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import tensorflow as tf
 
# 이 부분에서 계산이 즉시 실행되어 a와 b에 바로 값이 저장되는 것이 아니다.
# Operation이 저장되어 data graph의 node로 저장된다.
= tf.constant(2)
= tf.constant(3)
 
= a + b
 
# 실제 실행되는 부분은 Session run부분에서 실행된다.
# session이 실행되면, 실제 데이터(tensor)는 data flow graph에서 node를 따라 가고
# 각 node에 해당하는 작업을 진행한다.
with tf.Session() as sess:
    print "a=2 b=3"
    print "Addition with constants: %i" % sess.run(c)
    print "Multiplication with constants :%i" % sess.run(a*b)
    print c
cs


실행화면


2. placeholder 사용하기

이전까지는 model에 값을 정해주고 실행을 했지만 placeholder를 이용하여 값의 형태만 지정해서 model을 완성한다.

실행하는 시점에 원하는 데이터를 넣어서 실행할 수 있다.

마치 우리가 java 프로그래밍에서 함수에 파라미터만 넘겨주면 원하는 동작을 하는 것처럼 사용할 수 있다.


1
2
3
4
5
6
7
8
9
10
11
import tensorflow as tf
 
= tf.palceholder(tf.int16)
= tf.palceholder(tf.int16)
 
add = tf.add(a,b)
mul = tf.mul(a,b)
 
with tf,Session() as sess:
    print “Addition with variables: %i” % sess.run(add, feed_dict={a: 2, b: 3})
    print “Multiplication with variables: %i” % sess.run(mul, feed_dict={a: 2, b: 3})
cs


실행화면