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로 저장된다. a = tf.constant(2) b = tf.constant(3) c = 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 a = tf.palceholder(tf.int16) b = 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 |
실행화면
'CS > 머신러닝' 카테고리의 다른 글
[머신러닝] Logistic Classification 텐서플로 구현 (0) | 2016.11.25 |
---|---|
[머신러닝] Logistic classification와 cost minimize 함수 (0) | 2016.11.23 |
[머신러닝] Linear Regression의 minimize cost 알고리즘 (0) | 2016.11.22 |
[머신러닝] Linear Regression 실습 (0) | 2016.11.20 |
[머신러닝] Linear Regression 개념 (1) | 2016.11.20 |