4、Caffe-python

 

 

4.1 初识数据可视化

首先将caffe的根目录作为当前目录,然后加载caffe程序自带的小猫图片,并显示。

图片大小为360x480,三通道

import numpy as np #导入模块numpy并以np作为别名,numpy:矩阵运算库

import matplotlib.pyplot as plt  #画图方法,类似matlab 中的plot命令。

%matplotlib inline

#是jupyter notebook里的命令, 意思是将那些用matplotlib绘制图显示在页面里而不是弹出一个窗口

import caffe  #导入caffe模块

caffe_root='/home/wtj/caffe/' #设置当前的工作环境在caffe下

sys.path.insert(0,caffe_root+'python') #我们也把caffe/python加入工作目录

import os,sys  #os方便使用操作系统函数,sys:负责程序与python解释器的交互

os.chdir(caffe_root) #更换工作目录

 

 

im = caffe.io.load_image('examples/images/cat.jpg') #载入数据相当于MATLAB

#的imread

print im.shape #输出图片im 的形状参数

plt.imshow(im)  #显示图片im

plt.axis('off')   #不显示坐标尺寸

 

注意:%matplotlib inline 之后不能加注释,会导致错误

打开examples/net_surgery/conv.prototxt文件,修改两个地方

一是将input_shape由原来的是(1,1,100,100)修改为(1,3,100,100),即由单通道灰度图变为三通道彩色图。

二是将过滤器个数(num_output)由3修改为16,多增加一些filter, 当然保持原来的数不变也行。

其它地方不变,修改后的prototxt如下:只有一个卷积层

! cat examples/net_surgery/conv.prototxt

# Simple single-layer network to showcase editing model parameters.

name: "convolution"

layer {

  name: "data"    #该层名字

  type: "Input"      #类型输入

  top: "data"       #输出BLob的名字

  input_param { shape: { dim: 1 dim: 3 dim: 100 dim: 100 } }

} #输入层一张图片RGB3通道,100*100

layer {

  name: "conv"      #层名字

  type: "Convolution" #该层的类型,具体地,可选的类型有:Convolution、

  bottom: "data"     #该层的输入数据Blob的名字

  top: "conv"         #该层的输出数据Blob的名字

 convolution_param { # 该层(卷积层)的卷积运算相关的参数

    num_output: 16   #该卷积层的filter个数

kernel_size: 5    

#卷积层的filter的大小(直接用该参数时,是filter的长宽相等,2D情况时,也可以设

#置为不能,此时,利用kernel_h和kernel_w两个参数设定)

    stride: 1    #filter的步长,默认值为1

    weight_filler {  #权值初始化方法

      type: "gaussian"   #gaussian是一种初始化算法

      std: 0.01        #全设为0.01

    }

    bias_filler {   #偏置项初始化方法

      type: "constant"  

      value: 0   #设为0

    }

  }

}

 

 

以上是 4、Caffe-python 的全部内容, 来源链接: utcz.com/a/52150.html

回到顶部