代码备份:处理 SUN397 的代码,将其分为 80% 训练数据 以及 20% 的测试数据

简介: 处理SUN397 的代码,将其分为80% 训练数据以及20% 的测试数据 2016-07-27 1 %% Code for Process SUN397 Scene Classification 2 % Just the a part : 24 kinds ...
 

处理SUN397 的代码,将其分为80% 训练数据以及20% 的测试数据

2016-07-27

 1 %% Code for Process SUN397 Scene Classification 
 2 %     Just the a part : 24 kinds and 6169 images total 
 3 %     used for train a initial classifier and predict the additional dataset.
 4 clc; 
 5 impath = '/home/wangxiao/Downloads/SUN397/SUN397/a/';
 6 files = dir(impath); 
 7 label = -1 ; 
 8 
 9 train_fid = fopen('/home/wangxiao/Downloads/SUN397/selected_sun/train_list.txt', 'a');
10 test_fid   = fopen('/home/wangxiao/Downloads/SUN397/selected_sun/test_list.txt', 'a');
11 
12 train_im_savePath = '/home/wangxiao/Downloads/SUN397/selected_sun/train_images/' ; 
13 test_im_savePath = '/home/wangxiao/Downloads/SUN397/selected_sun/test_images/' ; 
14 
15 for i = 3:size(files, 1)
16 %     disp( [' ==> disp current ', num2str(i-2), '/', num2str(size(files, 1) - 2) , ' waiting . . . ' ]) ; 
17     label = label + 1; 
18     category = files(i).name ; 
19     newPath = [impath, category, '/'] ; 
20     images = dir([newPath, '*.jpg']) ;
21     
22     for j = 1:size(images, 1)
23         disp( [' ==> deal with Class: ', num2str(i-2), '        ==> disp image:  ', num2str(j), '/', num2str(size(images, 1) - 2) , ' waiting . . . ' ]) ; 
24         num_per_kind = size(images, 1) - 2 ; 
25         random_num = randperm(size(images, 1)) ;
26         
27         num_train = round( num_per_kind * 0.8 ) ;     %% number of train data 
28         num_test   = round ( num_per_kind * 0.2 )  ;   %% number of test data 
29          
30         %% train data 
31        
32         if j <=  num_train
33              
34             idx = random_num(j) ; 
35             trainImage_name =  images(idx).name ;  
36             im = imread([newPath, trainImage_name]);
37             im = imresize(im, [256, 256]) ; 
38             imwrite( im, [train_im_savePath, trainImage_name]) ; 
39             fprintf(train_fid, '%s ' ,  num2str(trainImage_name) ) ; 
40             fprintf(train_fid, '%s ', ' ') ; 
41             fprintf(train_fid, '%s \n', num2str(label)) ; 
42         else
43             if j <  num_per_kind
44                 idx2 = random_num(j) ; 
45                 testImage_name =  images(idx2).name ;  
46                 im2 = imread([newPath, testImage_name]);
47                 im2 = imresize(im2, [227, 227]) ; 
48                 imwrite( im2, [test_im_savePath, testImage_name]) ; 
49                 fprintf(test_fid, '%s ' ,  num2str(testImage_name) ) ; 
50                 fprintf(test_fid, '%s ', ' ') ; 
51                 fprintf(test_fid, '%s \n', num2str(label)) ; 
52             else
53                 break; 
54             end
55         end 
56         
57         
58  
59         
60   
61         
62     end
63     
64 end
 

  

 

 

 

path = '/home/wangxiao/Downloads/SUN397/Sun-100/';
file1 = importdata([path, 'Sun_100_Labeled_Train_0.5_.txt' ]);
file2 = importdata([path, 'Sun_100_UnLabel_Train_0.5_.txt' ]); 
file3 = importdata([path, 'Sun_100_Test_0.5_.txt' ]);

%% return the index of searched vector.  
[C, ia, ic] = unique(file1.data) ; 
labelMatrix = zeros(size(file1.data)) ;     
for i = 1:size(ia, 1)
    count = i-1; 
    index_1 = ia(i, 1) ; % start index 
    index_2 = ia(i+1, 1) ; % end index
    labelMatrix(index_1:index_2, 1) = count ;
end
% select 80 classes.
    select_labelMatrix = labelMatrix(1:9060) ;



%% return the index of searched vector.  
[C, ia, ic] = unique(file2.data) ; 
labelMatrix = zeros(size(file2.data)) ;     
for i = 1:size(ia, 1)
    count = i-1; 
    index_1 = ia(i, 1) ; % start index 
    index_2 = ia(i+1, 1) ; % end index
    labelMatrix(index_1:index_2, 1) = count ;
end
% select 80 classes.
     select_labelMatrix_2 = labelMatrix(1:9180) ;



%% return the index of searched vector.  
[C, ia, ic] = unique(file3.data) ; 
labelMatrix = zeros(size(file3.data)) ;     
for i = 1:size(ia, 1)
    count = i-1; 
    index_1 = ia(i, 1) ; % start index 
    index_2 = ia(i+1, 1) ; % end index
    labelMatrix(index_1:index_2, 1) = count ;
end
% select 80 classes.
    select_labelMatrix_3 = labelMatrix(1:4560) ;

%% save the selected 80 classes into txt files. 
savePath = '/home/wangxiao/Downloads/SUN397/Sun-100/';
fid1 = fopen([savePath, 'Sun_80_50%_Labeled_data.txt'], 'a');
fid2 = fopen([savePath, 'Sun_80_50%_Unlabeled_data.txt'], 'a');
fid3 = fopen([savePath, 'Sun_80_50%_test_data.txt'], 'a');

