Caffe 转SNPE dlc格式之Flatten、Reshape、Permute层的使用

本文介绍了在SNPE 1.4.0中如何使用和转换Caffe的Flatten、Reshape和Permute层,包括它们在SNPE中的实现细节,如隐含层的添加和数据次序调整。针对SNPE中编译permute层的错误,提供了解决方案,并探讨了不同组合的使用情况。
摘要由CSDN通过智能技术生成

snpe1.4.0中支持了flatten,reshape和permute的实现。但是snpe和caffe之间的数据存储次序不同,导致这些层不能直接应用。snpe为支持这部分的操作,增加了隐含层(implicit layer)。当网络中需要隐含层时将自动添加隐含层使网络输入输出维数对应。接下来说明flatten、reshape和permute在snpe中的实现。

permute层需要更改一个小问题

在编译permute层时报错:没有ssd_permute_params这个选项。
解决方法:查看文档~/snpe-1.4.0/lib/python/snpe/snpe_caffe_to_dlc.py, 找到这一句:permute_param = layer.ssd_permute_param, 原因是与caffe prototxt中名称不对应。将其改为:permute_param = layer.permute_param,编译就可以通过了。


Flatten,Reshape和permute单层使用

1. Flatten在snpe中的网络结构变化:

在进行flateen之前,调用了一层隐含permute层。
—->4×4×50—-pool2_permute(permute_order[2, 0, 1])—->50×4×4—-flat—>800
5 6层为flat层的实现

2. Reshape在snpe中的网络结构变化:

在调用reshape之前和之后各调用了一层隐含permute层。前面添加一个permute: [2, 0, 1], 后面添加一个permute: [1, 2, 0].

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值