-
시간이 남을때는 기초공부하는게 최고인거같다.. 급한게없으니
오늘은 그래서 텐서플로우의 기초를 공부해보기로 했다.
그래프와 세션
텐서플로우에서는 예를들어
변수 val1,val2에 대해서
val1+val2 라는 코드는 val1+val2 val1과 val2를 더하라라는그래프를 정의하는 것이다.
val1---->[ + ]<---val2
그래서 세션이 그래프를 인자로받아서 실행을 해주어야 비로소 실제로 val1+val2가 실행되는것이다
변수형
변수형은 텐서플로우api에도 예제와함께 잘 설명되어있다.
variable(
value,
dtype=None,
name=None
)타입,이름,값을 넘겨주어서 사용할 수 있다.
>>> a=tf.Variable([2],dtype=tf.float32)
>>> a
<tf.Variable 'Variable:0' shape=(1,) dtype=float32_ref>
실제로 이렇게 사용할 수 있다
session을 이용하여 값을 확인해보려 하니 아래와같은 에러가 발생하였다.
tensorflow.python.framework.errors_impl.FailedPreconditionError: Attempting to use uninitialized value Variable
텐서플로우는 변수형은 사용하기에 앞서 초기화를 해줘야하기때문이다. 그래야 변수에 값이 지정이된다고한다.
아래와같이 초기화를 진행하고 다시 session으로 값을 확인하니 아주 잘 나온다.
>>> init = tf.global_variables_initializer()
>>> sess.run(init)
>>> print(sess.run(a))
[ 2.]
상수형
이것도 역시 텐서플로우api에 설명이 잘되어있당
constant(
value,
dtype=None,
shape=None,
name='Const',
verify_shape=False
)>>> a=tf.constant(5,dtype=tf.float32)
>>> a
<tf.Tensor 'Const:0' shape=() dtype=float32>
>>> init = tf.global_variables_initializer()
>>> sess.run(init)
>>> print(sess.run(a))
5.0
PlaceHolder
몇번언급했던가..? 암튼 일종의 데이터를 담는 그릇이다. 자세한내용은 텐서플로우api 참고
placeholder(
dtype,
shape=None,
name=None
)이 플레이스폴더그릇에 데이터를 담는것을 feeding이라고 한다.
>>> a=tf.placeholder(dtype=tf.float32)
>>> sess.run(init)
>>> print(sess.run(a,feed_dict={a:1}))
1.0
출처 url
'2017년 > machine learning' 카테고리의 다른 글
ml엔진 공부 (0) 2017.09.11 텐서플로우 서빙에 대해 (0) 2017.09.05 분류 알고리즘 KNN , 로지스틱회귀에 대한 고찰 (0) 2017.08.28 머신런닝에관해 좋은글 (0) 2017.08.21 텐서플로우 선형회귀에 대해 알아보자 (0) 2017.08.16