2016-04-04 112 views
0

編輯:
我有一些楠在我的數據,但anwser是正確的,你有一些噪音來初始化你的體重! 謝謝!這些nan從哪裏來?

我做我的第一個腳本與tensorflow。我有一些問題的印刷價值,但現在我明白了。 我想嘗試一個簡單的邏輯迴歸來開始,我正在研究kaggle泰坦尼克號數據集。

我的問題是,我不知道爲什麼,但我在我的體重和偏差得到了一些楠所以在我的Y(預測)向量太...

編輯: 我的體重在0初始化,我想是一個空漸變。 按照答案提供我添加

W = tf.truncated_normal([5, 1], stddev=0.1) 

,而不是

W = tf.Variable(tf.zeros([5, 1])) #weight for softmax 

,但我仍然有一些問題。我的b變量提供唉變量仍然楠,當我試圖同樣的事情BI得到了以下錯誤: ValueError異常:無變量優化
我嘗試了幾種方法來分配我的張量biais [1,1],但它看起來像我丟失的東西我
貌似y是因爲楠交叉熵是楠由於b是南... :( END - 編輯

我在讀這篇文章(Why does TensorFlow return [[nan nan]] instead of probabilities from a CSV file?)誰給我一個提示,我cross entropy calcul 0 * log(0)return nan所以我應用了給定的解決方案,即添加1e-50像:

cross_entropy = -tf.reduce_sum(y_ * tf.log(y + 1e-50) )

不幸的是這不是我想這個問題,我仍然有楠處處:(

這是interisting(我猜的)我很簡單的模型的一部分:

x = tf.placeholder(tf.float32, [None, 5]) #placeholder for input data 

W = tf.truncated_normal([5, 1], stddev=0.1) 

b = tf.Variable(tf.zeros([1])) # no error but nan 
#b = tf.truncated_normal([1, 1], stddev=0.1) Thow the error descript above 
#b = [0.1] no error but nan 

y = tf.nn.softmax(tf.matmul(x, W) + b) #our model -> pred from model 

y_ = tf.placeholder(tf.float32, [None, 1])#placeholder for input 

cross_entropy = -tf.reduce_sum(y_*tf.log(y)) # crossentropy cost function 

train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy) 
init = tf.initialize_all_variables() # create variable 

sess = tf.InteractiveSession() 
sess.run(init) 

testacc = [] 
trainacc = [] 
for i in range(15): 
    batch_xs = train_input[i*50:(i + 1) * 50] 
    batch_ys = train_label[i*50:(i + 1) * 50] 

    result = sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys}) 

correct_prediction = tf.equal(y,y_) 
accuracy = tf.reduce_mean(tf.cast(correct_prediction, tf.float32)) 
print(sess.run([accuracy, W, y] , feed_dict={x: test_input, y_: test_label})) 

它返回我一個0.0的準確性當然和2陣列之後我試圖在任何地方打印值,但是無處不在:'(

有人有想法嗎?我可能忘了什麼事或做錯

的事情是,我試圖與MNIST(谷歌教程)類似的腳本包含數據和它的作品(沒有男)。我用熊貓閱讀csv文件得到我的數據。

感謝您的閱讀!

回答

2

您在tf.nn.softmax得到一個除數爲零,因爲你的體重矩陣是零。使用不同的標準化方法,如來自MNIST示例的truncated_normal

+0

您好,感謝您的回答, 我編輯我的帖子上面,它實際上適用於我的體重,但是當我做同樣的偏見,但它不起作用!它引發了我在編輯部分描述的一些錯誤,並且我刷新了代碼。 你有什麼想法嗎?感謝您的回答:) –

+0

我有一些與nan的數據,這是問題...謝謝你的答案! –