参考网站

a)   https://zhuanlan.zhihu.com/p/24833574?utm_source=tuicool&utm_medium=referral

b)   https://github.com/yosinski/deep-visualization-toolbox

c)   https://zhuanlan.zhihu.com/p/22129880?refer=startdl

d)   http://jingyan.baidu.com/article/8ebacdf0cdc64949f75cd555.html

最近在研究深度学习的各种框架,目前研究到深度学习常用的一些辅助工具,比如说可视化工具,可以得到深度学习模型每一层的可视化结果,便于加深对于深度学习各种网络模型的理解。

目前调研到的可视化工具主要有:

今天只关注在Azure的Ubuntu Server 14.04虚拟机中的Deep Visualization Toolbox的安装和使用。

1. 创建Azure Ubuntu Server 14.04虚拟机并实现远程桌面访问

a)   创建Azure虚拟机(Ubuntu Server 14.04)

Azure是微软的公有云平台,其上提供各种强大的功能,今天使用的是Azure上提供的IaaS服务——虚拟机服务。首先需要有一个Azure的订阅,才能使用Azure上面提供的各种各样的资源服务。

i.       登录Azure (https://portal.azure.com

ii.      在左侧菜单中选择虚拟机服务,点击Ubuntu Server,选择Ubuntu Server 14.04 LTS,选择“创建”

在Azure Ubunt Server 14.04虚机中使用Deep-Visualization-Toolbox-LMLPHP

iii.       填写设备参数,包括虚机名称、虚机类型、用户名、密码、选择订阅、资源组以及位置信息,点击“确认”

在Azure Ubunt Server 14.04虚机中使用Deep-Visualization-Toolbox-LMLPHP

iv.      选择虚机大小,不同大小的费用不相同(一般会有推荐,也可以点击查看更多,查看所有虚机大小选项)

在Azure Ubunt Server 14.04虚机中使用Deep-Visualization-Toolbox-LMLPHP

v.       配置虚拟网络和存储等信息

在Azure Ubunt Server 14.04虚机中使用Deep-Visualization-Toolbox-LMLPHP

vi.      选择购买,开始部署虚机,约10分钟

b)   打开远程桌面访问端口

为了保证最高的安全性,微软Azure部署的Linux虚机最初只支持SSH(TCP/22)连接。为了实现远程桌面连接,需要打开RDP(TCP/3389)连接。这里就涉及到网络安全组的概念。网络安全组可以简单理解为一套端口打开或者关闭的组合,控制连接到虚机的端口状态。

下面就来打开RDP连接:

找到部署的虚机(如CaffeVM),点击左侧菜单中的网卡(NIC)菜单,选择列表中的相应的网卡。

在Azure Ubunt Server 14.04虚机中使用Deep-Visualization-Toolbox-LMLPHP

在弹出的菜单中选择网络安全组,并选择相对应的网络安全组。

在Azure Ubunt Server 14.04虚机中使用Deep-Visualization-Toolbox-LMLPHP

选择“Inbound security rules”,点击添加按钮

在Azure Ubunt Server 14.04虚机中使用Deep-Visualization-Toolbox-LMLPHP

添加一个RDP(TCP/3389)连接

在Azure Ubunt Server 14.04虚机中使用Deep-Visualization-Toolbox-LMLPHP

最后重启虚机即可。

c)   Ubuntu Server 14.04安装图形界面及远程桌面访问(此部分参考文档d)

  • 安装xrdp:

命令行模式输入“sudo apt-get install xrdp”

  • 安装vnc4server (Virtual Network Computing)

命令行模式输入“sudo apt-get install vnc4server”

  • 安装xfce4 (一个轻量级的类Unix的桌面操作系统)

命令行模式输入"sudo apt-get install xubuntu-desktop"-->回车-->输入root用户的密码-->回车-->输入"y"-->回车-->输入"echo "xfce4-session" >~/.xsession"-->回车-->输入"sudo service xrdp restart"-->回车,安装完成。

注意:这样安装之后,使用terminal的时候tab补全的会出现问题,此时可以这样解决:

首先依次打开Application Menu > Settings > Window Manager, 选择“Keyboard”标签页,清除“Switch window for same application”设置即可。

d)   最后查询虚机的public IP (如果没有使用静态IP服务,Azure虚机每次关机后都会释放IP,重启后重新分配public IP),然后远程桌面连接即可(登录用户名和密码是创建虚机的时候设置的)

在Azure Ubunt Server 14.04虚机中使用Deep-Visualization-Toolbox-LMLPHP

在Azure Ubunt Server 14.04虚机中使用Deep-Visualization-Toolbox-LMLPHP

2. 在虚拟机中安装Caffe和Deep Visualization Toolbox

(此部分参考文档a、b,操作就不重复,只是记录一下操作中遇到的问题以及解决办法)

问题1: Step 2的时候安装scipy的时候报错,提示没有scipy模块。查询之后发现安装python-scipy即可(部署的虚机默认是安装该模块)

问题2: 在编辑settings_local.py的时候,不仅要设置caffevis_caffe_root,而且还要设置caffevis_mode_gpu = False, 否则不使用GPU的话会报错(我们部署的ubuntu虚机不带GPU,Azure上也提供GPU虚机,可参考 http://www.cnblogs.com/ToBeCoder/p/6491864.html)

最终结果:运行成功!!!

在Azure Ubunt Server 14.04虚机中使用Deep-Visualization-Toolbox-LMLPHP

这个工具还是挺有意思的,可以看到每层每个神经元的结构和内容,并且可以进行可视化。左上角是输入图片,中间的部分是对图片经过网络(这里是CaffeNet)进行前向传播之后得到feature map的可视化,我们可以通过上下左右控制光标移动,按'h'键可以查看按键的功能,我们尝试移动一下光标,看一下conv5的第151个feature map, 左边的中间区域是feature map的放大版本,右侧上方的九张图片是参数化的可视化方法(gradient ascent),这里暂且不提,右侧中间区域就是使用在上面提到的方法,得到的这个feature map的前9张响应图片块,下方是对这几张图片进行反卷积的结果。

基本的按键:

e 切换下一张

w 切换上一张

b 对某一个feature map进行反卷积

o 光标不变,切换下一层

u 光标不变,切换上一层

h 打开帮助菜单

05-11 18:23