This repository has been archived on 2026-02-22. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
tkDNN/tests/caffe_weights_exporter.py
Francesco Gatti 483ffefc35 better tests
2017-07-26 12:23:49 +02:00

39 lines
1.2 KiB
Python

import argparse
import os
import msgpack
import lmdb
import random
import caffe
import numpy as np
if __name__ == '__main__':
parser = argparse.ArgumentParser(description='CAFFE WEIGHTS EXPORTER TO CUDNN')
parser.add_argument('model',type=str,
help='Path to prototxt network model')
parser.add_argument('weights',type=str,
help='Path to caffemodel file')
parser.add_argument('--output', type=str, help="output directory", default="layers")
args = parser.parse_args()
if not os.path.exists(args.output):
os.makedirs(args.output)
print "\n\n ====== NET LOADED ====== "
net = caffe.Net(args.model, args.weights, caffe.TEST)
n_lay = len(net.params)
print "Number of layers: ", n_lay
for i in xrange(n_lay):
key = net.params.keys()[i]
print "Layer", key
t = net.layer_dict[key].type
print " type: ", t
w = net.params[key][0].data
b = net.params[key][1].data
print " weights shape:", np.shape(w)
print " bias shape:", np.shape(b)
w.tofile(args.output + "/" + t + str(i) + ".bin", format="f")
b.tofile(args.output + "/" + t + str(i) + ".bias.bin", format="f")