#python #machine-learning #flask
#python #машинное обучение #flask
Вопрос:
Я писал персональный пакет Python для целей машинного обучения. Некоторые модули в пакете используют предварительно подготовленную модель. У меня возникают проблемы с доступом к этой предварительно подготовленной модели при попытке использовать пакет в приложении flask. Каталог, в котором я работаю, организован следующим образом:
-- root
-- flaskapp #folder for my flask app
-- app
-- templates
-- index.html
-- __init__.py
-- routes.py
-- flaskapp.py
-- pipeline #folder for my python package
-- __init__.py
-- sentiment
-- __init__.py
-- logistic.py
-- models #folder for my pretrained models
-- pretrained_model.joblib
Здесь папка sentiment содержит файл python, который загружает сериализованную модель. Чтобы использовать его в routes.py
моем приложении flask, я бы сделал:
from pipeline.sentiment.logistic import sentiment_model
где sentiment_model.py
затем содержатся следующие строки:
import joblib
model = joblib.load('models/pretrained_model.joblib')
В настоящее время, чтобы использовать мой pipeline
пакет в приложении flask, я пытаюсь добавить пакет к своему пути в routes.py
файле моего приложения flask. При использовании пакета в других файлах Python я могу получить доступ к папке models, только если она находится в root
каталоге, в котором я работаю, как указано в структуре моих папок выше. Если я помещаю models
папку внутри sentiment
папки, я получаю следующую ошибку:
FileNotFoundError: [Errno 2] No such file or directory: 'models/pretrained_model.joblib'
Я предполагаю, что получаю эту ошибку, потому что моя models
папка не находится в корневом каталоге, но это кажется неправильным, поскольку в идеале я хотел бы иметь возможность связывать пакет с предварительно подготовленной моделью. Куда я могу поместить models
папку в пакете и какие изменения мне нужно внести в структуру моего пакета, чтобы я мог получить доступ к папке models при импорте пакета в другой файл? Должен ли я сделать что-то вроде размещения __init__.py
файла внутри моей models
папки?
Комментарии:
1. всегда размещайте их рядом с вашим файлом Python, который запускает модель, в том же каталоге, в противном случае, если вы сохраняете их в другой папке того же каталога, вы получаете сообщение об ошибке, потому что папка models не находится внутри вашей логистической папки, из которой вы ее вызываете .. это беспорядок
2. Спасибо за вашу помощь. Я поместил
models
папку в папку logistic. Затем, чтобы получить к нему доступ из моего каталога flask, я использовал sys для добавления корневого каталога к моему пути. Я все еще получаю ошибку file not found при попытке использовать эту модель в своих маршрутах. хотя py.