Q:

How to Deploy Amazon-SageMaker Locally in Python

I trained my model in Amazon-SageMaker and downloaded it to my local computer.  Unfortunately, I don't have any idea how to run the model locally. 
The Model is in a directory with files like:
image-classification-0001.params
image-classification-0002.params
image-classification-0003.params
image-classification-0004.params
image-classification-0005.params
image-classification-symbol.json
model-shapes.json

Would anyone know how to run this locally with Python, or be able to point me to a resource that could help?  I am trying to avoid calling the model using the Amazon API. 
Edit: The model I used was created with code very similar to this example. 
Any help is appreciated, I will award the bounty to whoever is most helpful, even if they don't completely solve the question.  

A:

Following SRC's advice, I was able to get it to work by following the instructions in this question and this doc which describe how to load a MXnet model. 
I loaded the model like so:
lenet_model = mx.mod. Module.load('model_directory/image-classification',5)
image_l = 64
image_w = 64
lenet_model.bind(for_training=False, data_shapes=[('data',(1,3,image_l,image_w))],label_shapes=lenet_model._label_shapes)

Then predicted using the slightly modified helper functions in the previously linked documentation:
import mxnet as mx
import matplotlib.pyplot as plot
import cv2
import numpy as np
from mxnet.io import DataBatch

def get_image(url, show=False):
    # download and show the image
    fname = mx.test_utils.download(url)
    img = cv2.cvtColor(cv2.imread(fname), cv2.COLOR_BGR2RGB)
    if img is None:
         return None
    if show:
         plt.imshow(img)
         plt.axis('off')
    # convert into format (batch, RGB, width, height)
    img = cv2.resize(img, (64, 64))
    img = np.swapaxes(img, 0, 2)
    img = np.swapaxes(img, 1, 2)
    img = img[np.newaxis, :]
    return img

def predict(url, labels):
    img = get_image(url, show=True)
    # compute the predict probabilities
    lenet_model.forward(DataBatch([mx.nd.array(img)]))
    prob = lenet_model.get_outputs()[0].asnumpy()

    # print the top-5
    prob = np.squeeze(prob)
    a = np.argsort(prob)[::-1]

    for i in a[0:5]:
       print('probability=%f, class=%s' %(prob[i], labels[i]))

Finally I called the prediction with this code:
labels = ['a','b','c', 'd','e', 'f']
predict('https://eximagesite/img_tst_a.jpg', labels )

