Ошибка в Django -- если max_value не None и max_value < 0..: TypeError: '<' не поддерживается между экземплярами 'dict' и 'float'
Я хочу развернуть мою keras модель MobileNet на веб-приложении для классификации кожи, используя Django. У меня есть обученный файл модели mobile.h5, но когда я запускаю программу на pycharm и на localhost, я загружаю картинку для классификации и получаю эту ошибку
Ошибка в Django -- если max_value не None и max_value < 0..: TypeError: '<' не поддерживается между экземплярами 'dict' и 'float'
import keras.models
import tensorflow.keras.applications
from django.shortcuts import render
#import torchvision
#import torch.nn as nn
from PIL import Image
#import torchvision.transforms as transforms
import base64
from .forms import ImageUploadForm
import numpy as np
def getClassOfImage(image):
#net = torchvision.models.mobilenet_v2(pretrained=True)
#net.classifier[1] = nn.Linear(net.last_channel, 100)
mob = tensorflow.keras.applications.mobilenet.MobileNet()
classes = ('akiec', 'bcc', 'bkl', 'df', 'mel', 'nv')
path = "classifyImage/models/mobile.h5"
checkpoint = keras.models.load_model(path)
mob.load_state_dict(checkpoint['mob'])
mob.eval()
#transform = transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])
transf = tensorflow.keras.layers.experimental.preprocessing.Normalization(mean=[0.5,0.5,0.5],
variance=[np.square(0.5),np.square(0.5),np.square(0.5)])
img = Image.open(image)
img = img.resize((224, 224))
input = transf(img)
input = input.unsqueeze(0)
output = mob(input)
_, predicted = tensorflow.keras.layers.maximum(output, 1)
print('Predicted: ', classes[predicted[0]])
return classes[predicted[0]]
strong text
def index(request):
image_uri = None
predicted_label = None
if request.method == 'POST':
form = ImageUploadForm(request.POST, request.FILES)
if form.is_valid():
image = form.cleaned_data['image']
image_bytes = image.file.read()
encoded_img = base64.b64encode(image_bytes).decode('ascii')
image_uri = 'data:%s;base64,%s' % ('image/jpeg', encoded_img)
# get predicted label
try:
predicted_label = getClassOfImage(image)
except RuntimeError as re:
print(re)
else:
form = ImageUploadForm()
context = {
'form': form,
'image_uri': image_uri,
'predicted_label': predicted_label,
}
return render(request, 'index.html', context)