Yolov3 tiny*.weights文件包含的权重比预期的要少

2024-03-29 12:25:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Tensorflow中构建了一个yolov3小模型,我想加载Yolo本身提供的权重。我发现here并阅读了官方的Yolo代码,我可以阅读yolov3-小重量丢弃前16个字节,然后读取剩余字节,将它们转换成float32。在

现在,尤洛夫3-小重量有35.434.956字节,所以(35.434.956-16)/4=8.858.735浮点32个数字,所以我应该有8.858.735的权重。在

总之,我的yolov3 tiny network总结如下:

>>> model.summary()
Model: "model"
__________________________________________________________________________________________________
Layer (type)                    Output Shape         Param #     Connected to                     
==================================================================================================
Input (InputLayer)               [(None, 416, 416, 3) 0                                            
__________________________________________________________________________________________________
conv_1 (Conv2D)                 (None, 416, 416, 16) 448         Input[0][0]                       
__________________________________________________________________________________________________
norm_1 (BatchNormalizationV1)   (None, 416, 416, 16) 64          conv_1[0][0]                     
__________________________________________________________________________________________________
max_pooling2d (MaxPooling2D)    (None, 208, 208, 16) 0           norm_1[0][0]                     
__________________________________________________________________________________________________
conv_2 (Conv2D)                 (None, 208, 208, 32) 4640        max_pooling2d[0][0]              
__________________________________________________________________________________________________
norm_2 (BatchNormalizationV1)   (None, 208, 208, 32) 128         conv_2[0][0]                     
__________________________________________________________________________________________________
max_pooling2d_1 (MaxPooling2D)  (None, 104, 104, 32) 0           norm_2[0][0]                     
__________________________________________________________________________________________________
conv_3 (Conv2D)                 (None, 104, 104, 64) 18496       max_pooling2d_1[0][0]            
__________________________________________________________________________________________________
norm_3 (BatchNormalizationV1)   (None, 104, 104, 64) 256         conv_3[0][0]                     
__________________________________________________________________________________________________
max_pooling2d_2 (MaxPooling2D)  (None, 52, 52, 64)   0           norm_3[0][0]                     
__________________________________________________________________________________________________
conv_4 (Conv2D)                 (None, 52, 52, 128)  73856       max_pooling2d_2[0][0]            
__________________________________________________________________________________________________
norm_4 (BatchNormalizationV1)   (None, 52, 52, 128)  512         conv_4[0][0]                     
__________________________________________________________________________________________________
max_pooling2d_3 (MaxPooling2D)  (None, 26, 26, 128)  0           norm_4[0][0]                     
__________________________________________________________________________________________________
conv_5 (Conv2D)                 (None, 26, 26, 256)  295168      max_pooling2d_3[0][0]            
__________________________________________________________________________________________________
norm_5 (BatchNormalizationV1)   (None, 26, 26, 256)  1024        conv_5[0][0]                     
__________________________________________________________________________________________________
max_pooling2d_4 (MaxPooling2D)  (None, 13, 13, 256)  0           norm_5[0][0]                     
__________________________________________________________________________________________________
conv_6 (Conv2D)                 (None, 13, 13, 512)  1180160     max_pooling2d_4[0][0]            
__________________________________________________________________________________________________
norm_6 (BatchNormalizationV1)   (None, 13, 13, 512)  2048        conv_6[0][0]                     
__________________________________________________________________________________________________
max_pooling2d_5 (MaxPooling2D)  (None, 13, 13, 512)  0           norm_6[0][0]                     
__________________________________________________________________________________________________
conv_7 (Conv2D)                 (None, 13, 13, 1024) 4719616     max_pooling2d_5[0][0]            
__________________________________________________________________________________________________
norm_7 (BatchNormalizationV1)   (None, 13, 13, 1024) 4096        conv_7[0][0]                     
__________________________________________________________________________________________________
conv_8 (Conv2D)                 (None, 13, 13, 256)  262400      norm_7[0][0]                     
__________________________________________________________________________________________________
norm_8 (BatchNormalizationV1)   (None, 13, 13, 256)  1024        conv_8[0][0]                     
__________________________________________________________________________________________________
conv_11 (Conv2D)                (None, 13, 13, 128)  32896       norm_8[0][0]                     
__________________________________________________________________________________________________
norm_10 (BatchNormalizationV1)  (None, 13, 13, 128)  512         conv_11[0][0]                    
__________________________________________________________________________________________________
lambda_1 (Lambda)               (None, 26, 26, 128)  0           norm_10[0][0]                    
__________________________________________________________________________________________________
concatenate (Concatenate)       (None, 26, 26, 384)  0           lambda_1[0][0]                   
                                                                 norm_5[0][0]                     
__________________________________________________________________________________________________
conv_9 (Conv2D)                 (None, 13, 13, 512)  1180160     norm_8[0][0]                     
__________________________________________________________________________________________________
conv_12 (Conv2D)                (None, 26, 26, 256)  884992      concatenate[0][0]                
__________________________________________________________________________________________________
norm_9 (BatchNormalizationV1)   (None, 13, 13, 512)  2048        conv_9[0][0]                     
__________________________________________________________________________________________________
norm_11 (BatchNormalizationV1)  (None, 26, 26, 256)  1024        conv_12[0][0]                    
__________________________________________________________________________________________________
conv_10 (Conv2D)                (None, 13, 13, 255)  130815      norm_9[0][0]                     
__________________________________________________________________________________________________
conv_13 (Conv2D)                (None, 26, 26, 255)  65535       norm_11[0][0]                    
__________________________________________________________________________________________________
lambda (Lambda)                 (None, 507, 85)      0           conv_10[0][0]                    
__________________________________________________________________________________________________
lambda_2 (Lambda)               (None, 2028, 85)     0           conv_13[0][0]                    
__________________________________________________________________________________________________
concatenate_1 (Concatenate)     (None, 2535, 85)     0           lambda[0][0]                     
                                                                 lambda_2[0][0]                   
==================================================================================================
Total params: 8,861,918
Trainable params: 8,855,550
Non-trainable params: 6,368
__________________________________________________________________________________________________

重量为8.861.918。有(8.861.918-8.858.735)=3183个参数比yolov3中包含的参数多-很小的重量. 我有没有在构建网络时出错,或者我遗漏了什么?在

谢谢。在


Tags: lambdanonenorm字节paramsmax重量conv
1条回答
网友
1楼 · 发布于 2024-03-29 12:25:12

对于每一个具有批处理规范化的conv layer,都会错误地使用bias(b)。在yolo中,conv layer后跟{}没有偏差。例如,对于conv_1 layer,正确的段落编号应该是3*3*3*16=432,而在您的模型中,它是432+16=448。在

相关问题 更多 >