资讯专栏INFORMATION COLUMN

caffe的python插口形成环境变量学习培训

89542767 / 537人阅读

  此篇文章主要是详细介绍了caffe的python插口形成环境变量学习培训,感兴趣的小伙伴可以参考借鉴一下,希望可以有一定的帮助,祝愿大家多多的发展,尽早涨薪


  caffe是C++语言表达所写的,可能大家不太熟,所以想要更方便的编程语言来达到。caffe给予matlab接口和python插口,这几种语言表达就比较简单,并且很容易开展数据可视化,导致学习培训更为迅速,了解更加深刻。


  一年前,我在学习CAFFE时,为了能加深记忆,所以写出了生活随笔,拥有多方面的caffe学习文章内容。大半年以往,好多人问起关于python插口和数据可视化的相关问题,如今有点儿空余时间,就再度写出某些生活随笔,各位一起学习。有一些重复具体内容,我也就不多说,如果你们感兴趣的话可换步:


  上面这些实际操作全是练习以前的预备处理实际操作,不论是用哪种插口,都会用到。


  要怎么写环境变量


  最先,我们应该把握的,便是要怎么写环境变量,根据下方的编码去学习:

</>复制代码

  1.   #-*-coding:utf-8-*-
  2.   """
  3.   SpyderEditor
  4.   """
  5.   fromcaffeimportlayersasL,paramsasP,to_proto
  6.   path='/home/xxx/data/'#保存数据和配置文件的路径
  7.   train_lmdb=path+'train_db'#训练数据LMDB文件的位置
  8.   val_lmdb=path+'val_db'#验证数据LMDB文件的位置
  9.   mean_file=path+'mean.binaryproto'#均值文件的位置
  10.   train_proto=path+'train.prototxt'#生成的训练配置文件保存的位置
  11.   val_proto=path+'val.prototxt'#生成的验证配置文件保存的位置
  12.   #编写一个函数,用于生成网络
  13.   defcreate_net(lmdb,batch_size,include_acc=False):
  14.   #创建第一层:数据层。向上传递两类数据:图片数据和对应的标签
  15.   data,label=L.Data(source=lmdb,backend=P.Data.LMDB,batch_size=batch_size,ntop=2,
  16.   transform_param=dict(crop_size=40,mean_file=mean_file,mirror=True))
  17.   #创建第二屋:卷积层
  18.   conv1=L.Convolution(data,kernel_size=5,stride=1,num_output=16,pad=2,weight_filler=dict(type='xavier'))
  19.   #创建激活函数层
  20.   relu1=L.ReLU(conv1,in_place=True)
  21.   #创建池化层
  22.   pool1=L.Pooling(relu1,pool=P.Pooling.MAX,kernel_size=3,stride=2)
  23.   conv2=L.Convolution(pool1,kernel_size=3,stride=1,num_output=32,pad=1,weight_filler=dict(type='xavier'))
  24.   relu2=L.ReLU(conv2,in_place=True)
  25.   pool2=L.Pooling(relu2,pool=P.Pooling.MAX,kernel_size=3,stride=2)
  26.   #创建一个全连接层
  27.   fc3=L.InnerProduct(pool2,num_output=1024,weight_filler=dict(type='xavier'))
  28.   relu3=L.ReLU(fc3,in_place=True)
  29.   #创建一个dropout层
  30.   drop3=L.Dropout(relu3,in_place=True)
  31.   fc4=L.InnerProduct(drop3,num_output=10,weight_filler=dict(type='xavier'))
  32.   #创建一个softmax层
  33.   loss=L.SoftmaxWithLoss(fc4,label)
  34.   ifinclude_acc:#在训练阶段,不需要accuracy层,但是在验证阶段,是需要的
  35.   acc=L.Accuracy(fc4,label)
  36.   returnto_proto(loss,acc)
  37.   else:
  38.   returnto_proto(loss)
  39.   defwrite_net():
  40.   #将以上的设置写入到prototxt文件
  41.   withopen(train_proto,'w')asf:
  42.   f.write(str(create_net(train_lmdb,batch_size=64)))
  43.   #写入配置文件
  44.   withopen(val_proto,'w')asf:
  45.   f.write(str(create_net(val_lmdb,batch_size=32,include_acc=True)))
  46.   if__name__=='__main__':
  47.   write_net()

  根据以上这一文件信息实行,大家就能得到2个环境变量:train.prototxt和val.prototxt,各自用以练习环节和检验环节。


  图片格式转换成LMDB文档


  这种方法形成环境变量,务必有一个前提条件,便是首先要把原始图片转变成LMDB文档才能。假如我们已经将原始图片做成一个1个目录明细(txt文件,一列一张照片),则可以不LMDB文件格式做为录入数据,能用ImageData做为数据库键入,编码如下所示:


