【发布时间】:2017-01-21 03:27:25
【问题描述】:
我是 Tensorflow 的新手,正在研究tensorflow tutorials 此处给出的回归示例。具体来说,我正在研究第三个:“polynomial_regression.py”
我很好地遵循了线性回归示例,现在已经转向多项式回归。
但是,我想尝试用另一组数据代替示例中的数据。我通过交换来做到这一点
xs = np.asarray([3.3,4.4,5.5,6.71,6.93,4.168,9.779,6.182,7.59,2.167,
7.042,10.791,5.313,7.997,5.654,9.27,3.1], dtype=np.float32)
ys = np.asarray([1.7,2.76,-2.09,3.19,1.9,1.573,3.366,2.596,2.53,1.221,
2.827,-3.465,1.65,-2.1004,2.42,2.94,1.3], dtype=np.float32)
n_observations = xs.shape[0]
为
n_observations = 100
xs = np.linspace(-3, 3, n_observations)
ys = np.tan(xs) + np.random.uniform(-0.5, 0.5, n_observations)
即第二个是示例中给出的内容,我想尝试使用新的 xs、ys、n_observation 进行相同的训练。这些是我改变的唯一行。我还尝试将数组的 dtype 更改为 float64,但这并没有改变输出。
我得到的输出(来自print(training_cost)只是一个重复的nan。当我切换回原始数据时,网络运行良好,并生成了一个拟合函数。
感谢您的任何想法!
【问题讨论】:
-
NaN 可能由多种原因引起,通常是某种形式的数值不稳定。降低学习率或使用更稳定的优化器是不错的尝试。
-
@AlexandrePassos - 您能否将您的评论提升为答案,因为我们还没有收到更多来自 OP 的消息?谢谢!
标签: python tensorflow neural-network non-linear-regression