При загрузке изображения ожидается объект str, bytes или os.PathLike, а не InMemoryUploadedFile
Мой проект - django веб-сайт для предсказания, есть ли у человека опухоль мозга или нет.
def tumor_pred(imageTumor):
model = load_model("bestmodel2.h5")
path = imageTumor
img = load_img(path, target_size=(224, 224))
input_arr = img_to_array(img)/225
input_arr.shape
input_arr = np.expand_dims(input_arr, axis=0)
pred = model.predict_classes(input_arr)[0][0]
if pred == 0:
return 'no'
elif pred == 1:
return 'yes'
else:
return 'error'
функция mriReport
def mriReport(request, aid):
appoitment_details = Appoitment.objects.all().filter(id=aid)
if request.method == "POST":
Appoitment_ID = request.POST['SessionID']
Patient_ID = request.POST['PatientID']
PatientName = request.POST['PatientName']
PatientEmail = request.POST['PatientEmail']
Date = request.POST['Date']
imageTumor = request.FILES['imageTumor']
result = tumor_pred(imageTumor)
try:
MRIReport.objects.create(Appoitment_ID_id=Appoitment_ID, Patient_ID_id=Patient_ID,
PatientName=PatientName, Date=Date, PatientEmail=PatientEmail, image=imageTumor, result=result)
return redirect('labWorkshop')
except Exception as e:
raise e
return render(request, 'MRIReport.html', {'appoitment_details': appoitment_details})
При попытке запустить модель машинного обучения я получаю ошибку "Ожидается объект str, bytes или os.PathLike, а не InMemoryUploadedFile"
Я видел другие решения на stackoverflow, где сообщалось, что он пытается открыть уже открытый файл. Поэтому я попробовал удалить:
img = load_img(path, target_size=(224, 224))
Новая функция
def tumor_pred(imageTumor):
model = load_model("bestmodel2.h5")
img = imageTumor
# img = load_img(path, target_size=(224, 224))
input_arr = img_to_array(img)/225
input_arr.shape
input_arr = np.expand_dims(input_arr, axis=0)
pred = model.predict_classes(input_arr)[0][0]
if pred == 0:
return 'no'
elif pred == 1:
return 'yes'
else:
return 'error'
Но я получаю новую ошибку: float() аргумент должен быть строкой или числом, а не 'InMemoryUploadedFile'. Я думаю, это потому, что он не преобразуется в массив.(не уверен)
Заранее спасибо за любую помощь....