티스토리 뷰

모두를 위한 머신러닝 / 딥러닝 김성훈 교수님 강의를 듣고 정리한 내용입니다.

lab 01 - tensorflow의 설치 및 기본적인 operations  


@ 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)

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
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
글 보관함