2017-10-09 5 views
0

tensorflow에서 음수가 아닌 작은 난수로 변수를 초기화하는 방법은 무엇입니까?tensorflow에서 음이 아닌 난수가 작은 변수를 초기화하는 방법은 무엇입니까?

TF에서 문서에 정의 된 가능한 모든 변수 초기화 프로그램을 찾는 방법은 무엇입니까?

+0

답변 중 하나라도 도움이 되었다면 앞으로 질문에 대한 답을 사람들이 알 수 있도록 올바른 것으로 표시하십시오. – Engineero

답변

4

변수를 만들고 올바른 크기의 임의 분포를 선택하십시오.

w = tf.Variable(tf.random_uniform((dim1, dim2))) 

초기화 할 때 임의 번호를 만들어야합니다. 이 링크는 Tensorflow에서 모든 무작위 작업 (배포)을 제공합니다. 작은 음수가 아닌 숫자 https://www.tensorflow.org/api_guides/python/constant_op#Random_Tensors

3

초기화 변수 : 음이 아닌 random numbers in TensorFlow에 대한 몇 가지 옵션이 있습니다

norm = tf.random_uniform_initializer(minval=0, maxval = 1, dtype=tf.float32) 
with tf.variable_scope('scope') as scope: 
    w = tf.get_variable('w', [inp.get_shape()[1], output_dim], initializer=norm, dtype=tf.float32) 
+0

이것은 어떻게 부정적이지 않은가? 정규 분포는 평균이 0이고 음수 값을 취할 수 있습니다. – gdelab

+0

[0,1] 사이에 균일 분포를 사용할 수 있습니다. –

+0

내 답변 편집 –

3

. 다른 사람이 이미 언급 한 것처럼, 당신은 tf.random_uniform를 사용할 수 있습니다

w = tf.Variable(tf.random_uniform(shape, minval=0, maxval=max)) 

을 균일 난수에 대한 [minval, maxval)에. 보다 일반적인 배포판의 경우 을 사용하면 모양 매개 변수 alpha에 의해 매개 변수화 된 gamma distribution의 샘플과 역함수 매개 변수 beta을 가져올 수 있습니다. alpha가 제공되어야하지만, 기본적으로 beta=1 (지문는 None을 말한다하더라도) :

w = tf.Variable(tf.random_gamma(shape, alpha=alpha, beta=beta)) 

감마 분포는 몇 가지에 대한 사전 지원 [0, +inf) 및 다른 좋은 특성 (일부 가정에서 최대 엔트로피 분포 켤레를 가지고 Bayes 통계에서). 매개 변수에 따라 다양한 모양을 얻을 수 있습니다. 그것은 정규 분포와 유사하지만 양수에 대해서만입니다.

또한 수 (나는 그것을 추천 할 것이라고 모르겠지만, 그것은 이상한 느낌) tf.truncated_random_normal를 사용하는을 제외하고 지정된 meanstddev 정규 분포에서 샘플, 그 외부 플러스 또는 마이너스 2의 샘플 표준 편차는 감소하고 다시 샘플링됩니다

w = tf.Variable(tf.truncated_random_normal(shape, mean=mean, stddev=stddev)) 
mean 어떤 양의 값을 것

stddevmean/2 동일 최대 될 것이다.

관련 문제