2017-12-27 3 views
0

다음 설명은 xavier_initializer()입니다. 실제 구현 중에 입력 뉴런 수를 취하는 var(wi) = 1/Navg라고합니다.tensorflow의 xavier_initializer 정보

https://prateekvjoshi.com/2016/03/29/understanding-xavier-initialization-in-deep-neural-networks/

그러나, 다음 예에서, 어떤 뉴런이 없습니다. 나는 W의 분산을 계산했다. 누구도 그 분산이 xavier_initializer()에 따라 결정된다는 것을 알고 있는가? 감사!

$ cat main.py 
#!/usr/bin/env python 
# vim: set noexpandtab tabstop=2 shiftwidth=2 softtabstop=-1 fileencoding=utf-8: 

import tensorflow as tf 
W = tf.get_variable("W", shape=[5], initializer=tf.contrib.layers.xavier_initializer()) 
init = tf.global_variables_initializer() 
import numpy 
with tf.Session() as sess: 
    sess.run(init) 
    print numpy.var(W.eval()) 
$ ./main.py 
0.166031 

답변

0

이렇게 코드를 수정해도 문제가 있습니까?

import numpy as np 
import tensorflow as tf 

W = tf.get_variable("W", shape=[5],initializer=tf.contrib.layers.xavier_initializer()) 
init = tf.global_variables_initializer() 

with tf.Session() as sess: 
    sess.run(init) 
    w_value = sess.run(W) 
    print w_value 
    print np.var(w_value)