Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables 使用np.zeros和tf.zeros初始化Tensorflow变量之间的差异_Variables_Tensorflow_Initialization - Fatal编程技术网

Variables 使用np.zeros和tf.zeros初始化Tensorflow变量之间的差异

Variables 使用np.zeros和tf.zeros初始化Tensorflow变量之间的差异,variables,tensorflow,initialization,Variables,Tensorflow,Initialization,使用np.zero初始化tensorflow变量与使用tf.zero初始化tensorflow变量之间是否存在一些差异 例如,如果我们看一下MNIST softmax教程( ),变量W和b按以下方式初始化 W = tf.Variable(tf.zeros([784, 10])) b = tf.Variable(tf.zeros([10])) 与使用tf.zeros进行初始化不同,如果使用np.zeros,代码仍然可以正常工作,如下所示 W = tf.Variable(np.zero

使用np.zero初始化tensorflow变量与使用tf.zero初始化tensorflow变量之间是否存在一些差异

例如,如果我们看一下MNIST softmax教程( ),变量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
变量相同

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()
的结果如下:

array([[ 0.,  0.],
       [ 0.,  0.],
       [ 0.,  0.]], dtype=float32)
array([[ 0.,  0.],
       [ 0.,  0.],
       [ 0.,  0.]])
但是
b.eval()
的结果如下:

array([[ 0.,  0.],
       [ 0.,  0.],
       [ 0.,  0.]], dtype=float32)
array([[ 0.,  0.],
       [ 0.,  0.],
       [ 0.,  0.]])

因此,即使值相同,数据类型也存在差异。你能给我解释一下为什么存在这种差异吗?

对于大多数实验来说,这几乎无关紧要。您还可以提供python列表列表
[[0,0,…],…]
。您在
eval
中看到的差异是因为默认情况下使用
float32
。相反,默认情况下使用
float64
。改变一个或另一个,你将看不到区别

在生产代码中,最好使用
tf.
函数进行初始化,以减少开销