Detect.inplace=False for multithread-safe inference (#8801)
Detect.inplace=False for safe multithread inference
This commit is contained in:
1 parent
7921351b4e
commit
1e89807d9a
2 files changed
+2
-1
No files matched your search
@@ -55,6 +55,7 @@ def _create(name, pretrained=True, channels=3, classes=80, autoshape=True, verbo
|
|||||||
if len(ckpt['model'].names) == classes:
|
if len(ckpt['model'].names) == classes:
|
||||||
model.names = ckpt['model'].names # set class names attribute
|
model.names = ckpt['model'].names # set class names attribute
|
||||||
if autoshape:
|
if autoshape:
|
||||||
|
model.model.model[-1].inplace = False # Detect.inplace=False for safe multithread inference
|
||||||
model = AutoShape(model) # for file/URI/PIL/cv2/np inputs and NMS
|
model = AutoShape(model) # for file/URI/PIL/cv2/np inputs and NMS
|
||||||
if not verbose:
|
if not verbose:
|
||||||
LOGGER.setLevel(logging.INFO) # reset to default
|
LOGGER.setLevel(logging.INFO) # reset to default
|
||||||
|
|||||||
+1
-1
@@ -50,7 +50,7 @@ class Detect(nn.Module):
|
|||||||
self.anchor_grid = [torch.zeros(1)] * self.nl # init anchor grid
|
self.anchor_grid = [torch.zeros(1)] * self.nl # init anchor grid
|
||||||
self.register_buffer('anchors', torch.tensor(anchors).float().view(self.nl, -1, 2)) # shape(nl,na,2)
|
self.register_buffer('anchors', torch.tensor(anchors).float().view(self.nl, -1, 2)) # shape(nl,na,2)
|
||||||
self.m = nn.ModuleList(nn.Conv2d(x, self.no * self.na, 1) for x in ch) # output conv
|
self.m = nn.ModuleList(nn.Conv2d(x, self.no * self.na, 1) for x in ch) # output conv
|
||||||
self.inplace = inplace # use in-place ops (e.g. slice assignment)
|
self.inplace = inplace # use inplace ops (e.g. slice assignment)
|
||||||
|
|
||||||
def forward(self, x):
|
def forward(self, x):
|
||||||
z = [] # inference output
|
z = [] # inference output
|
||||||
|
|||||||
Reference in new issue
Block a user