怎么制作自己的数据集
我們在做深度學習時,一般都是跑別人公開的數據集,如果想要跑自己的數據集怎么辦?今天就記錄一下我自己用的一種方法。
1、假設待分類一共有n類
2、新建一個文件夾,在該文件夾下新建n子個文件夾和n個對應的txt文件。將對應分類的圖片放入到新建的分類文件夾中。假設? ? ? ? ? ?訓練圖片子文件夾名稱分別為train_1到train_n,相對應的txt文件命名為train_1.txt到train_2.txt
3、使用如下命令:將每個子文件夾的內容(圖像的名字)和標簽寫到txt文件中。
import os DIRECTORY= "C:\\Users\\FT\\jupyter\\train_1"#這里是自己子文件夾的圖片的位置,train_1到train_n f = open('C:\\Users\\FT\\jupyter\\train_1.txt','w') #txt文件位置train_1到train_n files=os.listdir(DIRECTORY) for file in files:f.writelines(file+“ “+’num_class’)#num_class 是該類圖像對應的分類一般用0-9f.write('\n') f.close()? ? ? 寫入的過后的txt文件如下:
?4、將所有的train_n.txt文件復制到一個總的txt文件命名為train.txt。這個txt文件包括了所有訓練圖片的名字和對應的標簽.。并將? ? ? ? train_1到train_n文件夾中所有的圖片復制到一個文件夾train中
5、使用下面的命令將該train.txt文件中圖片對應名字的圖片和標簽取出來。
??
DIRECTORY= "C:\\Users\\FTM\\jupyter\\train"#這里是自己的所有圖片的位置 f = open('C:\\Users\\FTM\\jupyter\\train.txt','r')#產生一個0-130的隨機序列。130 是自己訓練圖片的總張數。用于將train.txt中的數據隨機排序,訓練時生成隨機的batch list=[] for i in range(0,130):list.append(i) random.shuffle(list)##########分開train.txt中的數據############### num=[] #labels數據集 imgs=[]#data數據 line=f.readline() while line:a = line.split()#將txt分成兩列 data = a[0] # 這是選取圖像的名稱,一般是xxx.jpg或其他圖片格式imgs.append(data) #將其添加在列表之中label = a[1] # 這是選取圖像的標簽,一般是0-9的數字num.append(label)line = f.readline() f.close()##############讀取圖片數據######################batch=[] #圖像數據labels=[] #標簽for j in range(len(list)): #隨機取出train文件夾中的圖像num_1=list[j]file_path=DIRECTORY+"\\"+imgs[num_1] #圖像的位置img=cv2.imread(file_path) #將圖像的信息讀出來img=cv2.resize(img,(32,32),interpolation=cv2.INTER_CUBIC) #將圖像變為指定大小batch.append(img)#圖像數據存入batch中labels.append(num[num_1])#標簽數據存入到labels中?6、使用時使用如下數據變換操作:
? ? ? ?1)、將batch中的圖像數據分批。即設置batch_size大小
?????? 2)、將batch數據轉為Tensor : batch_train=torch.Tensor(batch).permute(0,3,2,1)/255
? ? ? ?3)、? 將labels數據做如下變換:
? ? ? ? ? ? ? ? label1=[int(x)for x in label] #因為前面txt中加的標簽是一個str
? ? ? ? ? ? ? ? label1=torch.Tensor(label1).type(torch.LongTensor)
? ? ? 4)、到這一步,數據就完全處理好了,可以送入神經網絡訓練了。
7、如果有什么待改進和其他方法,歡迎在下面留言。上面這個步驟經過我試過是可以使用的。
?
總結
以上是生活随笔為你收集整理的怎么制作自己的数据集的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bootstraptable获得所有行_
- 下一篇: POJ_2513Colored Stic