Почему python выдает ошибку FileNotFoundError: [Errno 2] Нет такого файла или каталога, даже если файл существует?

Я пытаюсь создать модель машинного обучения и использовать django rest framework для ее подключения. Моя структура папок выглядит следующим образом

server
|
+-- chat
|    |
|    +-- DistilBertModel
|    |    |
|    |    +-- OurModel
|    |    |    |
|    |    |    +-- BERT_model.py
|    |    |    +-- chatbot.py
|    |    |    +-- chatbot_predict.py
|    |    |    +-- model.sav
|    |    +-- data
|    |    |    |
|    |    |    +-- test_chatbot.csv
|    |    |    +-- answers.json
|    +-- migrations
|    +-- __init__.py
|    +-- admin.py
|    +-- apps.py
|    +-- models.py
|    +-- serializers.py
|    +-- tests.py
|    +-- urls.py
|    +-- views.py
+-- core
|
+-- templates
|
+-- db.sqlite3
|
+-- manage.py
|
+-- requirements.txt

В файле chatbot_predict.py я пытаюсь загрузить модель и получить предсказание, используя эту модель. Код выглядит следующим образом

import joblib
loaded_model = joblib.load ('model.sav')

def get_prediction (message, loaded_model = loaded_model):
    return prediction

Когда я запускаю этот файл с помощью python chatbot_predict.py из командной строки, он работает нормально. Однако когда я импортирую эту функцию get_prediction в server/chat/views.py и запускаю python manage.py runserver, она выдает ошибку enter image description here

Что я делаю неправильно, чтобы получить эту ошибку FileNotFoundError ?

Это происходит потому, что файл теперь находится в другом месте, чем файл сценария python или текущий каталог.
Попробуйте указать полный путь к файлу модели (не только имя), и это должно сработать в обоих случаях.

В идеале вы должны вызывать все ваши скрипты в корневом каталоге вашего проекта (который становится рабочим каталогом) и, соответственно, указывать пути к файлам для загрузки относительно корневого каталога.

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