如何处理张量流中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范围之外的输入?的主要内容,如果未能解决你的问题,请参考以下文章

如何处理具有维度无的张量乘法

如何处理活动流中已删除的照片

如何处理 Activity 和 Fragment 之外的权限请求?

控件如何处理该控件之外的鼠标单击?

一般如何处理 CXF 请求处理程序中的输入参数?

TensorRT 如何处理数据?