2017-04-05 101 views
0

我試圖進入機器學習,並決定使用tflearn for一個開始。 我使用tflearn的快速入門指南獲取基礎知識,並嘗試使用該神經網絡完成我自己設定的任務: 從其維度預測鮑魚的年齡。爲此,我從UCI存儲庫中下載了相應的數據集作爲.csv。該表的格式如下:形狀爲'(?,1)'的Tensor'TargetsData/Y:0'無法提供形狀的值(1600,)'

SEX |長度|直徑|高度|整機重量|去殼WEIGHT |內臟器官的重量|殼重| RINGS

由於年齡相同的振鈴次數,我進口在.csv這樣的:

data, labels = load_csv("abalone.csv", categorical_labels=False, has_header=False) 

任務是預測基於數據環的數量,所以我成立了這樣我的輸入層:

net = tflearn.input_data(shape=[None, 8]) 

添加四個隱藏層與默認線性激活函數:

net = tflearn.fully_connected(net, 320) 
net = tflearn.fully_connected(net, 200) 
net = tflearn.fully_connected(net, 200) 
net = tflearn.fully_connected(net, 320) 

並且與一個節點的輸出層,因爲僅存在一個結果(沒有。環):

net = tflearn.fully_connected(net, 1, activation="sigmoid") 
net = tflearn.regression(net) 

現在我初始化模式,但在訓練過程中出現上述錯誤發生:

model = tflearn.DNN(net) 
model.fit(data, labels, n_epoch=1000, show_metric=True, batch_size=1600) 

整個例外:

Traceback (most recent call last): 
    File "D:\OneDrive\tensornet.py", line 34, in <module> 
    model.fit(data, labels, n_epoch=1000, show_metric=True, batch_size=1600) 
    File "C:\Python3\lib\site-packages\tflearn\models\dnn.py", line 215, in fit 
    callbacks=callbacks) 
    File "C:\Python3\lib\site-packages\tflearn\helpers\trainer.py", line 333, in fit 
    show_metric) 
    File "C:\Python3\lib\site-packages\tflearn\helpers\trainer.py", line 774, in _train 
    feed_batch) 
    File "C:\Python3\lib\site-packages\tensorflow\python\client\session.py", line 767, in run 
    run_metadata_ptr) 
    File "C:\Python3\lib\site-packages\tensorflow\python\client\session.py", line 944, in _run 
    % (np_val.shape, subfeed_t.name, str(subfeed_t.get_shape()))) 
ValueError: Cannot feed value of shape (1600,) for Tensor 'TargetsData/Y:0', which has shape '(?, 1)' 

據我瞭解,發生異常當試圖用我的輸出圖層來貼合我的標籤(1600x1張量)時。但我不知道如何解決這個問題。

回答

1

你需要另一個軸添加到標籤,因此他們將有一個(1600,1)形狀,而不是(1600)

做到這一點是這樣的最簡單的方法:

labels = labels[:, np.newaxis] 
+0

感謝您的回答。但是,當我嘗試這樣做時,會出現另一個異常:TypeError:列表索引必須是整數或切片,而不是元組 –

+0

您需要將列表更改爲numpy數組,如下所示: labels = np.asarray(labels)[: ,np.newaxis] – mangate

+0

啊,謝謝你,那工作。 –

相關問題