</>复制代码

  1.   #-*-coding:utf-8-*-
  2.   fromcaffeimportlayersasL,paramsasP,to_proto
  3.   path='/home/xxx/data/'
  4.   train_list=path+'train.txt'
  5.   val_list=path+'val.txt'
  6.   train_proto=path+'train.prototxt'
  7.   val_proto=path+'val.prototxt'
  8.   defcreate_net(img_list,batch_size,include_acc=False):
  9.   data,label=L.ImageData(source=img_list,batch_size=batch_size,new_width=48,new_height=48,ntop=2,
  10.   transform_param=dict(crop_size=40,mirror=True))
  11.   conv1=L.Convolution(data,kernel_size=5,stride=1,num_output=16,pad=2,weight_filler=dict(type='xavier'))
  12.   relu1=L.ReLU(conv1,in_place=True)
  13.   pool1=L.Pooling(relu1,pool=P.Pooling.MAX,kernel_size=3,stride=2)
  14.   conv2=L.Convolution(pool1,kernel_size=53,stride=1,num_output=32,pad=1,weight_filler=dict(type='xavier'))
  15.   relu2=L.ReLU(conv2,in_place=True)
  16.   pool2=L.Pooling(relu2,pool=P.Pooling.MAX,kernel_size=3,stride=2)
  17.   conv3=L.Convolution(pool2,kernel_size=53,stride=1,num_output=32,pad=1,weight_filler=dict(type='xavier'))
  18.   relu3=L.ReLU(conv3,in_place=True)
  19.   pool3=L.Pooling(relu3,pool=P.Pooling.MAX,kernel_size=3,stride=2)
  20.   fc4=L.InnerProduct(pool3,num_output=1024,weight_filler=dict(type='xavier'))
  21.   relu4=L.ReLU(fc4,in_place=True)
  22.   drop4=L.Dropout(relu4,in_place=True)
  23.   fc5=L.InnerProduct(drop4,num_output=7,weight_filler=dict(type='xavier'))
  24.   loss=L.SoftmaxWithLoss(fc5,label)
  25.   ifinclude_acc:
  26.   acc=L.Accuracy(fc5,label)
  27.   returnto_proto(loss,acc)
  28.   else:
  29.   returnto_proto(loss)
  30.   defwrite_net():
  31.   #
  32.   withopen(train_proto,'w')asf:
  33.   f.write(str(create_net(train_list,batch_size=64)))
  34.   #
  35.   withopen(val_proto,'w')asf:
  36.   f.write(str(create_net(val_list,batch_size=32,include_acc=True)))
  37.   if__name__=='__main__':
  38.   write_net()


  即第1层从原来的Data类型,成了ImageData类型,不用LMDB文件或平均值文档,但是需要1个txt文件。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/128811.html

相关文章

  • caffepython插口形成solver文件详细说明学习培训

      本文主要是给大家介绍了caffe的python插口形成solver文件详细说明学习培训实例,感兴趣的小伙伴可以参考借鉴一下,希望可以有一定的帮助,祝愿大家多多的不断进步,尽早涨薪  也有一些基本参数必须计算出来的,并不是乱设定。  solver.prototxt的文件参数设置  caffe在训练的时候,需要一些参数设置,我们一般将这些参数设置在一个叫solver.prototxt的文件里面,如...

    89542767 评论0 收藏0
  • caffepython接口deploy形成caffemodel归类新图片

      本文主要是给大家介绍了caffe的python插口生成deploy文件学习培训及其用练习好一点的实体模型(caffemodel)来归类新的图片实例详细说明,感兴趣的小伙伴可以参考借鉴一下,希望可以有一定的帮助,祝愿大家多多的发展,尽早涨薪  caffe的python插口生成deploy文件  假如要将练习好一点的实体模型用于检测新的图片,那必然必须得一个deploy.prototxt文件,这一...

    89542767 评论0 收藏0
  • caffepython插口之手写数字识别mnist案例

      文中主要是给大家介绍了caffe的python插口之手写数字识别mnist案例详细说明,感兴趣的小伙伴可以参考借鉴一下,希望可以有一定的帮助,祝愿大家多多的发展,尽早涨薪  论文引言  机器学习第一个案例一般都是是mnist,只需这个案例彻底搞懂了,其他的便是触类旁通的事了。因为字数缘故,文中不简单介绍环境变量里边每一个指标的具体函义,如果要搞明白的,请参考我之前的微博文章:  数据访问层及主...

    89542767 评论0 收藏0
  • python格式Caffe图片数据信息均值测算学习培训

      此篇文章关键给大家介绍了python格式Caffe图片数据信息均值测算学习培训实例详细说明,感兴趣的小伙伴可以参考借鉴一下,希望可以一些帮助,祝愿大家多多的发展,尽早涨薪  前言  照片减掉均值后,然后再进行练习和检测,也会提高速度与精密度。因而,通常在各类实体模型中都有这种操作。  那么这样的均值是怎么来的呢,实际上是测算全部svm分类器的均值,计算出来后,储存为均值文档,在今后的检测中,就...

    89542767 评论0 收藏0
  • caffepython插口制作loss和accuracy曲线图

      此篇文章主要是给大家介绍了caffe的python插口制作loss和accuracy曲线图实例详细说明,感兴趣的小伙伴可以参考借鉴一下,希望可以有一定的帮助,祝愿大家多多的发展,尽早涨薪  前言  使用python插口来运行caffe程序流程,根本原因是python很容易数据可视化。所以才建议大家在cmd下边运行python程序流程。如果一定要在cmd下边运作,不如直接用c++算了。  强烈推...

    89542767 评论0 收藏0

发表评论

0条评论

89542767

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<