如何处理张量流中0-1范围之外的输入?
Posted
技术标签:
【中文标题】如何处理张量流中0-1范围之外的输入?【英文标题】:How to deal with inputs outside 0-1 range in tensorflow? 【发布时间】:2016-02-10 09:12:07 【问题描述】:在http://www.tensorflow.org/get_started 提供的示例中,如果我将输入乘以 2
x_data = np.float32(np.random.rand(2, 100))*2
我得到了无意义的输出,而我期望得到相同的解决方案。
0 [[ -67.06586456 -109.13352203]] [-7.67297792]
20 [[ nan nan]] [ nan]
40 [[ nan nan]] [ nan]
60 [[ nan nan]] [ nan]
80 [[ nan nan]] [ nan]
100 [[ nan nan]] [ nan]
120 [[ nan nan]] [ nan]
140 [[ nan nan]] [ nan]
160 [[ nan nan]] [ nan]
180 [[ nan nan]] [ nan]
200 [[ nan nan]] [ nan]
tensorflow 如何处理不在 0-1 范围内的输入?
编辑:使用AdagradOptimizer
没有问题。
【问题讨论】:
你可能发散到无穷大,然后你从无穷大中减去无穷大得到 nan 【参考方案1】:问题在于该示例使用了非常激进的学习率:
optimizer = tf.train.GradientDescentOptimizer(0.5)
这使学习更快,但如果你稍微改变问题,它就会停止工作。 0.01
的学习率会更典型:
optimizer = tf.train.GradientDescentOptimizer(0.01)
现在您的修改工作正常。 :)
【讨论】:
以上是关于如何处理张量流中0-1范围之外的输入?的主要内容,如果未能解决你的问题,请参考以下文章