caffe中使用自己的数据训练网络之数据的划分

3人阅读 评论(0) 收藏 举报
分类:

现假设我们得到了一批已经分好类的数据,但是这些数据却没有做划分,即没有分为:training set/dev set/test set,现在,我们将得到的数据做training和dev的划分。现假设我们对于training和dev的划分为3:1,则:

# -*- coding: utf-8 -*-
"""
Created on Sun Apr 15 22:37:28 2018

@author: Daniel
"""

import random
import os
import shutil


img_root = "F:/GitHub/caffe_sub/caffe/models/my_caffe_resnet_test/"

test_path = img_root  + 'test/'
for root, dirs, files in os.walk(img_root + 'train2/'):
    for dir in dirs:
        path = os.path.join(test_path, str(dir))#准备当前正在遍历的文件夹对应于test下的文件夹
        folder = os.path.exists(path)

        if not folder:
            os.makedirs(path)
            #print("makedirs#:" + str(path))
        else:
            print("this folder exists!")
        for root, dirs, files in os.walk(img_root+'train2/'+str(dir)):
            #确定比例:验证集与训练集的比例
            dev_sets = int(0.25*len(files))
            print('dev_sets#:' + str(dev_sets))

            for i in range(dev_sets):
                #从files中随机选择一个file
                random_file = random.choice(files)
                #获得该文件的路径
                src = os.path.join(img_root+'train2/' + str(dir) + '/'+ random_file)
                #将该文件放到path中
                shutil.move(src, path)
                #删除src中的该文件
                src_file = src#os.path.join(src, random_file)

                #修改文件权限
                # os.chmod(src_file, stat.S_IWRITE)#由于此处文件移动到的对应的文件,故不用删除了
                #删除该文件
                #os.remove(src_file)

                #不仅要删除文件中的选中文件,还要删除files中列表中的该文件
                print('files#: ' + str(files))
                files.remove(random_file)#移动后将其从files列表中删除
                print('files#: ' + str(files))

以上的代码将train中的数据随机选择了一部分移动到了test中的相对应的文件中,实现了数据的3:1划分。

查看评论

caffe(7) 训练自己的CNN网络—基于自己建立的数据集

首先参照博客http://www.cnblogs.com/denny402/p/5083300.html ,使用博主的数据训练,前面都很顺利,到最后运行时报内存错误,可能的解决方案为:减小batch_...
  • u014202086
  • u014202086
  • 2017-07-18 15:00:11
  • 611

caffe训练自己的数据

1。准备数据 参:学习笔记3 用自己的数据训练和测试-薛开宇 2。调整图像大小到256×256 3。生成leveldb 数据。将 create_imagenet.sh文件从imagenet文件夹中拷过...
  • baobei0112
  • baobei0112
  • 2015-07-22 14:15:37
  • 2655

Caffe上训练使用自己的数据

接着上篇,上篇讲解了怎么在ubuntu下安装Caffe,如果一切没问题的话应该是可以用了,下面自己测试一下。测试mnist首先切换到caffe-master的主目录,mnist是作为一个演示存在于ca...
  • Gavin__Zhou
  • Gavin__Zhou
  • 2015-08-09 11:52:11
  • 15694

Caffe学习笔记1:linux下建立自己的数据库训练和测试caffe中已有网络

本文旨在linux下建立自己的数据库,并在次基础上训练和测试caffe中已有网络。...
  • qq_28410587
  • qq_28410587
  • 2016-11-30 19:50:48
  • 2221

深度学习Caffe实战笔记(6)Windows caffe平台用Siamese网络跑自己的数据

终于到了介绍如何使用Siamese网络跑自己的数据了,在网上、论坛上、群里关于用Siamese网络的资料很多,但是实战的资料很少,难道是因为太容易了吗?反正博主查阅了各种地方,几乎没有找到Siames...
  • gybheroin
  • gybheroin
  • 2017-01-06 09:16:47
  • 4326

深度学习Caffe实战笔记(3)用AlexNet跑自己的数据

上一篇博客介绍了如何在caffe框架平台下,用LeNet网络训练车牌识别数据,今天介绍用AlexNet跑自己的数据,同样基于windows平台下,会比基于Ubuntu平台下麻烦一些,特别是后面的Sia...
  • gybheroin
  • gybheroin
  • 2017-01-05 17:16:11
  • 7497

caffe 如何训练自己的数据图片

前言caffe是小编在毕业设计做的,在前期也遇到一些问题,现在自己能够整理一下,一方面我们也能够相互讨论,另一方面,自己也能够加强印象。 众所周知,caffe作为一个比较成熟的深度学习框架,里面提供...
  • u012029332
  • u012029332
  • 2016-04-27 09:39:16
  • 3564

微软caffe windows cpu用自己数据 训练和测试AlexNet

第一、  制作自己的数据集 分为train和val两个文件夹,train下面有每个类别的一个单独的文件夹,文件夹里面放着这个类别的图片。 第二、  制作train.txt和val.txt(标签...
  • muwu5635
  • muwu5635
  • 2017-03-05 10:54:02
  • 2743

机器学习 - 使用 Caffe 训练自己的数据集

准备数据 数据转换 生成 meanfile 均值文件 配置网络 1 修改 solverprototxt 2 修改 train_valprototxt 训练网络在上一篇博客写了安装 caffe,这里讲一...
  • chenfs1992
  • chenfs1992
  • 2017-03-30 19:32:00
  • 1870

Caffe - Ubuntu下搭建自己的数据库训练和测试caffenet

因为要用Caffe做医学图像的分类,于是收集了各种医学图像进行训练测试。本次实验参考了逆水之天的博客,也将其中遇到的一些问题记录了下来。...
  • iambool
  • iambool
  • 2017-03-31 12:41:35
  • 705
    个人资料
    持之以恒
    等级:
    访问量: 2796
    积分: 280
    排名: 27万+