При загрузке изображения ожидается объект 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'. Я думаю, это потому, что он не преобразуется в массив.(не уверен)

Заранее спасибо за любую помощь....

Вернуться на верх