caffe学习记录(代码片段)

chrisinsistpy chrisinsistpy     2022-12-28     576

关键词:

在深度学习零率,caffe是一个非常高效的的图像处理框架,结合了nvidia的cuda,cudnn加速技术,非常适合进行AI CNN方向的图像分类,回归,分割等。

但是由于caffe的教程较少,而且配置比较复杂,可能用的人没有tf那么广泛。

昨天在Ubantu14.04上配置了caffe, CUDA8.0, Cudnn5.1等,从今天开始进行caffe的学习记录总结。

 

跑完make all runtest后,如果运行成功,表示caffe环境配置好了。

 

首先测试一下minist60000+10000

没问题:

技术分享图片

 

然后用caffe自带的框架测试一下cifar分类。下载一个cifar10的数据。

cd ~caffe的root路径

./data/cifar10/get_cifar10 下载数据

./example/cifar10/create_cifar10.sh

然后

./example/cifar10/train_quick.sh 进行训练

这个时候发现一个error: 5232 db_lmdb.hpp:15] check failed : mdb_status == 0(2 vs. 0) No such file or directory 找不到路径

解决方案: 

 

要运行caffe,首先需要有模型,也就是model,AlexNet,GoogleNet等。由多个layer组成,所有参数定义在caffe.proto中,层之间数据流动是以Blobs的方式进行

比如示例代码:

layer 
  name: "cifar"
  type: "Data"
  top: "data"
  top: "label"
  include 
    phase: TRAIN
  
  transform_param 
    mean_file: "examples/cifar10/mean.binaryproto"
  
  data_param 
    source: "examples/cifar10/cifar10_train_lmdb"
    batch_size: 100
    backend: LMDB
  

name: layer name

type: layer type, Data表示数据来源为LevelDB or LMDB

top: 输出层,如果有两个top,则为(data,label)配对模型

bottm: input stuff

include:训练的阶段,实在train 还是test

Transformations: 数据预处理,比如设置scale = 0.00390625,实际是1/255, 讲像素区变为0-1区间

transform_param 
    scale: 0.00390625
    mean_file_size: "examples/cifar10/mean.binaryproto"
    # 用一个配置文件来进行均值操作
    mirror: 1  # 1表示开启镜像,0表示关闭,也可用ture和false来表示
    # 剪裁一个 227*227的图块,在训练阶段随机剪裁,在测试阶段从中间裁剪
    crop_size: 227
  

 

1. 数据来源为数据库

data_param部分:

source:数据来源,数据库目录名称

batch_size:批处理数量

 

可选参数 data param:

 rand_skip: SGD use

 backend: 采用LevelDB or LMDB, default: leveldb

 

2.数据来源为内存:

layer 
  top: "data"
  top: "label"
  name: "memory_data"
  type: "MemoryData"
  memory_data_param
    batch_size: 2
    height: 100
    width: 100
    channels: 1
  
  transform_param 
    scale: 0.0078125
    mean_file: "mean.proto"
    mirror: false
  

 

3.数据来源为HDF5:

layer 
  name: "data"
  type: "HDF5Data"
  top: "data"
  top: "label"
  hdf5_data_param 
    source: "examples/hdf5_classification/data/train.txt"
    batch_size: 10
  

 

4.数据来源图片:

layer 
  name: "data"
  type: "ImageData"
  top: "data"
  top: "label"
  transform_param 
    mirror: false
    crop_size: 227
    mean_file: "data/ilsvrc12/imagenet_mean.binaryproto"
  
  image_data_param 
    source: "examples/_temp/file_list.txt"
    batch_size: 50
    new_height: 256
    new_width: 256
  

必须设置的参数:

  source: 一个文本文件的名字,每一行给定一个图片文件的名称和标签(label)

  batch_size: 每一次处理的数据个数,即图片数

可选参数:

  rand_skip: 在开始的时候,路过某个数据的输入。通常对异步的SGD很有用。

  shuffle: 随机打乱顺序,默认值为false

  new_height,new_width: 如果设置,则将图片进行resize

 

5.数据来源为windows:

layer 
  name: "data"
  type: "WindowData"
  top: "data"
  top: "label"
  include 
    phase: TRAIN
  
  transform_param 
    mirror: true
    crop_size: 227
    mean_file: "data/ilsvrc12/imagenet_mean.binaryproto"
  
  window_data_param 
    source: "examples/finetune_pascal_detection/window_file_2007_trainval.txt"
    batch_size: 128
    fg_threshold: 0.5
    bg_threshold: 0.5
    fg_fraction: 0.25
    context_pad: 16
    crop_mode: "warp"
  

 

caffe学习记录ssd训练+ssdpelee测试(代码片段)

SSD就不多介绍了,是今年非常流行的Objectdetection模型:对各大数据集的测试结果如下表。首先要gitweiliu版本的caffegitclonehttps://github.com/weiliu89/caffe.git 然后在unbantu上对caffe进行配置,百度一下教程#ModifyMakefile.configaccordingtoyourCaf... 查看详情

textcaffe深度学习#caffe(代码片段)

查看详情

用python学习caffe2.使用caffe完成图像目标检测(代码片段)

