转yolov5模型时,不转后处理部分

本文讲述了如何在将后处理部分从硬件转移到CPU以支持不被硬件直接处理的情况下的模型转换,涉及TFLite和ONNX版本的TensorFlow模型中Detect类的相应代码修改,以及坐标变换的处理策略。

一、背景

由于部署在硬件上的时候,后处理部分硬件处理不支持,需要挪到cpu上处理。

二、转int8.tflite版本时挪出后处理部分

  1. 需要修改的文件models/tf.py
    TFDetect(keras.layers.Layer)call()函数修改为下面部分
    def call(self, inputs):
        print('************* deploy ******************')
        z = []  # inference output
        x = []
        for i in range(self.nl):
        	###  原始 ####
            # x.append(self.m[i](inputs[i])) 
            ######## 新增 ########
            if True: 
                temp = self.m[i](inputs[i])
                z.append(tf.reshape(temp,[-1,6]))
                # print('shape', self.m[i](inputs[i]).reshape(-1,6).shape)
            continue
            ######## 新增 ########
            # x(bs,20,20,255) to x(bs,3,20,20,85)
            ny, nx = self.imgsz[0] // self.stride[i], self.imgsz[1] // self.stride[i]
            x[i] = tf.reshape(x[i], [-1, ny * nx, self.na, self.no])

            if not self.training:  # inference
                y = x[i]
                grid = tf.transpose(self.grid[i], [0, 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值