Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.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
Python 关于tensorflow梯度降阶器的几个问题_Python_Tensorflow_Gradient Descent - Fatal编程技术网

Python 关于tensorflow梯度降阶器的几个问题

Python 关于tensorflow梯度降阶器的几个问题,python,tensorflow,gradient-descent,Python,Tensorflow,Gradient Descent,我尝试使用tensorflow测试我的代码,我将GradientDescentOptimizer学习率设置为1,并输出Wx1旧权重、新权重和梯度。但是新的重量旧的权重-1*梯度,我不知道为什么会导致这种情况 Wx1旧值[[-0.0016595601,.]] 年级[-0.02760417,…] Wx1新值[[-0.0016706019,…]] 批次数据X维度为500*1000,Y维度为500*30。Wx1尺寸为1000*512,梯度尺寸也为1000*512 loss = net.loss(x, y

我尝试使用tensorflow测试我的代码,我将GradientDescentOptimizer学习率设置为1,并输出Wx1旧权重、新权重和梯度。但是新的重量旧的权重-1*梯度,我不知道为什么会导致这种情况

  • Wx1旧值[[-0.0016595601,.]]
  • 年级[-0.02760417,…]
  • Wx1新值[[-0.0016706019,…]]
  • 批次数据X维度为500*1000,Y维度为500*30。Wx1尺寸为1000*512,梯度尺寸也为1000*512

    loss = net.loss(x, y, keep_prob)
    optimizer = tf.train.GradientDescentOptimizer(1).minimize(loss)
    init = tf.global_variables_initializer()
    
    with tf.Session() as sess:
       sess.run(init)
       for X, Y, tot in data.next_batch('train'):
           feed_dict = {x: X,
                        y: Y}
           Wx1 = net.Wx1
           Wx1_val_old = sess.run(Wx1)
           grads = sess.run(tf.gradients(loss, [Wx1]), feed_dict=feed_dict)[0]
           sess.run(optimizer, feed_dict=feed_dict)
           Wx1_val_new = sess.run(Wx1)
    

    我解决了这个问题,但仍然不知道为什么。我解决了这个问题,但仍然不知道为什么。