2017-08-30 126 views
0

我一直試圖執行深度神經網絡使用tflearn和我自己的數據集預測一個值。Tensorflow/TFLearn - ValueError:無法爲Tensor'target/Y:0'形狀(64,)形狀'(?,1)'提供形狀值(64,)

我的神經網絡是基於在Titanic的例子,但與我改變了輸出層從2到1的差和「SOFTMAX」到「線性」的活化:

from tflearn.data_utils import load_csv 

data, labels = load_csv('data.csv') 

# Build neural network 
net = tflearn.input_data(shape=[None, 5]) 
net = tflearn.fully_connected(net, 5, activation='sigmoid') 
net = tflearn.fully_connected(net, 3, activation='sigmoid') 
net = tflearn.fully_connected(net, 1, activation='linear') 
net = tflearn.regression(net, optimizer='sgd', loss='mean_square', learning_rate=0.1, name='target') 

# Define model 
model = tflearn.DNN(net) 
# Start training (apply gradient descent algorithm) 
model.fit(data, labels,show_metric=True) 

我得到出現以下錯誤:

ValueError: Cannot feed value of shape (64,) for Tensor 'target/Y:0', which has shape '(?, 1)'

我已經在stackoverflow中搜索了我的問題,但沒有一個答案適用於我。

我使用Python 3.6和0.3.2 TFlearn

回答

0

你可以重塑標籤

data, labels = load_csv('data.csv') 
labels = np.reshape(labels, (-1, 1)) 
+0

謝謝!它爲我工作。 ¿爲什麼我的錯誤在重塑?我想了解它。 – Marc

+0

該錯誤與形狀不匹配有關。 「目標」佔位符的等級爲2,但輸入「標籤」的等級爲1(重塑之前)。佔位符的Feed值應與佔位符的級別和形狀相同;使用其重新塑造其實現。 –

+0

感謝您的回答! – Marc

相關問題