nf.zerosを使用してtf.zerosを使用してテンソルフロー変数を初期化するときにいくつかの違いがありますか?np.zerosを使用し、tf.zerosを使用してTensorflow変数を初期化することの相違点
たとえば、MNIST softmaxチュートリアル( https://github.com/tensorflow/tensorflow/blob/r1.1/tensorflow/examples/tutorials/mnist/mnist_softmax.py)を見ると、変数Wとbは次のように初期化されます。
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))
tf.zerosを使用して初期化する代わりに、次のようにnp.zerosを使用するとコードは正常に動作します。
W = tf.Variable(np.zeros([784, 10], dtype=np.float32))
b = tf.Variable(np.zeros([10], dtype=np.float32))
だから、違いはないと思います。しかし、次のようなコードを試しました。a
とb
の変数は同じです。
array([[ 0., 0.],
[ 0., 0.],
[ 0., 0.]], dtype=float32)
しかし、次のようにb.eval()
の結果は次のとおりです:
array([[ 0., 0.],
[ 0., 0.],
[ 0., 0.]])
ので、値が同じであってもそこにある、次のように
a = tf.Variable(tf.zeros((3, 2)), tf.float32)
b = tf.Variable(np.zeros((3, 2)), tf.float32)
sess = tf.InteractiveSession()
init = tf.global_variables_initializer()
sess.run(init)
a.eval()
a.eval()
の結果ですdtypeの違い。この相違がなぜ存在するのか、私に説明してください。