def predict()

in lambda-rpi-inference/greengrassObjectClassification.py [0:0]


def predict(net, data):
    print("Starting predict method")
    normalize = gluon.data.vision.transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])
    test_augs = gluon.data.vision.transforms.Compose([
        # gluon.data.vision.transforms.Resize(256),
        # gluon.data.vision.transforms.CenterCrop(224),
        gluon.data.vision.transforms.ToTensor(),
        normalize])
    print("Set up augmentations")
    
    #nda = mx.img.imdecode(data)
    print("Data shape: " + str(data.shape))
    nda = mx.nd.array(data)
    print("NDA shape: " + str(nda.shape))
    img = test_augs(nda)
    print("Image shape: " + str(img.shape))
    img = img.expand_dims(axis=0)                
    img = img.astype('float32') # for gpu context
    print("Image shape: " + str(img.shape))
    
    output = net(img)
    prediction = mx.nd.argmax(output, axis=1)
    response = prediction.asnumpy().tolist()[0]
    return response