def recognizeImage(): gpu_available = torch.cuda.is_available() base64string = request.get_json(force=True)['base64'] image = get_image(base64string) if image.shape[1:] != (3, 32, 32): return jsonify(error="only RGB image 32x32 accepted", message="failure!") model = get_model() # breakpoint() # get sample outputs # breakpoint() output_tensor = model(image.cuda()) output_tensor = Softmax(dim=1)(output_tensor) prob_pred_tensor, pred_tensor = torch.max(output_tensor, 1) output = np.squeeze( output_tensor.detach().numpy()) if not gpu_available else np.squeeze( output_tensor.cpu().detach().numpy()) prob_pred = np.squeeze(prob_pred_tensor.detach().numpy() ) if not gpu_available else np.squeeze( prob_pred_tensor.cpu().detach().numpy()) pred = np.squeeze( pred_tensor.detach().numpy()) if not gpu_available else np.squeeze( pred_tensor.cpu().detach().numpy()) classes = [ 'airplane', 'automobile', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck' ] pred_dict = { 'predicted_class': str(classes[pred]), 'prob_predicted_class': str(prob_pred) } for i, prob in enumerate(output): pred_dict[classes[i]] = str(prob) return jsonify(prediction=pred_dict, message="success!")
def recognizeImage(): try: base64string = request.get_json(force=True)['base64'] except: return jsonify(error="payload does not have base64", message='failure!') try: image = get_image(base64string) except: return jsonify(error='improper base64 encoding', message="failure!") if image.shape[1:] != (3, 32, 32): return jsonify(error="only RGB image 32x32 accepted", message="failure!") model = get_model() output_tensor = model(image) output_tensor = Softmax(dim=1)(output_tensor) prob_pred_tensor, pred_tensor = torch.max(output_tensor, 1) output = np.squeeze(output_tensor.detach().numpy()) prob_pred = np.squeeze(prob_pred_tensor.detach().numpy()) pred = np.squeeze(pred_tensor.detach().numpy()) classes = [ 'airplane', 'automobile', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck' ] pred_dict = { 'predicted_class': str(classes[pred]), 'prob_predicted_class': str(prob_pred) } for i, prob in enumerate(output): pred_dict[classes[i]] = str(prob) return jsonify(prediction=pred_dict, message="success!")
def recognizeImage(uploadfile,localfile): if (localfile and uploadfile) or (not(localfile) and not(uploadfile)): return {'error' : 'either upload an image OR give path to local DFS file', 'message' : 'failure!'} elif uploadfile and not(localfile): imagefile = uploadfile elif localfile and not(uploadfile): imagefile = localfile # gpu_available = torch.cuda.is_available() image = get_image(imagefile) if image.shape[1:] != (3,32,32): return {'error' : "only RGB image 32x32 accepted", 'message' : "failure!" } model = get_model() output_tensor = model(image) output_tensor = Softmax(dim=1)(output_tensor) prob_pred_tensor, pred_tensor = torch.max(output_tensor, 1) output = np.squeeze(output_tensor.detach().numpy()) prob_pred = np.squeeze(prob_pred_tensor.detach().numpy()) pred = np.squeeze(pred_tensor.detach().numpy()) classes = ['airplane', 'automobile', 'bird', 'cat', 'deer','dog', 'frog', 'horse', 'ship', 'truck'] pred_dict = {'predicted_class' : str(classes[pred]), 'prob_predicted_class' : str(prob_pred)} for i,prob in enumerate(output): pred_dict[classes[i]] = str(prob) return {'prediction' : pred_dict, 'message' : "success!" }