Bitmain模型导出注意事项

1.导出bmodel模型命令格式

python3 -m bmnetp --model=model.pt --net_name=detect --target=BM1684 --outdir=detect --shapes="[1,416,416,3]" --opt=2 --cmp=true --dyn=true --enable_profile=true

2. bmodel模型输出个数与pt模型输出个数不一致

示例代码:

def forward(self, input_img):
        with torch.no_grad():
            hm, box = self.model(input_img)
            sigmoid_heatmap = hm.sigmoid()
            tlrb = torch.exp(box)
            pool_hm = nn.functional.max_pool2d(sigmoid_heatmap, kernel_size=3, padding=1, stride=1)
            return sigmoid_heatmap, tlrb, pool_hm

上述代码导出的pt模型将有3个输出:sigmoid_heatmap, tlrb, pool_hm
在pt模型转bmodel过程中,其bmetp转换工具将sigmoid_heatmap当做输入,而从导致bmodel模型只有两个输出tlrb, pool_hm,推理引擎也只能识别出两个输出tlrb, pool_hm,而结点sigmoid_heatmap依旧存在,但是无法通过结点的名字来获取其中的tensor。
bitmain的推理引擎只能获取输出结点的tensor,而无法获取到中间结点的tensor。**

对上述代码做以下改动:

def forward(self, input_img):
        with torch.no_grad():
            hm, box = self.model(input_img)
            sigmoid_heatmap = hm.sigmoid()
            sigmoid_hm = hm.sigmoid()
            tlrb = torch.exp(box)
            pool_hm = nn.functional.max_pool2d(sigmoid_hm, kernel_size=3, padding=1, stride=1)
            return sigmoid_heatmap, tlrb, pool_hm

上述代码导出的pt模型将有3个输出:sigmoid_heatmap, tlrb, pool_hm
生成的bmodel模型也有3个输出:sigmoid_heatmap, tlrb, pool_hm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值