#!/usr/bin/env python3
Getting Start Tensorflow
tensorflow는 객체로 만들어지기 때문에 출력을 위해 printf를 정의하고 이 것을 사용하겠습니다.
import tensorflow as tf
def printf(tfclass):
init = tf.global_variables_initializer()
with tf.Session() as sess:
sess.run(init)
rlt = tfclass.eval()
print(rlt)
0 값으로 채워진 텐서는 다음과 같이 생성합니다.
zero_tsr = tf.zeros([3, 2])
printf(zero_tsr)
# [[0. 0.]
# [0. 0.]
# [0. 0.]]
1 값으로 채워진 텐서는 다음과 같이 생성합니다.
ones_tsr = tf.ones([3, 2])
printf(ones_tsr)
# [[1. 1.]
# [1. 1.]
# [1. 1.]]
동일한 상수값으로 채워진 텐서는 다음과 같이 생성합니다.
filled_tsr = tf.fill([3, 2], 9)
printf(filled_tsr)
# [[9 9]
# [9 9]
# [9 9]]
기존 상수를 이용해 텐서를 생성할 때는 다음 방식을 사용합니다.
constant_tsr = tf.constant([1, 2, 3])
printf(constant_tsr)
# [1 2 3]
기존 텐서의 형태를 바탕으로 텐서 변수를 초기화하는 것도 가능합니다.
zeros_similar = tf.zeros_like(constant_tsr)
printf(zeros_similar)
# [0 0 0]
ones_similar = tf.ones_like(constant_tsr)
printf(ones_similar)
# [1 1 1]
텐서플로는 구간을 지정하는 방식으로 텐서를 선언할 수 있습니다. 다음 함수는 range()나 numpy의 linspace()와 비슷하게 동작합니다.
linear_tsr = tf.linspace(0.0, 1.0, num=3)
printf(linear_tsr)
# [0. 0.5 1. ]
integer_seq_tsr = tf.range(6.0, 15, delta=3)
printf(integer_seq_tsr)
# [ 6. 9. 12.]
랜덤한 숫자도 뽑아낼 수 있습니다.
randunif_tsr = tf.random_uniform([3, 2], minval=0, maxval=1, dtype=tf.float32)
printf(randunif_tsr)
# [[0.218009 0.7311672 ]
# [0.6954018 0.2027992 ]
# [0.95226717 0.9950316 ]]
randnorm_tsr = tf.random_normal([3, 2], mean=0.0, stddev=1.0)
printf(randnorm_tsr)
# [[-0.45060402 -1.6076114 ]
# [ 0.7157349 -0.28653365]
# [ 1.2830635 0.6957943 ]]
특정 범위에 속하는 정규 분포 임의의 값을 생성하고 싶은 경우에 지정한 평균에서 항상 표준편차 2배 이내의 값을 뽑아줍니다.
truncnorm_tsr = tf.truncated_normal([3, 2], mean=3.0, stddev=1.0)
printf(truncnorm_tsr)
# [[2.6660793 2.3485358]
# [3.378799 2.757817 ]
# [2.8825157 1.9243042]]
배열의 항목을 임의로 섞을 때는
shuffle_output = tf.random_shuffle(truncnorm_tsr)
printf(shuffle_output)
# [[2.174755 4.001117 ]
# [2.6528723 2.8258555]
# [3.5614102 2.8608997]]
cropped_output = tf.random_crop(shuffle_output, [3, 2])
printf(cropped_output)
# [[2.6678126 2.087521 ]
# [1.5311174 4.574707 ]
# [2.400455 3.175764 ]]
참고 자료:
[1]TensorFlow Machine Learning Cookbook, Nick McClure
'Tensorflow > Introduction' 카테고리의 다른 글
Activation Function (0) | 2018.04.25 |
---|---|
placeholder, marix, operation (0) | 2018.04.25 |