在做深度學習實驗時,需要訓練和測試較多型別的資料,以此來體現網路架構的合理性。不同的資料集數量不一,且列別繁多,在做影象分類實驗時,如果人工的去篩選和劃分,工作量巨大,還容易犯錯。作為一名合格的程式設計師,不會偷懶是萬萬不行的!
廢話不多說,直接上**:
#!/bin/bash
trainpath="此處寫訓練集的路徑"
validationpath="此處寫測試集的路徑"
# trainpath下的所有資料夾
traindirlist=`ls $trainpath`
# 遍歷存有訓練集的資料夾
for dirname in
$traindirlist
docd
$trainpath/$dirname
# 當前類別資料夾下總數
# 需要轉移到另外對應資料夾下的總數
let filternum=$num*1/4
# 先隨機生成乙個指定範圍的數字作為初始值
res=$
filearr[1]=$res
let i=2
# 將所有生成的隨機數儲存進filearr陣列,作為要轉移的的下標
while(( i<=filternum ));
dores=$
filearr[i]=$res
for((j=1;jdo
numj=$
if [[ $res == $numj ]]; then
unset filearr[i]
i=$i-1
break
fidone
i=$i+1
done
cd$validationpath
mkdir $dirname
for((indexnum=0;indexnum<$filternum;indexnum++))
do# echo $
mv $trainpath/$dirname/$
$validationpath/$dirname
done
done
**幾秒鐘就可以跑完,開啟檔案管理器檢視,已經篩選完畢,省時省力,還能溫習一下 shell 程式設計方面的知識,何樂而不為? shell 指令碼實現檔案打包
將sent資料夾中的txt檔案壓縮到successful中對應資料夾中,若是沒有資料夾建立乙個 test3.sh bin bash date date y m for dir in ls file path file type 1 do 子目錄為資料夾 if echo dir grep then 去...
Shell指令碼實現對檔案編輯
常見linux檔案的編輯命令 vi vim,有時候我們想寫乙個指令碼實現對檔案編輯,這個時候,可能就不夠用了,下面介紹一些辦法 1 echo命令 shell的echo命令常用於字串的輸出 例如 root mdw zxy echo hello world file1 root mdw zxy cat ...
Shell指令碼實現對檔案編輯
常見linux檔案的編輯命令 vi vim,有時候我們想寫乙個指令碼實現對檔案編輯,這個時候,可能就不夠用了,下面介紹一些辦法 1 echo命令 shell的echo命令常用於字串的輸出 例如 root mdw zxy echo hello world file1 root mdw zxy cat ...