我有以下格式的培訓檔案:如何在具有張量流的卷積神經網絡中執行多類分類?
0.086,0.4343,0.4212,...,class1的
0.086,0.4343,0.4212,...,Class2中
0.086,0.4343,0.4212,...,class5
其中,每行是一維向量,最後一列是該向量表示的類。我們可以看到一個向量重複幾次,因爲它有幾個類。
讀取此數據由python「Panda」庫完成。也就是說,我需要用卷積網絡進行訓練。我已經研究了一些網站,並沒有獲得太多的成功,也不知道網絡是否需要爲「多類」形式做好準備。
我想知道是否有人知道張量流的多類一維分類方法或可以指導我一個例子,因爲在訓練網絡後,我需要傳遞一個模板(這將是一個向量)和網絡輸出我給每個班的正確百分比。
謝謝!
感謝您的回答!但我仍然相信我的方法是多類,因爲在我提到的例子中,我爲3個不同的類放置了一個相同的向量。那麼deep_cnn網絡將會達到我的目的嗎?謝謝! –
啊,你說這些是一個樣本?那麼你的標籤向量應該看起來像'[1,1,0,0,1]'表示類1,2,5。你的損失函數應該是sigmoid交叉熵,而logits仍然可能是他們正在使用的。不要使用softmax。 Softmax輸出一個概率分佈,一個簡單的S形只是將所有的值縮放到0 ... 1的比例,那麼對於任何一個類來說,一個類的邊界> 0.5是正的,否則是負的。這裏有一個有用的討論:http://stackoverflow.com/questions/34240703/difference-between-tensorflow-tf-nn-softmax-and-tf-nn-softmax-cross-entropy-with –
在這種情況下生成一個預測在這個例子中輸出爲5的輸出層並將其舍入到{0,1},這將是您的預測結果。張量流中的損失函數應該饋送未縮放的值,例如,在將這些值傳遞給'tf.sigmoid_cross_entropy_with_logits(...)'之前,不要在輸出層上應用sigmoid。該損失函數適用於您的S形。但請注意,您需要應用sigmoid並將其四捨五入以生成另一張張,用於實際返回結果(在訓練期間不需要,僅在需要進行預測時)。 –