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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python 自动划分训练集和测试集

發(fā)布時(shí)間:2023/12/31 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 自动划分训练集和测试集 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

自動劃分訓(xùn)練集和測試集

  • 前言
  • 代碼
  • 總結(jié)

前言

在進(jìn)行深度學(xué)習(xí)的模型訓(xùn)練時(shí),我們通常需要將數(shù)據(jù)進(jìn)行劃分,劃分成訓(xùn)練集和測試集,若數(shù)據(jù)集太大,數(shù)據(jù)劃分花費(fèi)的時(shí)間太多!!!
不多說,上代碼(python代碼)

代碼

# *_*coding: utf-8 *_*import os import random import shutil import timedef copyFile(fileDir,origion_path1,class_name):name = class_namepath = origion_path1image_list = os.listdir(fileDir) # 獲取圖片的原始路徑image_number = len(image_list)train_number = int(image_number * train_rate)train_sample = random.sample(image_list, train_number) # 從image_list中隨機(jī)獲取0.75比例的圖像.test_sample = list(set(image_list) - set(train_sample))sample = [train_sample, test_sample]# 復(fù)制圖像到目標(biāo)文件夾for k in range(len(save_dir)):if os.path.isdir(save_dir[k]) and os.path.isdir(save_dir1[k]):for name in sample[k]:name1 = name.split(".")[0] + '.xml'shutil.copy(os.path.join(fileDir, name), os.path.join(save_dir[k], name))shutil.copy(os.path.join(path, name1), os.path.join(save_dir1[k], name1))else:os.makedirs(save_dir[k])os.makedirs(save_dir1[k])for name in sample[k]:name1 = name.split(".")[0] + '.xml'shutil.copy(os.path.join(fileDir, name), os.path.join(save_dir[k], name))shutil.copy(os.path.join(path, name1), os.path.join(save_dir1[k], name1))if __name__ == '__main__':time_start = time.time()# 原始數(shù)據(jù)集路徑origion_path = './JPEGImages/'origion_path1 = './Annotations/'# 保存路徑save_train_dir = './train/JPEGImages/'save_test_dir = './test/JPEGImages/'save_train_dir1 = './train/Annotations/'save_test_dir1 = './test/Annotations/'save_dir = [save_train_dir, save_test_dir]save_dir1 = [save_train_dir1, save_test_dir1]# 訓(xùn)練集比例train_rate = 0.75# 數(shù)據(jù)集類別及數(shù)量file_list = os.listdir(origion_path)num_classes = len(file_list)for i in range(num_classes):class_name = file_list[i]copyFile(origion_path,origion_path1,class_name)print('劃分完畢!')time_end = time.time()print('---------------')print('訓(xùn)練集和測試集劃分共耗時(shí)%s!' % (time_end - time_start))

1.需要修改的地方
1)origion_path:圖片路徑
2)origion_path1:xml文件路徑
3)train_rate:訓(xùn)練集比例

2.執(zhí)行文件deal.py后生成
train-img:訓(xùn)練集圖片數(shù)據(jù)
train-xml:訓(xùn)練集xml數(shù)據(jù)
test-img:測試集圖片數(shù)據(jù)
test-xml:測試及xml數(shù)據(jù)

3.train_rate可以根據(jù)實(shí)際情況進(jìn)行調(diào)整,一般train:test是3:1

注:每次劃分?jǐn)?shù)據(jù)都是隨機(jī)的,每次執(zhí)行時(shí)將之前劃分好的數(shù)據(jù)保存或者重命名,不然會重復(fù)寫入到4個(gè)文件夾中

總結(jié)

代碼還是比較簡潔的,有什么問題可以留言。

總結(jié)

以上是生活随笔為你收集整理的python 自动划分训练集和测试集的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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