caffe可视化工具
来源:互联网 发布:ce修改器6.5源码 编辑:程序博客网 时间:2024/05/21 21:34
一、网络结构可视化
在线可视化工具:http://ethereon.github.io/netscope/#/editor
二、caffemodel的可视化
训练良好:美观光滑的滤波器
训练时间不够或者过拟合:出现噪声图样
可视化代码:test_extract_weights.py
# -*- coding: utf-8 -*-
# file:test_extract_weights.py
import numpy as np
import matplotlib.pyplot as plt
import os
import sys
import caffe
deploy_file = "./mnist_deploy.prototxt" ####改路径
model_file = "./lenet_iter_10000.caffemodel" ####改路径
#编写一个函数,用于显示各层的参数,padsize用于设置图片间隔空隙,padval用于调整亮度
def show_weight(data, padsize=1, padval=0):
#归一化
data -= data.min()
data /= data.max()
#根据data中图片数量data.shape[0],计算最后输出时每行每列图片数n
n = int(np.ceil(np.sqrt(data.shape[0])))
# padding = ((图片个数维度的padding),(图片高的padding), (图片宽的padding), ....)
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))
# 先将padding后的data分成n*n张图像
data = data.reshape((n, n) + data.shape[1:]).transpose((0, 2, 1, 3) + tuple(range(4, data.ndim + 1)))
# 再将(n, W, n, H)变换成(n*w, n*H)
data = data.reshape((n * data.shape[1], n * data.shape[3]) + data.shape[4:])
plt.set_cmap('gray')
plt.imshow(data)
plt.imsave("conv2.jpg",data) ####改路径
plt.axis('off')
if __name__ == '__main__':
#初始化caffe
net = caffe.Net(deploy_file,model_file,caffe.TEST)
print [(k, v[0].data.shape) for k, v in net.params.items()]
#第一个卷积层,参数规模为(50,20,5,5),即50个5*5的1通道filter
weight = net.params["conv2"][0].data
print weight.shape
show_weight(weight.reshape(50*20,5,5)) ####改参数
三、特征图可视化
# -*- coding: utf-8 -*-
# file:test_extract_weights.py
import numpy as np
import matplotlib.pyplot as plt
import os
import sys
import caffe
deploy_file = "./mnist_deploy.prototxt" ####改路径
model_file = "./lenet_iter_10000.caffemodel" ####改路径
test_data = "./5.jpg" ####改路径
#编写一个函数,用于显示各层的参数,padsize用于设置图片间隔空隙,padval用于调整亮度
def show_data(data, padsize=1, padval=0):
#归一化
data -= data.min()
data /= data.max()
#根据data中图片数量data.shape[0],计算最后输出时每行每列图片数n
n = int(np.ceil(np.sqrt(data.shape[0])))
# padding = ((图片个数维度的padding),(图片高的padding), (图片宽的padding), ....)
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))
# 先将padding后的data分成n*n张图像
data = data.reshape((n, n) + data.shape[1:]).transpose((0, 2, 1, 3) + tuple(range(4, data.ndim + 1)))
# 再将(n, W, n, H)变换成(n*w, n*H)
data = data.reshape((n * data.shape[1], n * data.shape[3]) + data.shape[4:])
plt.set_cmap('gray')
plt.imshow(data)
plt.imsave("conv1_data.jpg",data) ####改路径
plt.axis('off')
if __name__ == '__main__':
#如果是用了GPU
caffe.set_mode_gpu()
#初始化caffe
net = caffe.Net(deploy_file, model_file, caffe.TEST)
#数据输入预处理
# 'data'对应于deploy文件:
# input: "data"
# input_dim: 1
# input_dim: 1
# input_dim: 28
# input_dim: 28
transformer = caffe.io.Transformer({'data': net.blobs['data'].data.shape})
# python读取的图片文件格式为H×W×K,需转化为K×H×W
transformer.set_transpose('data', (2, 0, 1))
# python中将图片存储为[0, 1]
# 如果模型输入用的是0~255的原始格式,则需要做以下转换
# transformer.set_raw_scale('data', 255)
# caffe中图片是BGR格式,而原始格式是RGB,所以要转化
transformer.set_channel_swap('data', (2, 1, 0))
# 将输入图片格式转化为合适格式(与deploy文件相同)
net.blobs['data'].reshape(1, 1, 28, 28)
#读取图片
#参数color: True(default)是彩色图,False是灰度图
img = caffe.io.load_image(test_data,color=False)
# 数据输入、预处理
net.blobs['data'].data[...] = transformer.preprocess('data', img)
# 前向迭代,即分类
out = net.forward()
# 输出结果为各个可能分类的概率分布
predicts = out['prob']
print "Prob:"
print predicts
# 上述'prob'来源于deploy文件:
# layer {
# name: "prob"
# type: "Softmax"
# bottom: "ip2"
# top: "prob"
# }
#最可能分类
predict = predicts.argmax()
print "Result:"
print predict
#---------------------------- 显示特征图 -------------------------------
feature = net.blobs['conv1'].data ####改卷积层的名称
show_data(feature.reshape(20,24,24)) ####改参数
- caffe可视化工具
- caffe:网络结构可视化工具
- caffe的层结构可视化工具
- 强烈推荐一个在线caffe网络可视化工具!!
- caffe深度学习网络(.prototxt)可视化工具
- caffe深度学习网络(.prototxt)可视化工具
- 在线caffe网络可视化工具Netscope
- Caffe源码解读(九):Caffe可视化工具
- caffe可视化
- Netscope:支持Caffe的神经网络结构在线可视化工具
- Netscope:一个支持Caffe的神经网络结构在线可视化工具
- Caffe可视化工具digits安装过程来啦。。。。。。
- caffe深度学习网络(.prototxt)在线可视化工具:Netscope Editor
- ubuntu系统中安装caffe可视化工具digits
- netscope——caffe的prototxt模型文件可视化工具
- 【深度学习框架Caffe学习与应用】第四课 Caffe可视化工具
- Caffe net结构可视化
- 可视化caffe模型结构
- java_泛型
- 自制游戏 util.js
- 笔记 -- 贝叶斯定理
- 厉善信息--怎么做才能成为一个出色的程序员?
- Java高并发,如何解决,什么方式解决
- caffe可视化工具
- protobuf-2.5.0.tar.gz的下载与安装
- JavaScript 函数(笔记)
- 自制游戏 package.json
- tp中调用别的控制器的方法
- php无法接收java传递的post参数
- 带你见识Word2013中强大的翻译功能!
- iOS App 的编译过程
- mysql使用MRG_MyISAM(MERGE)实现水平分表