keras 的 example 文件 deep_dream.py 解析

这个程序大致就是让神经网络产生一些梦境般的效果,把实实在在的画面搞的花里胡哨,虚虚实实,

这里只是分析下代码,原理的话,可以参考下

https://blog.csdn.net/accepthjp/article/details/77882814

我用上次的那条狗,生成的效果大致是这样的,

《略》

抱歉,不是图丢了,是我把图删了,可能有人觉得生成的图片如梦如幻,但我看了有点起鸡皮疙瘩

基础神经网络使用的是 inception_v3 , 神经网络结构为:

____________________________________________________________________________________________________________________________________________
Layer (type)                                  Output Shape                   Param #         Connected to                                   
============================================================================================================================================
input_1 (InputLayer)                          (None, None, None, 3)          0                                                              
____________________________________________________________________________________________________________________________________________
conv2d_1 (Conv2D)                             (None, None, None, 32)         864             input_1[0][0]                                  
____________________________________________________________________________________________________________________________________________
batch_normalization_1 (BatchNormalization)    (None, None, None, 32)         96              conv2d_1[0][0]                                 
____________________________________________________________________________________________________________________________________________
activation_1 (Activation)                     (None, None, None, 32)         0               batch_normalization_1[0][0]                    
____________________________________________________________________________________________________________________________________________
conv2d_2 (Conv2D)                             (None, None, None, 32)         9216            activation_1[0][0]                             
____________________________________________________________________________________________________________________________________________
batch_normalization_2 (BatchNormalization)    (None, None, None, 32)         96              conv2d_2[0][0]                                 
____________________________________________________________________________________________________________________________________________
activation_2 (Activation)                     (None, None, None, 32)         0               batch_normalization_2[0][0]                    
____________________________________________________________________________________________________________________________________________
conv2d_3 (Conv2D)                             (None, None, None, 64)         18432           activation_2[0][0]                             
____________________________________________________________________________________________________________________________________________
batch_normalization_3 (BatchNormalization)    (None, None, None, 64)         192             conv2d_3[0][0]                                 
____________________________________________________________________________________________________________________________________________
activation_3 (Activation)                     (None, None, None, 64)         0               batch_normalization_3[0][0]                    
____________________________________________________________________________________________________________________________________________
max_pooling2d_1 (MaxPooling2D)                (None, None, None, 64)         0               activation_3[0][0]                             
____________________________________________________________________________________________________________________________________________
conv2d_4 (Conv2D)                             (None, None, None, 80)         5120            max_pooling2d_1[0][0]                          
____________________________________________________________________________________________________________________________________________
batch_normalization_4 (BatchNormalization)    (None, None, None, 80)         240             conv2d_4[0][0]                                 
____________________________________________________________________________________________________________________________________________
activation_4 (Activation)                     (None, None, None, 80)         0               batch_normalization_4[0][0]                    
____________________________________________________________________________________________________________________________________________
conv2d_5 (Conv2D)                             (None, None, None, 192)        138240          activation_4[0][0]                             
____________________________________________________________________________________________________________________________________________
batch_normalization_5 (BatchNormalization)    (None, None, None, 192)        576             conv2d_5[0][0]                                 
____________________________________________________________________________________________________________________________________________
activation_5 (Activation)                     (None, None, None, 192)        0               batch_normalization_5[0][0]                    
____________________________________________________________________________________________________________________________________________
max_pooling2d_2 (MaxPooling2D)                (None, None, None, 192)        0               activation_5[0][0]                             
____________________________________________________________________________________________________________________________________________
conv2d_9 (Conv2D)                             (None, None, None, 64)         12288           max_pooling2d_2[0][0]                          
____________________________________________________________________________________________________________________________________________
batch_normalization_9 (BatchNormalization)    (None, None, None, 64)         192             conv2d_9[0][0]                                 
____________________________________________________________________________________________________________________________________________
activation_9 (Activation)                     (None, None, None, 64)         0               batch_normalization_9[0][0]                    
____________________________________________________________________________________________________________________________________________
conv2d_7 (Conv2D)                             (None, None, None, 48)         9216            max_pooling2d_2[0][0]                          
____________________________________________________________________________________________________________________________________________
conv2d_10 (Conv2D)                            (None, None, None, 96)         55296           activation_9[0][0]                             
____________________________________________________________________________________________________________________________________________
batch_normalization_7 (BatchNormalization)    (None, None, None, 48)         144             conv2d_7[0][0]                                 
____________________________________________________________________________________________________________________________________________
batch_normalization_10 (BatchNormalization)   (None, None, None, 96)         288             conv2d_10[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_7 (Activation)                     (None, None, None, 48)         0               batch_normalization_7[0][0]                    
____________________________________________________________________________________________________________________________________________
activation_10 (Activation)                    (None, None, None, 96)         0               batch_normalization_10[0][0]                   
____________________________________________________________________________________________________________________________________________
average_pooling2d_1 (AveragePooling2D)        (None, None, None, 192)        0               max_pooling2d_2[0][0]                          
____________________________________________________________________________________________________________________________________________
conv2d_6 (Conv2D)                             (None, None, None, 64)         12288           max_pooling2d_2[0][0]                          
____________________________________________________________________________________________________________________________________________
conv2d_8 (Conv2D)                             (None, None, None, 64)         76800           activation_7[0][0]                             
____________________________________________________________________________________________________________________________________________
conv2d_11 (Conv2D)                            (None, None, None, 96)         82944           activation_10[0][0]                            
____________________________________________________________________________________________________________________________________________
conv2d_12 (Conv2D)                            (None, None, None, 32)         6144            average_pooling2d_1[0][0]                      
____________________________________________________________________________________________________________________________________________
batch_normalization_6 (BatchNormalization)    (None, None, None, 64)         192             conv2d_6[0][0]                                 
____________________________________________________________________________________________________________________________________________
batch_normalization_8 (BatchNormalization)    (None, None, None, 64)         192             conv2d_8[0][0]                                 
____________________________________________________________________________________________________________________________________________
batch_normalization_11 (BatchNormalization)   (None, None, None, 96)         288             conv2d_11[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_12 (BatchNormalization)   (None, None, None, 32)         96              conv2d_12[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_6 (Activation)                     (None, None, None, 64)         0               batch_normalization_6[0][0]                    
____________________________________________________________________________________________________________________________________________
activation_8 (Activation)                     (None, None, None, 64)         0               batch_normalization_8[0][0]                    
____________________________________________________________________________________________________________________________________________
activation_11 (Activation)                    (None, None, None, 96)         0               batch_normalization_11[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_12 (Activation)                    (None, None, None, 32)         0               batch_normalization_12[0][0]                   
____________________________________________________________________________________________________________________________________________
mixed0 (Concatenate)                          (None, None, None, 256)        0               activation_6[0][0]                             
                                                                                             activation_8[0][0]                             
                                                                                             activation_11[0][0]                            
                                                                                             activation_12[0][0]                            
____________________________________________________________________________________________________________________________________________
conv2d_16 (Conv2D)                            (None, None, None, 64)         16384           mixed0[0][0]                                   
____________________________________________________________________________________________________________________________________________
batch_normalization_16 (BatchNormalization)   (None, None, None, 64)         192             conv2d_16[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_16 (Activation)                    (None, None, None, 64)         0               batch_normalization_16[0][0]                   
____________________________________________________________________________________________________________________________________________
conv2d_14 (Conv2D)                            (None, None, None, 48)         12288           mixed0[0][0]                                   
____________________________________________________________________________________________________________________________________________
conv2d_17 (Conv2D)                            (None, None, None, 96)         55296           activation_16[0][0]                            
____________________________________________________________________________________________________________________________________________
batch_normalization_14 (BatchNormalization)   (None, None, None, 48)         144             conv2d_14[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_17 (BatchNormalization)   (None, None, None, 96)         288             conv2d_17[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_14 (Activation)                    (None, None, None, 48)         0               batch_normalization_14[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_17 (Activation)                    (None, None, None, 96)         0               batch_normalization_17[0][0]                   
____________________________________________________________________________________________________________________________________________
average_pooling2d_2 (AveragePooling2D)        (None, None, None, 256)        0               mixed0[0][0]                                   
____________________________________________________________________________________________________________________________________________
conv2d_13 (Conv2D)                            (None, None, None, 64)         16384           mixed0[0][0]                                   
____________________________________________________________________________________________________________________________________________
conv2d_15 (Conv2D)                            (None, None, None, 64)         76800           activation_14[0][0]                            
____________________________________________________________________________________________________________________________________________
conv2d_18 (Conv2D)                            (None, None, None, 96)         82944           activation_17[0][0]                            
____________________________________________________________________________________________________________________________________________
conv2d_19 (Conv2D)                            (None, None, None, 64)         16384           average_pooling2d_2[0][0]                      
____________________________________________________________________________________________________________________________________________
batch_normalization_13 (BatchNormalization)   (None, None, None, 64)         192             conv2d_13[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_15 (BatchNormalization)   (None, None, None, 64)         192             conv2d_15[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_18 (BatchNormalization)   (None, None, None, 96)         288             conv2d_18[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_19 (BatchNormalization)   (None, None, None, 64)         192             conv2d_19[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_13 (Activation)                    (None, None, None, 64)         0               batch_normalization_13[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_15 (Activation)                    (None, None, None, 64)         0               batch_normalization_15[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_18 (Activation)                    (None, None, None, 96)         0               batch_normalization_18[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_19 (Activation)                    (None, None, None, 64)         0               batch_normalization_19[0][0]                   
____________________________________________________________________________________________________________________________________________
mixed1 (Concatenate)                          (None, None, None, 288)        0               activation_13[0][0]                            
                                                                                             activation_15[0][0]                            
                                                                                             activation_18[0][0]                            
                                                                                             activation_19[0][0]                            
____________________________________________________________________________________________________________________________________________
conv2d_23 (Conv2D)                            (None, None, None, 64)         18432           mixed1[0][0]                                   
____________________________________________________________________________________________________________________________________________
batch_normalization_23 (BatchNormalization)   (None, None, None, 64)         192             conv2d_23[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_23 (Activation)                    (None, None, None, 64)         0               batch_normalization_23[0][0]                   
____________________________________________________________________________________________________________________________________________
conv2d_21 (Conv2D)                            (None, None, None, 48)         13824           mixed1[0][0]                                   
____________________________________________________________________________________________________________________________________________
conv2d_24 (Conv2D)                            (None, None, None, 96)         55296           activation_23[0][0]                            
____________________________________________________________________________________________________________________________________________
batch_normalization_21 (BatchNormalization)   (None, None, None, 48)         144             conv2d_21[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_24 (BatchNormalization)   (None, None, None, 96)         288             conv2d_24[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_21 (Activation)                    (None, None, None, 48)         0               batch_normalization_21[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_24 (Activation)                    (None, None, None, 96)         0               batch_normalization_24[0][0]                   
____________________________________________________________________________________________________________________________________________
average_pooling2d_3 (AveragePooling2D)        (None, None, None, 288)        0               mixed1[0][0]                                   
____________________________________________________________________________________________________________________________________________
conv2d_20 (Conv2D)                            (None, None, None, 64)         18432           mixed1[0][0]                                   
____________________________________________________________________________________________________________________________________________
conv2d_22 (Conv2D)                            (None, None, None, 64)         76800           activation_21[0][0]                            
____________________________________________________________________________________________________________________________________________
conv2d_25 (Conv2D)                            (None, None, None, 96)         82944           activation_24[0][0]                            
____________________________________________________________________________________________________________________________________________
conv2d_26 (Conv2D)                            (None, None, None, 64)         18432           average_pooling2d_3[0][0]                      
____________________________________________________________________________________________________________________________________________
batch_normalization_20 (BatchNormalization)   (None, None, None, 64)         192             conv2d_20[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_22 (BatchNormalization)   (None, None, None, 64)         192             conv2d_22[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_25 (BatchNormalization)   (None, None, None, 96)         288             conv2d_25[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_26 (BatchNormalization)   (None, None, None, 64)         192             conv2d_26[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_20 (Activation)                    (None, None, None, 64)         0               batch_normalization_20[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_22 (Activation)                    (None, None, None, 64)         0               batch_normalization_22[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_25 (Activation)                    (None, None, None, 96)         0               batch_normalization_25[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_26 (Activation)                    (None, None, None, 64)         0               batch_normalization_26[0][0]                   
____________________________________________________________________________________________________________________________________________
mixed2 (Concatenate)                          (None, None, None, 288)        0               activation_20[0][0]                            
                                                                                             activation_22[0][0]                            
                                                                                             activation_25[0][0]                            
                                                                                             activation_26[0][0]                            
____________________________________________________________________________________________________________________________________________
conv2d_28 (Conv2D)                            (None, None, None, 64)         18432           mixed2[0][0]                                   
____________________________________________________________________________________________________________________________________________
batch_normalization_28 (BatchNormalization)   (None, None, None, 64)         192             conv2d_28[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_28 (Activation)                    (None, None, None, 64)         0               batch_normalization_28[0][0]                   
____________________________________________________________________________________________________________________________________________
conv2d_29 (Conv2D)                            (None, None, None, 96)         55296           activation_28[0][0]                            
____________________________________________________________________________________________________________________________________________
batch_normalization_29 (BatchNormalization)   (None, None, None, 96)         288             conv2d_29[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_29 (Activation)                    (None, None, None, 96)         0               batch_normalization_29[0][0]                   
____________________________________________________________________________________________________________________________________________
conv2d_27 (Conv2D)                            (None, None, None, 384)        995328          mixed2[0][0]                                   
____________________________________________________________________________________________________________________________________________
conv2d_30 (Conv2D)                            (None, None, None, 96)         82944           activation_29[0][0]                            
____________________________________________________________________________________________________________________________________________
batch_normalization_27 (BatchNormalization)   (None, None, None, 384)        1152            conv2d_27[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_30 (BatchNormalization)   (None, None, None, 96)         288             conv2d_30[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_27 (Activation)                    (None, None, None, 384)        0               batch_normalization_27[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_30 (Activation)                    (None, None, None, 96)         0               batch_normalization_30[0][0]                   
____________________________________________________________________________________________________________________________________________
max_pooling2d_3 (MaxPooling2D)                (None, None, None, 288)        0               mixed2[0][0]                                   
____________________________________________________________________________________________________________________________________________
mixed3 (Concatenate)                          (None, None, None, 768)        0               activation_27[0][0]                            
                                                                                             activation_30[0][0]                            
                                                                                             max_pooling2d_3[0][0]                          
____________________________________________________________________________________________________________________________________________
conv2d_35 (Conv2D)                            (None, None, None, 128)        98304           mixed3[0][0]                                   
____________________________________________________________________________________________________________________________________________
batch_normalization_35 (BatchNormalization)   (None, None, None, 128)        384             conv2d_35[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_35 (Activation)                    (None, None, None, 128)        0               batch_normalization_35[0][0]                   
____________________________________________________________________________________________________________________________________________
conv2d_36 (Conv2D)                            (None, None, None, 128)        114688          activation_35[0][0]                            
____________________________________________________________________________________________________________________________________________
batch_normalization_36 (BatchNormalization)   (None, None, None, 128)        384             conv2d_36[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_36 (Activation)                    (None, None, None, 128)        0               batch_normalization_36[0][0]                   
____________________________________________________________________________________________________________________________________________
conv2d_32 (Conv2D)                            (None, None, None, 128)        98304           mixed3[0][0]                                   
____________________________________________________________________________________________________________________________________________
conv2d_37 (Conv2D)                            (None, None, None, 128)        114688          activation_36[0][0]                            
____________________________________________________________________________________________________________________________________________
batch_normalization_32 (BatchNormalization)   (None, None, None, 128)        384             conv2d_32[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_37 (BatchNormalization)   (None, None, None, 128)        384             conv2d_37[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_32 (Activation)                    (None, None, None, 128)        0               batch_normalization_32[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_37 (Activation)                    (None, None, None, 128)        0               batch_normalization_37[0][0]                   
____________________________________________________________________________________________________________________________________________
conv2d_33 (Conv2D)                            (None, None, None, 128)        114688          activation_32[0][0]                            
____________________________________________________________________________________________________________________________________________
conv2d_38 (Conv2D)                            (None, None, None, 128)        114688          activation_37[0][0]                            
____________________________________________________________________________________________________________________________________________
batch_normalization_33 (BatchNormalization)   (None, None, None, 128)        384             conv2d_33[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_38 (BatchNormalization)   (None, None, None, 128)        384             conv2d_38[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_33 (Activation)                    (None, None, None, 128)        0               batch_normalization_33[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_38 (Activation)                    (None, None, None, 128)        0               batch_normalization_38[0][0]                   
____________________________________________________________________________________________________________________________________________
average_pooling2d_4 (AveragePooling2D)        (None, None, None, 768)        0               mixed3[0][0]                                   
____________________________________________________________________________________________________________________________________________
conv2d_31 (Conv2D)                            (None, None, None, 192)        147456          mixed3[0][0]                                   
____________________________________________________________________________________________________________________________________________
conv2d_34 (Conv2D)                            (None, None, None, 192)        172032          activation_33[0][0]                            
____________________________________________________________________________________________________________________________________________
conv2d_39 (Conv2D)                            (None, None, None, 192)        172032          activation_38[0][0]                            
____________________________________________________________________________________________________________________________________________
conv2d_40 (Conv2D)                            (None, None, None, 192)        147456          average_pooling2d_4[0][0]                      
____________________________________________________________________________________________________________________________________________
batch_normalization_31 (BatchNormalization)   (None, None, None, 192)        576             conv2d_31[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_34 (BatchNormalization)   (None, None, None, 192)        576             conv2d_34[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_39 (BatchNormalization)   (None, None, None, 192)        576             conv2d_39[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_40 (BatchNormalization)   (None, None, None, 192)        576             conv2d_40[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_31 (Activation)                    (None, None, None, 192)        0               batch_normalization_31[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_34 (Activation)                    (None, None, None, 192)        0               batch_normalization_34[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_39 (Activation)                    (None, None, None, 192)        0               batch_normalization_39[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_40 (Activation)                    (None, None, None, 192)        0               batch_normalization_40[0][0]                   
____________________________________________________________________________________________________________________________________________
mixed4 (Concatenate)                          (None, None, None, 768)        0               activation_31[0][0]                            
                                                                                             activation_34[0][0]                            
                                                                                             activation_39[0][0]                            
                                                                                             activation_40[0][0]                            
____________________________________________________________________________________________________________________________________________
conv2d_45 (Conv2D)                            (None, None, None, 160)        122880          mixed4[0][0]                                   
____________________________________________________________________________________________________________________________________________
batch_normalization_45 (BatchNormalization)   (None, None, None, 160)        480             conv2d_45[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_45 (Activation)                    (None, None, None, 160)        0               batch_normalization_45[0][0]                   
____________________________________________________________________________________________________________________________________________
conv2d_46 (Conv2D)                            (None, None, None, 160)        179200          activation_45[0][0]                            
____________________________________________________________________________________________________________________________________________
batch_normalization_46 (BatchNormalization)   (None, None, None, 160)        480             conv2d_46[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_46 (Activation)                    (None, None, None, 160)        0               batch_normalization_46[0][0]                   
____________________________________________________________________________________________________________________________________________
conv2d_42 (Conv2D)                            (None, None, None, 160)        122880          mixed4[0][0]                                   
____________________________________________________________________________________________________________________________________________
conv2d_47 (Conv2D)                            (None, None, None, 160)        179200          activation_46[0][0]                            
____________________________________________________________________________________________________________________________________________
batch_normalization_42 (BatchNormalization)   (None, None, None, 160)        480             conv2d_42[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_47 (BatchNormalization)   (None, None, None, 160)        480             conv2d_47[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_42 (Activation)                    (None, None, None, 160)        0               batch_normalization_42[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_47 (Activation)                    (None, None, None, 160)        0               batch_normalization_47[0][0]                   
____________________________________________________________________________________________________________________________________________
conv2d_43 (Conv2D)                            (None, None, None, 160)        179200          activation_42[0][0]                            
____________________________________________________________________________________________________________________________________________
conv2d_48 (Conv2D)                            (None, None, None, 160)        179200          activation_47[0][0]                            
____________________________________________________________________________________________________________________________________________
batch_normalization_43 (BatchNormalization)   (None, None, None, 160)        480             conv2d_43[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_48 (BatchNormalization)   (None, None, None, 160)        480             conv2d_48[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_43 (Activation)                    (None, None, None, 160)        0               batch_normalization_43[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_48 (Activation)                    (None, None, None, 160)        0               batch_normalization_48[0][0]                   
____________________________________________________________________________________________________________________________________________
average_pooling2d_5 (AveragePooling2D)        (None, None, None, 768)        0               mixed4[0][0]                                   
____________________________________________________________________________________________________________________________________________
conv2d_41 (Conv2D)                            (None, None, None, 192)        147456          mixed4[0][0]                                   
____________________________________________________________________________________________________________________________________________
conv2d_44 (Conv2D)                            (None, None, None, 192)        215040          activation_43[0][0]                            
____________________________________________________________________________________________________________________________________________
conv2d_49 (Conv2D)                            (None, None, None, 192)        215040          activation_48[0][0]                            
____________________________________________________________________________________________________________________________________________
conv2d_50 (Conv2D)                            (None, None, None, 192)        147456          average_pooling2d_5[0][0]                      
____________________________________________________________________________________________________________________________________________
batch_normalization_41 (BatchNormalization)   (None, None, None, 192)        576             conv2d_41[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_44 (BatchNormalization)   (None, None, None, 192)        576             conv2d_44[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_49 (BatchNormalization)   (None, None, None, 192)        576             conv2d_49[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_50 (BatchNormalization)   (None, None, None, 192)        576             conv2d_50[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_41 (Activation)                    (None, None, None, 192)        0               batch_normalization_41[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_44 (Activation)                    (None, None, None, 192)        0               batch_normalization_44[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_49 (Activation)                    (None, None, None, 192)        0               batch_normalization_49[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_50 (Activation)                    (None, None, None, 192)        0               batch_normalization_50[0][0]                   
____________________________________________________________________________________________________________________________________________
mixed5 (Concatenate)                          (None, None, None, 768)        0               activation_41[0][0]                            
                                                                                             activation_44[0][0]                            
                                                                                             activation_49[0][0]                            
                                                                                             activation_50[0][0]                            
____________________________________________________________________________________________________________________________________________
conv2d_55 (Conv2D)                            (None, None, None, 160)        122880          mixed5[0][0]                                   
____________________________________________________________________________________________________________________________________________
batch_normalization_55 (BatchNormalization)   (None, None, None, 160)        480             conv2d_55[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_55 (Activation)                    (None, None, None, 160)        0               batch_normalization_55[0][0]                   
____________________________________________________________________________________________________________________________________________
conv2d_56 (Conv2D)                            (None, None, None, 160)        179200          activation_55[0][0]                            
____________________________________________________________________________________________________________________________________________
batch_normalization_56 (BatchNormalization)   (None, None, None, 160)        480             conv2d_56[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_56 (Activation)                    (None, None, None, 160)        0               batch_normalization_56[0][0]                   
____________________________________________________________________________________________________________________________________________
conv2d_52 (Conv2D)                            (None, None, None, 160)        122880          mixed5[0][0]                                   
____________________________________________________________________________________________________________________________________________
conv2d_57 (Conv2D)                            (None, None, None, 160)        179200          activation_56[0][0]                            
____________________________________________________________________________________________________________________________________________
batch_normalization_52 (BatchNormalization)   (None, None, None, 160)        480             conv2d_52[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_57 (BatchNormalization)   (None, None, None, 160)        480             conv2d_57[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_52 (Activation)                    (None, None, None, 160)        0               batch_normalization_52[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_57 (Activation)                    (None, None, None, 160)        0               batch_normalization_57[0][0]                   
____________________________________________________________________________________________________________________________________________
conv2d_53 (Conv2D)                            (None, None, None, 160)        179200          activation_52[0][0]                            
____________________________________________________________________________________________________________________________________________
conv2d_58 (Conv2D)                            (None, None, None, 160)        179200          activation_57[0][0]                            
____________________________________________________________________________________________________________________________________________
batch_normalization_53 (BatchNormalization)   (None, None, None, 160)        480             conv2d_53[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_58 (BatchNormalization)   (None, None, None, 160)        480             conv2d_58[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_53 (Activation)                    (None, None, None, 160)        0               batch_normalization_53[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_58 (Activation)                    (None, None, None, 160)        0               batch_normalization_58[0][0]                   
____________________________________________________________________________________________________________________________________________
average_pooling2d_6 (AveragePooling2D)        (None, None, None, 768)        0               mixed5[0][0]                                   
____________________________________________________________________________________________________________________________________________
conv2d_51 (Conv2D)                            (None, None, None, 192)        147456          mixed5[0][0]                                   
____________________________________________________________________________________________________________________________________________
conv2d_54 (Conv2D)                            (None, None, None, 192)        215040          activation_53[0][0]                            
____________________________________________________________________________________________________________________________________________
conv2d_59 (Conv2D)                            (None, None, None, 192)        215040          activation_58[0][0]                            
____________________________________________________________________________________________________________________________________________
conv2d_60 (Conv2D)                            (None, None, None, 192)        147456          average_pooling2d_6[0][0]                      
____________________________________________________________________________________________________________________________________________
batch_normalization_51 (BatchNormalization)   (None, None, None, 192)        576             conv2d_51[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_54 (BatchNormalization)   (None, None, None, 192)        576             conv2d_54[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_59 (BatchNormalization)   (None, None, None, 192)        576             conv2d_59[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_60 (BatchNormalization)   (None, None, None, 192)        576             conv2d_60[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_51 (Activation)                    (None, None, None, 192)        0               batch_normalization_51[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_54 (Activation)                    (None, None, None, 192)        0               batch_normalization_54[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_59 (Activation)                    (None, None, None, 192)        0               batch_normalization_59[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_60 (Activation)                    (None, None, None, 192)        0               batch_normalization_60[0][0]                   
____________________________________________________________________________________________________________________________________________
mixed6 (Concatenate)                          (None, None, None, 768)        0               activation_51[0][0]                            
                                                                                             activation_54[0][0]                            
                                                                                             activation_59[0][0]                            
                                                                                             activation_60[0][0]                            
____________________________________________________________________________________________________________________________________________
conv2d_65 (Conv2D)                            (None, None, None, 192)        147456          mixed6[0][0]                                   
____________________________________________________________________________________________________________________________________________
batch_normalization_65 (BatchNormalization)   (None, None, None, 192)        576             conv2d_65[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_65 (Activation)                    (None, None, None, 192)        0               batch_normalization_65[0][0]                   
____________________________________________________________________________________________________________________________________________
conv2d_66 (Conv2D)                            (None, None, None, 192)        258048          activation_65[0][0]                            
____________________________________________________________________________________________________________________________________________
batch_normalization_66 (BatchNormalization)   (None, None, None, 192)        576             conv2d_66[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_66 (Activation)                    (None, None, None, 192)        0               batch_normalization_66[0][0]                   
____________________________________________________________________________________________________________________________________________
conv2d_62 (Conv2D)                            (None, None, None, 192)        147456          mixed6[0][0]                                   
____________________________________________________________________________________________________________________________________________
conv2d_67 (Conv2D)                            (None, None, None, 192)        258048          activation_66[0][0]                            
____________________________________________________________________________________________________________________________________________
batch_normalization_62 (BatchNormalization)   (None, None, None, 192)        576             conv2d_62[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_67 (BatchNormalization)   (None, None, None, 192)        576             conv2d_67[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_62 (Activation)                    (None, None, None, 192)        0               batch_normalization_62[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_67 (Activation)                    (None, None, None, 192)        0               batch_normalization_67[0][0]                   
____________________________________________________________________________________________________________________________________________
conv2d_63 (Conv2D)                            (None, None, None, 192)        258048          activation_62[0][0]                            
____________________________________________________________________________________________________________________________________________
conv2d_68 (Conv2D)                            (None, None, None, 192)        258048          activation_67[0][0]                            
____________________________________________________________________________________________________________________________________________
batch_normalization_63 (BatchNormalization)   (None, None, None, 192)        576             conv2d_63[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_68 (BatchNormalization)   (None, None, None, 192)        576             conv2d_68[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_63 (Activation)                    (None, None, None, 192)        0               batch_normalization_63[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_68 (Activation)                    (None, None, None, 192)        0               batch_normalization_68[0][0]                   
____________________________________________________________________________________________________________________________________________
average_pooling2d_7 (AveragePooling2D)        (None, None, None, 768)        0               mixed6[0][0]                                   
____________________________________________________________________________________________________________________________________________
conv2d_61 (Conv2D)                            (None, None, None, 192)        147456          mixed6[0][0]                                   
____________________________________________________________________________________________________________________________________________
conv2d_64 (Conv2D)                            (None, None, None, 192)        258048          activation_63[0][0]                            
____________________________________________________________________________________________________________________________________________
conv2d_69 (Conv2D)                            (None, None, None, 192)        258048          activation_68[0][0]                            
____________________________________________________________________________________________________________________________________________
conv2d_70 (Conv2D)                            (None, None, None, 192)        147456          average_pooling2d_7[0][0]                      
____________________________________________________________________________________________________________________________________________
batch_normalization_61 (BatchNormalization)   (None, None, None, 192)        576             conv2d_61[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_64 (BatchNormalization)   (None, None, None, 192)        576             conv2d_64[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_69 (BatchNormalization)   (None, None, None, 192)        576             conv2d_69[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_70 (BatchNormalization)   (None, None, None, 192)        576             conv2d_70[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_61 (Activation)                    (None, None, None, 192)        0               batch_normalization_61[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_64 (Activation)                    (None, None, None, 192)        0               batch_normalization_64[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_69 (Activation)                    (None, None, None, 192)        0               batch_normalization_69[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_70 (Activation)                    (None, None, None, 192)        0               batch_normalization_70[0][0]                   
____________________________________________________________________________________________________________________________________________
mixed7 (Concatenate)                          (None, None, None, 768)        0               activation_61[0][0]                            
                                                                                             activation_64[0][0]                            
                                                                                             activation_69[0][0]                            
                                                                                             activation_70[0][0]                            
____________________________________________________________________________________________________________________________________________
conv2d_73 (Conv2D)                            (None, None, None, 192)        147456          mixed7[0][0]                                   
____________________________________________________________________________________________________________________________________________
batch_normalization_73 (BatchNormalization)   (None, None, None, 192)        576             conv2d_73[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_73 (Activation)                    (None, None, None, 192)        0               batch_normalization_73[0][0]                   
____________________________________________________________________________________________________________________________________________
conv2d_74 (Conv2D)                            (None, None, None, 192)        258048          activation_73[0][0]                            
____________________________________________________________________________________________________________________________________________
batch_normalization_74 (BatchNormalization)   (None, None, None, 192)        576             conv2d_74[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_74 (Activation)                    (None, None, None, 192)        0               batch_normalization_74[0][0]                   
____________________________________________________________________________________________________________________________________________
conv2d_71 (Conv2D)                            (None, None, None, 192)        147456          mixed7[0][0]                                   
____________________________________________________________________________________________________________________________________________
conv2d_75 (Conv2D)                            (None, None, None, 192)        258048          activation_74[0][0]                            
____________________________________________________________________________________________________________________________________________
batch_normalization_71 (BatchNormalization)   (None, None, None, 192)        576             conv2d_71[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_75 (BatchNormalization)   (None, None, None, 192)        576             conv2d_75[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_71 (Activation)                    (None, None, None, 192)        0               batch_normalization_71[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_75 (Activation)                    (None, None, None, 192)        0               batch_normalization_75[0][0]                   
____________________________________________________________________________________________________________________________________________
conv2d_72 (Conv2D)                            (None, None, None, 320)        552960          activation_71[0][0]                            
____________________________________________________________________________________________________________________________________________
conv2d_76 (Conv2D)                            (None, None, None, 192)        331776          activation_75[0][0]                            
____________________________________________________________________________________________________________________________________________
batch_normalization_72 (BatchNormalization)   (None, None, None, 320)        960             conv2d_72[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_76 (BatchNormalization)   (None, None, None, 192)        576             conv2d_76[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_72 (Activation)                    (None, None, None, 320)        0               batch_normalization_72[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_76 (Activation)                    (None, None, None, 192)        0               batch_normalization_76[0][0]                   
____________________________________________________________________________________________________________________________________________
max_pooling2d_4 (MaxPooling2D)                (None, None, None, 768)        0               mixed7[0][0]                                   
____________________________________________________________________________________________________________________________________________
mixed8 (Concatenate)                          (None, None, None, 1280)       0               activation_72[0][0]                            
                                                                                             activation_76[0][0]                            
                                                                                             max_pooling2d_4[0][0]                          
____________________________________________________________________________________________________________________________________________
conv2d_81 (Conv2D)                            (None, None, None, 448)        573440          mixed8[0][0]                                   
____________________________________________________________________________________________________________________________________________
batch_normalization_81 (BatchNormalization)   (None, None, None, 448)        1344            conv2d_81[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_81 (Activation)                    (None, None, None, 448)        0               batch_normalization_81[0][0]                   
____________________________________________________________________________________________________________________________________________
conv2d_78 (Conv2D)                            (None, None, None, 384)        491520          mixed8[0][0]                                   
____________________________________________________________________________________________________________________________________________
conv2d_82 (Conv2D)                            (None, None, None, 384)        1548288         activation_81[0][0]                            
____________________________________________________________________________________________________________________________________________
batch_normalization_78 (BatchNormalization)   (None, None, None, 384)        1152            conv2d_78[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_82 (BatchNormalization)   (None, None, None, 384)        1152            conv2d_82[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_78 (Activation)                    (None, None, None, 384)        0               batch_normalization_78[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_82 (Activation)                    (None, None, None, 384)        0               batch_normalization_82[0][0]                   
____________________________________________________________________________________________________________________________________________
conv2d_79 (Conv2D)                            (None, None, None, 384)        442368          activation_78[0][0]                            
____________________________________________________________________________________________________________________________________________
conv2d_80 (Conv2D)                            (None, None, None, 384)        442368          activation_78[0][0]                            
____________________________________________________________________________________________________________________________________________
conv2d_83 (Conv2D)                            (None, None, None, 384)        442368          activation_82[0][0]                            
____________________________________________________________________________________________________________________________________________
conv2d_84 (Conv2D)                            (None, None, None, 384)        442368          activation_82[0][0]                            
____________________________________________________________________________________________________________________________________________
average_pooling2d_8 (AveragePooling2D)        (None, None, None, 1280)       0               mixed8[0][0]                                   
____________________________________________________________________________________________________________________________________________
conv2d_77 (Conv2D)                            (None, None, None, 320)        409600          mixed8[0][0]                                   
____________________________________________________________________________________________________________________________________________
batch_normalization_79 (BatchNormalization)   (None, None, None, 384)        1152            conv2d_79[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_80 (BatchNormalization)   (None, None, None, 384)        1152            conv2d_80[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_83 (BatchNormalization)   (None, None, None, 384)        1152            conv2d_83[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_84 (BatchNormalization)   (None, None, None, 384)        1152            conv2d_84[0][0]                                
____________________________________________________________________________________________________________________________________________
conv2d_85 (Conv2D)                            (None, None, None, 192)        245760          average_pooling2d_8[0][0]                      
____________________________________________________________________________________________________________________________________________
batch_normalization_77 (BatchNormalization)   (None, None, None, 320)        960             conv2d_77[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_79 (Activation)                    (None, None, None, 384)        0               batch_normalization_79[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_80 (Activation)                    (None, None, None, 384)        0               batch_normalization_80[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_83 (Activation)                    (None, None, None, 384)        0               batch_normalization_83[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_84 (Activation)                    (None, None, None, 384)        0               batch_normalization_84[0][0]                   
____________________________________________________________________________________________________________________________________________
batch_normalization_85 (BatchNormalization)   (None, None, None, 192)        576             conv2d_85[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_77 (Activation)                    (None, None, None, 320)        0               batch_normalization_77[0][0]                   
____________________________________________________________________________________________________________________________________________
mixed9_0 (Concatenate)                        (None, None, None, 768)        0               activation_79[0][0]                            
                                                                                             activation_80[0][0]                            
____________________________________________________________________________________________________________________________________________
concatenate_1 (Concatenate)                   (None, None, None, 768)        0               activation_83[0][0]                            
                                                                                             activation_84[0][0]                            
____________________________________________________________________________________________________________________________________________
activation_85 (Activation)                    (None, None, None, 192)        0               batch_normalization_85[0][0]                   
____________________________________________________________________________________________________________________________________________
mixed9 (Concatenate)                          (None, None, None, 2048)       0               activation_77[0][0]                            
                                                                                             mixed9_0[0][0]                                 
                                                                                             concatenate_1[0][0]                            
                                                                                             activation_85[0][0]                            
____________________________________________________________________________________________________________________________________________
conv2d_90 (Conv2D)                            (None, None, None, 448)        917504          mixed9[0][0]                                   
____________________________________________________________________________________________________________________________________________
batch_normalization_90 (BatchNormalization)   (None, None, None, 448)        1344            conv2d_90[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_90 (Activation)                    (None, None, None, 448)        0               batch_normalization_90[0][0]                   
____________________________________________________________________________________________________________________________________________
conv2d_87 (Conv2D)                            (None, None, None, 384)        786432          mixed9[0][0]                                   
____________________________________________________________________________________________________________________________________________
conv2d_91 (Conv2D)                            (None, None, None, 384)        1548288         activation_90[0][0]                            
____________________________________________________________________________________________________________________________________________
batch_normalization_87 (BatchNormalization)   (None, None, None, 384)        1152            conv2d_87[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_91 (BatchNormalization)   (None, None, None, 384)        1152            conv2d_91[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_87 (Activation)                    (None, None, None, 384)        0               batch_normalization_87[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_91 (Activation)                    (None, None, None, 384)        0               batch_normalization_91[0][0]                   
____________________________________________________________________________________________________________________________________________
conv2d_88 (Conv2D)                            (None, None, None, 384)        442368          activation_87[0][0]                            
____________________________________________________________________________________________________________________________________________
conv2d_89 (Conv2D)                            (None, None, None, 384)        442368          activation_87[0][0]                            
____________________________________________________________________________________________________________________________________________
conv2d_92 (Conv2D)                            (None, None, None, 384)        442368          activation_91[0][0]                            
____________________________________________________________________________________________________________________________________________
conv2d_93 (Conv2D)                            (None, None, None, 384)        442368          activation_91[0][0]                            
____________________________________________________________________________________________________________________________________________
average_pooling2d_9 (AveragePooling2D)        (None, None, None, 2048)       0               mixed9[0][0]                                   
____________________________________________________________________________________________________________________________________________
conv2d_86 (Conv2D)                            (None, None, None, 320)        655360          mixed9[0][0]                                   
____________________________________________________________________________________________________________________________________________
batch_normalization_88 (BatchNormalization)   (None, None, None, 384)        1152            conv2d_88[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_89 (BatchNormalization)   (None, None, None, 384)        1152            conv2d_89[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_92 (BatchNormalization)   (None, None, None, 384)        1152            conv2d_92[0][0]                                
____________________________________________________________________________________________________________________________________________
batch_normalization_93 (BatchNormalization)   (None, None, None, 384)        1152            conv2d_93[0][0]                                
____________________________________________________________________________________________________________________________________________
conv2d_94 (Conv2D)                            (None, None, None, 192)        393216          average_pooling2d_9[0][0]                      
____________________________________________________________________________________________________________________________________________
batch_normalization_86 (BatchNormalization)   (None, None, None, 320)        960             conv2d_86[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_88 (Activation)                    (None, None, None, 384)        0               batch_normalization_88[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_89 (Activation)                    (None, None, None, 384)        0               batch_normalization_89[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_92 (Activation)                    (None, None, None, 384)        0               batch_normalization_92[0][0]                   
____________________________________________________________________________________________________________________________________________
activation_93 (Activation)                    (None, None, None, 384)        0               batch_normalization_93[0][0]                   
____________________________________________________________________________________________________________________________________________
batch_normalization_94 (BatchNormalization)   (None, None, None, 192)        576             conv2d_94[0][0]                                
____________________________________________________________________________________________________________________________________________
activation_86 (Activation)                    (None, None, None, 320)        0               batch_normalization_86[0][0]                   
____________________________________________________________________________________________________________________________________________
mixed9_1 (Concatenate)                        (None, None, None, 768)        0               activation_88[0][0]                            
                                                                                             activation_89[0][0]                            
____________________________________________________________________________________________________________________________________________
concatenate_2 (Concatenate)                   (None, None, None, 768)        0               activation_92[0][0]                            
                                                                                             activation_93[0][0]                            
____________________________________________________________________________________________________________________________________________
activation_94 (Activation)                    (None, None, None, 192)        0               batch_normalization_94[0][0]                   
____________________________________________________________________________________________________________________________________________
mixed10 (Concatenate)                         (None, None, None, 2048)       0               activation_86[0][0]                            
                                                                                             mixed9_1[0][0]                                 
                                                                                             concatenate_2[0][0]                            
                                                                                             activation_94[0][0]                            
============================================================================================================================================
Total params: 21,802,784
Trainable params: 21,768,352
Non-trainable params: 34,432
____________________________________________________________________________________________________________________________________________

我们从代码

img = preprocess_image(base_image_path)

开始看,这里就是正常的读取一张图片,只不过为了batch处理,加了一个维度,其他没有变化

下面是计算 successive_shapes,就是很简单的计算出了两个尺寸,一个是原图尺寸的1/1.4,另一个是原图尺寸的1/(1.4**2)

如我原图尺寸为400*500,这里就是计算出285*356,再计算出204*255,也就是

successive_shapes  [(204, 255), (285, 357), (400, 500)]

然后下面的代码可以精简为:

for shape in successive_shapes:
    print('Processing image shape', shape)
    img = resize_img(img, shape)
    img = gradient_ascent(img,
                          iterations=iterations,
                          step=step,
                          max_loss=max_loss)

因为其余代码是计算一个 lost_detail,是为了对缩放产生的一点点细节丢失进行一点点补偿,也就是不加也能产生效果,只不过会有一点点模糊,所以我们先不关心

这段代码是先对图片缩放到最小的那个尺寸,如我这里是(204,255),然后调用 gradient_ascent, gradient_ascent 会调用 eval_loss_and_grads, eval_loss_and_grads 会调用 fetch_loss_and_grads, 总之就是计算一个loss,和一个loss对应的梯度

 

loss 是 inception_v3 的mixed2, mixed3, mixed4, mixed5基层的输出的值(四周各去掉两个像素)的平方和再除以总数,再乘以一个系数,再相加;所以 loss 永远为正数;

梯度进行一个正则化(就是除以一个绝对值最大的那个数,缩放到 < 1.0),然后再乘以一个0.01,之后,就和原图加起来了,这样就对原图进行了一个修改;

而我们思考一下一个凸函数,或者凹函数,一个y值,对 x 在某个点的导数,如果再加回到x上去的话,那就是向y变得更大的方向移动;

我们这里的x就是img,y值就是loss,所以 loss 会越来越大;

然后再for循环计算,缩放之后再进行几次计算

 

代码基本逻辑就是这样,估计看了之后还是不明白,这,有什么意义吗?

我想这里确实看不出什么意义,主要是这里的 loss 是一个制定的有点随心所欲的一个值,

而如果我们把 loss 值定为一个像狗的指标,而如果我们以此方法进行不停的反向计算的话,即便输入是一条鱼,我们也能够把原图迭代修改为一个像狗一样的鱼,有机会了可以试一下

我稍微改了一下,可以把原图识别为狗的图片,修改为识别为猫,图片基本变化不大,和原图一样,只是原先识别为207,即金毛犬,但是在把原图修改后,识别为283了,即波斯猫:

from __future__ import print_function

from keras.preprocessing.image import load_img, save_img, img_to_array
import numpy as np
import scipy
import argparse

from keras.applications import inception_v3
from keras import backend as K

parser = argparse.ArgumentParser(description='Deep Dreams with Keras.')
parser.add_argument('base_image_path', metavar='base', type=str,
                    help='Path to the image to transform.')
parser.add_argument('result_prefix', metavar='res_prefix', type=str,
                    help='Prefix for the saved results.')

args = parser.parse_args()
base_image_path = args.base_image_path
result_prefix = args.result_prefix

# These are the names of the layers
# for which we try to maximize activation,
# as well as their weight in the final loss
# we try to maximize.
# You can tweak these setting to obtain new visual effects.
settings = {
    'features': {
        'mixed2': 0.2,
        'mixed3': 0.5,
        'mixed4': 2.,
        'mixed5': 1.5,
    },
}


def preprocess_image(image_path):
    # Util function to open, resize and format pictures
    # into appropriate tensors.
    img = load_img(image_path)
    img = img_to_array(img)
    img = np.expand_dims(img, axis=0)
    img = inception_v3.preprocess_input(img)
    return img


def deprocess_image(x):
    # Util function to convert a tensor into a valid image.
    if K.image_data_format() == 'channels_first':
        x = x.reshape((3, x.shape[2], x.shape[3]))
        x = x.transpose((1, 2, 0))
    else:
        x = x.reshape((x.shape[1], x.shape[2], 3))
    x /= 2.
    x += 0.5
    x *= 255.
    x = np.clip(x, 0, 255).astype('uint8')
    return x

K.set_learning_phase(0)

# Build the InceptionV3 network with our placeholder.
# The model will be loaded with pre-trained ImageNet weights.
model = inception_v3.InceptionV3()
dream = model.input

print('Model loaded.')

# Get the symbolic outputs of each "key" layer (we gave them unique names).
layer_dict = dict([(layer.name, layer) for layer in model.layers])

# Define the loss.
loss = layer_dict['predictions'].output[0][283]


# Compute the gradients of the dream wrt the loss.
grads = K.gradients(loss, dream)[0]
# Normalize gradients.
grads /= K.maximum(K.mean(K.abs(grads)), K.epsilon())

# Set up function to retrieve the value
# of the loss and gradients given an input image.
outputs = [loss, grads]
fetch_loss_and_grads = K.function([dream], outputs)


def eval_loss_and_grads(x):
    outs = fetch_loss_and_grads([x])
    loss_value = outs[0]
    grad_values = outs[1]
    return loss_value, grad_values


def resize_img(img, size):
    img = np.copy(img)
    if K.image_data_format() == 'channels_first':
        factors = (1, 1,
                   float(size[0]) / img.shape[2],
                   float(size[1]) / img.shape[3])
    else:
        factors = (1,
                   float(size[0]) / img.shape[1],
                   float(size[1]) / img.shape[2],
                   1)
    return scipy.ndimage.zoom(img, factors, order=1)


def gradient_ascent(x, iterations, step, max_loss=None):
    for i in range(iterations):
        loss_value, grad_values = eval_loss_and_grads(x)
        if max_loss is not None and loss_value > max_loss:
            break
        print('..Loss value at', i, ':', loss_value)
        x += step * grad_values
    return x

# Playing with these hyperparameters will also allow you to achieve new effects
step = 0.0001  # Gradient ascent step size
num_octave = 3  # Number of scales at which to run gradient ascent
octave_scale = 1.4  # Size ratio between scales
iterations = 2000  # Number of ascent steps per scale
max_loss = 0.9

img = preprocess_image(base_image_path)

shape=(299,299,3)

print('Processing image shape', shape)
img = resize_img(img, shape)
img = gradient_ascent(img,
                      iterations=iterations,
                      step=step,
                      max_loss=max_loss)

save_img(result_prefix + '.png', deprocess_image(np.copy(img)))

修改后图片为:

如果用inception_v3的默认参数进行预测的话,会把它预测为波斯猫

——————————————————————

总目录

keras的example文件解析

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值