tf.random_normal_initializer

tf.random_normal_initializer는 정규 분포를 갖는 텐서를 생성하는 Initializer입니다.



예제1

import tensorflow as tf

initializer = tf.random_normal_initializer(mean=1.0, stddev=2.0)

rand_tensor = initializer(shape=[2, 2])
print(rand_tensor)
tf.Tensor(
[[-3.3964305 -2.2236798]
 [ 2.0633707 -2.3664834]], shape=(2, 2), dtype=float32)

Initializer를 사용하면 텐서의 형태가 결정되지 않은 상태에서도 텐서를 어떻게 생성할지 결정할 수 있습니다.

미리 지정한 tf.random_normal_initializer를 사용해서 [2, 2] 형태의 텐서를 만들었습니다.



예제2

import tensorflow as tf

def make_variables(k, initializer):
    return (tf.Variable(initializer(shape=[k], dtype=tf.float32)),
            tf.Variable(initializer(shape=[k, k], dtype=tf.float32)))


v1, v2 = make_variables(3, tf.random_normal_initializer(mean=-1.0, stddev=1.5))

print(v1)
print(v2)
<tf.Variable 'Variable:0' shape=(3,) dtype=float32, numpy=array([-3.292683 ,  0.3155725, -3.070511 ], dtype=float32)>
<tf.Variable 'Variable:0' shape=(3, 3) dtype=float32, numpy=
array([[ 0.05954874, -2.3188496 , -1.4861779 ],
       [-2.2195053 , -2.4441378 , -1.6944317 ],
       [ 1.2801654 , -2.9487288 ,  0.5278008 ]], dtype=float32)>

make_variables은 텐서의 크기와 Initializer를 입력받아서 tf.Variable 객체를 반환하는 함수입니다.

tf.random_normal_initializer를 사용해서 만들어진 임의의 값을 갖는 두 개의 tf.Variable 객체가 생성되었습니다.



이전글/다음글

이전글 :
다음글 :