티스토리 뷰
[딥러닝 기본 03] Lab 01 - tensorflow의 설치 및 기본적인 operations
Nero :) 2017. 5. 30. 11:53모두를 위한 머신러닝 / 딥러닝 김성훈 교수님 강의를 듣고 정리한 내용입니다.
@ TensorFlow : 오픈소스 라이브러리. data flow graph를 이용하여 수를 계산
- data flow graph?
* graph : node와 edge로 구성된 것
* node : 연산과 관련된 operation
* edge : node를 연결하는 데이터(tensor)
* data flow graph : 데이터(tensor)가 node와 edge로 구성된 graph를 따라 흐르면서 결과를 얻는 것
- Window 설치
python 3.5 (3.6에서 error나서 3.5 설치하니까 됨)
pip install tensorflow
- 설치확인
import tensorflow as tf
print(tf.__version__)
@ TensorFlow 프로그래밍 방법
1. tf의 operations을 이용하여 graph를 만들기
2. sess.run(op)를 통해 graph를 실행
3. output 출력
- window에서 tensorflow 실행시 error가 출력되는 경우 최상단에 아래와 같이 작성
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
- ex) hello tensorflow print
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
import tensorflow as tf
# Hello, TensorFlow라는 문자열이 들어있는 node 생성
hello = tf.constant("Hello, TensorFlow")
# TF 세션 시작
sess = tf.Session()
# 특정 노드 세션 run
print(sess.run(hello))
# 결과에서 b'Hello, TensorFlow!' 가 출력되는데, b는 Bytes literals를 나타냄
- ex) 그래프 생성을 통해 연산 : computation graph
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
import tensorflow as tf
node1 = tf.constant(3.0, tf.float32) # float 3 노드 생성
node2 = tf.constant(4.0, tf.float32) # float 4 노드 생성
node3 = tf.add(node1, node2) # node1과 node2를 더하는 노드 생성
# Tensor("Add:0", shape=(), dtype=float32)
# 7이 나오지 않고, 해당 값은 Tensor라고만 알려줌
print(node3)
sess = tf.Session()
print(sess.run([node1, node2])) # [3.0, 4.0]
print(sess.run(node3)) # 7.0
- ex) tf.placeholder : node를 변수로 지정하고, sess.run에서 feed_dict를 통해 값 변수에 할당
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
import tensorflow as tf
a = tf.placeholder(tf.float32)
b = tf.placeholder(tf.float32)
adder_node = a + b
sess = tf.Session()
print(sess.run(adder_node, feed_dict = {a: 3, b:4.5})) # 7.5
print(sess.run(adder_node, feed_dict = {a: [1, 3], b: [4.5, 4]})) # [5.5, 7]
@ Tensor의 속성
1. Ranks : 몇 차원 배열인지 나타내는 값
Rank = 0 / Scalar / s = 432
Rank = 1 / Vector / v = [1, 2, 3]
Rank = 2 / Matrix / m = [[1, 2], [3, 4], [5, 6]]
Rank = n / n-Tensor / ...
2. Shapes : 행렬의 구성을 나타냄
t = [1, 2] / shape = [2, 1]
t = [[1, 2]] / shape = [1, 2]
t = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] / shape = [3, 3]
3. Type : 데이터 타입
tf.float32 / 32 bits floating point (float)
tf.float64 / 64 bits floating point (double)
tf.int32 / 32 bits signed integer (int32)
tf.int64 / 32 bits signed integer (int64)
'ML (Machine Learning)' 카테고리의 다른 글
[딥러닝 기본 05] Lab 02 - tensorflow로 간단한 linear regression을 구현 (0) | 2017.05.30 |
---|---|
[딥러닝 기본 04] Lec 02 - linear regression의 hypothesis 와 cost (0) | 2017.05.30 |
[딥러닝 기본 02] Lec 01 - 기본적인 machine learning 의 용어와 개념 설명 (0) | 2017.05.30 |
[딥러닝 기본 01] Lec 00 - machine/deep learning 수업의 개요와 일정 (0) | 2017.05.30 |
머신러닝 / 딥러닝 공부 (0) | 2017.05.30 |