2nd version of code generation
Генерация кода исключительно для BasicStage класса. Описываются стейджи определенные в корне yml файла или в runs Generic Pipeline-ов, определенных в корне yml файла. То есть если в корне определяется GenericPipeline, который в качестве run определяет другой GenericPipeline, который в свою очередь в своем run определяет BasicStage, такой стейдж не будет сгенерирован.
Для стейджей определенных внутри пайплайнов используется следующее название: <stage_name>_IN_<pipeline_name>, чтобы избежать переопределение если разные пайплайны определяют внутри стейджи с одинаковыми именами.
Yml файл считан с помощью mldev.yaml_loader.YamlLoaderWithEnvVars.
-
Expressionполя сконвертированны в строки при обработке стейджей. Это приводит к артефактам такого типа. - Для объектов типа
mldev.experiment.FilePathфайлы получается обращением к их полю.files. Альтернативно можно вызывать метод.get_files(), когда будут храниться абсолютные пути, а не локальные.
Для использования сгенерированного скрипта:
- Переместить скрипт в директорию эксперимента
python <script_name>.py <stage_name> --params '<json_string_with_params>'
Если указано некорректное имя стейджа, будет выведено сообщение: Unknown BasicStage: <stage_name>.
Сгенерированный скрипт был протестирован для template-default эксперимента (сгенерированный скрипт). Способ запуска:
python experiment_basic.py prepare_IN_run_prepare
python experiment_basic.py train_IN_run_prepare_train --params '{"num_iters":2}'
python experiment_basic.py predict_IN_run_predict