zoukankan      html  css  js  c++  java
  • 可视化CNN神经网路第一层参数

    在上Andrew Ng的课的时候搜集到了课程里面自带的显示NN参数的代码,但是只能显示灰度图,而且NN里的参数没有通道的概念。所以想要获得可视化CNN的参数,并且达到彩色的效果就不行了。

    所以就自己写了一个,对了,是Matlab脚本哈。

     

    function olDisplayFilter(filter, pad)
    %% !Only Show the 1st-3rd channel of filter
    
    %%
    if nargin == 1
        % Between images padding
        pad = 1;
    end
    
    [M, N, P, Q] = size(filter);
    width = ceil(sqrt(Q));
    displayArray = zeros(pad + width * (M+pad), pad + width* (N+pad), 3);
    
    
    count = 1; 
    for i = 1 : width
        for j =1 : width
            if count > Q
                break;
            end
                    
            f_ = filter(:, :, 1:3, count);
            absMinVal = abs(min(f_(:)));
            f_ = f_ + absMinVal;
            absMaxVal = max(abs(f_(:)));
            f_ = f_ / absMaxVal;
            
            displayArray(pad + (i - 1) * (M + pad) + (1 : M),...
                        pad + (j - 1) * (N + pad) + (1: N), :) ...
                        = f_;
            count = count + 1;
        end
    end
    
    imagesc(displayArray, [-1, 1]);
    
    axis image off
    drawnow;
    end
    

      最后得到的效果就是这个样子的:

    cnn

    这个图是加载了imagenet的训练结果第一层参数的效果图,训练结果下载地址在这里:

    http://www.vlfeat.org/matconvnet/models/imagenet-vgg-f.mat

    下载完成这个mat文件后,如果想复现上面这个图的话运行一下这句话:olDisplayFilter(layers{1}.filters) 就可以了。

    另外要是对前面提到的Andrew Ng课程里面显示神经网络参数的代码感兴趣的话,可以戳https://github.com/OleNet/OleNetLib/tree/master/MatLiB,里面的olDisplayNetwork.m和olDisplayData.m都行

  • 相关阅读:
    抽样调查
    一次项目上线发布的感想
    Nginx failing to load CSS and JS files (MIME type error)
    securecrt-active
    golang-http-post
    remove-weknow-ac from mac chrome
    批量写入redis
    golang 修改数组中结构体对象的值的坑
    golang使用json生成结构体
    json定义
  • 原文地址:https://www.cnblogs.com/OleNet/p/4456731.html
Copyright © 2011-2022 走看看