赞
踩
问题:yolov4权重导出成onnx,生成tensorRT引擎失败
原因:yolov4中存网络中使用临近差值上采样在tensorRT中不支持。
解决方案:
import torch
import torch.nn as nn
import torch.nn.functional as F
class Upsample(nn.Module):
def __init__(self, size, scale, mode, align_corners=None):
super(Upsample, self).__init__()
self.size = size
self.scale = scale
self.mode = mode
self.align_corners = align_corners
def forward(self, x):
sh = torch.tensor(x.shape)
return F.interpolate(x, size=(int(sh[2]*self.scale), int(sh[3]*self.scale)), mode=self.mode, align_corners=self.align_corners)
import numpy as np
from PIL import Image
import torch.onnx
from nets.yolo4_tiny import YoloBody
from utils.utils import letterbox_image
def get_classes(classes_path):
'''loads the classes'''
with open(classes_path) as f:
class_names = f.readlines()
class_names = [c.strip() for c in class_names]
return class_na
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。