yolov3-tf2 icon indicating copy to clipboard operation
yolov3-tf2 copied to clipboard

Transform own darknet weights for this model

Open johnny-mueller opened this issue 4 years ago • 2 comments

I have received a yolov3 model or the weights of a yolov3 model that was trained with darknet from AlexeyAB. If I now perform the transformation of the weights I get the following error message:

The Yolov3 network was trained with only one channel. Since this change is also supported in this model, this transformation should probably not be an impossible obstacle for the transformation.

I0817 15:56:39.844820 18744 convert_weights_of_darknet.py:24] model created
I0817 15:56:39.849819 18744 utils.py:45] yolo_darknet/conv2d bn
I0817 15:56:39.866819 18744 utils.py:45] yolo_darknet/conv2d_1 bn
I0817 15:56:39.892820 18744 utils.py:45] yolo_darknet/conv2d_2 bn
I0817 15:56:39.904818 18744 utils.py:45] yolo_darknet/conv2d_3 bn
I0817 15:56:39.912822 18744 utils.py:45] yolo_darknet/conv2d_4 bn
I0817 15:56:39.931820 18744 utils.py:45] yolo_darknet/conv2d_5 bn
I0817 15:56:39.948822 18744 utils.py:45] yolo_darknet/conv2d_6 bn
I0817 15:56:39.958821 18744 utils.py:45] yolo_darknet/conv2d_7 bn
I0817 15:56:39.975818 18744 utils.py:45] yolo_darknet/conv2d_8 bn
I0817 15:56:39.992820 18744 utils.py:45] yolo_darknet/conv2d_9 bn
I0817 15:56:40.017818 18744 utils.py:45] yolo_darknet/conv2d_10 bn
I0817 15:56:40.032819 18744 utils.py:45] yolo_darknet/conv2d_11 bn
I0817 15:56:40.042820 18744 utils.py:45] yolo_darknet/conv2d_12 bn
I0817 15:56:40.052817 18744 utils.py:45] yolo_darknet/conv2d_13 bn
I0817 15:56:40.059821 18744 utils.py:45] yolo_darknet/conv2d_14 bn
I0817 15:56:40.070816 18744 utils.py:45] yolo_darknet/conv2d_15 bn
I0817 15:56:40.079820 18744 utils.py:45] yolo_darknet/conv2d_16 bn
I0817 15:56:40.094861 18744 utils.py:45] yolo_darknet/conv2d_17 bn
I0817 15:56:40.102859 18744 utils.py:45] yolo_darknet/conv2d_18 bn
I0817 15:56:40.113818 18744 utils.py:45] yolo_darknet/conv2d_19 bn
I0817 15:56:40.122818 18744 utils.py:45] yolo_darknet/conv2d_20 bn
I0817 15:56:40.134854 18744 utils.py:45] yolo_darknet/conv2d_21 bn
I0817 15:56:40.144820 18744 utils.py:45] yolo_darknet/conv2d_22 bn
I0817 15:56:40.158823 18744 utils.py:45] yolo_darknet/conv2d_23 bn
I0817 15:56:40.178820 18744 utils.py:45] yolo_darknet/conv2d_24 bn
I0817 15:56:40.184819 18744 utils.py:45] yolo_darknet/conv2d_25 bn
I0817 15:56:40.203820 18744 utils.py:45] yolo_darknet/conv2d_26 bn
I0817 15:56:40.236822 18744 utils.py:45] yolo_darknet/conv2d_27 bn
I0817 15:56:40.244825 18744 utils.py:45] yolo_darknet/conv2d_28 bn
I0817 15:56:40.261818 18744 utils.py:45] yolo_darknet/conv2d_29 bn
I0817 15:56:40.286818 18744 utils.py:45] yolo_darknet/conv2d_30 bn
I0817 15:56:40.311817 18744 utils.py:45] yolo_darknet/conv2d_31 bn
I0817 15:56:40.323817 18744 utils.py:45] yolo_darknet/conv2d_32 bn
I0817 15:56:40.351818 18744 utils.py:45] yolo_darknet/conv2d_33 bn
I0817 15:56:40.369821 18744 utils.py:45] yolo_darknet/conv2d_34 bn
I0817 15:56:40.382819 18744 utils.py:45] yolo_darknet/conv2d_35 bn
I0817 15:56:40.389818 18744 utils.py:45] yolo_darknet/conv2d_36 bn
I0817 15:56:40.413818 18744 utils.py:45] yolo_darknet/conv2d_37 bn
I0817 15:56:40.425817 18744 utils.py:45] yolo_darknet/conv2d_38 bn
I0817 15:56:40.441817 18744 utils.py:45] yolo_darknet/conv2d_39 bn
I0817 15:56:40.449817 18744 utils.py:45] yolo_darknet/conv2d_40 bn
I0817 15:56:40.474819 18744 utils.py:45] yolo_darknet/conv2d_41 bn
I0817 15:56:40.492820 18744 utils.py:45] yolo_darknet/conv2d_42 bn
I0817 15:56:40.507818 18744 utils.py:45] yolo_darknet/conv2d_43 bn
I0817 15:56:40.574817 18744 utils.py:45] yolo_darknet/conv2d_44 bn
I0817 15:56:40.586817 18744 utils.py:45] yolo_darknet/conv2d_45 bn
I0817 15:56:40.653821 18744 utils.py:45] yolo_darknet/conv2d_46 bn
I0817 15:56:40.665823 18744 utils.py:45] yolo_darknet/conv2d_47 bn
I0817 15:56:40.738819 18744 utils.py:45] yolo_darknet/conv2d_48 bn
I0817 15:56:40.750819 18744 utils.py:45] yolo_darknet/conv2d_49 bn
I0817 15:56:40.822818 18744 utils.py:45] yolo_darknet/conv2d_50 bn
I0817 15:56:40.834817 18744 utils.py:45] yolo_darknet/conv2d_51 bn
I0817 15:56:40.917820 18744 utils.py:45] yolo_conv_0/conv2d_52 bn
I0817 15:56:40.926819 18744 utils.py:45] yolo_conv_0/conv2d_53 bn
I0817 15:56:41.003820 18744 utils.py:45] yolo_conv_0/conv2d_54 bn
I0817 15:56:41.013820 18744 utils.py:45] yolo_conv_0/conv2d_55 bn
I0817 15:56:41.091822 18744 utils.py:45] yolo_conv_0/conv2d_56 bn
I0817 15:56:41.105820 18744 utils.py:45] yolo_output_0/conv2d_57 bn
I0817 15:56:41.185820 18744 utils.py:45] yolo_output_0/conv2d_58 bias
I0817 15:56:41.193819 18744 utils.py:45] yolo_conv_1/conv2d_59 bn
I0817 15:56:41.198821 18744 utils.py:45] yolo_conv_1/conv2d_60 bn
I0817 15:56:41.224817 18744 utils.py:45] yolo_conv_1/conv2d_61 bn
I0817 15:56:41.234818 18744 utils.py:45] yolo_conv_1/conv2d_62 bn
I0817 15:56:41.239817 18744 utils.py:45] yolo_conv_1/conv2d_63 bn
I0817 15:56:41.254819 18744 utils.py:45] yolo_conv_1/conv2d_64 bn
I0817 15:56:41.271817 18744 utils.py:45] yolo_output_1/conv2d_65 bn
I0817 15:56:41.286821 18744 utils.py:45] yolo_output_1/conv2d_66 bias
I0817 15:56:41.290817 18744 utils.py:45] yolo_conv_2/conv2d_67 bn
I0817 15:56:41.293820 18744 utils.py:45] yolo_conv_2/conv2d_68 bn
I0817 15:56:41.297819 18744 utils.py:45] yolo_conv_2/conv2d_69 bn
I0817 15:56:41.302819 18744 utils.py:45] yolo_conv_2/conv2d_70 bn
I0817 15:56:41.306843 18744 utils.py:45] yolo_conv_2/conv2d_71 bn
I0817 15:56:41.321820 18744 utils.py:45] yolo_conv_2/conv2d_72 bn
I0817 15:56:41.326823 18744 utils.py:45] yolo_output_2/conv2d_73 bn
I0817 15:56:41.341821 18744 utils.py:45] yolo_output_2/conv2d_74 bias
Traceback (most recent call last):
  File "c:/Users/Tim/Documents/Studium/Master/Masterarbeit/implementation/project/darknet_weights/convert_weights_of_darknet.py", line 39, in <module>
    app.run(main)
  File "C:\Program Files\Python36\lib\site-packages\absl\app.py", line 299, in run
    _run_main(main, args)
  File "C:\Program Files\Python36\lib\site-packages\absl\app.py", line 250, in _run_main
    sys.exit(main(argv))
  File "c:/Users/USER/Documents/Studium/Master/Masterarbeit/implementation/project/darknet_weights/convert_weights_of_darknet.py", line 26, in main
    load_darknet_weights(yolo, FLAGS.weights, FLAGS.tiny)
  File "c:\Users\USER\Documents\Studium\Master\Masterarbeit\implementation\project\darknet_weights\yolov3_tf2\utils.py", line 74, in load_darknet_weights
    assert len(wf.read()) == 0, 'failed to read all data'
AssertionError: failed to read all data

Is there a workaround for the problem or an approach how to transform a custom model? The structure of the yolov3 network was not modified so that it is exactly the same as the ordinal.

johnny-mueller avatar Aug 17 '20 13:08 johnny-mueller

i have the same problem on a custom tiny yolo v3. the model seems to parse fine then i get the same 'failed to read all data' error as OP. Please advise

GotG avatar Sep 01 '20 13:09 GotG

Hi,yolo.weights is COCO's weights file, so when you run convert.py, the parameter (num_classes) should be 80, not the number of categories in your own dataset, otherwise you will get "AssertionError: failed to read all data"

xiaotaonan avatar Dec 09 '20 12:12 xiaotaonan