Tensorflow?
머신러닝을 위해 많이 사용되는 오픈 소스 라이브러리이며 Python 언어에 특화되어 있다.
Tensorflow 설치
파이썬을 공부할 때 PyCharm이라는 툴을 사용해 본 경험이 있기 때문에 PyCharm을 이용하기로 결정하고 Tensorflow 사용을 위한 환경을 구축하였다.
우선 https://www.python.org/downloads/windows/ 에서 Python3을 환경에 맞게 설치한다.
(텐서 플로우는 Python 3.7 버전에 제공되지 않으므로 3.6 이하 버전을 설치해주어야 한다.)
Python 설치가 완료되면 https://www.anaconda.com/distribution/#download-section 에서 Anaconda를 다운로드하여 준다.
Anaconda 설치가 완료되었다면 Anaconda Prompt를 실행하고 아래의 코드를 순서대로 입력하고 진행한다.
1. 우선 Tensorflow를 위한 Conda Environmnet를 생성한다.
conda create -n TensorFlow python=3.6
2. Tensorflow env를 활성화한다.
conda activate TensorFlow
3. pip를 이용하여 Tensorflow를 설치한다.
(cpu)
pip install tensorflow==2.0
(gpu)
pip install tensorflow-gpu
Anaconda Prompt에서는 Tensorflow가 되는데 Pycharm에서는 안되는 문제가 발생..
필자는 Tensorflow 1.5 버전과 Numpy 1.6 버전을 설치해서 해결하였다.
# 모두를 위한 딥러닝1을 기준으로 tensorflow 1.5 버전을 가지고 시작하였으나 최신 버전에 대한 설명이 있는 모두를 위한 딥러닝2에 맞춰 최신버전인 tensorflow 2.x 버전을 새로 설치하여 진행하였음.
Pycharm을 사용할 거면 Pycharm 툴에서 텐서 플로우를 설치할 수 있으니 구글링을 통해 설치해보길 바란다.
Tensorflow 설치가 완료되었다면 간단한 테스트를 해보자 ( tensorflow 1.5 버전의 경우 )
import tensorflow as tf
hello = tf.constant("Hello, TensorFlow!")
sess = tf.Session()
print(sess.run(hello))
결과
Tensorflow에 최적화된 CPU를 사용 중이지 않기 때문에 경고문이 뜨지만 실행에는 큰 문제가 없다.
Computational Graph
Tensorflow는 기본적으로 (그래프를 만들고 > sess.run을 통해 실행 > 그래프의 값들이 업데이트) 과정을 거친다.
import tensorflow as tf
node1 = tf.constant(3.0, tf.float32)
node2 = tf.constant(4.0)
node3 = tf.add(node1, node2) # node3 = node1 + node2
# print문 이용 시 노드 값이 아닌 정보 출력
print("node1:", node1, "node2:", node2)
print("node3:", node3)
# Session을 이용하여 노드의 값 출력
sess = tf.Session()
print("sess.run(node1, node2):", sess.run([node1, node2]))
print("sess.run(node3):", sess.run(node3))
결과
Placeholder
그래프를 만드는 단계가 아닌 그래프를 실행시키는 단계에서 값을 던져주고 싶다면 노드를 Placeholder라는 특별한 노드로 만들어 주어야 한다.
import tensorflow as tf
# placeholder 노드 만들기
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}))
print(sess.run(adder_node, feed_dict={a: [1,3], b: [2,4]}))
결과
Tensor
기본적으로 array를 의미함
Ranks
몇 차원의 array인가?
Scalar 1차원
Vector 2차원
n-Tensor n차원
Shapes
각각의 Element에 몇 개의 데이터가 있는지
[3, 3]와 같은 배열의 크기라고 생각하면 될 듯
Types
데이터 타입
tf.float32
tf.int8 등..
'Machine Learning & Deep Learning' 카테고리의 다른 글
6. Loading Data from File (0) | 2020.04.18 |
---|---|
5. Multi-variable linear regression (0) | 2020.04.17 |
4. Hypothesis and Cost (0) | 2020.04.16 |
3. Linear Regression (0) | 2020.04.15 |
1. Machine Learning (0) | 2020.04.14 |