caffemodel的卷积层可视化(Python接口)

模型文件为自己训练的caffenet_iter_720.caffemodel,模型配置文件为deploy.prototxt。使用jupyter notebook作为Python可视化工具

#首先导入必要的库

In[1]: import numpy as np

import matplotlib.pyplot as plt

import os,sys,caffe

%matplotlib inline

#设置caffe根目录路径,并动态修改系统路径。os.chdir() 方法用于改变当前工作目录到指定的路径。sys.path.insert(0,*)动态修改系统路径

In[2]: caffe_root = '/home/che/caffe-master/'

os.chdir(caffe_root)

sys.path.insert(0,caffe_root+'python')

#显示的图像大小为10*10,图像的插值是以最近为原则,图像颜色为灰色

In[3]: plt.rcParams['figure.figsize'] = [10,10]

plt.rcParams['image.interpolation'] = 'nearest'

plt.rcParams['image.cmap'] = 'gray'

#加载模型配置文件,即deploy.prototxt文件,和模型文件

In[4]: net = caffe.Net(caffe_root + 'examples/256/deploy.prototxt',

caffe_root + 'examples/256/models/caffenet_iter_720.caffemodel',

caffe.TEST)

[(k, v[0].data.shape) for k, v in net.params.items()]


#编写一个函数用于显示各层参数

In[5]: def show_feature(data, padsize = 1,padval = 0)

data - = data.min()

data /= data.max()


n = int(np.ceil(np.sqrt(data.shape[0])))

padding = ( ( 0 ,  n ** 2 - data.shape [ 0 ] ) , ( 0 , padsize) , ( 0 , padsize) ) + ( ( 0 , 0 ) , ) * ( data.ndim - 3 )

data = np.pad(data , padding , mode = 'constant' , constant_values = (padval , padval ) )

data = data.reshape( (n , n ) + data.shape[1:] ).transpose((0,2,1,3) + tuple(range(4,data.ndim +1 ) ) )

data = data.reshape( (n * data.shape[1],n * data.shape[3] ) + data.shape[4:])

plt.imshow(data)

plt.axis('off')

#显示conv1权值参数。参数有两种类型:权值和偏置。此处仅显示权值["conv1"][0]

In[6]: weight = net.params["conv1"][0].data

print weight.shape

show_feature(weight.transpose(0,2,3,1))


#显示conv2的前1024个像素的权值参数

In[7] weight = net.params["conv2"][0].data

print weight.shape

show_feature(weight.reshape(256*48,5,5)[:1024])


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Cche1

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

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

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

打赏作者

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

抵扣说明:

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

余额充值