2017-05-13 17 views
1

我在一個文件夾中有300張圖像,我正在使用它作爲驗證神經網絡的數據集。如何在MATLAB中爲神經網絡重新排序測試數據集?

每張圖片的標籤爲10。我在MATLAB中將圖像轉換爲矩陣,並將標籤轉換爲對應於矩陣中每行圖像的10的300x1向量。

我注意到標籤不平衡,影響網絡。如何爲每行圖像保留相同的零或一個指示來重新排列標籤?

這是我的嘗試:

我向量中每個拆分1和0,現在我希望能夠把至少兩個那些在連續12行10個零,但我沒有知識。我用這個來分割那些和零:

ones = labels(labels(:,1)==1,:) 
zeros = labels(labels(:,1)==0,:) 

如何重新排列標籤以消除不平衡標籤的問題?

回答

0

這將創建一個索引向量,它應該均勻地分佈兩組標籤,使它們在每個連續的12個標籤集內大致平衡(請注意,這假定您的數據均勻分成12組,你的例子):

index = [find(labels(:, 1) == 1); find(labels(:, 1) == 0)]; 
index = reshape(reshape(index, [25 12]).', [], 1); 

你會再使用該索引來重新排列你的標籤陣列的行和任何相關的數據(如圖像數據的陣列):

labels = labels(index, :); 
otherData = otherData(index, :);