| 
                         下述程序展示了如何实现VGG16模型的不同层的输出: 
- #importing required libraries and functions 
 - from keras.models import Model 
 - #defining names of layers from which we will take the output 
 - layer_names = ['block1_conv1','block2_conv1','block3_conv1','block4_conv2'] 
 - outputs = [] 
 - imageimage = image.reshape((1, image.shape[0], image.shape[1], image.shape[2])) 
 - #extracting the output and appending to outputs 
 - for layer_name in layer_names: 
 -     intermediate_layer_model = Model(inputs=model.input,outputs=model.get_layer(layer_name).output) 
 -     intermediate_output = intermediate_layer_model.predict(image) 
 -     outputs.append(intermediate_output) 
 - #plotting the outputs 
 - fig,ax = plt.subplots(nrows=4,ncols=5,figsize=(20,20)) 
 -  
 - for i in range(4): 
 -     for z in range(5): 
 -         ax[i][z].imshow(outputs[i][0,:,:,z]) 
 -         ax[i][z].set_title(layer_names[i]) 
 -         ax[i][z].set_xticks([]) 
 -         ax[i][z].set_yticks([]) 
 - plt.savefig('layerwise_output.jpg') 
 
  
  
如图所示,VGG16(除block5外)的每一层都从图像中提取了不同特征。起始层对应的是类似边缘的低级特征,而后一层对应的是车顶、排气等特征。 
结语                         (编辑:泰州站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |