网络怎么分类,如何快速分类管理,怎样快速分类

  网络怎么分类,如何快速分类管理,怎样快速分类

  本系列文章由@yhl_leo出品,转载请注明出处。

  文章链接:http://blog . csdn . net/yhl _ Leo/article/details/53727411

  在以前的一篇博客中,我整理了如何根据CIFAR10的数据组织方式,制作自己的数据集,然后略微调整张量流提供的演示进行训练,获得了一些关注,现在重新公布一个简单的方法,不需要制作像CIFAR10那样的数据集,也不用一个本地内存数据库数据格式,直接使用原始数据,利用框架训练简单的分类网络。

  发布于GitHub:yh Leo/CreateSimpleNetworks .

  在框架的层中,已有图像数据层,对于图像标签类型的训练数据,数据读取过程很简单:

  日志(信息)"打开文件"源;STD:if流infile(源。c _ str());弦线;尺寸位置标签;while (std:getline(infile,line)){ pos=line。find _ last _ of();label=atoi(line.substr(位置1))。c _ str());线条_。push _ back(STD:make _ pair(line。substr(0,pos),标签));}检查(!线条_。empty())"文件为空";if (this-layer_param_ .image_data_param().shuffle()) { //随机洗牌数据日志(信息)"洗牌数据";常数无符号int prefetch _ RNG _种子=卡菲_ RNG _兰德();预取_rng_ .重置(新咖啡* RNG(预取_ rng _种子));无序播放图像();}日志(信息)"总共"行size()图像。即,需要制作训练文件列表格式为:

  ./path/img1.jpg 0/path/img2.jpg 1.完成训练文件列表后,简单搭建起一个小型网络:

  指定好train.prototxt,solver.prototxt和deploy.prototxt文件,就可以训练。

  启动训练:

  # #火车。py # # from _ _ future _ _ import division import numpy as NP import sys caffe _ root=/path/caffe/ sys。路径。insert(0,caffe _ root)导入caffe # init caffe。set _ mode _ GPU()caffe。set _ device(0)solver=caffe .SGD解算器(/path/Models/solver。proto txt )求解器。步骤(60000)批量测试:

  将numpy作为npimport操作系统导入,cv2导入时间导入咖啡#确保框架在大蟒路径上:caffe _ root=/Path/caffe/导入系统系统。路径。插入(0,caffe _ root python )caffe。set _ mode _ GPU()caffe。set _ device(0)def find images(dir,topdown=True): im_list=[]如果不是OS。路径。exists(dir):print“不存在{ }的路径!”。format(dir) raise else: for root,dirs,files in os.walk(dir,top down):for fl in files:im _ list。追加(操作系统。路径。join(root,fl))return im _ list data _ root=/path/test/test 1 test _ lst=find images(data _ root)save folder=/path/test/ name= test1。txt outdir=open(保存文件夹名, w );net=caffe .net(/path/Models/xh _ deploy。 /path/train/net _ ITER _ 60000。咖啡馆模式,咖啡馆.TEST)time _ consume=[]for idx in range(len(TEST _ lst)):im=cv2。im read(TEST _ lst[idx],cv2 .im read _ UNCHANGED)sp=im。形状in _=NP。array(im,dtype=np.float32) in_=in_[:-1] in_=in_ .转置((2,0,1)) net.blobs[data].整形(1,*in_ .shape) net.blobs[data].数据[.]=开始时间=时间。时钟()网。forward()end=time。clock()time _ consum。追加(结束-开始)熔丝=净。斑点.data[0] fname=test_lst[idx].split(/)[-1]outdir。写( % s %)。3f %。3f %。3f n“%(fname,fuse[0],fuse[1],fuse[2]))print sum(time _ consum)/len(time _ consum)outdir。关闭()测试结果(数据集分为两类),因此四列分别对应着:文件名,标签为0的概率,标签为一的概率和其它类别的概率:

  1-1.jpg 1.000 0.000 0.0001-2.jpg 1.000 0.000 0.0001-3.jpg 1.000 0.000 0.0001-4.jpg 1.000 0.000 0.0001-5.jpg 1.000 0.000 0.0001-6.jpg 1.000 0.000 0.0001-7.jpg 1.000 0.000 0.000 0 0.0001-1.jpg 0.594 0.405 0.0011002-1 . jpg.转载于:https://www。cn博客。com/呵呵哈哈/p/6332107。超文本标记语言

网络怎么分类,如何快速分类管理,怎样快速分类