面对一堆文件,一行行的数据,确实很难理解深度学习相关的概念,好比训练的数据、构建的网络是怎样的?今天按照书中第16天的内容实践了一翻,终于看到了所谓的深度神经网络的模样。
(参考:《深度学习 21天实战Caffe 第16天 Caffe可视化方法》)

实现可视化的脚本有两种,分别是Matlab和Python,首先安装Matlab。

1、安装Matlab2014a for Linux
下载链接:http://pan.baidu.com/s/1qYJ9tNm (含破解文件)
Note:文件太大,本文在windows系统中下载并解压,得到文件夹 /MATHWORKS_R2014A

安装:
cd MATHWORKS_R2014A
sudo ./install -javadir=/opt/jvm/jdk1..0_77
安装过程中使用破解文件夹Crack内Readme.txt中的序列号
安装完成后使用破解文件夹Crack内 license_405329_R2014a.lic进行激活
并将破解文件夹Crack内Linux文件夹内libmwservices.so copy到 /opt/MATLAB/R2014A/bin/glnxa64
完成安装,命令行下使用sudo matlab即可启动使用

(可视化matlab脚本参照书中例子)

注意:
参数:-javadir=/opt/jvm/jdk1.8.0_77是指定jdk的安装路径,因为Matlab的安装程序是用java编写的
jdk安装参考:Ubuntu 16.04配置JDK1.8.0_77教程

2、准备Python环境

sudo apt update
sudo apt install python-pip python-dev python-numpy
sudo apt install gfortran
sudo pip install -r ${CAFFE_ROOT}/python/requirements.txt
sudo pip install pydot

3、编译pycaffe

cd ${CAFFE_ROOT}
sudo make clean
sudo make -j
sudo make pycaffe

4、绘制网络结构图

cd ${CAFFE_ROOT}/python
python draw_net.py ../models/bvlc_reference_caffenet/train_val.prototxt caffenet.png

## 依次出现问题及解决方法:
1)ImportError: No module named google.protobuf

解决:
在protobuf的pthon目录下对python进行支持
cd protobuf-2.6./python
python setup.py install
(可能会提示缺少文件夹:google/protobuf/compiler,重新建立即可:sudo mkdir google/protobuf/compiler)

2)ImportError: No module named skimage.io

解决:
终端安装:pip install -U scikit-image

3)Exception: “dot” not found in path.

解决:
终端安装:sudo apt-get install graphviz

绘制的网络结构图如下:

Caffe实战四(Caffe可视化方法)的更多相关文章

  1. gRPC学习之四:实战四类服务方法

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  2. Caffe实战五(Caffe可视化方法:编译matlab接口)

    接上一篇文章,这里给出配置caffe后编译matlab接口的方法.(参考:<深度学习 21天实战Caffe 第16天 Caffe可视化方法>) 1.将Matlab目录更新至Caffe的Ma ...

  3. Python数据可视化的四种简易方法

    摘要: 本文讲述了热图.二维密度图.蜘蛛图.树形图这四种Python数据可视化方法. 数据可视化是任何数据科学或机器学习项目的一个重要组成部分.人们常常会从探索数据分析(EDA)开始,来深入了解数据, ...

  4. caffe.pb.h丢失问题解决方法

    https://blog.csdn.net/ThomasCai001/article/details/53940430 错误提示   fatal error: caffe/proto/caffe.pb ...

  5. caffe Python API 之可视化

    一.显示各层 # params显示:layer名,w,b for layer_name, param in net.params.items(): print layer_name + '\t' + ...

  6. Caffe实战一(环境准备及CPU模式下编译)

    经过前几天的折腾,终于把Ubuntu16.04开发环境给搭建了起来,包括win10+Ubuntu双系统的安装.系统安装后的优化等等. 详见之前的文章:Ubuntu16.04.2 LTS 64bit系统 ...

  7. CNN可视化技术总结(四)--可视化工具与项目

    CNN可视化技术总结(一)-特征图可视化 CNN可视化技术总结(二)--卷积核可视化 CNN可视化技术总结(三)--类可视化 导言: 前面介绍了可视化的三种方法--特征图可视化,卷积核可视化,类可视化 ...

  8. 百度地图和高德地图坐标系的互相转换 四种Sandcastle方法生成c#.net帮助类帮助文档 文档API生成神器SandCastle使用心得 ASP.NET Core

    百度地图和高德地图坐标系的互相转换   GPS.谷歌.百度.高德坐标相互转换 一.在进行地图开发过程中,我们一般能接触到以下三种类型的地图坐标系: 1.WGS-84原始坐标系,一般用国际GPS纪录仪记 ...

  9. 【caffe Blob】caffe中与Blob相关的代码注释、使用举例

    首先,Blob使用的小例子(通过运行结果即可知道相关功能): #include <vector> #include <caffe/blob.hpp> #include < ...

随机推荐

  1. Vim经常使用技巧总结2

    我的主力博客:半亩方塘 1. 在光标所在行查找字符在普通模式下用 f{char} 命令,光标会移动到该字符所在的位置.向下反复查找在普通模式下用 ;,向上回退查找用 , 2. 在光标所在行查找与替换在 ...

  2. block-循环引用

    在ARC机制下,app的内存管理由操作系统进行管理,不须要程序猿手动的管理内存,方便了开发.虽然,自己主动释放内存非常方便.可是并不是绝对安全,绝对不会产生内存泄露. 大部分导致iOS对象无法按预期释 ...

  3. spring MVC (学习笔记)

    web.xml 相关配置 <?xml version="1.0" encoding="UTF-8"?><web-app xmlns=" ...

  4. xamarin.Android 实现横向滚动导航

    经过一段时间的练习,自己也做了不少的demo和一些小项目,今天就把这些demo分享给大家,也当做笔记记录到自己的博客中. 这次给大家带来的是HorizontalScrollView实现横向滑动,参考博 ...

  5. All the best open source and Software as a Service (SaaS) tools in one place 工具 工欲善其事必先利其器

    Open Source & SaaS Tools | StackShare https://stackshare.io/categories AfterShip/SaaS: List of S ...

  6. 使用双引擎,让kbmmw 的客户端访问更方便(既给浏览器做服务,也给桌面程序做服务)

    前面我们一直都讲了如何使用kbmmw smarthttpservice 给客户端提供REST  服务.主要都是返回给 浏览器访问的,如果我们使用delphi 开发桌面应用,如何使用这些服务呢?其实一切 ...

  7. 使用POCO发送HTTP(S)请求

    POCO GitHub地址https://github.com/pocoproject/poco http_example.cpp #include <iostream> #include ...

  8. QT实现FTP服务器(二)

    QClientThread类的实现: #include "QClientThread.h" #include <QDebug> /******************* ...

  9. mysql----其他小技巧

    小技巧: min/max优化 在表中,一般都是经过优化的. 如下地区表 id area pid 1 中国 0 2 北京 1 ... 3115 3113 我们查min(id), id是主键,查Min(i ...

  10. atexit函数的使用【学习笔记】

    #include "apue.h" static void my_exit1(void); static void my_exit2(void); int main(void) { ...