从网络结构可视化、caffemodel的可视化、特征图可视化、可视化loss和accurary曲线等四个方面讲可视化
网络结构可视化
有两种办法:draw_net.py工具和在线可视化工具,推荐后者,灵活简便。
1、使用draw_net.py工具
需要安装numpy、gfortran、graphviz、pydot等工具之后,才能执行draw_net.py。
sudo apt-get update
sudo apt-get install python-pip python-dev python-numpy
sudo apt-get install gfortran graphviz
sudo pip install -r ${CAFFE_ROOT}/python/erquirements.txt
sudo pip install pydot
执行无参数的draw_net.py可以看到他支持的参数选项:
usage: draw_net.py [-h] [--rankdir RANKDIR] [--phase PHASE]
input_net_proto_file output_image_file
–rankdir:表示图的方向,从上往下或者从左往右,默认从左往右
执行命令:
./draw_net.py --rankdir TB ./lenet_train_test.prototxt mnist.png
TB:是top和bottom的缩写,表示从上往下
执行结果保存在mnist.png,如图:
2、在线可视化工具
地址:http://ethereon.github.io/netscope/#/editor
操作简单,不赘述
caffemodel的可视化
对卷积层而言如果能够可视化,就能预先判断模型的好坏。卷积层的权值可视化代码如下:
# -*- 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()
#根据