加入收藏 | 设为首页 | 会员中心 | 我要投稿 西安站长网 (https://www.029zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

看懂这篇指南,包你掌握神经网络的“黑匣子”

发布时间:2019-06-04 18:09:32 所属栏目:建站 来源:读芯术
导读:副标题#e# 人类的神经网络是如何运行的?这个问题让很多数据科学家感到困惑。解释某个简单神经网络的工作机制非常容易,但是当某个计算机视觉项目中的层数增加1000倍时,该怎么办呢? 终端用户想要了解模型是如何得到最终结果时,仅用纸和笔来解释深度神经网

上述代码的输出结果如下所示,包含了block5_conv1层的不同参数:

  1. {'name': 'block5_conv1', 
  2.  'trainable': True, 
  3.  'filters': 512, 
  4.  'kernel_size': (3, 3), 
  5.  'strides': (1, 1), 
  6.  'padding': 'same', 
  7.  'data_format': 'channels_last', 
  8.  'dilation_rate': (1, 1), 
  9.  'activation': 'relu', 
  10.  'use_bias': True, 
  11.  'kernel_initializer': {'class_name': 'VarianceScaling', 
  12.   'config': {'scale': 1.0, 
  13.    'mode': 'fan_avg', 
  14.    'distribution': 'uniform', 
  15.    'seed': None}}, 
  16.  'bias_initializer': {'class_name': 'Zeros', 'config': {}}, 
  17.  'kernel_regularizer': None, 
  18.  'bias_regularizer': None, 
  19.  'activity_regularizer': None, 
  20.  'kernel_constraint': None, 
  21.  'bias_constraint': None} 

’block5_conv1’层的可训练参数值是真实的,这意味着之后可以通过进一步模型训练来更新权重。

过滤器——卷积神经网络构件的可视化

过滤器是卷积神经网络的基本组成部分。如下图所示,不同的过滤器会从图像中提取不同类型的特征:

看懂这篇指南,包你掌握神经网络的“黑匣子”

如图所示,每个卷积层都由多个过滤器组成。回顾上一节中提到的‘block5_conv1’层的参数概要显示了该层含有512个过滤器,确实是这个道理。

通过下列编码,可以绘制每VGG16模块的第一个卷积层的首个过滤器:

  1. layers = model.layers 
  2. layer_ids = [1,4,7,11,15] 
  3. #plot the filters 
  4. fig,ax = plt.subplots(nrows=1,ncols=5) 
  5. for i in range(5): 
  6.     ax[i].imshow(layers[layer_ids[i]].get_weights()[0][:,:,:,0][:,:,0],cmap='gray') 
  7.     ax[i].set_title('block'+str(i+1)) 
  8.     ax[i].set_xticks([]) 
  9.     ax[i].set_yticks([]) 

看懂这篇指南,包你掌握神经网络的“黑匣子”

以上输出结果即为不同层的过滤器。由于VGG16只使用3×3过滤器,因此所有过滤器形状大小都相同。

激活最大化——将模型所期望的进行可视化

(编辑:西安站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读