#python #jupyter-notebook
Вопрос:
структура моего проекта выглядит следующим образом —
<project_name>
--Makefile
--notebook
--src
-- __init__.py
-- utils
-- __init__.py
-- general_imports.py
-- modelling
-- train.py
У меня есть конкретный рецепт для различных операций, таких как make - train, predict
и т. Д., И они выглядят так —
train: src/modelling/train.py
python -m src.modelling.train
Мой train.py выглядит так —
from ..utils.general_imports import *
from ..utils.dataset import *
def main():
train,test = csv_to_dataframe() # Method returns dataframe from csv
print("Taking a glance at the dataframe")
print(df.head())
print("Shape of the dataframe")
if __name__ == '__main__':
main()
Теперь это работает отлично, за исключением одного — он запускает все по сценарию за один раз. Хотя это и ожидается, трудно провести какой-либо анализ, так как мне нужно запустить make train
программу, которая запускает все с самого начала. Один из способов, которым я заставил его работать, — это создать записную книжку Jupyter в notebook
папке, а затем скопировать и вставить код train.py
. Это связано с затратами на изменение относительного импорта и некоторыми другими изменениями.
Есть ли какой-нибудь лучший способ включить записные книжки ipynb или, может быть, выполнить мои train.py
записи в сотовой связи, когда я это сделаю make train
. Мой подход не выглядит аккуратным, и это заставляет меня повторять работу как в ipynb
блокноте, так и в py
файле.
Комментарии:
1. Требования кажутся довольно несовместимыми;
make
ориентирован на пакетную обработку и автоматизацию, в то время как вам нужно интерактивное поведение. Лучшее, что я могу предложитьtrain.py
, — это разбить пакетную оболочку, которая каким-то образом загружает код из вашего ноутбука, и иметь меньшие фрагменты в качестве исполняемых ячеек в ноутбуке2. @tripleee, я понимаю. Не могли бы вы предложить взять с собой блокнот для тренировок вместе с train.py для интерактивной визуализации и последующего объединения функций в train.py как только я решил, что работает, а что нет (train.py в качестве окончательного включенного файла для использования для автоматизации). У меня есть и другие полезные функции, которые я также могу импортировать в свой ноутбук, просто нужно несколько настроек и изменений в относительном импорте. Спасибо за помощь.