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

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

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

下述程序展示了如何实现VGG16模型的不同层的输出:

  1. #importing required libraries and functions 
  2. from keras.models import Model 
  3. #defining names of layers from which we will take the output 
  4. layer_names = ['block1_conv1','block2_conv1','block3_conv1','block4_conv2'] 
  5. outputs = [] 
  6. imageimage = image.reshape((1, image.shape[0], image.shape[1], image.shape[2])) 
  7. #extracting the output and appending to outputs 
  8. for layer_name in layer_names: 
  9.     intermediate_layer_model = Model(inputs=model.input,outputs=model.get_layer(layer_name).output) 
  10.     intermediate_output = intermediate_layer_model.predict(image) 
  11.     outputs.append(intermediate_output) 
  12. #plotting the outputs 
  13. fig,ax = plt.subplots(nrows=4,ncols=5,figsize=(20,20)) 
  14.  
  15. for i in range(4): 
  16.     for z in range(5): 
  17.         ax[i][z].imshow(outputs[i][0,:,:,z]) 
  18.         ax[i][z].set_title(layer_names[i]) 
  19.         ax[i][z].set_xticks([]) 
  20.         ax[i][z].set_yticks([]) 
  21. plt.savefig('layerwise_output.jpg') 

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

如图所示,VGG16(除block5外)的每一层都从图像中提取了不同特征。起始层对应的是类似边缘的低级特征,而后一层对应的是车顶、排气等特征。

结语

(编辑:威海站长网)

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

热点阅读