for i = 1:size(select_labelMatrix, 1)
    imageName = file1.textdata{i, 1} ; 
    imageLabel = select_labelMatrix(i, 1) ; 
    fprintf(fid1, '%s ', num2str(imageName)) ; 
    fprintf(fid1, '%s\n ', num2str(imageLabel)) ; 
end

for i = 1:size(select_labelMatrix_2, 1)
    imageName = file2.textdata{i, 1} ; 
    imageLabel = select_labelMatrix_2(i, 1) ; 
    fprintf(fid2, '%s ', num2str(imageName)) ; 
    fprintf(fid2, '%s\n ', num2str(imageLabel)) ; 
end

for i = 1:size(select_labelMatrix_3, 1)
    imageName = file3.textdata{i, 1} ; 
    imageLabel = select_labelMatrix_3(i, 1) ; 
    fprintf(fid3, '%s ', num2str(imageName)) ; 
    fprintf(fid3, '%s\n ', num2str(imageLabel)) ; 
end

  

相关文章
|
1月前
|
机器学习/深度学习 PyTorch 算法框架/工具
目标检测实战(一):CIFAR10结合神经网络加载、训练、测试完整步骤
这篇文章介绍了如何使用PyTorch框架,结合CIFAR-10数据集,通过定义神经网络、损失函数和优化器,进行模型的训练和测试。
102 2
目标检测实战(一):CIFAR10结合神经网络加载、训练、测试完整步骤
|
1月前
|
数据采集 机器学习/深度学习 大数据
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
这篇文章详细介绍了C3D架构在行为检测领域的应用,包括训练和测试步骤,使用UCF101数据集进行演示。
45 1
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
|
1月前
|
机器学习/深度学习 人工智能 监控
提升软件质量的关键路径:高效测试策略与实践在软件开发的宇宙中,每一行代码都如同星辰般璀璨,而将这些星辰编织成星系的过程,则依赖于严谨而高效的测试策略。本文将引领读者探索软件测试的奥秘,揭示如何通过精心设计的测试方案,不仅提升软件的性能与稳定性,还能加速产品上市的步伐,最终实现质量与效率的双重飞跃。
在软件工程的浩瀚星海中,测试不仅是发现缺陷的放大镜,更是保障软件质量的坚固防线。本文旨在探讨一种高效且创新的软件测试策略框架,它融合了传统方法的精髓与现代技术的突破,旨在为软件开发团队提供一套系统化、可执行性强的测试指引。我们将从测试规划的起点出发,沿着测试设计、执行、反馈再到持续优化的轨迹,逐步展开论述。每一步都强调实用性与前瞻性相结合,确保测试活动能够紧跟软件开发的步伐,及时适应变化,有效应对各种挑战。
|
1月前
|
机器学习/深度学习 编解码 监控
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章详细介绍了如何使用YOLOv8进行目标检测任务,包括环境搭建、数据准备、模型训练、验证测试以及模型转换等完整流程。
1533 1
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
1月前
|
PyTorch 算法框架/工具 计算机视觉
目标检测实战(二):YoloV4-Tiny训练、测试、评估完整步骤
本文介绍了使用YOLOv4-Tiny进行目标检测的完整流程,包括模型介绍、代码下载、数据集处理、网络训练、预测和评估。
118 2
目标检测实战(二):YoloV4-Tiny训练、测试、评估完整步骤
|
1月前
|
存储 测试技术 数据库
数据驱动测试和关键词驱动测试的区别
数据驱动测试 数据驱动测试或 DDT 也被称为参数化测试。
|
1月前
|
机器学习/深度学习 监控 计算机视觉
目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
本文介绍了如何使用YOLOv7进行目标检测,包括环境搭建、数据集准备、模型训练、验证、测试以及常见错误的解决方法。YOLOv7以其高效性能和准确率在目标检测领域受到关注,适用于自动驾驶、安防监控等场景。文中提供了源码和论文链接,以及详细的步骤说明,适合深度学习实践者参考。
363 0
目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
1月前
|
机器学习/深度学习 并行计算 数据可视化
目标分类笔记(二): 利用PaddleClas的框架来完成多标签分类任务(从数据准备到训练测试部署的完整流程)
这篇文章介绍了如何使用PaddleClas框架完成多标签分类任务,包括数据准备、环境搭建、模型训练、预测、评估等完整流程。
102 0
目标分类笔记(二): 利用PaddleClas的框架来完成多标签分类任务(从数据准备到训练测试部署的完整流程)
|
1月前
|
机器学习/深度学习 JSON 算法
语义分割笔记(二):DeepLab V3对图像进行分割(自定义数据集从零到一进行训练、验证和测试)
本文介绍了DeepLab V3在语义分割中的应用,包括数据集准备、模型训练、测试和评估,提供了代码和资源链接。
212 0
语义分割笔记(二):DeepLab V3对图像进行分割(自定义数据集从零到一进行训练、验证和测试)
|
1月前
|
机器学习/深度学习 数据采集 算法
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
这篇博客文章介绍了如何使用包含多个网络和多种训练策略的框架来完成多目标分类任务,涵盖了从数据准备到训练、测试和部署的完整流程,并提供了相关代码和配置文件。
56 0
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
下一篇
无影云桌面