caffe 中如何打亂訓練數據


第一:

可以選擇在將數據轉換成lmdb格式時進行打亂;

設置參數--shuffle=1;(表示打亂訓練數據)

默認為0,表示忽略,不打亂。

 

打亂的目的有兩個:防止出現過分有規律的數據,導致過擬合或者不收斂。

在caffe中可能會使得,在模型進行測試時,每一個測試樣本都輸出相同的預測概率值。

 

或者,直接打亂訓練文件的標簽文件:train.txt

 

方法如下:

1)將 train_160309-train.txt按行打亂,每行內容則保持不變,命令:

  1. cd 存放文件的路徑  
  2. awk 'BEGIN{ 100000*srand();}{ printf "%s %s\n", rand(), $0}'   train_160309-train.txt |sort -k1n | awk '{gsub($1FS,""); print $0}'   

2)但這樣處理后只是在屏幕上輸出顯示,如果需要將輸出寫入新的文本train.txt,則在末尾加上 | tee train.txt:

  1. sudo awk 'BEGIN{ 100000*srand();}{ printf "%s %s\n", rand(), $0}'   train_160309-train.txt |sort -k1n | awk '{gsub($1FS,""); print $0}' | tee train.txt  

3)如果不需要在屏幕上輸出顯示,直接將輸出寫入新的文本train.txt,則在末尾將 | tee 換作 > 即可:

  1. sudo awk 'BEGIN{ 100000*srand();}{ printf "%s %s\n", rand(), $0}'   train_160309-train.txt |sort -k1n | awk '{gsub($1FS,""); print $0}' > train.txt  

 

附:

1、awk命令詳解

2、tee命令詳解

 

參考:https://blog.csdn.net/u010555688/article/details/50475739


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM