Как сохранить дамп joblib в другую папку?

Моя целевая структура:

  • tools
    • model_maker.py
  • models
    • models go here

Мой текущий код, который находится в каталоге инструментов

joblib.dump(pipeline, "../models/model_full_June2020.jl")

Выдает ошибку:

FileNotFoundError: [Errno 2] No such file or directory: '../models/model_full_June2020.jl'

Я предполагаю, что мой путь неправильный. Если я правильно помню, пути Windows и python отличаются от python и других систем. Когда я развертываю эту штуку на героку, я думаю, она должна работать независимо от конкретной системы, на которой она основана.


person Alex Dore    schedule 23.06.2020    source источник
comment
Мой текущий код, который находится в каталоге инструментов, не означает, что инструменты находятся в текущем каталоге.   -  person John Gordon    schedule 23.06.2020
comment
попробуйте просмотреть текущий каталог, используя 'import os; print(os.getcwd())' или просматривая путь к вашему скрипту при запуске по этому ссылка   -  person Daniel A R F    schedule 23.06.2020
comment
Спасибо, Джон, это поставило меня на правильный путь.   -  person Alex Dore    schedule 24.06.2020


Ответы (1)


Как упомянул @john, это не означает, что каталог tools является текущим каталогом.

Установите относительный путь программно, а не предполагайте, что ваш cwd находится в каталоге tools. Вы можете сделать следующее

В файле со скриптом вы хотите сделать что-то вроде этого:

import os
dirname = os.path.dirname(__file__)
filename = os.path.join(dirname, 'relative/path/to/file/you/want')
joblib.dump(pipeline, filename )

Это должно правильно найти файл, поскольку filename дает абсолютный путь.

person AzyCrw4282    schedule 23.06.2020