건프의 소소한 개발이야기

[Python - Tensorflow] Tensorflow 시작하기(1) 본문

개발 이야기/Machine Learning 이야기

[Python - Tensorflow] Tensorflow 시작하기(1)

건강한프로그래머 2016. 6. 4. 23:28

안녕하세요, 건프입니다.


이번엔 Python 기반의 Machine Learning 언어 및 플랫폼인 "Tensorflow"  를 사용해봅니다. 




우선 상수 tensor a와 b를 생성합니다 

이후, a 와 b를 더하는 tensor 인 c  를 생성합니다.

그리고 Session 을 열고 c를 run 합니다.

그 결과를 print 하면 다음과 같은 결과가 나타납니다.


a는 벡터이고
b는 행렬인데, 더하기 연산을 진행하니, 각각의 row 에 더해지는 연산을 하는 것을 알 수 있습니다.


만약 Session 을 열고 run 하지 않고
그대로 c를 프린트 한다면

import tensorflow as tf

import numpy as np


a = tf.constant([1,2,3])

b = tf.constant([[10, 20, 30], [100, 200, 300]])

c = tf.add(a,b)


#with tf.Session() as sess: 주석입니다

print c



얘는 Tensor 인데, 위와 같은 Attribute 를 가지고 있다는 것만 알려주네요.




zero 매트릭스를 만드는 방법과 (one line 만 명시하면 결과로 보는 것과 같이 벡터로 만들어 집니다.)

크기에 따른 랜덤 매트릭스를 만드는 방법이다.

첫번째 인자 : 만들 매트릭스 크기 지정

두번째 인자 : 범위 시작 값

세번째 인자 : 범위 끝 값


자 그렇다면 행렬간 곱하기를 진행해봅니다.


1행 2열 짜리 Matrix 와 2행 1열 짜리 Matrix 를 만들어서 곱한 결과를 출력하려고 합니다.



위와 같이 뽑았을때 결과는 다음과 같습니다.


마지막에 일반 상수를 뽑아본 이유는

Matrix * Matrix 가 [[19]] 이런식으로 출력이 되는데, 이것이 스칼라인지 벡터인지 메트릭스 인지 확인하고 싶었기 때문입니다.

일반적으로 스칼라가 되어야 생각을 하는데,

직접 뽑아보니까 스칼라가 아니라 1 by 1 벡터가 나오네요.



그럼 tensorflow 에서 변수를 선언해 보겠습니다.





이것으로 tensor 의 존재감과 구조를 명백하게 확인할 수 있습니다.


tensor 는 만들기만 해서는 적용되지 않습니다.

Session 으로 실제로 실행시켜주어야 그 의미를 같습니다.


다음 포스팅에서 이어서 진행할께요~


도움이 되었길 바랍니다.


고맙습니다 :)

Comments