duan8/yolov4/gen_wts.py
wang-xinyu 8ebe060186 fix
2020-07-06 19:40:28 +08:00

24 lines
680 B
Python

import struct
import sys
from models import *
from utils.utils import *
model = Darknet('cfg/yolov4.cfg', (608, 608))
weights = sys.argv[1]
device = torch_utils.select_device('0')
if weights.endswith('.pt'): # pytorch format
model.load_state_dict(torch.load(weights, map_location=device)['model'])
else: # darknet format
load_darknet_weights(model, weights)
f = open('yolov4.wts', 'w')
f.write('{}\n'.format(len(model.state_dict().keys())))
for k, v in model.state_dict().items():
vr = v.reshape(-1).cpu().numpy()
f.write('{} {} '.format(k, len(vr)))
for vv in vr:
f.write(' ')
f.write(struct.pack('>f',float(vv)).hex())
f.write('\n')