現假設我們得到了一批已經分好類的資料,但是這些資料卻沒有做劃分,即沒有分為:training set/dev set/test set,現在,我們將得到的資料做training和dev的劃分。現假設我們對於training和dev的劃分為3:1,則:
# -*- coding: utf-8 -*-
"""created on sun apr 15 22:37:28 2018
@author: daniel
"""import random
import os
import shutil
img_root = "f:/github/caffe_sub/caffe/models/my_caffe_resnet_test/"
test_path = img_root + 'test/'
for root, dirs, files in os.walk(img_root + 'train2/'):
for dir in dirs:
path = os.path.join(test_path, str(dir))#準備當前正在遍歷的資料夾對應於test下的資料夾
folder = os.path.exists(path)
ifnot folder:
os.makedirs(path)
#print("makedirs#:" + str(path))
else:
print("this folder exists!")
for root, dirs, files in os.walk(img_root+'train2/'+str(dir)):
#確定比例:驗證集與訓練集的比例
dev_sets = int(0.25*len(files))
print('dev_sets#:' + str(dev_sets))
for i in range(dev_sets):
#從files中隨機選擇乙個file
random_file = random.choice(files)
#獲得該檔案的路徑
src = os.path.join(img_root+'train2/' + str(dir) + '/'+ random_file)
#將該檔案放到path中
shutil.move(src, path)
#刪除src中的該檔案
src_file = src#os.path.join(src, random_file)
#修改檔案許可權
# os.chmod(src_file, stat.s_iwrite)#由於此處檔案移動到的對應的檔案,故不用刪除了
#刪除該檔案
#os.remove(src_file)
#不僅要刪除檔案中的選中檔案,還要刪除files中列表中的該檔案
print('files#: ' + str(files))
files.remove(random_file)#移動後將其從files列表中刪除
print('files#: ' + str(files))
以上的**將train中的資料隨機選擇了一部分移動到了test中的相對應的檔案中,實現了資料的3:1劃分。 使用caffe訓練自己的資料
這裡先介紹採用image net來訓練自己的資料 假設放在 data train 假設放在 data val 格式樣例 格式樣例 假設這兩個檔案均放在 data 這裡將資料最好放在自己的使用者組裡面,放在別的使用者組,在呼叫image net的時候可能會涉及到許可權問題導致執行失敗。example ...
caffe訓練自己的資料
本文介紹如何使用 caffe 對自己的影象資料進行分類。1 資料庫準備 由於資料收集比較費時,為了簡單說明,我用了兩類,dog和 bird 每種約 300張。train200 張,val100張。新建乙個資料夾 mine 放自己的資料,在 mine 資料夾下新建 train 和val 資料夾,tra...
Caffe 用自己的資料做訓練
1.1資料集分為train和validate,分別寫到train.txt和val.txt中。1.2將準備好的兩個txt,放到caffe root data myfile caffe root是caffe的根目錄,myfile自己命名 將訓練街和驗證集資料夾放到 img full dir1和 img ...