duan8/yolov3/gen_wts.py
2020-06-02 19:04:06 +08:00

25 lines
671 B
Python

import struct
import sys
from models import *
from utils.utils import *
model = Darknet('cfg/yolov3.cfg', (608, 608))
weights = sys.argv[1]
dev = '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)
model = model.eval()
f = open('yolov3.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')