【Python】【Caffe】五、参数、特征图可视化《python调用caffe模块》
来源:互联网 发布:淘宝千里眼破解版 编辑:程序博客网 时间:2024/05/19 17:49
GitHub代码地址:https://github.com/HandsomeHans/Use-Python-to-call-Caffe-module
一、参数可视化
#!/usr/bin/env python2# -*- coding: utf-8 -*-"""Created on Sun Jul 30 22:15:05 2017@author: hans"""import caffeimport numpy as npimport matplotlib.pyplot as pltdef show(data, padsize=1, padval=0): data = (data - data.min()) / (data.max() - data.min()) 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') plt.show()prototxt='doc/deploy.prototxt'caffe_model='animal_iter_120000.caffemodel'net = caffe.Net(prototxt,caffe_model,caffe.TEST)for name, param_blob in net.params.items():#查看各层参数规模 print name + '\t' + str(param_blob[0].data.shape), str(param_blob[1].data.shape)conv1_param=net.params['conv1'][0].data #提取参数w, 参数维度为(n, k, h, w)show(conv1_param.transpose(0, 2, 3, 1)) # 对于第一层卷积层,转换参数维度为(n, h, w, k)#show(conv1_param.reshape(k*n, h, w) # 对于其他层,要用这句代码。
二、特征图可视化
#!/usr/bin/env python2# -*- coding: utf-8 -*-"""Created on Sun Jul 30 22:15:05 2017@author: hans"""import caffeimport numpy as npimport matplotlib.pyplot as pltdef show(data, padsize=1, padval=0): # padsize为特征图间距 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')prototxt='doc/deploy_lenet.prototxt'caffe_model='models/lenet_iter_10000.caffemodel'mean_file='doc/mnist_mean.npy'im = caffe.io.load_image('doc/3.jpg')im = caffe.io.resize_image(im,(28,28,1))caffe.set_mode_gpu()net = caffe.Net(prototxt,caffe_model,caffe.TEST)transformer = caffe.io.Transformer({'data': net.blobs['data'].data.shape}) #data blob 结构(n, k, h, w)transformer.set_transpose('data', (2, 0, 1)) #改变图片维度顺序,(h, w, k) -> (k, h, w)transformer.set_mean('data', np.load(mean_file).mean(1).mean(1))transformer.set_raw_scale('data', 255)# transformer.set_channel_swap('data', (2, 1, 0)) # RGB -> BGRnet.blobs['data'].data[...] = transformer.preprocess('data', im)net.forward()for name,feature in net.blobs.items(): #查看各层特征规模 print name + '\t' + str(feature.data.shape)conv1_data = net.blobs['conv1'].data[0] #提取特征show(conv1_data)prob_data = net.blobs['prob'].data[0] #各类概率分布prob_data.shape = (len(prob_data),)plt.figure()plt.plot(prob_data)
以上内容部分参考自:http://www.cnblogs.com/denny402/p/5105911.html
阅读全文
0 0
- 【Python】【Caffe】五、参数、特征图可视化《python调用caffe模块》
- caffe预测、特征可视化python接口调用
- caffe预测、特征可视化python接口调用
- 【Python】【Caffe】二、训练输出可视化《python调用caffe模块》
- caffe预测、特征可视化python接口调用(caffe python接口调用示例)
- Caffe 特征图可视化
- Caffe 特征图可视化
- caffe python接口:参数及特征提取
- 【Python】【Caffe】一、生成prototxt文件《python调用caffe模块》
- 【Python】【Caffe】四、classification检测模型《python调用caffe模块》
- 深度学习(九)caffe预测、特征可视化python接口调用
- 深度学习(九)caffe预测、特征可视化python接口调用
- 深度学习(九)caffe预测、特征可视化python接口调用
- 深度学习之-caffe预测、特征可视化python接口调用 (6)
- 深度学习(九)caffe预测、特征可视化python接口调用
- caffe -- Python特征抽取
- caffe python接口:可视化每层图像特征
- win7 caffe使用笔记——特征图可视化(matlab,python两种方式)
- 相似度计算方式的总结:java或python实现代码
- 杭电 4734F(x)(数位dp)
- HDU-2546 饭卡【线性dp】
- mysql5.7.19解压版安装问题
- 摆方格 (数学规律)
- 【Python】【Caffe】五、参数、特征图可视化《python调用caffe模块》
- echarts学习—1(笔记)
- 关于发送http POST请求到另一个系统
- PoolingHttpClientConnectionManager连接池探究
- C++ 全局变量 静态全局变量 傻傻分不清
- Median of two Sorted Arrays (Frequent++)
- 中奖概率算法(可用于刮刮乐、转盘抽奖)
- 剑指Offer——打印1到最大的n位数(好题)(java实现)
- Linux那些事(2)-Linux编译并运行C语言程序