我想訓練一個迴歸網絡,它的輸出是兩個座標(x1,y1)和(x2,y2)。 我的問題是:如果我想訓練網絡應該我的輸出是分開的? 我的意思是應該我的輸出是這樣的:如何用2D輸出訓練網絡? (python,Keras)
[x1,y1,x2,y2]
或者是有辦法堆疊起來,如:
[(x1,y1),(x2,y2)]
在此先感謝
我想訓練一個迴歸網絡,它的輸出是兩個座標(x1,y1)和(x2,y2)。 我的問題是:如果我想訓練網絡應該我的輸出是分開的? 我的意思是應該我的輸出是這樣的:如何用2D輸出訓練網絡? (python,Keras)
[x1,y1,x2,y2]
或者是有辦法堆疊起來,如:
[(x1,y1),(x2,y2)]
在此先感謝
的RepeatVector
是有這個目的(見Keras文檔)。
您希望您的輸出形狀爲(2, 2)
或兩個座標的數組,每個座標各有兩個條目。
num_outputs = 2
num_elements = 2
在將處理輸入的圖層添加到網絡後,添加RepeatVector
。這將使得有可能獲得一組數據作爲輸出。最終層需要輸出num_elements
所以例如:
model.add(RepeatVector(num_outputs))
# Optional layers can be inserted here
model.add(Dense(num_elements))
簡而言之,重複載體複製先前層的內容被髮送到另外的節點,並且每個路徑將輸出的num_elements
陣列,給你所需的輸出形狀。請注意,您的訓練數據(標籤)也必須由(2, 2)
陣列組成。
您可以明顯重塑輸出以添加維度;網絡仍然可以返回一個向量。我認爲這個問題是爲什麼你想要二維輸出 - 輸出值是否有額外的限制? –
他們是特定的座標,我懷疑如果我把它給像網絡[x1,y1,x2,y2],網絡不會考慮它們之間的關係,所以我想把它傳遞給網絡。我真的嗎? – Panda
以及我應該如何設置[(x1,y1),...]的密集層的設置,我的意思是什麼應該是在這個輸出神經元的數量? model.add(Dense(2,init ='uniform',activation ='sigmoid')) – Panda