2017-01-21 49 views
0

我是Tensorflow的新手,我正在通過這裏給出的迴歸示例tensorflow tutorials的示例進行工作。特別是,我在第三個工作:「polynomial_regression.py」在Tensorflow中進行多項式迴歸訓練的nan會話輸出

我遵循線性迴歸示例罰款,現在已轉移到多項式迴歸。

但是,我想嘗試替換另一組數據,而不是示例中的數據。我通過交換

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。當我切換回原來的數據,網絡運行正常,並生成一個合適的功能可按。

謝謝你的任何想法!

+0

NaN的可以由很多的東西,通常是某種形式的引起數值不穩定性降低學習速度或使用更穩定的優化器a重新嘗試好東西。 –

+0

@AlexandrePassos - 您能否將您的評論推薦給答案,因爲我們沒有聽說過更多OP?謝謝! – dga

回答

0

NaN的可以由很多的東西,通常是某種形式的數值不穩定引起的。降低學習率或使用更穩定的優化都是好東西去嘗試。