日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

怎么制作自己的数据集

發(fā)布時(shí)間:2023/12/10 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 怎么制作自己的数据集 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我們?cè)谧錾疃葘W(xué)習(xí)時(shí),一般都是跑別人公開的數(shù)據(jù)集,如果想要跑自己的數(shù)據(jù)集怎么辦?今天就記錄一下我自己用的一種方法。

1、假設(shè)待分類一共有n類

2、新建一個(gè)文件夾,在該文件夾下新建n子個(gè)文件夾和n個(gè)對(duì)應(yīng)的txt文件。將對(duì)應(yīng)分類的圖片放入到新建的分類文件夾中。假設(shè)? ? ? ? ? ?訓(xùn)練圖片子文件夾名稱分別為train_1到train_n,相對(duì)應(yīng)的txt文件命名為train_1.txt到train_2.txt

3、使用如下命令:將每個(gè)子文件夾的內(nèi)容(圖像的名字)和標(biāo)簽寫到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 是該類圖像對(duì)應(yīng)的分類一般用0-9f.write('\n') f.close()

? ? ? 寫入的過后的txt文件如下:

?4、將所有的train_n.txt文件復(fù)制到一個(gè)總的txt文件命名為train.txt。這個(gè)txt文件包括了所有訓(xùn)練圖片的名字和對(duì)應(yīng)的標(biāo)簽.。并將? ? ? ? train_1到train_n文件夾中所有的圖片復(fù)制到一個(gè)文件夾train中

5、使用下面的命令將該train.txt文件中圖片對(duì)應(yīng)名字的圖片和標(biāo)簽取出來。

??

DIRECTORY= "C:\\Users\\FTM\\jupyter\\train"#這里是自己的所有圖片的位置 f = open('C:\\Users\\FTM\\jupyter\\train.txt','r')#產(chǎn)生一個(gè)0-130的隨機(jī)序列。130 是自己訓(xùn)練圖片的總張數(shù)。用于將train.txt中的數(shù)據(jù)隨機(jī)排序,訓(xùn)練時(shí)生成隨機(jī)的batch list=[] for i in range(0,130):list.append(i) random.shuffle(list)##########分開train.txt中的數(shù)據(jù)############### num=[] #labels數(shù)據(jù)集 imgs=[]#data數(shù)據(jù) line=f.readline() while line:a = line.split()#將txt分成兩列 data = a[0] # 這是選取圖像的名稱,一般是xxx.jpg或其他圖片格式imgs.append(data) #將其添加在列表之中l(wèi)abel = a[1] # 這是選取圖像的標(biāo)簽,一般是0-9的數(shù)字num.append(label)line = f.readline() f.close()##############讀取圖片數(shù)據(jù)######################batch=[] #圖像數(shù)據(jù)labels=[] #標(biāo)簽for j in range(len(list)): #隨機(jī)取出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) #將圖像變?yōu)橹付ù笮atch.append(img)#圖像數(shù)據(jù)存入batch中l(wèi)abels.append(num[num_1])#標(biāo)簽數(shù)據(jù)存入到labels中

?6、使用時(shí)使用如下數(shù)據(jù)變換操作:

? ? ? ?1)、將batch中的圖像數(shù)據(jù)分批。即設(shè)置batch_size大小

?????? 2)、將batch數(shù)據(jù)轉(zhuǎn)為Tensor : batch_train=torch.Tensor(batch).permute(0,3,2,1)/255

? ? ? ?3)、? 將labels數(shù)據(jù)做如下變換:

? ? ? ? ? ? ? ? label1=[int(x)for x in label] #因?yàn)榍懊鎡xt中加的標(biāo)簽是一個(gè)str

? ? ? ? ? ? ? ? label1=torch.Tensor(label1).type(torch.LongTensor)

? ? ? 4)、到這一步,數(shù)據(jù)就完全處理好了,可以送入神經(jīng)網(wǎng)絡(luò)訓(xùn)練了。

7、如果有什么待改進(jìn)和其他方法,歡迎在下面留言。上面這個(gè)步驟經(jīng)過我試過是可以使用的。

?

總結(jié)

以上是生活随笔為你收集整理的怎么制作自己的数据集的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。