|
import torch |
|
from transformers import AutoModelForObjectDetection, AutoProcessor |
|
|
|
class CustomHandler: |
|
def __init__(self): |
|
self.model = None |
|
self.processor = None |
|
|
|
def initialize(self, model_dir): |
|
|
|
self.model = AutoModelForObjectDetection.from_pretrained(model_dir) |
|
self.processor = AutoProcessor.from_pretrained(model_dir) |
|
|
|
def preprocess(self, request): |
|
|
|
inputs = request.get("inputs") |
|
return self.processor(images=inputs, return_tensors="pt") |
|
|
|
def inference(self, inputs): |
|
|
|
with torch.no_grad(): |
|
outputs = self.model(**inputs) |
|
return outputs |
|
|
|
def postprocess(self, outputs): |
|
|
|
results = outputs.logits.softmax(-1).tolist() |
|
return {"predictions": results} |