2.使用Caffe完成图像目标检测本节将以一个快速的图像目标检测网络SSD作为例子,通过PythonCaffe来进行图像目标检测。必须安装windows-ssd版本的Caffe,或者自行在caffe项目中添加SSD的新增相关源代码.图像目标检测网络同图像... 查看详情

用python学习caffe0.前言及介绍(代码片段)

...行了(说到这里,我有点无力了,近年来深度学习发展实在是太快了,完全跟不上学习脚步了,刚刚Caffe有点了解后,马上就要跟不上时代了=_=||)。如果对于现在的我来说,我更愿意推荐去... 查看详情

caffe学习2--blobs,layers与nets(代码片段)

Blobs,Layers与NetsBlobsLayers与NetsBlobsLayersNets后记参考链接:http://caffe.berkeleyvision.org/tutorial/net_layer_blob.htmlCaffe主要就是有Blobs,Layers与Nets三部分组成,当然少不了Caffe内部的自动化机制࿰ 查看详情

20170122-dev-install-caffe(代码片段)

layouttitlecategoriestagsdatedescriptionpost深度学习:玩转caffe之安装blogframeworktools2017-01-2212:20:20-0800CaffeinstallinUbuntuCaffe安装初探引言做深度学习,没用玩过深度学习框架caffe就有点说不过去了。虽然自己的小机器显卡计算能力很... 查看详情

caffe+windows7+visualstudio2015+python+cpu配置记录(代码片段)

...这次算是找对教程和资源了,终于配置成功。本文不记录具体步骤,只给出我参考的链接,需要的人还是去看Github原版较好。这里只记录一些需要注意的地方 查看详情

caffe学习中的一些错误记录

ProtoBufferProtoBuffer是由Google开发的一种可以实现内存与非易失存储介质(如硬盘文件)交换的协议接口。Caffe源码中大量使用ProtoBuffer作为权值和模型参数的载体。在这里我使用的是2.5.0的版本。并且没有安装在系统默认目录/usr/或... 查看详情

ubuntu16.04caffe安装步骤记录(超详尽)(代码片段)

...而言更是欲哭无泪,在我饱受折磨后决定把安装步骤记录下来,尽量详尽清楚明白,避免后来小白重蹈覆辙。安装硬件:inteli5& 查看详情

caffec++中使用训练好的caffe模型,classification工程生成动态链接库——caffe学习六(代码片段)

除了在opencvdnn中使用训练好的model,还可以直接通过classification.exe去查看单张图的训练结果。但是我在使用opencvdnn的时候,发现里面输出的结果和classification.exe并不一样,一时找不到原因,于是还是考虑将classificat... 查看详情

解析caffe框架的prototxt模型文件(代码片段)

...itectureforFastFeatureEmbedding,是一个应用广泛的开源深度学习框架,在TensorFlow出现之前一直是深度学习领域GitHubstar最多的项目,由伯克利视觉学中心(Berke 查看详情

用python学习caffe4.设计自己的网络结构(代码片段)

4.设计自己的网络结构通过前文的例子,我们都知道了Caffe的网络都是一个prototxt的网络结构配置文件定义的,该文件可以用文本工具打开,打开后,我们可以看到如下结构:layername:"data"type:"Data"top:... 查看详情

caffe配置文件详解(代码片段)

主要是遇坑了,要记录一下。solver算是caffe的核心的核心,它协调着整个模型的运作。caffe程序运行必带的一个参数就是solver配置文件。运行代码一般为#caffetrain--solver=*_slover.prototxt在DeepLearning中,往往lossfunction是非凸的,没有解... 查看详情

用python学习caffe7.网络结构的修剪(代码片段)

7.网络结构的修剪网络结构的压缩是近年来研究热点,接下来的两节,我们将介绍DeepCompression的两个策略网络修剪和网络权重共享量化的实现方法,我们通过mnist的LeNet5作为例子,而其他网络的实现也是类似的。关... 查看详情

caffe入门学习规划

第一步,学习吴恩达老师的慕课,注意做笔记,并将不会的问题记录下来第二步,学习周志华老师的《机器学习》,要求同上第三步,学习由CaffeCN提供的《Caffe官方教程中译本》第四步,全面浏览Caffe官方网站第六步,开始进行C... 查看详情

旧记录-1(代码片段)

深度学习tensorflow环境搭建说明1深度学习环境深度学习作为传统神经网络的拓展,随着数据量和计算力的增加,其在计算机视觉、语音语义识别等领域,应用日益广泛。目前,主流的深度学习开源平台有Tensorflow、Caffe、PyTorch、Ker... 查看详情

caffe学习系列(14):caffe代码阅读

知乎上这位博主画的caffe的整体结构:https://zhuanlan.zhihu.com/p/21796890?refer=hsmyy  Caffe做train时的流程图,来自http://caffecn.cn/?/question/242  查看详情

caffe2源码解析之core(代码片段)

...tensorflow源码解析系列文章索引)之后,很想跟其它深度学习框架的实现进行对比,根据框架的流行程度,先选择了Pytorch。Pytorch的后端核心是直接复用了Caffe2,因此本文针对Caffe2源码的core模块进行了简单拆解。目录数据存储与... 查看详情