Tensorflow 기초
Updated:
1. Tensorflow 기본 개념
Google의 Tensorfloe 프로그램을 통해서 머신러닝을 해보도록 한다. 다른 package, module에 비해 살짝 특이한 형태의 library를 가진다.
3가지 구성요소
- Node: 수학적 연산을 담당, 데이터의 입출력을 담당
- Edge: 동적 데이터를 노드로 실어나르는 역할을 담당
- Tensor: 다차원 배열 형태의 동적 데이터
2. Tensorflow 설치
- Anaconda prompt 관리자 권한으로 실행 > 가상환경 진입 > pip install tensorflow==1.5.0
pip install tensorflow==1.5.0
# 그냥 설치하면 많이 바뀐 최신 버전이 설치되기 떄문에 버전을 설정해줌
import tensorflow as tf
# 설치 후 puthon에 import해서 사용
3. Tensorflow 사용
[코드입력]
import tensorflow as tf
# 그래프를 그려주는 tensorflow
node1 = tf.constant("Hello World!!")
# 그래프를 실행히키기 위해서는 runner 필요
# session이라고 불리는 runner 생성
sess = tf.Session()
# run 함수를 이용해 해당 node를 실행한다.
print(sess.run(node1))
# print 했을 때 앞에 붙는 b는 bite string의 약자이다.
# 일반적인 문자열 처리를 하려면 decode 해준다.
print(sess.run(node1).decode())
[결과 출력]
b'Hello World!!'
Hello World!!
[코드 입력] Q. 2개의 값을 더하는 tensorflow graph를 생성, 실행하여 값을 구하시오.
import tensorflow as tf
# 수치 연산의 기본은 실수
# tensorflow에서 dtype 중요!
node1 = tf.constant(10, dtype=tf.float32)
node2 = tf.constant(20, dtype=tf.float32)
node3 = node1 + node2
sess = tf.Session()
print(sess.run(node1))
print(sess.run([node1, node2]))
print(sess.run(node3))
[결과 출력]
10.0
[10.0, 20.0]
30.0
[코드 입력]
# 위의 node는 실행 시점에 값이 정해져 있다.
# constant(상수)이기 때문
# 만약 node1,2에 대한 값을 직접 입력해서 실행하고 싶다면?
import tensorflow as tf
node4 = tf.placeholder(dtype=tf.float32)
node5 = tf.placeholder(dtype=tf.float32)
node6 = node4 + node5
sess = tf.Session()
# node1,2에 값을 feed하되 dict 사용
result = sess.run(node6,
feed_dict={node4: input(),
node5: input()})
print(f'덧셈결과: {result}')
[결과 출력]
10
40
덧셈결과: 50.0