티스토리 뷰
텐서플로우는 data flow graph를 이용한 숫자 계산을 할 수 있는 오픈소스 소프트웨어 라이브러리이다.
데이터 플로우 그래프는 노드와 노드 사이를 엣지로 연결한 것을 말하는데, 노드는 무슨 연산을 할지에 대한 operation 이고 엣지는 넘겨받을 데이터이다.
이때 엣지를 tensor 라고도 한다.
1 | pip3 install --upgrade tensorflow | cs |
텐서플로우의 설치는 이렇게 한다. cmd창 띄워놓고 거기다가 이렇게 치면 됨.
1 2 3 4 5 6 7 8 9 | import tensorflow as tf hello = tf.constant("Hello, Tensorflow!") sess = tf.Session() print(sess.run(hello)) | cs |
일단 tensorflow 모듈을 import한다.
그리고 tf.constant라는 상수를 만들고 거기에 있는 값을 hello라는 노드에 집어넣는다.
그 후 세션을 만들고 sess.run으로 세션을 실행하여 hello라는 노드가 출력된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import tensorflow as tf node1 = tf.constant(3.0,float32) node2 = tf.constant(4.0) node3 = tf.cosntant(node1, node2) sess = tf.Session() print("sess.run(node1,node2) :",sess.run([node1,node2])) print("sess.run(node3) :",sess.run(node3)) | cs |
위의 예제는 node1에 3.0, node2에 4.0을 넣어주고 세션을 실행하는 간단한 예제이다.
이런 모양의 그래프가 만들어 질 것이고, 세션을 실행하면 adder_node에 7이 들어갈 것이다.
1 2 3 4 5 6 7 8 9 10 11 12 | import tensorflow as tf a = tf.placeholder(tf.float32) b = tf.placeholder(tf.float32) adder_node = a+b print(sess.run(addre_node, feed_dict={a : 3, b : 4.5})) print(sess.run(addre_node, feed_dict={a : [1,2], b : [3,5]})) | cs |
placeholder라는 것을 이용하여 변수 선언 부분에서 값을 대입하지 않고 세션을 실행하는 부분에서 값을 feed_dict로 값을 넘겨준 후 세션을 실행할 수
있다.
placeholder를 사용했을 때의 실행 과정
1.placeholder라는 노드를 사용하여 그래프를 그린다. --> 2.세션을 실행을 하면서 feed_dict로 값을 넘겨준다. --> 3.그래프가 실행이 되면서 값을 리턴한다
Tensor는 그래프 내에서 흘러다니는 배열(array)들이다.
배열이기 때문에 차원이 존재할 것이고, 이것을 Rank 라고 한다.
123 은 Rank가 0이고, [1,2,3]은 Rank가 1이다. [[1,2,3],[4,5,6]]은 Rank가 2이다.
Shape은 각각의 요소의 갯수이다.
만약 [[1,2,3],[4,5,6]] 이러한 배열이 있으면 shape는 [2,3] 이다.
데이터 타입은 float32 타입, int32 타입을 대부분 사용한다.
'Programming > Deep Learning' 카테고리의 다른 글
퍼셉트론 AND , OR , NAND게이트 (0) | 2018.03.20 |
---|---|
퍼셉트론 (0) | 2018.03.20 |
Linear Regression 구현 (using placeholder) (0) | 2018.03.19 |
Linear Regression 구현 (0) | 2018.03.19 |
Linear Regression의 이해 (0) | 2018.03.18 |