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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

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

發布時間:2023/12/31 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 自动划分训练集和测试集 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

自動劃分訓練集和測試集

  • 前言
  • 代碼
  • 總結

前言

在進行深度學習的模型訓練時,我們通常需要將數據進行劃分,劃分成訓練集和測試集,若數據集太大,數據劃分花費的時間太多!!!
不多說,上代碼(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中隨機獲取0.75比例的圖像.test_sample = list(set(image_list) - set(train_sample))sample = [train_sample, test_sample]# 復制圖像到目標文件夾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()# 原始數據集路徑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]# 訓練集比例train_rate = 0.75# 數據集類別及數量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('訓練集和測試集劃分共耗時%s!' % (time_end - time_start))

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

2.執行文件deal.py后生成
train-img:訓練集圖片數據
train-xml:訓練集xml數據
test-img:測試集圖片數據
test-xml:測試及xml數據

3.train_rate可以根據實際情況進行調整,一般train:test是3:1

注:每次劃分數據都是隨機的,每次執行時將之前劃分好的數據保存或者重命名,不然會重復寫入到4個文件夾中

總結

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

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。