1. 程式人生 > 程式設計 >keras實現呼叫自己訓練的模型,並去掉全連線層

keras實現呼叫自己訓練的模型,並去掉全連線層

其實很簡單

from keras.models import load_model

base_model = load_model('model_resenet.h5')#載入指定的模型
print(base_model.summary())#輸出網路的結構圖

這是我的網路模型的輸出,其實就是它的結構圖

__________________________________________________________________________________________________
Layer (type)          Output Shape     Param #   Connected to           
==================================================================================================
input_1 (InputLayer)      (None,227,1) 0                      
__________________________________________________________________________________________________
conv2d_1 (Conv2D)        (None,225,32) 320     input_1[0][0]          
__________________________________________________________________________________________________
batch_normalization_1 (BatchNor (None,32) 128     conv2d_1[0][0]          
__________________________________________________________________________________________________
activation_1 (Activation)    (None,32) 0      batch_normalization_1[0][0]   
__________________________________________________________________________________________________
conv2d_2 (Conv2D)        (None,32) 9248    activation_1[0][0]        
__________________________________________________________________________________________________
batch_normalization_2 (BatchNor (None,32) 128     conv2d_2[0][0]          
__________________________________________________________________________________________________
activation_2 (Activation)    (None,32) 0      batch_normalization_2[0][0]   
__________________________________________________________________________________________________
conv2d_3 (Conv2D)        (None,32) 9248    activation_2[0][0]        
__________________________________________________________________________________________________
batch_normalization_3 (BatchNor (None,32) 128     conv2d_3[0][0]          
__________________________________________________________________________________________________
merge_1 (Merge)         (None,32) 0      batch_normalization_3[0][0]   
                                 activation_1[0][0]        
__________________________________________________________________________________________________
activation_3 (Activation)    (None,32) 0      merge_1[0][0]          
__________________________________________________________________________________________________
conv2d_4 (Conv2D)        (None,32) 9248    activation_3[0][0]        
__________________________________________________________________________________________________
batch_normalization_4 (BatchNor (None,32) 128     conv2d_4[0][0]          
__________________________________________________________________________________________________
activation_4 (Activation)    (None,32) 0      batch_normalization_4[0][0]   
__________________________________________________________________________________________________
conv2d_5 (Conv2D)        (None,32) 9248    activation_4[0][0]        
__________________________________________________________________________________________________
batch_normalization_5 (BatchNor (None,32) 128     conv2d_5[0][0]          
__________________________________________________________________________________________________
merge_2 (Merge)         (None,32) 0      batch_normalization_5[0][0]   
                                 activation_3[0][0]        
__________________________________________________________________________________________________
activation_5 (Activation)    (None,32) 0      merge_2[0][0]          
__________________________________________________________________________________________________
max_pooling2d_1 (MaxPooling2D) (None,112,32) 0      activation_5[0][0]        
__________________________________________________________________________________________________
conv2d_6 (Conv2D)        (None,110,64) 18496    max_pooling2d_1[0][0]      
__________________________________________________________________________________________________
batch_normalization_6 (BatchNor (None,64) 256     conv2d_6[0][0]          
__________________________________________________________________________________________________
activation_6 (Activation)    (None,64) 0      batch_normalization_6[0][0]   
__________________________________________________________________________________________________
conv2d_7 (Conv2D)        (None,64) 36928    activation_6[0][0]        
__________________________________________________________________________________________________
batch_normalization_7 (BatchNor (None,64) 256     conv2d_7[0][0]          
__________________________________________________________________________________________________
activation_7 (Activation)    (None,64) 0      batch_normalization_7[0][0]   
__________________________________________________________________________________________________
conv2d_8 (Conv2D)        (None,64) 36928    activation_7[0][0]        
__________________________________________________________________________________________________
batch_normalization_8 (BatchNor (None,64) 256     conv2d_8[0][0]          
__________________________________________________________________________________________________
merge_3 (Merge)         (None,64) 0      batch_normalization_8[0][0]   
                                 activation_6[0][0]        
__________________________________________________________________________________________________
activation_8 (Activation)    (None,64) 0      merge_3[0][0]          
__________________________________________________________________________________________________
conv2d_9 (Conv2D)        (None,64) 36928    activation_8[0][0]        
__________________________________________________________________________________________________
batch_normalization_9 (BatchNor (None,64) 256     conv2d_9[0][0]          
__________________________________________________________________________________________________
activation_9 (Activation)    (None,64) 0      batch_normalization_9[0][0]   
__________________________________________________________________________________________________
conv2d_10 (Conv2D)       (None,64) 36928    activation_9[0][0]        
__________________________________________________________________________________________________
batch_normalization_10 (BatchNo (None,64) 256     conv2d_10[0][0]         
__________________________________________________________________________________________________
merge_4 (Merge)         (None,64) 0      batch_normalization_10[0][0]   
                                 activation_8[0][0]        
__________________________________________________________________________________________________
activation_10 (Activation)   (None,64) 0      merge_4[0][0]          
__________________________________________________________________________________________________
max_pooling2d_2 (MaxPooling2D) (None,55,64)  0      activation_10[0][0]       
__________________________________________________________________________________________________
conv2d_11 (Conv2D)       (None,53,64)  36928    max_pooling2d_2[0][0]      
__________________________________________________________________________________________________
batch_normalization_11 (BatchNo (None,64)  256     conv2d_11[0][0]         
__________________________________________________________________________________________________
activation_11 (Activation)   (None,64)  0      batch_normalization_11[0][0]   
__________________________________________________________________________________________________
max_pooling2d_3 (MaxPooling2D) (None,26,64)  0      activation_11[0][0]       
__________________________________________________________________________________________________
conv2d_12 (Conv2D)       (None,64)  36928    max_pooling2d_3[0][0]      
__________________________________________________________________________________________________
batch_normalization_12 (BatchNo (None,64)  256     conv2d_12[0][0]         
__________________________________________________________________________________________________
activation_12 (Activation)   (None,64)  0      batch_normalization_12[0][0]   
__________________________________________________________________________________________________
conv2d_13 (Conv2D)       (None,64)  36928    activation_12[0][0]       
__________________________________________________________________________________________________
batch_normalization_13 (BatchNo (None,64)  256     conv2d_13[0][0]         
__________________________________________________________________________________________________
merge_5 (Merge)         (None,64)  0      batch_normalization_13[0][0]   
                                 max_pooling2d_3[0][0]      
__________________________________________________________________________________________________
activation_13 (Activation)   (None,64)  0      merge_5[0][0]          
__________________________________________________________________________________________________
conv2d_14 (Conv2D)       (None,64)  36928    activation_13[0][0]       
__________________________________________________________________________________________________
batch_normalization_14 (BatchNo (None,64)  256     conv2d_14[0][0]         
__________________________________________________________________________________________________
activation_14 (Activation)   (None,64)  0      batch_normalization_14[0][0]   
__________________________________________________________________________________________________
conv2d_15 (Conv2D)       (None,64)  36928    activation_14[0][0]       
__________________________________________________________________________________________________
batch_normalization_15 (BatchNo (None,64)  256     conv2d_15[0][0]         
__________________________________________________________________________________________________
merge_6 (Merge)         (None,64)  0      batch_normalization_15[0][0]   
                                 activation_13[0][0]       
__________________________________________________________________________________________________
activation_15 (Activation)   (None,64)  0      merge_6[0][0]          
__________________________________________________________________________________________________
max_pooling2d_4 (MaxPooling2D) (None,13,64)  0      activation_15[0][0]       
__________________________________________________________________________________________________
conv2d_16 (Conv2D)       (None,11,32)  18464    max_pooling2d_4[0][0]      
__________________________________________________________________________________________________
batch_normalization_16 (BatchNo (None,32)  128     conv2d_16[0][0]         
__________________________________________________________________________________________________
activation_16 (Activation)   (None,32)  0      batch_normalization_16[0][0]   
__________________________________________________________________________________________________
conv2d_17 (Conv2D)       (None,32)  9248    activation_16[0][0]       
__________________________________________________________________________________________________
batch_normalization_17 (BatchNo (None,32)  128     conv2d_17[0][0]         
__________________________________________________________________________________________________
activation_17 (Activation)   (None,32)  0      batch_normalization_17[0][0]   
__________________________________________________________________________________________________
conv2d_18 (Conv2D)       (None,32)  9248    activation_17[0][0]       
__________________________________________________________________________________________________
batch_normalization_18 (BatchNo (None,32)  128     conv2d_18[0][0]         
__________________________________________________________________________________________________
merge_7 (Merge)         (None,32)  0      batch_normalization_18[0][0]   
                                 activation_16[0][0]       
__________________________________________________________________________________________________
activation_18 (Activation)   (None,32)  0      merge_7[0][0]          
__________________________________________________________________________________________________
conv2d_19 (Conv2D)       (None,32)  9248    activation_18[0][0]       
__________________________________________________________________________________________________
batch_normalization_19 (BatchNo (None,32)  128     conv2d_19[0][0]         
__________________________________________________________________________________________________
activation_19 (Activation)   (None,32)  0      batch_normalization_19[0][0]   
__________________________________________________________________________________________________
conv2d_20 (Conv2D)       (None,32)  9248    activation_19[0][0]       
__________________________________________________________________________________________________
batch_normalization_20 (BatchNo (None,32)  128     conv2d_20[0][0]         
__________________________________________________________________________________________________
merge_8 (Merge)         (None,32)  0      batch_normalization_20[0][0]   
                                 activation_18[0][0]       
__________________________________________________________________________________________________
activation_20 (Activation)   (None,32)  0      merge_8[0][0]          
__________________________________________________________________________________________________
max_pooling2d_5 (MaxPooling2D) (None,5,32)   0      activation_20[0][0]       
__________________________________________________________________________________________________
conv2d_21 (Conv2D)       (None,3,64)   18496    max_pooling2d_5[0][0]      
__________________________________________________________________________________________________
batch_normalization_21 (BatchNo (None,64)   256     conv2d_21[0][0]         
__________________________________________________________________________________________________
activation_21 (Activation)   (None,64)   0      batch_normalization_21[0][0]   
__________________________________________________________________________________________________
conv2d_22 (Conv2D)       (None,64)   36928    activation_21[0][0]       
__________________________________________________________________________________________________
batch_normalization_22 (BatchNo (None,64)   256     conv2d_22[0][0]         
__________________________________________________________________________________________________
activation_22 (Activation)   (None,64)   0      batch_normalization_22[0][0]   
__________________________________________________________________________________________________
conv2d_23 (Conv2D)       (None,64)   36928    activation_22[0][0]       
__________________________________________________________________________________________________
batch_normalization_23 (BatchNo (None,64)   256     conv2d_23[0][0]         
__________________________________________________________________________________________________
merge_9 (Merge)         (None,64)   0      batch_normalization_23[0][0]   
                                 activation_21[0][0]       
__________________________________________________________________________________________________
activation_23 (Activation)   (None,64)   0      merge_9[0][0]          
__________________________________________________________________________________________________
conv2d_24 (Conv2D)       (None,64)   36928    activation_23[0][0]       
__________________________________________________________________________________________________
batch_normalization_24 (BatchNo (None,64)   256     conv2d_24[0][0]         
__________________________________________________________________________________________________
activation_24 (Activation)   (None,64)   0      batch_normalization_24[0][0]   
__________________________________________________________________________________________________
conv2d_25 (Conv2D)       (None,64)   36928    activation_24[0][0]       
__________________________________________________________________________________________________
batch_normalization_25 (BatchNo (None,64)   256     conv2d_25[0][0]         
__________________________________________________________________________________________________
merge_10 (Merge)        (None,64)   0      batch_normalization_25[0][0]   
                                 activation_23[0][0]       
__________________________________________________________________________________________________
activation_25 (Activation)   (None,64)   0      merge_10[0][0]          
__________________________________________________________________________________________________
max_pooling2d_6 (MaxPooling2D) (None,1,64)   0      activation_25[0][0]       
__________________________________________________________________________________________________
flatten_1 (Flatten)       (None,64)      0      max_pooling2d_6[0][0]      
__________________________________________________________________________________________________
dense_1 (Dense)         (None,256)     16640    flatten_1[0][0]         
__________________________________________________________________________________________________
dropout_1 (Dropout)       (None,256)     0      dense_1[0][0]          
__________________________________________________________________________________________________
dense_2 (Dense)         (None,2)      514     dropout_1[0][0]         
==================================================================================================
Total params: 632,098
Trainable params: 629,538
Non-trainable params: 2,560
__________________________________________________________________________________________________

去掉模型的全連線層

from keras.models import load_model

base_model = load_model('model_resenet.h5')
resnet_model = Model(inputs=base_model.input,outputs=base_model.get_layer('max_pooling2d_6').output)
#'max_pooling2d_6'其實就是上述網路中全連線層的前面一層,當然這裡你也可以選取其它層,把該層的名稱代替'max_pooling2d_6'即可,這樣其實就是擷取網路,輸出網路結構就是方便讀取每層的名字。
print(resnet_model.summary())

新輸出的網路結構:

__________________________________________________________________________________________________
Layer (type)          Output Shape     Param #   Connected to           
==================================================================================================
input_1 (InputLayer)      (None,64)   0      activation_25[0][0]       
==================================================================================================
Total params: 614,944
Trainable params: 612,384
Non-trainable params: 2,560
__________________________________________________________________________________________________

以上這篇keras實現呼叫自己訓練的模型,並去掉全連線層就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。