pytorch模型转caffe模型之SSD

这不是第一次转模型了,但是还是折腾了两天,然后将转换之中遇到的问题总结以下:

1)caffe的prototxt手动构建时一定要仔细,不然容易出错;(我自己在构建时就是拿着代码forward运行一行一行进行的对比记录);

2)数据的预处理一定要保持一致,否则模型转换后,可能参数拷贝已经成功,但是由于预处理的差距,导致最终结果不一样;

3)SSD中有detectout层,而detectout层中有很多阈值,所以也需要仔细看代码,进行解析;

4)注意自己使用的类别数,本次转换的时候,由于没有注意类别数,对分类结果进行reshape时,参数填写错误,改正后:

pytorch模型转caffe模型之SSD_第1张图片

5)pytorch和caffe环境不统一时,可以使用json文件对模型参数,依照字典的格式进行参数保存,然后再进行json格式的文件读取;

json保存文件:all_data就是pytorch模型的所有层参数:

all_data = data..numpy().tolist()
with open('/pytorch_model_data.json', 'w') as f:
     json.dump(all_data, f)

加载json文件:

json_file = "pytorch_model_data.json"
with open(json_file, 'r') as f:
    data = np.array(json.load(f))

 

你可能感兴趣的:(深度学习pytorch使用,pytorch转caffe)