Caffe入门教程2-基本结构

一,Blob, layer和net.:

NET:要运行caffe首先创建一个神经网络(net), net由多个layer和Blob组成;

Layer: 层,层可能由多种算子类型等,如:Data,Convolution,Pooling,layer由很多参数构成;

Blob:  数据buffer,数据在各层之间流动的载体以Blob的形式进行抽象。

数据流动方向由bottom流动到top:

如果某一层没有bottom只有top,则该层为输入层(一般为模型的入口,不仅提供数据的输入,通常数据的预处理(如减去均值, 放大缩小, 裁剪和镜像等),也在这一层设置参数实现);

二,以mnist为例,看layer中的参数:

layer {

  name: "mnist"

  type: "Data"

  top: "data"

  top: "label"

  include {

    phase: TRAIN

  }

  transform_param {

    scale: 0.00390625

  }

  data_param {

    source: "examples/mnist/mnist_train_lmdb"

    batch_size: 64

    backend: LMDB

  }

}

参数含义:

name: 表示该层的名称,可随意取

type: 层类型,如果是Data,表示数据来源于LevelDB或LMDB(数据库)或内存MemoryData图片ImageData等。

top或bottom: 每一层用bottom来输入数据,用top来输出数据。

data 与 label: 在数据层中,至少有一个命名为data的top。如果有第二个top,一般命名为label。

include:用于指定该层是属于训练阶段的层还是属于测试阶段的层;

transform_param:数据预处理,其内部参数如下:

    scale: 0.00390625:将数据由0-255归一化到0-1上

    mean_file_size: 用一个配置文件来进行均值操作

    mirror: 1  1表示开启镜像,0表示关闭,也可用ture和false来表示

    crop_size: 227 剪裁一个 227*227的图块,在训练阶段随机剪裁,在测试阶段从中间裁剪

data_param:数据来源自数据库参数,内部参数如下:

              必须设置的参数:

                 source: 包含数据库的目录名称,如examples/mnist/mnist_train_lmdb

                 batch_size: 每次处理的数据个数,如64

              可选参数:

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

                 backend: 选择是采用LevelDB还是LMDB, 默认是LevelDB.

  memory_data_param,数据来源于内存,内部参数如下:

   层类型:MemoryData

               必须设置的参数:

                  batch_size:每一次处理的数据个数,比如2

                  channels:通道数

                   height:高度

                   width: 宽度

如:

  memory_data_param{

    batch_size: 1

    height: 256

    width: 256

    channels: 3

  }

  image_data_param数据来源于图片,内部参数如下:

  层类型:ImageData

            必须设置的参数:

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

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

            可选参数:

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

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

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

如:

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

  }

}

参考文章:https://www.cnblogs.com/denny402/p/5070928.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PentsunWang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值